<?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>.debug</title>
	<atom:link href="http://www.dexterlegaspi.com/journal/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.dexterlegaspi.com/journal</link>
	<description>.NET and BizTalk Rants</description>
	<lastBuildDate>Tue, 13 Jul 2010 11:35:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>XSLT is Beautiful</title>
		<link>http://www.dexterlegaspi.com/journal/?p=115</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=115#comments</comments>
		<pubDate>Sun, 27 Jun 2010 13:31:55 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=115</guid>
		<description><![CDATA[Kindly excuse the &#8220;tackiness&#8221; (is that a word?) of the title of this blog post.  I just wanted to express how elegant XSLTs (along with XPaths) are in the Web 2.0 world where most data are represented in XML.  I think most of the &#8220;No SQL&#8221; initiative (along with the &#8220;flavor-of-the-recent-times&#8221; Cassandra DB) is based [...]]]></description>
			<content:encoded><![CDATA[<p>Kindly excuse the &#8220;tackiness&#8221; (is that a word?) of the title of this blog post.  I just wanted to express how elegant XSLTs (along with XPaths) are in the Web 2.0 world where most data are represented in XML.  I think most of the &#8220;No SQL&#8221; initiative (along with the &#8220;flavor-of-the-recent-times&#8221; Cassandra DB) is based on the fact that a lot of data are represented that grows BOTH vertically (i.e., &#8220;number of records&#8221;) AND horizontally (&#8220;number of fields&#8221;)&#8230;which, IMO, XML is all about.</p>
<p>XSLTs, when used/coded properly, should be really used as &#8220;rules-based&#8221; (i.e., &#8220;xsl:apply-templates&#8221;) instead of &#8220;serial-based&#8221; (i.e., &#8220;xsl:for-each&#8221; + &#8220;xsl:call-template&#8221;), and making your XSLT rules-based can be daunting at first but becomes powerful in the long run.  The only word I could describe it is that: beautiful.  I think XSLT is the closest thing I could get to the days I was writing in Prolog in my Computer Science classes.</p>
<p>XSLTs (again, when coded properly) are EASY to manage.  It is isolated.  If you have a good XML IDE like Stylus Studio (Not that crap XML Spy), it&#8217;s easy to unit-test.</p>
<p>It&#8217;s rather stupefying why some &#8220;programming gurus&#8221; out there <a href="http://www.codinghorror.com/blog/2005/07/martin-fowler-hates-xslt-too.html">detest it</a>. <strong> </strong>Honestly, I would lose respect to any programmer who doesn&#8217;t consider XSLT to programmatically manipulate of complex XMLs&#8230;especially those people who&#8217;d rather <a href="http://www.dexterlegaspi.com/journal/?p=96">write multiple lines of C# involving XElement</a> than write an XSLT&#8230;or worse, LINQ to XML (*shudder*).</p>
<p>Apparently, I&#8217;m not alone on this: <a href="http://en.wikipedia.org/wiki/XSLT">XSLT has been around since 1997</a>, and the 1.0 has been part of the W3C Recommendation since 1999.  It&#8217;s not a fad.  And XSLT 1.0&#8211;despite its limitations&#8211;is still yet to be trumped by 2.0 because it&#8217;s already full-featured in itself.</p>
<p>Don&#8217;t get me wrong, XSLT is not the solution to everything XML-related.  However, itt should be part of any good programmer&#8217;s arsenal, along with that *other* awesome creation of Computer Programming world, Regular Expressions (that would be topic for another day).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=115</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Unexpected end of document. This is not a new document. The dissassembly is incomplete. &#8220;</title>
		<link>http://www.dexterlegaspi.com/journal/?p=114</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=114#comments</comments>
		<pubDate>Sat, 26 Jun 2010 15:57:02 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=114</guid>
		<description><![CDATA[You get this when you use BizTalk map in inbound/outbound port and the BizTalk map doesn&#8217;t change a single node in the input document. Your message also gets suspended. This is LAYM. There should be an option to let the message through even though it hasn&#8217;t changed when going through the map.]]></description>
			<content:encoded><![CDATA[<p>You get this when you use BizTalk map in inbound/outbound port and the BizTalk map doesn&#8217;t change a single node in the input document.  Your message also gets suspended.  This is LAYM.  There should be an option to let the message through even though it hasn&#8217;t changed when going through the map.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=114</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Adobe, Flash, and iPhone Programming&#8230;</title>
		<link>http://www.dexterlegaspi.com/journal/?p=112</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=112#comments</comments>
		<pubDate>Thu, 06 May 2010 19:15:22 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=112</guid>
		<description><![CDATA[So Apple has created a new rule that only Mac-approved tools/language (C/C++ and Objective C) can be used to create iPhone/iPad applications, and you can hear whining from Adobe and Flash developers that they are being &#8220;restricted&#8221; by Apple. Holy crap.  I could not believe I was reading all these whining. I can certainly understand [...]]]></description>
			<content:encoded><![CDATA[<p>So Apple has created a new rule that only Mac-approved tools/language (C/C++ and Objective C) can be used to create iPhone/iPad applications, and you can hear whining from Adobe and Flash developers that they are being &#8220;restricted&#8221; by Apple.</p>
<p>Holy crap.  I could not believe I was reading all these whining.</p>
<p>I can certainly understand Jobs&#8217; point on why Apple should restrict the tools to the bare minimum: At the end of the day, we want the devices to be as efficient as possible as far as power/resources is concerned.  It&#8217;s not so much as an issue with desktop devices, but it is a HUGE ISSUE on cellphones and portable devices.  No matter how thin a framework (Flash) is, it can never be as efficient as a code written in native language (Cocoa/Objective-C/C/C++).</p>
<p>Apple might be doing this restriction out of spite, but that&#8217;s hardly relevant.</p>
<p>We&#8217;ve seen Flash and how bloated and horrendous it is as far as resource management.  I would not want that thing draining the battery of my iPhone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=112</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Make LINQ to Entities Pointless</title>
		<link>http://www.dexterlegaspi.com/journal/?p=109</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=109#comments</comments>
		<pubDate>Mon, 19 Apr 2010 01:12:49 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=109</guid>
		<description><![CDATA[On my current project that I happen to mistakenly used as a guinea pig for L2E, I wanted to apply an optimization on a select query: I wanted to allow &#8220;a dirty read&#8221; on a table where L2E sits on. Upon searching, I stumbled upon on Scott Hanselman&#8217;s post on the project.  As I go [...]]]></description>
			<content:encoded><![CDATA[<p>On my current project that I happen to mistakenly used as a guinea pig for L2E, I wanted to apply an optimization on a select query: I wanted to allow &#8220;a dirty read&#8221; on a table where L2E sits on.</p>
<p>Upon searching, I stumbled upon on <a href="http://www.hanselman.com/blog/GettingLINQToSQLAndLINQToEntitiesToUseNOLOCK.aspx">Scott Hanselman&#8217;s post</a> on the project.  As I go through the comments, one commenter gave me an equivalent of a painful smack on the head; this is what he said:</p>
<blockquote><p>I very rarely comment on blogs, but this time I have an itch that I just gotta scratch&#8230;.</p>
<p>the question/concern I have is in regard to tight coupling and the lack of &#8220;Seperation of concerns&#8221; that this seems to introduce.</p>
<p>When setting the transaction isolation level in the application binaries arent we creating a very tightly coupled scenario in which the code has too much intimate knowledge of the DB?</p>
<p>How is a production DBA going to troubleshoot database performance,blocking, and deadlock issues? All we&#8217;ll see in the profiler is a bunch of inline SQL Statements with no indication of where they live or where they are coming from.</p>
<p>If the isolation level has to be changed, it would require a C# code change, a full QA cycle and a binary redeploy.</p>
<p>Seems to me that placing this in sprocs shields the app from having to know too much about the database.</p>
<p>Futhermore, this makes me think of some comments Bob Beauchemin had on his blog regarding performance tuning SQL generated by LINQ. He&#8217;s right&#8230;..if we cant control the SQL that is generated by the API, we will likely have huge performance issues that cannot easily be fixed without a huge redesign at the application level.</p>
<p>Currently, as all SQL code lives in sprocs, when I see a performance issue, I can turn the profiler on an very quickly determine the sproc that is the troublemaker and then I can quickly and easily modify the sql as needed to optimize it. Knowing all the way there are many ways to write the same query while yielding the same results but very different performance. Sometimes I just need to change a join to use a correlated sub-query instead. Somtimes I need to tweak the method used for filtering my WHERE Clause&#8230;..</p>
<p>while making changes to the sproc I can instantly see the performance gains by viewing the query plan and monitoring sub-tree cost, etc. If LINQ is generating SQL for me, this becomes impossible.</p>
<p>Am I worried about nothing here or are these issues really going to exist with the wide adoption of LINQ?</p></blockquote>
<p>If you really look at it, L2E has lost its appeal.  Mr. pdxJaxon, I nominate thee as 2010 Programmer of the Year.</p>
<p>I re-wrote the part of the code that uses L2E to an sproc.  It&#8217;s now at least 50% faster.  Time to gloat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=109</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Azure Queues: I LOL&#8217;d</title>
		<link>http://www.dexterlegaspi.com/journal/?p=107</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=107#comments</comments>
		<pubDate>Thu, 15 Apr 2010 14:44:14 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=107</guid>
		<description><![CDATA[So I was writing a unit test that uses the Azure StorageClient DLL to create a queue.  I used the name &#8220;UnitTestQueue&#8221; as the queue name and for the life of me I keep getting this error: Microsoft.WindowsAzure.StorageClient.StorageClientException: One of the request inputs is out of range. After my usual WTF routine (which involves throwing [...]]]></description>
			<content:encoded><![CDATA[<p>So I was writing a unit test that uses the Azure StorageClient DLL to create a queue.  I used the name &#8220;UnitTestQueue&#8221; as the queue name and for the life of me I keep getting this error:</p>
<p><code>Microsoft.WindowsAzure.StorageClient.StorageClientException: One of the request inputs is out of range.</code></p>
<p>After my usual WTF routine (which involves throwing chairs and strangling myself), I broke down and googled.  It turns out that all I need to do is change the name to &#8220;unittestqueue&#8221;.  That&#8217;s right, ladies and gentlement <strong>You cannot use capital letters to name your queues.</strong></p>
<p>Awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=107</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to XSD</title>
		<link>http://www.dexterlegaspi.com/journal/?p=103</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=103#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:36:56 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=103</guid>
		<description><![CDATA[I can&#8217;t say without batting an eye that I hate LINQ completely. There are a few things that I actually like about LINQ and one of them is the little-known feature called LINQ to XSD. Unlike that travesty that is called LINQ to Entities, LINQ to XSD just works. Don&#8217;t let the Alpha 0.2 designation [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t say without batting an eye that I hate LINQ completely.  There are a few things that I actually like about LINQ and one of them is the little-known feature called <a href="http://blogs.msdn.com/xmlteam/archive/2009/06/03/linq-to-xsd-now-available-on-codeplex.aspx">LINQ to XSD</a>.</p>
<p>Unlike that travesty that is called LINQ to Entities, LINQ to XSD just works.  Don&#8217;t let the Alpha 0.2 designation fool you; it&#8217;s full-featured, including near-seamless integration with Visual Studio 2008&#8230;unlike <a href="http://www.dexterlegaspi.com/journal/?p=60">some tool</a> out there that&#8217;s already in version 3.0 but performs like it&#8217;s in pre-alpha version.</p>
<p>So why/when would use LINQ to XSD?  Sure, you can hand-code .NET objects based on your XML Schema and rely on the [Serializable] attribute and just use XmlSerializer&#8230;that works&#8230;if your schemas aren&#8217;t terribly complicated.  However, when you start using a more complex XSD that changes often, automating the process certainly eases the pain.</p>
<p>But what does LINQ to XSD offer over something like&#8230;the all-time-favorite class generator, XSD.EXE?  Well, first of all, XSD.EXE still generates classes around the &#8220;old&#8221; .NET objects, XmlDocument; LINQ to XSD builds around that more awesomerz XDocument objects.  Second, the way LINQ to XSD integrates with VS2008 is elegant in such a way <strong>that it doesn&#8217;t make the developer feel stupid</strong>: it hides the abstraction of creating the classes BUT it provides a &#8220;back door&#8221; for all the classes it creates&#8211;i.e., it still provides access to the internal classes it abstracts from you (OH, HELLO THERE, LINQ to ENTITIES&#8230;)</p>
<p>When you include an XSD in a LINQ to XSD project, you are given the &#8220;compile option&#8221; to create LINQ to XSD classes&#8230;No, you never see the generated .NET source code for the classes (actually, you can&#8230;but it&#8217;s not intended to be exposed), but that&#8217;s fine&#8230;in fact, you will prefer it this way, anyway; and&#8230;you can still browse the object classes generated&#8230;sweet, isn&#8217;t it? Change the XSD?  Go ahead, the object classes gets regenerated, too&#8230;In contrast with XSD.EXE where&#8230;bah&#8230;I&#8217;m not even going there.</p>
<p>So there you have it: one of the few features of LINQ that works.  Imagine that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=103</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XElement/XDocument Code Generator</title>
		<link>http://www.dexterlegaspi.com/journal/?p=96</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=96#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:09:23 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=96</guid>
		<description><![CDATA[I&#8217;ve created an XSLT that when supplied with an XML, creates the corresponding .cs file that would create that specific XML (Confused yet?).  For example, if you have the following XML: &#60;data format="text"&#62; &#60;internal-data format="integer"&#62;123&#60;/internal-data&#62; &#60;payload&#62;The quick brown fox jumps over the lazy dog&#60;/payload&#62; &#60;/data&#62; The XSLT result will be: var doc = new XDocument( [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created an XSLT that when supplied with an XML, creates the corresponding .cs file that would create that specific XML (Confused yet?).  For example, if you have the following XML:</p>
<pre></pre>
<pre>&lt;data format="text"&gt;
  &lt;internal-data format="integer"&gt;123&lt;/internal-data&gt;
  &lt;payload&gt;The quick brown fox jumps over the lazy dog&lt;/payload&gt;
&lt;/data&gt;</pre>
<p>The XSLT result will be:</p>
<pre>var doc = new XDocument(
  new XElement("data",
    new XAttribute("format", "text"),
    new XElement("internal-data",
      new XAttribute("format", "integer"),
      new XText(@"123")
    ),
    new XElement("payload",
      new XText(@"The quick brown fox jumps over the lazy dog")
    )
  )
);</pre>
<p>You can now use the generated code in a method or unit test.  Of course, the example is stupid simple; you can probably hand-code it faster.  The XSLT only becomes useful when the XML becomes a bit more intricate that it requires more than 10 minutes to hand-code.</p>
<p>Simple enough, yes?  A knowledge of XSLT would, of course, is needed to understand what the XSLT does, but for somebody who just wants a code generator, all you need is an XSLT engine (like Visual Studio 2008).</p>
<p>One limitation of the XSLT is that it can only deal with ONE XML Namespace&#8230;so multiple namespaces will need a bit more work on the final generated C# file before it becomes useable.</p>
<p>Trivia: This was supposed to be the topic of my third CodeProject article which I ended up deleting&#8230;because the good people at CodeProject thought it &#8220;lacks substance&#8221;  Which I thought was a bit painted with hypocrisy when a huge number of articles in CP have no substance at all.  OH, WELL.</p>
<p><a href="http://www.dexterlegaspi.com/journal/wp-admin/media.php?action=edit&amp;attachment_id=98">Download the XSLT</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ To Entities is the Work of the Devil</title>
		<link>http://www.dexterlegaspi.com/journal/?p=93</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=93#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:19:56 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=93</guid>
		<description><![CDATA[News flash: I still hate LINQ. Rant #1: &#8220;LINQ Method cannot be translated into a store expression.&#8221; As always, Microsoft and their cryptic error messages.  I ran across this error while developing a Worker Role Azure application that heavily relies on LINQ to Entities.  The experience is somewhat akin to this, but it was a [...]]]></description>
			<content:encoded><![CDATA[<p>News flash: I still hate LINQ.</p>
<p>Rant #1: &#8220;LINQ Method cannot be translated into a store expression.&#8221;</p>
<p>As always, Microsoft and their cryptic error messages.  I ran across this error while developing a Worker Role Azure application that heavily relies on LINQ to Entities.  The experience is somewhat akin to <a href="http://blog.dreamlabsolutions.com/post/2008/11/17/LINQ-Method-cannot-be-translated-into-a-store-expression.aspx">this</a>, but it was a bit more rude awakening experience for me.  I kinda know why this doesn&#8217;t work now, but my beef with this is that why isn&#8217;t it flagged as a COMPILER error?  Why is it a run-time error?</p>
<p>Rant #2: Why do I have to explicitly have to call .Detach() to an Entity when the EntityConnection and context is already out of scope?  I mean, WTF is that?  And why oh why do I have to explicitly call .Attach() to a new EntityConnection and context?  Shouldn&#8217;t it automagically work?!</p>
<p>Now, I know LINQ to Entity is still basically in its infancy, and I&#8217;m sure by .NET v27.5 or whatever, Microsoft may have even perfected it.  That&#8217;s assuming they don&#8217;t introduce another programming paradigm into their Framework.</p>
<p>Sometimes, I wonder WHY Microsoft had to tack on the LINQ stuff to existing C# or VB or whatever.  Wouldn&#8217;t it make more sense to define a new language altogether?  Calling delegates/methods/functions across multiple languages is dead easy anyway.</p>
<p>I still don&#8217;t see the value of LINQ at all&#8230;the only somewhat cool use of the extension is the ability to filter contents an IEnumerable object.  THAT&#8217;S ABOUT IT.  Database access?  I still prefer ADO.NET.  XML?  XSLT and XPath is enough for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=93</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Azure Storage BizTalk Adapter</title>
		<link>http://www.dexterlegaspi.com/journal/?p=90</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=90#comments</comments>
		<pubDate>Tue, 12 Jan 2010 19:34:24 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=90</guid>
		<description><![CDATA[I finished a custom BizTalk Azure Storage Adapter for one of my projects&#8230;which is basically an adapter that allows you to upload any content to a Azure Blob Storage.  I leveraged that new StorageClient.dll that came with the Azure SDK November CTP. I&#8217;ll probably write a new CodeProject article about it&#8230;or maybe not&#8230;ZZzzz.]]></description>
			<content:encoded><![CDATA[<p>I finished a custom BizTalk Azure Storage Adapter for one of my projects&#8230;which is basically an adapter that allows you to upload any content to a Azure Blob Storage.  I leveraged that new StorageClient.dll that came with the Azure SDK November CTP.</p>
<p>I&#8217;ll probably write a new CodeProject article about it&#8230;or maybe not&#8230;ZZzzz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=90</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New CodeProject Article</title>
		<link>http://www.dexterlegaspi.com/journal/?p=87</link>
		<comments>http://www.dexterlegaspi.com/journal/?p=87#comments</comments>
		<pubDate>Sat, 24 Oct 2009 23:53:09 +0000</pubDate>
		<dc:creator>dalegaspi</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.dexterlegaspi.com/journal/?p=87</guid>
		<description><![CDATA[I have finished writing a new article for CodeProject.]]></description>
			<content:encoded><![CDATA[<p>I have finished writing a <a href="http://www.codeproject.com/KB/cs/MetadataProPhoto.aspx">new article</a> for CodeProject.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dexterlegaspi.com/journal/?feed=rss2&amp;p=87</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
