<?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>Patrick&#039;s Blog</title>
	<atom:link href="http://www.patrickmriley.net/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.patrickmriley.net/wordpress</link>
	<description>A Riley registry.</description>
	<lastBuildDate>Thu, 27 Oct 2011 03:46:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SQL Azure Federations and Enzo Shard Demo</title>
		<link>http://www.patrickmriley.net/wordpress/2011/10/27/sql-azure-federations-and-enzo-shard-demo/</link>
		<comments>http://www.patrickmriley.net/wordpress/2011/10/27/sql-azure-federations-and-enzo-shard-demo/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 03:32:33 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Enzo Shard Library]]></category>
		<category><![CDATA[Sql Azure Federations]]></category>

		<guid isPermaLink="false">http://www.patrickmriley.net/wordpress/?p=109</guid>
		<description><![CDATA[Attached are my powerpoint and C# demo of the Enzo SQL Shard library for the October KY Dot Net user group meeting. This presentation will cover Azure Federation concepts, sharding strategies, and a short demo of the Enzo SQL Shard Library utilizing a SQL Azure database. Session information: &#8220;Designing enterprise data solutions for today&#8217;s cloud [...]]]></description>
			<content:encoded><![CDATA[<p>Attached are my powerpoint and C# demo of the Enzo SQL Shard library for the October KY Dot Net user group meeting. This presentation will cover Azure Federation concepts, sharding strategies, and a short demo of the Enzo SQL Shard Library utilizing a SQL Azure database.</p>
<p>Session information:</p>
<p>&#8220;Designing enterprise data solutions for today&#8217;s cloud computing environments can leave the average architect puzzled and confused. Listen in as we discuss how database sharding and the upcoming release of Sql Azure Federations will provide virtually unlimited scalability of data for your enterprise applications. Data federation solutions will be analyzed as we examine some of the current data virtualization vendors and preview some of the new features of Sql Azure Federations. Additionally, a federation-aware codeplex library will be demonstrated which supports fan-out queries and parallel round robin loading. Don&#8217;t miss!&#8221;</p>
<p>Bio: Patrick Riley is a software developer for the Rawlings Group in LaGrange, KY. He has worked on master data management solutions in the .NET framework and SQL Server for several years. He enjoys golf, grilling food on his Webber grill, and watching the technology race to the cloud</p>
<p>Feel free to send any feedback you might have to patrick@patrickmriley.net.</p>
<p>Enjoy!</p>
<p>PPTX:<br />
<a href="http://www.patrickmriley.net/wordpress/wp-content/uploads/2011/10/Sql-Azure-Data-Federation.pptx">Sql Azure Data Federations</a></p>
<p>Sample Enzo Federations Source Code:<br />
<a href="http://www.patrickmriley.net/wordpress/wp-content/uploads/2011/10/ShardCode_v1.0.zip">EnzoShardCode_v1.0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2011/10/27/sql-azure-federations-and-enzo-shard-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bitwise XOR on Byte Array</title>
		<link>http://www.patrickmriley.net/wordpress/2011/08/31/bitwise-xor-on-byte-array/</link>
		<comments>http://www.patrickmriley.net/wordpress/2011/08/31/bitwise-xor-on-byte-array/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 05:01:11 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.patrickmriley.net/wordpress/?p=97</guid>
		<description><![CDATA[Spent the past few hours scrambling for a generic XOR solution on two byte arrays. I needed a solution that would add the match value to a specific result value if it did not already exist (assuming the most significant byte starts at the beginning of the array). You&#8217;d think this would be somewhere in [...]]]></description>
			<content:encoded><![CDATA[<p>Spent the past few hours scrambling for a generic XOR solution on two byte arrays. I needed a solution that would add the match value to a specific result value if it did not already exist (assuming the most significant byte starts at the beginning of the array). You&#8217;d think this would be somewhere in the C# libraries by now. After an hour of searching, I decided to write my own. Ended up with the solution below.</p>
<div class="codecolorer-container csharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br /></div></td><td><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> BitwiseXOR<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> result, <span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> matchValue<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> matchValue<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> newResult <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#91;</span>matchValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">&gt;</span> result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">?</span> matchValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">:</span> result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> newResult<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">+</span><span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//Use XOR on the LSBs until we run out</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span>i <span style="color: #008000;">&gt;</span> result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newResult<span style="color: #008000;">&#91;</span>newResult<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> matchValue<span style="color: #008000;">&#91;</span>matchValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> i<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">else</span> <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">&gt;</span> matchValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newResult<span style="color: #008000;">&#91;</span>newResult<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> result<span style="color: #008000;">&#91;</span>result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> i<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newResult<span style="color: #008000;">&#91;</span>newResult<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span>i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#40;</span>matchValue<span style="color: #008000;">&#91;</span>matchValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">^</span> result<span style="color: #008000;">&#91;</span>result<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> newResult<span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2011/08/31/bitwise-xor-on-byte-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Marketplace</title>
		<link>http://www.patrickmriley.net/wordpress/2011/08/25/windows-azure-marketplace/</link>
		<comments>http://www.patrickmriley.net/wordpress/2011/08/25/windows-azure-marketplace/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 21:10:46 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Azure Datamarket]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://www.patrickmriley.net/wordpress/?p=88</guid>
		<description><![CDATA[In an attempt to update my blog, I am posting this from my January discussion at the KY .NET user group meeting on consuming cloud services. I will be speaking this October on Sql Azure Federations, and will be focusing my efforts in the coming year on cloud based applications. More to come&#8230; Windows Azure [...]]]></description>
			<content:encoded><![CDATA[<p>In an attempt to update my blog, I am posting this from my January discussion at the KY .NET user group meeting on consuming cloud services. I will be speaking this October on Sql Azure Federations, and will be focusing my efforts in the coming year on cloud based applications. More to come&#8230;</p>
<p><strong>Windows Azure Marketplace: Consuming the Cloud DataMarket</strong><br />
Leveraging the Cloud&#8217;s data services can provide real-time feeds that keep your users bustling. Learn how to quickly absorb the DataMarket&#8217;s datasets using OData APIs and expose them to client applications on any platform. A sample from Microsoft&#8217;s Windows Azure Support team utilizing a Windows Azure service to consume crime data from Data.gov will be discussed. OData, one of the cloud&#8217;s increasingly popular and flexible web protocols for querying and updating data, will be examined and reviewed.</p>
<p>Link to slides:</p>
<p><a href="http://www.patrickmriley.net/wordpress/wp-content/uploads/2011/08/Windows_Azure_Marketplace_Consuming_the_Cloud.ppt">PPTX: Windows_Azure_Marketplace_Consuming_the_Cloud</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2011/08/25/windows-azure-marketplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fuzzy matching: a programmer&#8217;s view of the Damerau-Levenshtein algorithm</title>
		<link>http://www.patrickmriley.net/wordpress/2011/08/23/fuzzy-matching-a-programmers-view-of-the-damerau-levenshtein-algorithm/</link>
		<comments>http://www.patrickmriley.net/wordpress/2011/08/23/fuzzy-matching-a-programmers-view-of-the-damerau-levenshtein-algorithm/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 03:30:33 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Fuzzy matching]]></category>

		<guid isPermaLink="false">http://www.patrickmriley.net/wordpress/?p=57</guid>
		<description><![CDATA[The sheer mechanics of fuzzy matching algorithms are fascinating. Optimized variations are behind search engines and optical character recognition (OCR) softwares we see on the market today. An interesting algorithm I&#8217;ve recently used for a patient matching solution utilizes the Damerau-Levenshtein distance algorithm to locate fuzzy matches. The Levenshetin approach considers how many substitutions, deletions, [...]]]></description>
			<content:encoded><![CDATA[<p>The sheer mechanics of fuzzy matching algorithms are fascinating. Optimized variations are behind search engines and optical character recognition (OCR) softwares we see on the market today. An interesting algorithm I&#8217;ve recently used for a patient matching solution utilizes the Damerau-Levenshtein distance algorithm to locate fuzzy matches. </p>
<p>The Levenshetin approach considers how many substitutions, deletions, and insertions are needed to make two strings equal (also known as the edit distance between the strings). The algorithm was later improved by Damerau to include transposition (step highlghted on line 55). This solution is an example of bottom-up dynamic programming, because a matrix is flood filled to find the minimum distance. The complexity is cubic, but is improved to K x L complexity when using a maximum distance of interest (where K is the maximum distance, and L is the shortest string). The algorithm below uses a maximum distance (threshold paramter) and other simple optimizations to vastly improve the performance of the Damerau-Levenshtein. It has been tested to run over 10K string compares/second with two given strings under ten characters in length and a maximum threshold of three edits.</p>
<div class="codecolorer-container csharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br /></div></td><td><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">int</span> DamerauLevenshteinDistanceImproved<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> string1, <br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">string</span> string2, <span style="color: #6666cc; font-weight: bold;">int</span> threshold<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Return trivial case - where they are equal</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>string1<span style="color: #008000;">.</span><span style="color: #0000FF;">Equals</span><span style="color: #008000;">&#40;</span>string2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Return trivial case - where one is empty</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">String</span><span style="color: #008000;">.</span><span style="color: #0000FF;">IsNullOrEmpty</span><span style="color: #008000;">&#40;</span>string1<span style="color: #008000;">&#41;</span> <span style="color: #008000;">||</span> <span style="color: #6666cc; font-weight: bold;">String</span><span style="color: #008000;">.</span><span style="color: #0000FF;">IsNullOrEmpty</span><span style="color: #008000;">&#40;</span>string2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">&#40;</span>string1 <span style="color: #008000;">??</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">+</span> <span style="color: #008000;">&#40;</span>string2 <span style="color: #008000;">??</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Ensure string2 (inner cycle) is longer</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>string1<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">&gt;</span> string2<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var tmp <span style="color: #008000;">=</span> string1<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; string1 <span style="color: #008000;">=</span> string2<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; string2 <span style="color: #008000;">=</span> tmp<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Return trivial case - where string1 is contained within string2</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>string2<span style="color: #008000;">.</span><span style="color: #0000FF;">Contains</span><span style="color: #008000;">&#40;</span>string1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> string2<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> string1<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; var length1 <span style="color: #008000;">=</span> string1<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; var length2 <span style="color: #008000;">=</span> string2<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; var d <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">&#91;</span>length1 <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span>, length2 <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;=</span> d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; d<span style="color: #008000;">&#91;</span>i, <span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> i<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;=</span> d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; d<span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span>, i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> i<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;=</span> d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var im1 <span style="color: #008000;">=</span> i <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var im2 <span style="color: #008000;">=</span> i <span style="color: #008000;">-</span> <span style="color: #FF0000;">2</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var minDistance <span style="color: #008000;">=</span> threshold<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var j <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> j <span style="color: #008000;">&lt;=</span> d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> j<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var jm1 <span style="color: #008000;">=</span> j <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var jm2 <span style="color: #008000;">=</span> j <span style="color: #008000;">-</span> <span style="color: #FF0000;">2</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var cost <span style="color: #008000;">=</span> string1<span style="color: #008000;">&#91;</span>im1<span style="color: #008000;">&#93;</span> <span style="color: #008000;">==</span> string2<span style="color: #008000;">&#91;</span>jm1<span style="color: #008000;">&#93;</span> <span style="color: #008000;">?</span> <span style="color: #FF0000;">0</span> <span style="color: #008000;">:</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var del <span style="color: #008000;">=</span> d<span style="color: #008000;">&#91;</span>im1, j<span style="color: #008000;">&#93;</span> <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var ins <span style="color: #008000;">=</span> d<span style="color: #008000;">&#91;</span>i, jm1<span style="color: #008000;">&#93;</span> <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var sub <span style="color: #008000;">=</span> d<span style="color: #008000;">&#91;</span>im1, jm1<span style="color: #008000;">&#93;</span> <span style="color: #008000;">+</span> cost<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//Math.Min is slower than native code here</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//d[i, j] = Math.Min(del, Math.Min(ins, sub));</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d<span style="color: #008000;">&#91;</span>i, j<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> del <span style="color: #008000;">&lt;=</span> ins <span style="color: #008000;">&amp;&amp;</span> del <span style="color: #008000;">&lt;=</span> sub <span style="color: #008000;">?</span> del <span style="color: #008000;">:</span> ins <span style="color: #008000;">&lt;=</span> sub <span style="color: #008000;">?</span> ins <span style="color: #008000;">:</span> sub<span style="color: #008000;">;</span><br />
<br />
<span style="display:block;background-color:#ffff66">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">&gt;</span> <span style="color: #FF0000;">1</span> <span style="color: #008000;">&amp;&amp;</span> j <span style="color: #008000;">&gt;</span> <span style="color: #FF0000;">1</span> <span style="color: #008000;">&amp;&amp;</span> string1<span style="color: #008000;">&#91;</span>im1<span style="color: #008000;">&#93;</span> <span style="color: #008000;">==</span> string2<span style="color: #008000;">&#91;</span>jm2<span style="color: #008000;">&#93;</span> <br /></span><span style="display:block;background-color:#ffff66">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #008000;">&amp;&amp;</span> string1<span style="color: #008000;">&#91;</span>im2<span style="color: #008000;">&#93;</span> <span style="color: #008000;">==</span> string2<span style="color: #008000;">&#91;</span>jm1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br /></span><span style="display:block;background-color:#ffff66">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d<span style="color: #008000;">&#91;</span>i, j<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> Math<span style="color: #008000;">.</span><span style="color: #0000FF;">Min</span><span style="color: #008000;">&#40;</span>d<span style="color: #008000;">&#91;</span>i, j<span style="color: #008000;">&#93;</span>, d<span style="color: #008000;">&#91;</span>im2, jm2<span style="color: #008000;">&#93;</span> <span style="color: #008000;">+</span> cost<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br /></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>d<span style="color: #008000;">&#91;</span>i, j<span style="color: #008000;">&#93;</span> <span style="color: #008000;">&lt;</span> minDistance<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; minDistance <span style="color: #008000;">=</span> d<span style="color: #008000;">&#91;</span>i, j<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
<span style="display:block;background-color:#ffff66">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>minDistance <span style="color: #008000;">&gt;</span> threshold<span style="color: #008000;">&#41;</span><br /></span><span style="display:block;background-color:#ffff66">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">.</span><span style="color: #0000FF;">MaxValue</span><span style="color: #008000;">;</span><br /></span>&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> d<span style="color: #008000;">&#91;</span>d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span>, d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&gt;</span> threshold<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">?</span> <span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">.</span><span style="color: #0000FF;">MaxValue</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">:</span> d<span style="color: #008000;">&#91;</span>d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span>, d<span style="color: #008000;">.</span><span style="color: #0000FF;">GetUpperBound</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2011/08/23/fuzzy-matching-a-programmers-view-of-the-damerau-levenshtein-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How failure can breed success&#8230;</title>
		<link>http://www.patrickmriley.net/wordpress/2011/03/05/jobreflectio/</link>
		<comments>http://www.patrickmriley.net/wordpress/2011/03/05/jobreflectio/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 18:30:07 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Success]]></category>

		<guid isPermaLink="false">http://www.patrickmriley.net/wordpress/?p=54</guid>
		<description><![CDATA[Having wrapped up two major projects in my first four months with a new company, one quote seems to come to mind: &#8220;success is overcoming your failures, one at a time&#8221;. For a software developer, this point might be frequently overlooked. Small hurdles quickly get overshadowed with the next challenge. Reaching one milestone quickly opens [...]]]></description>
			<content:encoded><![CDATA[<p>Having wrapped up two major projects in my first four months with a new company, one quote seems to come to mind: &#8220;success is overcoming your failures, one at a time&#8221;. For a software developer, this point might be frequently overlooked. Small hurdles quickly get overshadowed with the next challenge. Reaching one milestone quickly opens discussion about the next.</p>
<p>But what do we hold onto on our journey? How do we learn from constant change?</p>
<p>One small victory opens a pandora of new opportunity, and a bigger gap for failure at the same time. With great risk, failure is inevitable. Those of us who embrace failure, will also embrace success.</p>
<p>Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2011/03/05/jobreflectio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>To the Cloud!</title>
		<link>http://www.patrickmriley.net/wordpress/2010/12/29/to-the-cloud/</link>
		<comments>http://www.patrickmriley.net/wordpress/2010/12/29/to-the-cloud/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 01:58:22 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Azure Datamarket]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://patrickmriley.net/wordpress/?p=25</guid>
		<description><![CDATA[This week I am taking some time to discuss integrating your WP7 app with Windows Azure and the Microsoft &#8220;cloud&#8221;. This can be hugely beneficial if you happen to write the next &#8220;farmville&#8221;. The cloud offers the possibility to scale up and out, and in a matter of minutes. In this post, I will show [...]]]></description>
			<content:encoded><![CDATA[<p>This week I am taking some time to discuss integrating your WP7 app with Windows Azure and the Microsoft &#8220;cloud&#8221;. This can be hugely beneficial if you happen to write the next &#8220;farmville&#8221;. The cloud offers the possibility to scale up and out, and in a matter of minutes.</p>
<p>In this post, I will show a quick demo and the tools you&#8217;ll need for constructing your all-embracing nimbus. Let&#8217;s get the basics first. You&#8217;ll need <a title="IIS7" href="http://learn.iis.net/page.aspx/28/installing-iis-7-on-windows-vista-and-windows-7/">IIS 7</a>, the <a href="http://create.msdn.com/en-us/home/getting_started">WP7 developer tools</a>, and the<a href="http://msdn.microsoft.com/en-us/ff380142"> Windows Azure SDK</a>. Once you get those out of the way, head over to the MSDN All-In-One Code team blog and download the <a href="http://blogs.msdn.com/b/codefx/archive/2010/09/26/device-cloud-the-code-sample-combining-ie9-windows-phone-7-and-windows-azure.aspx">demo</a>. Ahhh, now for the fun stuff.</p>
<p>But first a bit of background. A core component to the Windows Azure platform has been neatly constructed in something we like to call &#8220;roles&#8221;, or runtimes for execution. Roles can be quickly targeted to any platform &#8220;in the cloud&#8221; and allow you to specify however many instances of your service or web application you would like. Roles are also easily configured in your role configuration file, or within the Azure platform app fabric portal. Web applications (defined within a web role) can be pushed across several endpoints with the push of a button!  Wow, right? Running as many background processes (worker roles) as you need is also supported. I know&#8230;I was excited too.</p>
<p>This demo showcases the<a href="http://datamarket.azure.com/"> Windows Azure Datamarket</a>, another service being provided by Microsoft&#8217;s cloud which allows you to consume cloud data using a REST service and the OData protocol. Read the <a href="https://datamarket.azure.com/about">whitepaper</a> for more fascinating tidbits.  The Azure DataMarket requires your Microsoft Live Id and a data service subscription. Luckily, this demo uses a free Web Crime service provided by Data.gov. There are several others in the <a href="http://datamarket.azure.com/browse">store</a> which provide real time data feeds.</p>
<p>Enough chit chat, let&#8217;s see this in action. First you&#8217;ll want to pull down your Account subscription key and add it to the CrimeService.svc.cs file, i.e.:</p>
<blockquote>
<div id="_mcePaste">private static string azureDataMarketAccountKey = &#8220;ey1Oab3KdvlEkIhk=&#8221;;</div>
<div id="_mcePaste">public List&lt;CityCrimeWeight&gt; GetCrimes()</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste" style="padding-left: 30px;">List&lt;CityCrimeWeight&gt; results = new List&lt;CityCrimeWeight&gt;();</div>
<div id="_mcePaste" style="padding-left: 30px;">datagovCrimesContainer svc = new datagovCrimesContainer(new Uri(&#8220;https://api.datamarket.azure.com/Data.ashx/data.gov/Crimes/&#8221;));</div>
<div id="_mcePaste" style="padding-left: 30px;">svc.Credentials = new NetworkCredential(&#8220;yourLiveId&#8221;, azureDataMarketAccountKey);</div>
<div id="_mcePaste" style="padding-left: 30px;">// Obtain all crime data in New York.</div>
<div id="_mcePaste" style="padding-left: 30px;">var query = from c in svc.CityCrime where c.State == &#8220;New York&#8221; select c;</div>
<div style="padding-left: 30px;">&#8230;</div>
</blockquote>
<p>Next, fire up the demo in VS 2010 along with the Windows Azure Compute Emulator. This will enable you to watch web roles boot up. Here you can see I have specified two instances in my service configuration (csfg) file. The UI emulator will show your service endpoints along with your role runtime statements.</p>
<p><a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/12/webroles.jpg"><img class="aligncenter size-full wp-image-28" title="webroles" src="http://patrickmriley.net/wordpress/wp-content/uploads/2010/12/webroles.jpg" alt="" width="864" height="600" /></a></p>
<p>Once you have this piece in play, you&#8217;re almost ready to go. You can fire up your WP7 client application (preferably in another instance of Visual Studio) and see your cloud services at work. You may want to change the ServiceAddress property in the MainPage code behind depending on where the CrimeService web role was deployed, i.e.:</p>
<blockquote><p>private static string ServiceAddress = &#8220;http://127.0.0.1:81/CrimeService.svc/Crimes&#8221;;</p></blockquote>
<p><a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/12/wp7cloud1.jpg"><img class="aligncenter size-full wp-image-45" style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" title="wp7cloud" src="http://patrickmriley.net/wordpress/wp-content/uploads/2010/12/wp7cloud1.jpg" alt="" width="636" height="348" /></a></p>
<p>This demo shows how easy it is to expand your WP7 application into a Azure Datamarket Cloud Consuming Machine! Hope you enjoyed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2010/12/29/to-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVVM &amp; WP7 Presentation</title>
		<link>http://www.patrickmriley.net/wordpress/2010/10/27/mvvm-wp7-presentation/</link>
		<comments>http://www.patrickmriley.net/wordpress/2010/10/27/mvvm-wp7-presentation/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 14:51:19 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BingMaps]]></category>
		<category><![CDATA[MVVM Light]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://patrickmriley.net/wordpress/?p=16</guid>
		<description><![CDATA[I am excited about the chance to share some of my recent work with Dr.Ragade&#8217;s Software Engineering class today! We will be covering basics of Model View-View Model pattern, MVVM Light toolkit, and demo&#8217;ing some WPF &#38; Windows Phone 7 Applications. Here are some docs from the presentation: PPTX: MVVM-WP7_2010 MVVM applications: WP7 Twitter Search source [...]]]></description>
			<content:encoded><![CDATA[<p>I am excited about the chance to share some of my recent work with Dr.Ragade&#8217;s Software Engineering class today! We will be covering basics of Model View-View Model pattern, MVVM Light toolkit, and demo&#8217;ing some WPF &amp; Windows Phone 7 Applications.</p>
<p>Here are some docs from the presentation:<br />
<a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/10/MVVM-WP7_20101.pptx">PPTX: MVVM-WP7_2010</a></p>
<p>MVVM applications:<br />
<a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/10/mvvm_wp7_twitter_search.zip">WP7 Twitter Search source code</a><br />
<a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/10/EmpiBrokerUtility.zip">WPF Message Viewer source code</a><br />
<a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/10/BingMaps_WP7.zip">BingMaps WP7 source code</a></p>
<p>My MVVM Light RTM (release to manufacturing) template:<br />
<a href="http://patrickmriley.net/wordpress/wp-content/uploads/2010/10/MvvmLightPhone7Rtm.zip">MvvmLightPhone7Rtm template</a> (place in your Silverlight templates folder)</p>
<p>Some helpful links for getting started with MVVM and Windows Phone 7:</p>
<p>Developer Tools: <a href="http://create.msdn.com/">http://create.msdn.com/</a><br />
MVVM Light: <a href="http://www.galasoft.ch/mvvm/getstarted/">http://www.galasoft.ch/mvvm/getstarted/</a><br />
Aaron Stanndard&#8217;s blog: <a href="http://www.aaronstannard.com/">http://www.aaronstannard.com/</a><br />
Bing Maps Silverlight Control: <a href="http://msdn.microsoft.com/en-us/library/ff941093(v=VS.92).aspx">http://msdn.microsoft.com/en-us/library/ff941093(v=VS.92).aspx</a><br />
Unity: <a href="http://unity.codeplex.com/">http://unity.codeplex.com/</a><br />
Rest Client RestSharp: <a href="http://restsharp.org/">http://restsharp.org/</a><br />
Dreamspark: <a href="https://www.dreamspark.com/Default.aspx">https://www.dreamspark.com/Default.aspx</a><br />
Josh Smith&#8217;s MVVM Article: <a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx">http://msdn.microsoft.com/en-us/magazine/dd419663.aspx</a><br />
Compiled Experience (several demos): <a href="http://compiledexperience.com/windows-phone-7">http://compiledexperience.com/windows-phone-7</a></p>
<p>Hope you enjoy! Let me know if you have any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2010/10/27/mvvm-wp7-presentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://www.patrickmriley.net/wordpress/2010/10/23/hello-world/</link>
		<comments>http://www.patrickmriley.net/wordpress/2010/10/23/hello-world/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 19:18:12 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://patrickmriley.net/wordpress/?p=1</guid>
		<description><![CDATA[Introducing Patrick&#8217;s blog: The latest news in a Louisville Kentucky software engineer&#8217;s life.  Things I&#8217;m likely to post about: Windows Phone 7 .NET development Healthcare Football, Golf, Basketball &#38; other sports Traveling Food Enjoy!]]></description>
			<content:encoded><![CDATA[<p>Introducing Patrick&#8217;s blog:</p>
<p>The latest news in a Louisville Kentucky software engineer&#8217;s life.  Things I&#8217;m likely to post about:<br />
Windows Phone 7<br />
.NET development<br />
Healthcare<br />
Football, Golf, Basketball &amp; other sports<br />
Traveling<br />
Food</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickmriley.net/wordpress/2010/10/23/hello-world/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

