<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="http://www.dzone.com/links/misc/rss.xsl"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dz="http://www.developerzone.com/modules/dz/1.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>DZone links by paul_houle</title>
    <link>http://www.dzone.com/links/users/links/281687.html</link>
    <description>DZone: fresh links for developers</description>
    <language>en-us</language>
    <copyright>Copyright (c) 2008 DZone, Inc.</copyright>
    <pubDate>Tue, 07 Oct 2008 01:22:56 GMT</pubDate>
    <dc:creator>The DZone community</dc:creator>
    <dc:date>2008-10-07T01:22:56Z</dc:date>
    <dc:language>en-us</dc:language>
    <dc:rights>Copyright (c) 2008 DZone, Inc.</dc:rights>
    <dz:selfLink>http://www.dzone.com/links/feed/user/281687/rss.xml</dz:selfLink>
    <image>
      <title>DZone: fresh links for developers</title>
      <url>http://www.dzone.com/images/std/dzone.com_258x55.gif</url>
      <link>http://www.dzone.com/links/</link>
    </image>
    <item>
      <title>You've caught an exception.  Now what?</title>
      <link>http://www.dzone.com/links/rss/youve_caught_an_exception_now_what.html</link>
      <description>An effective strategy for handling exceptions is to catch them at the boundary of a coarsely-grained "unit of work".  Once you've caught an exception,  you need to repair application state,  notify affected people and ultimately abort the program,  retry the operation,  or ignore the error.  This article provides guidelines for making that decision.</description>
      <category>.net</category>
      <category>java</category>
      <category>opinion</category>
      <category>php</category>
      <pubDate>Wed, 27 Aug 2008 16:57:32 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/107677.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-08-27T16:57:32Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/youve_caught_an_exception_now_what.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/107677.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>An effective strategy for handling exceptions is to catch them at the boundary of a coarsely-grained "unit of work".  Once you've caught an exception,  you need to repair application state,  notify affected people and ultimately abort the program,  retry the operation,  or ignore the error.  This article provides guidelines for making that decision.<br/><br/><a href='http://www.dzone.com/links/rss/youve_caught_an_exception_now_what.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=107677' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>107677</dz:linkId>
      <dz:submitDate>2008-08-27T15:39:30Z</dz:submitDate>
      <dz:promoteDate>2008-08-27T16:57:32Z</dz:promoteDate>
      <dz:voteUpCount>49</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>832</dz:clickCount>
      <dz:commentCount>1</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/107677.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Expressing Asynchronous Control Flows With Program Translation</title>
      <link>http://www.dzone.com/links/rss/httpgen5infoq20080813convertingasynchronousprogra.html</link>
      <description>A paper by Thibaud Lopez Schneider shows that we can transform a function written with conventional control structures and synchronous function calls into a set of callback functions that work in an asychronous environment,  such as an RIA that uses XHR.  Longer-term,  tools may evolved that will automate this process,  to simplify the development of correct asynchronous applications.</description>
      <category>.net</category>
      <category>java</category>
      <category>javascript</category>
      <category>ria</category>
      <pubDate>Fri, 15 Aug 2008 03:20:19 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/103629.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-08-15T03:20:19Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/httpgen5infoq20080813convertingasynchronousprogra.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/103629.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>A paper by Thibaud Lopez Schneider shows that we can transform a function written with conventional control structures and synchronous function calls into a set of callback functions that work in an asychronous environment,  such as an RIA that uses XHR.  Longer-term,  tools may evolved that will automate this process,  to simplify the development of correct asynchronous applications.

<br/><br/><a href='http://www.dzone.com/links/rss/httpgen5infoq20080813convertingasynchronousprogra.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=103629' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>103629</dz:linkId>
      <dz:submitDate>2008-08-14T16:12:51Z</dz:submitDate>
      <dz:promoteDate>2008-08-15T03:20:19Z</dz:promoteDate>
      <dz:voteUpCount>13</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>99</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/103629.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Stop Catching Exceptions!</title>
      <link>http://www.dzone.com/links/rss/stop_catching_exceptions.html</link>
      <description>Too many programmers catch exceptions too often, causing both mainline and error handling logic to be complex and error-prone.&#xD;
&#xD;
 Although C#, PHP and other languages don't make the mistake that Java made with Checked Exceptions, Java trained a generation of programmers in bad habits. &#xD;
&#xD;
A strategy that (i) uses finally as the first resort for containing corrupting and maintaining invariants, (ii) uses catch locally when the exceptions thrown in an area are completely understood, and (iii) surrounds independent units of work with try-catch blocks is an effective basis for using exceptions that can be built upon to develop an exception handling policy for a particular application.</description>
      <category>.net</category>
      <category>java</category>
      <category>opinion</category>
      <category>php</category>
      <pubDate>Tue, 05 Aug 2008 15:22:22 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/101212.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-08-05T15:22:22Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/stop_catching_exceptions.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/101212.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Too many programmers catch exceptions too often, causing both mainline and error handling logic to be complex and error-prone.

 Although C#, PHP and other languages don't make the mistake that Java made with Checked Exceptions, Java trained a generation of programmers in bad habits. 

A strategy that (i) uses finally as the first resort for containing corrupting and maintaining invariants, (ii) uses catch locally when the exceptions thrown in an area are completely understood, and (iii) surrounds independent units of work with try-catch blocks is an effective basis for using exceptions that can be built upon to develop an exception handling policy for a particular application.<br/><br/><a href='http://www.dzone.com/links/rss/stop_catching_exceptions.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=101212' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>101212</dz:linkId>
      <dz:submitDate>2008-08-05T13:40:48Z</dz:submitDate>
      <dz:promoteDate>2008-08-05T15:22:22Z</dz:promoteDate>
      <dz:voteUpCount>40</dz:voteUpCount>
      <dz:voteDownCount>9</dz:voteDownCount>
      <dz:clickCount>1550</dz:clickCount>
      <dz:commentCount>3</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/101212.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Of Multitons, Data Updates, And Memory</title>
      <link>http://www.dzone.com/links/rss/of_multitons_data_updates_and_memory.html</link>
      <description>The Multiton design pattern is an extension of the Singleton pattern that can be useful for managing state updates in GUI applications,  in particular,  asynchronous RIA's.  This article introduces the multiton pattern and demonstrates a practical use,  while revealing that the Multiton pattern interacts poorly with garbage collectors and doesn't apply well when a large number of objects are created.</description>
      <category>.net</category>
      <category>java</category>
      <category>ria</category>
      <pubDate>Tue, 29 Jul 2008 14:55:15 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/99054.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-07-29T14:55:15Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/of_multitons_data_updates_and_memory.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/99054.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>The Multiton design pattern is an extension of the Singleton pattern that can be useful for managing state updates in GUI applications,  in particular,  asynchronous RIA's.  This article introduces the multiton pattern and demonstrates a practical use,  while revealing that the Multiton pattern interacts poorly with garbage collectors and doesn't apply well when a large number of objects are created.<br/><br/><a href='http://www.dzone.com/links/rss/of_multitons_data_updates_and_memory.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=99054' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>99054</dz:linkId>
      <dz:submitDate>2008-07-29T13:26:16Z</dz:submitDate>
      <dz:promoteDate>2008-07-29T14:55:15Z</dz:promoteDate>
      <dz:voteUpCount>5</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>126</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/99054.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Separating Models And Views To Build Reliable RIA's</title>
      <link>http://www.dzone.com/links/rss/separating_models_and_views_to_build_reliable_rias.html</link>
      <description>When people start developing RIA’s in environments such as Silverlight, GWT, Flex and plain JavaScript, they often write asynchronous communication callbacks in an unstructured manner, putting them wherever is convenient — often in an instance member of a user interface component (Silverlight and GWT) or in a closure or global function (JavaScript.)&#xD;
&#xD;
Several problems almost invariably occur as applications become more complex that force the development of an architecture that decouples communication event handlers from the user interface: a straightforward solution is to create a model layer that’s responsible for notifying interested user interface components about data updates.</description>
      <category>.net</category>
      <category>flash-flex</category>
      <category>javascript</category>
      <category>ria</category>
      <pubDate>Mon, 21 Jul 2008 17:12:30 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/96851.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-07-21T17:12:30Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/separating_models_and_views_to_build_reliable_rias.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/96851.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>When people start developing RIA’s in environments such as Silverlight, GWT, Flex and plain JavaScript, they often write asynchronous communication callbacks in an unstructured manner, putting them wherever is convenient — often in an instance member of a user interface component (Silverlight and GWT) or in a closure or global function (JavaScript.)

Several problems almost invariably occur as applications become more complex that force the development of an architecture that decouples communication event handlers from the user interface: a straightforward solution is to create a model layer that’s responsible for notifying interested user interface components about data updates.<br/><br/><a href='http://www.dzone.com/links/rss/separating_models_and_views_to_build_reliable_rias.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=96851' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>96851</dz:linkId>
      <dz:submitDate>2008-07-21T15:48:10Z</dz:submitDate>
      <dz:promoteDate>2008-07-21T17:12:30Z</dz:promoteDate>
      <dz:voteUpCount>13</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>277</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/96851.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Dictionaries And Missing Values in C#, Python, Java and PHP</title>
      <link>http://www.dzone.com/links/rss/dictionaries_and_missing_values_in_c_python_java.html</link>
      <description>Today's popular programming languages support some form of Dictionary that maps a set of keys to values.  On close inspection,  we find that common languages offer programmers different options for dealing with missing values.  This article looks at the handling of missing keys in four popular languages and presents a PHP function and C# extension method that implement a particularly useful get() operator.</description>
      <category>.net</category>
      <category>java</category>
      <category>php</category>
      <pubDate>Thu, 17 Jul 2008 18:54:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/95941.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-07-17T18:54:00Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/dictionaries_and_missing_values_in_c_python_java.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/95941.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Today's popular programming languages support some form of Dictionary that maps a set of keys to values.  On close inspection,  we find that common languages offer programmers different options for dealing with missing values.  This article looks at the handling of missing keys in four popular languages and presents a PHP function and C# extension method that implement a particularly useful get() operator.<br/><br/><a href='http://www.dzone.com/links/rss/dictionaries_and_missing_values_in_c_python_java.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=95941' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>95941</dz:linkId>
      <dz:submitDate>2008-07-17T16:54:24Z</dz:submitDate>
      <dz:promoteDate>2008-07-17T18:54:00Z</dz:promoteDate>
      <dz:voteUpCount>13</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>275</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/95941.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Economists Prove That Patents Harm Innovation</title>
      <link>http://www.dzone.com/links/rss/economists_prove_that_patents_harm_innovation.html</link>
      <description>Bessen and Meurer's data suggest that outside of the chemical and pharmaceutical industries, litigation costs for the average public firm actually exceed profits from their patent portfolio by a wide margin. By 1999, the last year in their sample, defendending against patent lawsuits cost non-chemical public firms about $12 billion, while their patent portfolios generated only about $3 billion in profits. &#xD;
&#xD;
This data suggests that outside the chemical and pharmaceutical industries, the patent system actually reduces the net returns to innovation; firms don't earn enough from their patents to offset the costs of defending themselves against patent infringement lawsuits brought by other firms.</description>
      <category>books</category>
      <category>opinion</category>
      <category>research</category>
      <pubDate>Wed, 16 Jul 2008 14:12:59 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/95540.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-07-16T14:12:59Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/economists_prove_that_patents_harm_innovation.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/95540.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Bessen and Meurer's data suggest that outside of the chemical and pharmaceutical industries, litigation costs for the average public firm actually exceed profits from their patent portfolio by a wide margin. By 1999, the last year in their sample, defendending against patent lawsuits cost non-chemical public firms about $12 billion, while their patent portfolios generated only about $3 billion in profits. 

This data suggests that outside the chemical and pharmaceutical industries, the patent system actually reduces the net returns to innovation; firms don't earn enough from their patents to offset the costs of defending themselves against patent infringement lawsuits brought by other firms.<br/><br/><a href='http://www.dzone.com/links/rss/economists_prove_that_patents_harm_innovation.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=95540' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>95540</dz:linkId>
      <dz:submitDate>2008-07-16T14:12:59Z</dz:submitDate>
      <dz:voteUpCount>1</dz:voteUpCount>
      <dz:voteDownCount>1</dz:voteDownCount>
      <dz:clickCount>28</dz:clickCount>
      <dz:commentCount>1</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/95540.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>The Weird And Wonderful World Of Extension Methods in C#</title>
      <link>http://www.dzone.com/links/rss/the_weird_and_wonderful_world_of_extension_method.html</link>
      <description>Extension methods are the most controversial feature that Microsoft has introduced in C# 3.0.  Introduced to support the LINQ query framework,  extension methods make it possible to define new methods for existing classes.&#xD;
&#xD;
Although extension methods can greatly simplify code that uses them,  many are concerned that they could transform C# into something that programmers find unrecognizable,  or that C#’s namespace mechanisms are inadequate for managing large systems that use extension methods.  Adoption of the LINQ framework,  however,  means that extension methods are here to stay,  and that .net programmers need to understand how to use them effectively,  and,  in particular,  how extension methods are different from regular methods.</description>
      <category>.net</category>
      <category>microsoft</category>
      <category>research</category>
      <pubDate>Wed, 09 Jul 2008 15:31:51 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/93682.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-07-09T15:31:51Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/the_weird_and_wonderful_world_of_extension_method.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/93682.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Extension methods are the most controversial feature that Microsoft has introduced in C# 3.0.  Introduced to support the LINQ query framework,  extension methods make it possible to define new methods for existing classes.

Although extension methods can greatly simplify code that uses them,  many are concerned that they could transform C# into something that programmers find unrecognizable,  or that C#’s namespace mechanisms are inadequate for managing large systems that use extension methods.  Adoption of the LINQ framework,  however,  means that extension methods are here to stay,  and that .net programmers need to understand how to use them effectively,  and,  in particular,  how extension methods are different from regular methods.<br/><br/><a href='http://www.dzone.com/links/rss/the_weird_and_wonderful_world_of_extension_method.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=93682' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>93682</dz:linkId>
      <dz:submitDate>2008-07-09T13:54:31Z</dz:submitDate>
      <dz:promoteDate>2008-07-09T15:31:51Z</dz:promoteDate>
      <dz:voteUpCount>8</dz:voteUpCount>
      <dz:voteDownCount>1</dz:voteDownCount>
      <dz:clickCount>174</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/93682.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Dropping Unique Constraints in Sql Server</title>
      <link>http://www.dzone.com/links/rss/dropping_unique_constraints_in_sql_server.html</link>
      <description>Microsoft SQL Server requires you to know the name of a constraint when you drop it.  This isn't a problem when using the GUI,  but it makes it difficult to write migration scripts.  This article presents a simple stored procedure which uses information in the system data dictionary to allow deletion of constraints knowing only the table and column name.</description>
      <category>database</category>
      <category>microsoft</category>
      <category>windows</category>
      <pubDate>Mon, 30 Jun 2008 13:52:36 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/91389.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-06-30T13:52:36Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/dropping_unique_constraints_in_sql_server.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/91389.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Microsoft SQL Server requires you to know the name of a constraint when you drop it.  This isn't a problem when using the GUI,  but it makes it difficult to write migration scripts.  This article presents a simple stored procedure which uses information in the system data dictionary to allow deletion of constraints knowing only the table and column name.<br/><br/><a href='http://www.dzone.com/links/rss/dropping_unique_constraints_in_sql_server.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=91389' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>91389</dz:linkId>
      <dz:submitDate>2008-06-30T13:52:36Z</dz:submitDate>
      <dz:voteUpCount>1</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>3</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/91389.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Which kind of explicit cast should you use in C#?</title>
      <link>http://www.dzone.com/links/rss/which_kind_of_explicit_cast_should_you_use_in_c.html</link>
      <description>C# offers two casting operators: the prefix-cast and the as-cast. Although the two operators compile to different op-codes in the CLR, the practical difference between them is in how they handle failed casts. Prefix-cast throws an exception on cast failure, while as-cast returns null. It’s easier to implement correct error handling when you use prefix cast, because it doesn’t require manual checks for null values that can cause problems in distant parts of your program. Prefix-cast should be the default cast operator on your fingertips, that you use for everyday situations</description>
      <category>.net</category>
      <pubDate>Mon, 16 Jun 2008 15:57:28 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/87709.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-06-16T15:57:28Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/which_kind_of_explicit_cast_should_you_use_in_c.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/87709.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>C# offers two casting operators: the prefix-cast and the as-cast. Although the two operators compile to different op-codes in the CLR, the practical difference between them is in how they handle failed casts. Prefix-cast throws an exception on cast failure, while as-cast returns null. It’s easier to implement correct error handling when you use prefix cast, because it doesn’t require manual checks for null values that can cause problems in distant parts of your program. Prefix-cast should be the default cast operator on your fingertips, that you use for everyday situations<br/><br/><a href='http://www.dzone.com/links/rss/which_kind_of_explicit_cast_should_you_use_in_c.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=87709' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>87709</dz:linkId>
      <dz:submitDate>2008-06-16T14:22:37Z</dz:submitDate>
      <dz:promoteDate>2008-06-16T15:57:28Z</dz:promoteDate>
      <dz:voteUpCount>10</dz:voteUpCount>
      <dz:voteDownCount>2</dz:voteDownCount>
      <dz:clickCount>198</dz:clickCount>
      <dz:commentCount>1</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/87709.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Easily Drop A Primary Key In Microsoft SQL Server</title>
      <link>http://www.dzone.com/links/rss/easily_drop_a_primary_key_in_microsoft_sql_server.html</link>
      <description>It can be tricky writing database migrations for SQL Server since you often need to refer to constraints and keys by name.  This article presents a simple stored procedure that queries the system catalog to find the primary key constraint of a table and remove it in one step.</description>
      <category>database</category>
      <category>microsoft</category>
      <pubDate>Mon, 09 Jun 2008 14:26:42 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/86161.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-06-09T14:26:42Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/easily_drop_a_primary_key_in_microsoft_sql_server.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/86161.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>It can be tricky writing database migrations for SQL Server since you often need to refer to constraints and keys by name.  This article presents a simple stored procedure that queries the system catalog to find the primary key constraint of a table and remove it in one step.<br/><br/><a href='http://www.dzone.com/links/rss/easily_drop_a_primary_key_in_microsoft_sql_server.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=86161' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>86161</dz:linkId>
      <dz:submitDate>2008-06-09T14:26:42Z</dz:submitDate>
      <dz:voteUpCount>1</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>40</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/86161.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>The Curse and Blessings of Dynamic SQL</title>
      <link>http://www.dzone.com/links/rss/the_curse_and_blessings_of_dynamic_sql.html</link>
      <description>Nice article about Dynamic SQL for Microsoft's SQL Server.  How to do it,  why you should do it,  and why you shouldn't.</description>
      <category>database</category>
      <pubDate>Fri, 06 Jun 2008 15:34:33 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/85699.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-06-06T15:34:33Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/the_curse_and_blessings_of_dynamic_sql.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/85699.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Nice article about Dynamic SQL for Microsoft's SQL Server.  How to do it,  why you should do it,  and why you shouldn't.<br/><br/><a href='http://www.dzone.com/links/rss/the_curse_and_blessings_of_dynamic_sql.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=85699' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>85699</dz:linkId>
      <dz:submitDate>2008-06-06T15:34:33Z</dz:submitDate>
      <dz:voteUpCount>1</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>8</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/85699.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Tame SQL with Multi-Line Quotes in C# And PHP</title>
      <link>http://www.dzone.com/links/rss/tame_sql_with_multiline_quotes_in_c_and_php.html</link>
      <description>Languages that support multiline quotes such as C#,  Perl and PHP make it easy for developers to embed SQL code in applications in a readable and maintainable way</description>
      <category>.net</category>
      <category>database</category>
      <category>php</category>
      <pubDate>Tue, 13 May 2008 17:17:35 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/80781.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-05-13T17:17:35Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/tame_sql_with_multiline_quotes_in_c_and_php.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/80781.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Languages that support multiline quotes such as C#,  Perl and PHP make it easy for developers to embed SQL code in applications in a readable and maintainable way<br/><br/><a href='http://www.dzone.com/links/rss/tame_sql_with_multiline_quotes_in_c_and_php.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=80781' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>80781</dz:linkId>
      <dz:submitDate>2008-05-13T15:38:54Z</dz:submitDate>
      <dz:promoteDate>2008-05-13T17:17:35Z</dz:promoteDate>
      <dz:voteUpCount>6</dz:voteUpCount>
      <dz:voteDownCount>2</dz:voteDownCount>
      <dz:clickCount>217</dz:clickCount>
      <dz:commentCount>2</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/80781.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Asynchronous Execution in Silverlight, GWT and Javascript</title>
      <link>http://www.dzone.com/links/rss/asynchronous_execution_in_silverlight_gwt_and_jav.html</link>
      <description>When Rich Internet Applications reach a certain level of complexity,  you start having concurrency problems similar,  but not identical,  to the problems with multiple threads -- the root cause is that http request callbacks and user interface events can come in an arbitrary order.  This article works out an example that explains how this happens,  as understanding the nature of asynchronous communication is the first step towards developing reliable apps.</description>
      <category>.net</category>
      <category>java</category>
      <category>javascript</category>
      <category>ria</category>
      <pubDate>Thu, 08 May 2008 17:26:35 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/79963.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-05-08T17:26:35Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/asynchronous_execution_in_silverlight_gwt_and_jav.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/79963.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>When Rich Internet Applications reach a certain level of complexity,  you start having concurrency problems similar,  but not identical,  to the problems with multiple threads -- the root cause is that http request callbacks and user interface events can come in an arbitrary order.  This article works out an example that explains how this happens,  as understanding the nature of asynchronous communication is the first step towards developing reliable apps.<br/><br/><a href='http://www.dzone.com/links/rss/asynchronous_execution_in_silverlight_gwt_and_jav.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=79963' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>79963</dz:linkId>
      <dz:submitDate>2008-05-08T14:53:41Z</dz:submitDate>
      <dz:promoteDate>2008-05-08T17:26:35Z</dz:promoteDate>
      <dz:voteUpCount>9</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>169</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/79963.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Clarify Silverlight and GWT Communications With Asynchronous Functions</title>
      <link>http://www.dzone.com/links/rss/clarify_silverlight_and_gwt_communications_with_a.html</link>
      <description>Asynchronous communications in RIA's such as GWT and Silverlight force changes in the organization of software.  Asynchronous Functions are a simple pattern that let you nest asynchronous calls.</description>
      <category>.net</category>
      <category>ajax</category>
      <category>java</category>
      <category>ria</category>
      <pubDate>Tue, 22 Apr 2008 18:52:25 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/77139.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-04-22T18:52:25Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/clarify_silverlight_and_gwt_communications_with_a.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/77139.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Asynchronous communications in RIA's such as GWT and Silverlight force changes in the organization of software.  Asynchronous Functions are a simple pattern that let you nest asynchronous calls.<br/><br/><a href='http://www.dzone.com/links/rss/clarify_silverlight_and_gwt_communications_with_a.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=77139' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>77139</dz:linkId>
      <dz:submitDate>2008-04-22T18:52:25Z</dz:submitDate>
      <dz:voteUpCount>2</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>7</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/77139.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Manage Asynchronous HTTP in Silverlight With The Command Pattern</title>
      <link>http://www.dzone.com/links/rss/manage_asynchronous_http_in_silverlight_with_the.html</link>
      <description>Http responses in Silverlight (and other RIA languages) are asynchronous and need to be handled in callback methods.  Where should the callback methods go?  Bundling the start of an http call with the callback in a single Command object is a straightforward way to organize your code.</description>
      <category>.net</category>
      <category>ria</category>
      <pubDate>Mon, 14 Apr 2008 13:26:44 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/75796.html</guid>
      <dc:creator>paul_houle</dc:creator>
      <dc:date>2008-04-14T13:26:44Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/manage_asynchronous_http_in_silverlight_with_the.html'><img src='http://cdn.dzone.com/images/thumbs/120x90/75796.jpg' style='width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc;' /></a><p style='margin-left: 130px;'>Http responses in Silverlight (and other RIA languages) are asynchronous and need to be handled in callback methods.  Where should the callback methods go?  Bundling the start of an http call with the callback in a single Command object is a straightforward way to organize your code.<br/><br/><a href='http://www.dzone.com/links/rss/manage_asynchronous_http_in_silverlight_with_the.html'><img src='http://www.dzone.com/links/voteCountImage?linkId=75796' border='0'/></a></p>]]></content:encoded>
      <dz:linkId>75796</dz:linkId>
      <dz:submitDate>2008-04-14T13:26:44Z</dz:submitDate>
      <dz:voteUpCount>1</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>9</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/75796.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>paul_houle</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/281687.gif</dz:userimage>
      </dz:submitter>
    </item>
  </channel>
</rss>

