<?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 John Wang online</title>
	<atom:link href="http://johnwang.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://johnwang.com</link>
	<description></description>
	<lastBuildDate>Thu, 17 Nov 2011 21:29:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Comment on AIIM Heathcare Content Management Lunch Seminar in San Francisco by John</title>
		<link>http://johnwang.com/aiim-heathcare-content-management-lunch-seminar-in-san-francisco/#comment-10</link>
		<dc:creator>John</dc:creator>
		<pubDate>Thu, 17 Nov 2011 21:29:00 +0000</pubDate>
		<guid isPermaLink="false">http://grokify.com/?p=410#comment-10</guid>
		<description>Doesn&#039;t look like the presentation will have much iPad discussion.  I think you&#039;ll find this post about an iPad interface being a must have feature: http://www.emrandehr.com/2011/11/03/the-must-have-emr-feature-an-ipad-interface/</description>
		<content:encoded><![CDATA[<p>Doesn&#8217;t look like the presentation will have much iPad discussion.  I think you&#8217;ll find this post about an iPad interface being a must have feature: <a href="http://www.emrandehr.com/2011/11/03/the-must-have-emr-feature-an-ipad-interface/" rel="nofollow">http://www.emrandehr.com/2011/11/03/the-must-have-emr-feature-an-ipad-interface/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Confident Code Using Type Constraints by John Wang</title>
		<link>http://johnwang.com/confident-code-using-type-constraints/#comment-19</link>
		<dc:creator>John Wang</dc:creator>
		<pubDate>Fri, 11 Nov 2011 20:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://johnwang.com/?p=879#comment-19</guid>
		<description>Good point. With command is as a lazy attribute, it is only generated once so it won&#039;t get updated if the parameters are changed after it is called the first time. As you mention, this can be fixed with a clearer. Here&#039;s what it would look like with the clearer.

  has command     =&gt; (
    isa           =&gt; &#039;Str&#039;,
    is            =&gt; &#039;ro&#039;,
    lazy          =&gt; 1,
    default       =&gt; method {
      my $command = &#039;cowsay -W &#039;.$self-&gt;width;
      $command   .= &#039; -e &#039;.$self-&gt;eyes    if $self-&gt;eyes;
      $command   .= &#039; -f &#039;.$self-&gt;cowfile if $self-&gt;cowfile;
    },
    clearer       =&gt; &#039;clear_command&#039;
  );

  after eyes    { $self-&gt;clear_command };
  after cowfile { $self-&gt;clear_command };
  after width   { $self-&gt;clear_command };However, since I&#039;m trying to showcase input validation in the article and not necessarily lazy attributes, I changed it to a simple method call that gets generated each time it&#039;s called. I think this is fine here because command is generated by the class, is lightweight and isn&#039;t a user input.</description>
		<content:encoded><![CDATA[<p>Good point. With command is as a lazy attribute, it is only generated once so it won&#8217;t get updated if the parameters are changed after it is called the first time. As you mention, this can be fixed with a clearer. Here&#8217;s what it would look like with the clearer.</p>
<p>  has command     =&gt; (<br />
    isa           =&gt; &#8216;Str&#8217;,<br />
    is            =&gt; &#8216;ro&#8217;,<br />
    lazy          =&gt; 1,<br />
    default       =&gt; method {<br />
      my $command = &#8216;cowsay -W &#8216;.$self-&gt;width;<br />
      $command   .= &#8216; -e &#8216;.$self-&gt;eyes    if $self-&gt;eyes;<br />
      $command   .= &#8216; -f &#8216;.$self-&gt;cowfile if $self-&gt;cowfile;<br />
    },<br />
    clearer       =&gt; &#8216;clear_command&#8217;<br />
  );</p>
<p>  after eyes    { $self-&gt;clear_command };<br />
  after cowfile { $self-&gt;clear_command };<br />
  after width   { $self-&gt;clear_command };However, since I&#8217;m trying to showcase input validation in the article and not necessarily lazy attributes, I changed it to a simple method call that gets generated each time it&#8217;s called. I think this is fine here because command is generated by the class, is lightweight and isn&#8217;t a user input.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Confident Code Using Type Constraints by Mcrose</title>
		<link>http://johnwang.com/confident-code-using-type-constraints/#comment-18</link>
		<dc:creator>Mcrose</dc:creator>
		<pubDate>Fri, 11 Nov 2011 20:09:00 +0000</pubDate>
		<guid isPermaLink="false">http://johnwang.com/?p=879#comment-18</guid>
		<description>Ack, since I can&#039;t edit; throw another $cow-&gt;say() between the -&gt;new() and the -&gt;eyes().</description>
		<content:encoded><![CDATA[<p>Ack, since I can&#8217;t edit; throw another $cow-&gt;say() between the -&gt;new() and the -&gt;eyes().</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Confident Code Using Type Constraints by Mcrose</title>
		<link>http://johnwang.com/confident-code-using-type-constraints/#comment-17</link>
		<dc:creator>Mcrose</dc:creator>
		<pubDate>Fri, 11 Nov 2011 20:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://johnwang.com/?p=879#comment-17</guid>
		<description>Since your attributes (&#039;eyes&#039;, &#039;cowfile&#039;, etc) are read-write but used in the lazily generated command attribute, you need to define a clearer for the command and have the attributes used in its generation trigger the clearer when they&#039;re set. Otherwise, code like `my $cow = CowsayTheMooseway-&gt;new(); $cow-&gt;eyes(&#039;XX&#039;); $cow-&gt;say(&#039;Something&#039;);` won&#039;t work right.</description>
		<content:encoded><![CDATA[<p>Since your attributes (&#8216;eyes&#8217;, &#8216;cowfile&#8217;, etc) are read-write but used in the lazily generated command attribute, you need to define a clearer for the command and have the attributes used in its generation trigger the clearer when they&#8217;re set. Otherwise, code like `my $cow = CowsayTheMooseway-&gt;new(); $cow-&gt;eyes(&#8216;XX&#8217;); $cow-&gt;say(&#8216;Something&#8217;);` won&#8217;t work right.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Explaining Why Moose is Awesome &#8211; The Direct Way by John Wang</title>
		<link>http://johnwang.com/explaining-why-moose-is-awesome-the-direct-way/#comment-16</link>
		<dc:creator>John Wang</dc:creator>
		<pubDate>Fri, 04 Nov 2011 22:59:00 +0000</pubDate>
		<guid isPermaLink="false">http://johnwang.com/?p=537#comment-16</guid>
		<description>I agree with what you&#039;re saying about the implementation details and in my conversations I make it clear that Moose doesn&#039;t provide actual static typing but provides a similar benefit. Here, I try to suggest this by saying it&#039;s a check on &quot;setters&quot; (&quot;getters&quot; should probably be removed for technical correctness) which I think of as a runtime check as opposed to an attribute which would happen at compile time.

That being said, often times you only get 30 seconds to explain why something is powerful. In that context I want to explain why something is useful and worth looking into from a benefit perspective so it is important to use terminology that someone will understand, even if it is just a first approximation.

From that perspective, do you think it is a useful description?</description>
		<content:encoded><![CDATA[<p>I agree with what you&#8217;re saying about the implementation details and in my conversations I make it clear that Moose doesn&#8217;t provide actual static typing but provides a similar benefit. Here, I try to suggest this by saying it&#8217;s a check on &#8220;setters&#8221; (&#8220;getters&#8221; should probably be removed for technical correctness) which I think of as a runtime check as opposed to an attribute which would happen at compile time.</p>
<p>That being said, often times you only get 30 seconds to explain why something is powerful. In that context I want to explain why something is useful and worth looking into from a benefit perspective so it is important to use terminology that someone will understand, even if it is just a first approximation.</p>
<p>From that perspective, do you think it is a useful description?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Explaining Why Moose is Awesome &#8211; The Direct Way by Sterling Hanenkamp</title>
		<link>http://johnwang.com/explaining-why-moose-is-awesome-the-direct-way/#comment-13</link>
		<dc:creator>Sterling Hanenkamp</dc:creator>
		<pubDate>Fri, 04 Nov 2011 04:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://johnwang.com/?p=537#comment-13</guid>
		<description>I would be careful about saying that Moose adds static checking to attributes. It does add something that looks like type checking to attributes and it is very useful and very powerful, but it is not static type checking. Setting the isa on an attribute gives that attribute a type constraint, but this is more akin to input validation that it is to typing. Under the usual circumstances this distinction does not make much of a difference.

It does make a difference which comes out most clearly when you perform type coercion. When coercion happens the system starts by guessing what type the value could be (from the list of available coercions) and then applies the coercion. In static typing, the type of the value is known at compile time. From the standpoint of analysis that&#039;s a pretty big difference.</description>
		<content:encoded><![CDATA[<p>I would be careful about saying that Moose adds static checking to attributes. It does add something that looks like type checking to attributes and it is very useful and very powerful, but it is not static type checking. Setting the isa on an attribute gives that attribute a type constraint, but this is more akin to input validation that it is to typing. Under the usual circumstances this distinction does not make much of a difference.</p>
<p>It does make a difference which comes out most clearly when you perform type coercion. When coercion happens the system starts by guessing what type the value could be (from the list of available coercions) and then applies the coercion. In static typing, the type of the value is known at compile time. From the standpoint of analysis that&#8217;s a pretty big difference.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Automated Collection: Mitgating the Risks and Costs of Manual Collection by The Enterprise Archive as the eDiscovery System of Record</title>
		<link>http://johnwang.com/automated-collection-mitgating-the-risks-and-costs-of-manual-collection/#comment-12</link>
		<dc:creator>The Enterprise Archive as the eDiscovery System of Record</dc:creator>
		<pubDate>Wed, 18 Aug 2010 04:17:34 +0000</pubDate>
		<guid isPermaLink="false">http://grokify.com/?p=520#comment-12</guid>
		<description>[...] simple archiving to support a &#8220;fast reactive&#8221; eDiscovery using manage in place and automated collection [...] </description>
		<content:encoded><![CDATA[<p>[...] simple archiving to support a &#8220;fast reactive&#8221; eDiscovery using manage in place and automated collection [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 8 Things You Can&#8217;t Afford to Ignore About eDiscovery by The Enterprise Archive as the eDiscovery System of Record</title>
		<link>http://johnwang.com/8-things-you-cant-afford-to-ignore-about-ediscovery/#comment-9</link>
		<dc:creator>The Enterprise Archive as the eDiscovery System of Record</dc:creator>
		<pubDate>Wed, 18 Aug 2010 04:17:19 +0000</pubDate>
		<guid isPermaLink="false">http://grokify.com/?p=296#comment-9</guid>
		<description>[...] the typical Fortune 1000 firm now having over 5 petabytes of data, including SharePoint and social media, large enterprises can benefit from having a single [...] </description>
		<content:encoded><![CDATA[<p>[...] the typical Fortune 1000 firm now having over 5 petabytes of data, including SharePoint and social media, large enterprises can benefit from having a single [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Automated Collection: Mitgating the Risks and Costs of Manual Collection by Tweets that mention This article spells out benefits of automatic vs. manual ESI collection. Discovery Attender helps do just this! -- Topsy.com</title>
		<link>http://johnwang.com/automated-collection-mitgating-the-risks-and-costs-of-manual-collection/#comment-11</link>
		<dc:creator>Tweets that mention This article spells out benefits of automatic vs. manual ESI collection. Discovery Attender helps do just this! -- Topsy.com</dc:creator>
		<pubDate>Mon, 16 Aug 2010 16:55:33 +0000</pubDate>
		<guid isPermaLink="false">http://grokify.com/?p=520#comment-11</guid>
		<description>[...] This post was mentioned on Twitter by Sherpa Software, Orlando Scott-Cowley. Orlando Scott-Cowley said: RT @SherpaSoftware: This article spells out benefits of automatic vs. manual ESI collection. Discovery Attender helps do just this! http://ow.ly/2qaON [...] </description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by Sherpa Software, Orlando Scott-Cowley. Orlando Scott-Cowley said: RT @SherpaSoftware: This article spells out benefits of automatic vs. manual ESI collection. Discovery Attender helps do just this! <a href="http://ow.ly/2qaON" rel="nofollow">http://ow.ly/2qaON</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Information Governance &#8211; The Evolution of Email Archiving? by Adam Bullock</title>
		<link>http://johnwang.com/information-governance-the-evolution-of-email-archiving/#comment-8</link>
		<dc:creator>Adam Bullock</dc:creator>
		<pubDate>Tue, 23 Feb 2010 21:02:48 +0000</pubDate>
		<guid isPermaLink="false">http://grokify.com/?p=244#comment-8</guid>
		<description>I like it, &quot;information governance&quot; really does capture the evolution of email archiving. For all the reasons you explain above, as well as with FINRA&#039;s latest regulatory notice 10-06 pertaining to social media - more than just email needs to be retained, indexed, and searchable.

Great post!</description>
		<content:encoded><![CDATA[<p>I like it, &#8220;information governance&#8221; really does capture the evolution of email archiving. For all the reasons you explain above, as well as with FINRA&#8217;s latest regulatory notice 10-06 pertaining to social media &#8211; more than just email needs to be retained, indexed, and searchable.</p>
<p>Great post!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

