<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for Mike Pirnat</title>
	<atom:link href="http://www.pirnat.com/mike/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pirnat.com/mike</link>
	<description>a leaf on the wind</description>
	<lastBuildDate>Fri, 05 Feb 2010 13:33:48 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on The Diaper Pattern Stinks by Jorge Vargas</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-559</link>
		<dc:creator>Jorge Vargas</dc:creator>
		<pubDate>Fri, 05 Feb 2010 13:33:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-559</guid>
		<description>I don&#039;t know why but that reminded me of my newbie days as a Java programer.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know why but that reminded me of my newbie days as a Java programer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by mdg</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-558</link>
		<dc:creator>mdg</dc:creator>
		<pubDate>Thu, 04 Feb 2010 18:43:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-558</guid>
		<description>ew, ur gross!</description>
		<content:encoded><![CDATA[<p>ew, ur gross!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On My Way to a Better Mii by Matt Wilson</title>
		<link>http://www.pirnat.com/mike/2009/06/03/on-my-way-to-a-better-mii/comment-page-1/#comment-381</link>
		<dc:creator>Matt Wilson</dc:creator>
		<pubDate>Thu, 04 Jun 2009 23:46:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1180#comment-381</guid>
		<description>Nice post.  In my experience, work stress counterintuitively increases as I put more time and energy into work.  Good luck!</description>
		<content:encoded><![CDATA[<p>Nice post.  In my experience, work stress counterintuitively increases as I put more time and energy into work.  Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by mpirnat</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-353</link>
		<dc:creator>mpirnat</dc:creator>
		<pubDate>Sun, 10 May 2009 17:01:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-353</guid>
		<description>&lt;a href=&quot;#comment-349&quot; rel=&quot;nofollow&quot;&gt;@Doug Napoleone&lt;/a&gt; 
Yes, I think that&#039;s the appropriate sort of place to Diaper, at those key integration points between systems.  We&#039;ve got some XML-RPC services in our backend and are happy to Diaper at the response level there so that we always guarantee a well-formed response (even one which signals an error).  It&#039;s a good tool in the right circumstance, but it has to be used wisely and sparingly, rather than casually and without regard for consequence.</description>
		<content:encoded><![CDATA[<p><a href="#comment-349" rel="nofollow">@Doug Napoleone</a><br />
Yes, I think that&#8217;s the appropriate sort of place to Diaper, at those key integration points between systems.  We&#8217;ve got some XML-RPC services in our backend and are happy to Diaper at the response level there so that we always guarantee a well-formed response (even one which signals an error).  It&#8217;s a good tool in the right circumstance, but it has to be used wisely and sparingly, rather than casually and without regard for consequence.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by mpirnat</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-352</link>
		<dc:creator>mpirnat</dc:creator>
		<pubDate>Sun, 10 May 2009 16:56:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-352</guid>
		<description>&lt;a href=&quot;#comment-351&quot; rel=&quot;nofollow&quot;&gt;@Alex Conrad&lt;/a&gt; 
The worst part about letting the program keep running is that it has the expectation that everything in the try block executed without problems, which can lead to mysterious and difficult to debug problems elsewhere in the code.  (Diaper leakage? You&#039;re not sure where it came from, but it made a mess somewhere else.  The metaphor gets a lot of mileage, I think... I like to refer to exception-raising errors in exception-handling code as &quot;blowouts,&quot; a term that I really wish I didn&#039;t have practical experience with.)

I agree that the original example wasn&#039;t quite as diaperish due to the immediate raise--and thank goodness it was just a plain raise instead of a &quot;except Exception, e: raise e&quot; that would have destroyed the original stack trace.</description>
		<content:encoded><![CDATA[<p><a href="#comment-351" rel="nofollow">@Alex Conrad</a><br />
The worst part about letting the program keep running is that it has the expectation that everything in the try block executed without problems, which can lead to mysterious and difficult to debug problems elsewhere in the code.  (Diaper leakage? You&#8217;re not sure where it came from, but it made a mess somewhere else.  The metaphor gets a lot of mileage, I think&#8230; I like to refer to exception-raising errors in exception-handling code as &#8220;blowouts,&#8221; a term that I really wish I didn&#8217;t have practical experience with.)</p>
<p>I agree that the original example wasn&#8217;t quite as diaperish due to the immediate raise&#8211;and thank goodness it was just a plain raise instead of a &#8220;except Exception, e: raise e&#8221; that would have destroyed the original stack trace.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by Alex Conrad</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-351</link>
		<dc:creator>Alex Conrad</dc:creator>
		<pubDate>Sun, 10 May 2009 09:12:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-351</guid>
		<description>Your original post about the diaper pattern[1] actually shows code that raises, not just passes (the joke is that it passes after it raises). Which sounds more like the &quot;error hiding&quot; anti-pattern: http://en.wikipedia.org/wiki/Error_hiding

The example code above subtly differs as all errors silently pass. But the program keeps running. I didn&#039;t find any anti-pattern about that. I think this behavior fits the diaper pattern.

[1] http://www.pirnat.com/mike/2009/05/06/the-zen-of-doing-it-wrong/</description>
		<content:encoded><![CDATA[<p>Your original post about the diaper pattern[1] actually shows code that raises, not just passes (the joke is that it passes after it raises). Which sounds more like the &#8220;error hiding&#8221; anti-pattern: <a href="http://en.wikipedia.org/wiki/Error_hiding" rel="nofollow">http://en.wikipedia.org/wiki/Error_hiding</a></p>
<p>The example code above subtly differs as all errors silently pass. But the program keeps running. I didn&#8217;t find any anti-pattern about that. I think this behavior fits the diaper pattern.</p>
<p>[1] <a href="http://www.pirnat.com/mike/2009/05/06/the-zen-of-doing-it-wrong/" rel="nofollow">http://www.pirnat.com/mike/2009/05/06/the-zen-of-doing-it-wrong/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by Alex Conrad</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-350</link>
		<dc:creator>Alex Conrad</dc:creator>
		<pubDate>Sun, 10 May 2009 08:25:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-350</guid>
		<description>I think it deserves its Wikipedia entry:

http://en.wikipedia.org/wiki/Diaper_Pattern

:)</description>
		<content:encoded><![CDATA[<p>I think it deserves its Wikipedia entry:</p>
<p><a href="http://en.wikipedia.org/wiki/Diaper_Pattern" rel="nofollow">http://en.wikipedia.org/wiki/Diaper_Pattern</a></p>
<p> <img src='http://www.pirnat.com/mike/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by Doug Napoleone</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-349</link>
		<dc:creator>Doug Napoleone</dc:creator>
		<pubDate>Sun, 10 May 2009 02:21:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-349</guid>
		<description>For highly available distributed systems I do like the diaper anti-pattern with the caveat that there is one top level diaper and only 1 diaper per major component (and when I say major I mean it. 2-5 in a complete system). The error is caught as a FATAL error and the levels above are told of the problem and to bring the system down cleanly, log it, and pass the task off to the next node to try again. The monitor watches to see if the problem occurs again on the next node (which means it is an endemic problem, not something which is based on system state or race conditions or hardware problems.)

The point is the anti-pattern only works if it is part of a much larger robust processing pattern, and should be used sparingly at known key points of integration. NOTE: for C++ the &#039;catch (...)&#039; should not be used but instead a system for &#039;catastrophic&#039; failure needs to be put in place, which should be able to handle a machine bursting into flame.</description>
		<content:encoded><![CDATA[<p>For highly available distributed systems I do like the diaper anti-pattern with the caveat that there is one top level diaper and only 1 diaper per major component (and when I say major I mean it. 2-5 in a complete system). The error is caught as a FATAL error and the levels above are told of the problem and to bring the system down cleanly, log it, and pass the task off to the next node to try again. The monitor watches to see if the problem occurs again on the next node (which means it is an endemic problem, not something which is based on system state or race conditions or hardware problems.)</p>
<p>The point is the anti-pattern only works if it is part of a much larger robust processing pattern, and should be used sparingly at known key points of integration. NOTE: for C++ the &#8216;catch (&#8230;)&#8217; should not be used but instead a system for &#8216;catastrophic&#8217; failure needs to be put in place, which should be able to handle a machine bursting into flame.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Diaper Pattern Stinks by Matt Wilson</title>
		<link>http://www.pirnat.com/mike/2009/05/09/the-diaper-pattern-stinks/comment-page-1/#comment-348</link>
		<dc:creator>Matt Wilson</dc:creator>
		<pubDate>Sat, 09 May 2009 20:30:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1138#comment-348</guid>
		<description>Great post!

Yeah, any parent with a kid wearing diapers knows that you can&#039;t trust your little angel&#039;s smiling face to tell you if their diaper is clean.  They might be grinning because they love how they just soiled themselves.</description>
		<content:encoded><![CDATA[<p>Great post!</p>
<p>Yeah, any parent with a kid wearing diapers knows that you can&#8217;t trust your little angel&#8217;s smiling face to tell you if their diaper is clean.  They might be grinning because they love how they just soiled themselves.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A More Excellent Unified Python Planet by Mike Pirnat &#187; Atomisator Configuration for Unified Python Planet</title>
		<link>http://www.pirnat.com/mike/2009/03/28/a-more-excellent-unified-python-planet/comment-page-1/#comment-347</link>
		<dc:creator>Mike Pirnat &#187; Atomisator Configuration for Unified Python Planet</dc:creator>
		<pubDate>Sat, 09 May 2009 20:03:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.pirnat.com/mike/?p=1084#comment-347</guid>
		<description>[...] Robert Kern asked me to share my Atomisator configuration for the Unified Python Planet. So, here it is: &#91;atomisator&#93; &#160; # sources sources = rss http://www.planetpython.org/rss20.xml rss http://planet.python.org/rss10.xml &#160; # filters # &quot;doublons&quot; is French for &quot;duplicates&quot; -- this is what de-dups the feed filters = doublons &#160; # enhancers # I&#039;m not using any, just leave this blank &#40;default&#41; enhancers = &#160; # outputs outputs = rss /home2/mpirnat/webapps/pirnatwp/static/unified_python_planet.xml &quot;http://feeds2.feedburner.com/UnifiedPythonPlanet&quot; &quot;Unified Python Planet&quot; &quot;A uniqued union of the Official and Unofficial Python planet feeds. Generated by Atomisator FTW!&quot; &#160; # database database = sqlite:///atomisator/unified_python_planet.db [...]</description>
		<content:encoded><![CDATA[<p>[...] Robert Kern asked me to share my Atomisator configuration for the Unified Python Planet. So, here it is: &#91;atomisator&#93; &nbsp; # sources sources = rss <a href="http://www.planetpython.org/rss20.xml" rel="nofollow">http://www.planetpython.org/rss20.xml</a> rss <a href="http://planet.python.org/rss10.xml" rel="nofollow">http://planet.python.org/rss10.xml</a> &nbsp; # filters # &quot;doublons&quot; is French for &quot;duplicates&quot; &#8212; this is what de-dups the feed filters = doublons &nbsp; # enhancers # I&#8217;m not using any, just leave this blank &#40;default&#41; enhancers = &nbsp; # outputs outputs = rss /home2/mpirnat/webapps/pirnatwp/static/unified_python_planet.xml &quot;http://feeds2.feedburner.com/UnifiedPythonPlanet&quot; &quot;Unified Python Planet&quot; &quot;A uniqued union of the Official and Unofficial Python planet feeds. Generated by Atomisator FTW!&quot; &nbsp; # database database = sqlite:///atomisator/unified_python_planet.db [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
