<?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 The Grimoire</title>
	<atom:link href="http://codex.grimoire.ca/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://codex.grimoire.ca</link>
	<description>Any insufficiently advanced magic is indistinguishable from technology.</description>
	<pubDate>Fri, 30 Jul 2010 04:58:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Abandoning switch In Three (And A Bit) Steps by Owen</title>
		<link>http://codex.grimoire.ca/2010/07/23/breaking-away-from-switch/comment-page-1/#comment-4314</link>
		<dc:creator>Owen</dc:creator>
		<pubDate>Fri, 23 Jul 2010 23:16:30 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=163#comment-4314</guid>
		<description>Yep. None of this is spectacularly novel, admittedly. The motivating force behind this post is having had to explain this series of refactorings to people in Freenode's ##java three time (and then you automate).</description>
		<content:encoded><![CDATA[<p>Yep. None of this is spectacularly novel, admittedly. The motivating force behind this post is having had to explain this series of refactorings to people in Freenode&#8217;s ##java three time (and then you automate).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Abandoning switch In Three (And A Bit) Steps by Angelo Genovese</title>
		<link>http://codex.grimoire.ca/2010/07/23/breaking-away-from-switch/comment-page-1/#comment-4313</link>
		<dc:creator>Angelo Genovese</dc:creator>
		<pubDate>Fri, 23 Jul 2010 20:35:21 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=163#comment-4313</guid>
		<description>Nice writeup, there are some similar ones in Martin Fowler's refactoring book.</description>
		<content:encoded><![CDATA[<p>Nice writeup, there are some similar ones in Martin Fowler&#8217;s refactoring book.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on God Money, I&#8217;ll do anything for you by Taavi Burns</title>
		<link>http://codex.grimoire.ca/2010/01/08/php-fread-sucks/comment-page-1/#comment-3237</link>
		<dc:creator>Taavi Burns</dc:creator>
		<pubDate>Fri, 08 Jan 2010 19:39:48 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=143#comment-3237</guid>
		<description>This is kind of like how &lt;code&gt;str_split()&lt;/code&gt; behaves:
&lt;pre lang="php"&gt;
&lt;?php
var_dump(str_split('ab')); // array('a','b')
var_dump(str_split('a'));  // array('a')
var_dump(str_split(''));   // array('') ?? WTF ??
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>This is kind of like how <code>str_split()</code> behaves:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span>str_split<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ab'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// array('a','b')</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span>str_split<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// array('a')</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span>str_split<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// array('') ?? WTF ??</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>Comment on Singled Out by larry</title>
		<link>http://codex.grimoire.ca/2009/03/10/singled-out/comment-page-1/#comment-163</link>
		<dc:creator>larry</dc:creator>
		<pubDate>Wed, 11 Mar 2009 18:18:58 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=78#comment-163</guid>
		<description>yup :)</description>
		<content:encoded><![CDATA[<p>yup :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Singled Out by The Grimoire &#187; Singling Out to Spring</title>
		<link>http://codex.grimoire.ca/2009/03/10/singled-out/comment-page-1/#comment-162</link>
		<dc:creator>The Grimoire &#187; Singling Out to Spring</dc:creator>
		<pubDate>Wed, 11 Mar 2009 15:44:19 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=78#comment-162</guid>
		<description>[...] Last time, I wrote about why Singletons get a bad rap, and I wrote some high-level advice for moving away from them sanely. I want to cover a practical (if somewhat idealistic) example using Java and Spring to move a Singleton creation dependency out of a class.  First, a quick terminology aside. The term &#8220;Singleton&#8221; is actually drawn from set theory, where it means &#8220;a set with only one element&#8221;. The set of integers that equal 5 is a singleton. The analogy is that types (which are sets of values) that are Singletons also only have one value (the Singleton instance). This has caused a bit of confusion. [...]</description>
		<content:encoded><![CDATA[<p>[...] Last time, I wrote about why Singletons get a bad rap, and I wrote some high-level advice for moving away from them sanely. I want to cover a practical (if somewhat idealistic) example using Java and Spring to move a Singleton creation dependency out of a class.  First, a quick terminology aside. The term &#8220;Singleton&#8221; is actually drawn from set theory, where it means &#8220;a set with only one element&#8221;. The set of integers that equal 5 is a singleton. The analogy is that types (which are sets of values) that are Singletons also only have one value (the Singleton instance). This has caused a bit of confusion. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Automatic Code Formatting and Merges by Kit</title>
		<link>http://codex.grimoire.ca/2009/01/10/automatic-code-formatting-and-merges/comment-page-1/#comment-36</link>
		<dc:creator>Kit</dc:creator>
		<pubDate>Sat, 10 Jan 2009 23:45:49 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=75#comment-36</guid>
		<description>I've come across this like burning with shared python files and a group that disagreed on tab v. spaces.  Also, on a shared TeX document, where people had differing attitudes towards linebreaks in the middle of paragraphs.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve come across this like burning with shared python files and a group that disagreed on tab v. spaces.  Also, on a shared TeX document, where people had differing attitudes towards linebreaks in the middle of paragraphs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nobody Cares About Your Makefile by Rudolf Olah</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-34</link>
		<dc:creator>Rudolf Olah</dc:creator>
		<pubDate>Sat, 27 Dec 2008 05:55:09 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-34</guid>
		<description>You should check out SCons if you want a replacement for GNU Make. It's Python, reads well and does a lot of things magically (with lots of room for configuration when the defaults aren't good enough).</description>
		<content:encoded><![CDATA[<p>You should check out SCons if you want a replacement for GNU Make. It&#8217;s Python, reads well and does a lot of things magically (with lots of room for configuration when the defaults aren&#8217;t good enough).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nobody Cares About Your Makefile by Owen</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-26</link>
		<dc:creator>Owen</dc:creator>
		<pubDate>Wed, 19 Nov 2008 04:51:19 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-26</guid>
		<description>@Plouj: ...crud, you're right. I even recall reminding myself to fix that when I was writing the post. It's fixed now.</description>
		<content:encoded><![CDATA[<p>@Plouj: &#8230;crud, you&#8217;re right. I even recall reminding myself to fix that when I was writing the post. It&#8217;s fixed now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nobody Cares About Your Makefile by Plouj</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-25</link>
		<dc:creator>Plouj</dc:creator>
		<pubDate>Tue, 18 Nov 2008 15:35:28 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-25</guid>
		<description>Shouldn't those include lines be #include "logging.h" and not #include "example-1.h"?</description>
		<content:encoded><![CDATA[<p>Shouldn&#8217;t those include lines be #include &#8220;logging.h&#8221; and not #include &#8220;example-1.h&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nobody Cares About Your Makefile by Owen</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-24</link>
		<dc:creator>Owen</dc:creator>
		<pubDate>Tue, 18 Nov 2008 07:19:44 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-24</guid>
		<description>@jsled, @Michael S.: Make's biggest problem is not Make, but the languages it was built to work with. C (and to a lesser extent, Fortran) are not well-suited to static analysis. Figuring out if a given symbol exists in a complete C program involves running the preprocessor - and &lt;a href="http://www.ioccc.org/2001/herrmann1.c" rel="nofollow"&gt;people have written Turing machines&lt;/a&gt; for it, proving that it can compute completely arbitrary things in arbitrary time.

Most newer languages have some sort of easy-to-detect dependency information. Java's classfile format makes references to other classes very obvious in the constant pool, and the source format is relatively easy to parse. Ruby and Python both have hookable module systems: PyUnit takes advantage of this to "roll back" any imports that happen during test evaluation, but you could just as easily hook it to log the dependencies that are actually used during a test run.

Even Objective-C (and gcc, incidentaly) has #import, which is a step in the right direction: it describes what the author wants to do (use a given library) rather than how to do it (paste this source file here).</description>
		<content:encoded><![CDATA[<p>@jsled, @Michael S.: Make&#8217;s biggest problem is not Make, but the languages it was built to work with. C (and to a lesser extent, Fortran) are not well-suited to static analysis. Figuring out if a given symbol exists in a complete C program involves running the preprocessor - and <a href="http://www.ioccc.org/2001/herrmann1.c" rel="nofollow">people have written Turing machines</a> for it, proving that it can compute completely arbitrary things in arbitrary time.</p>
<p>Most newer languages have some sort of easy-to-detect dependency information. Java&#8217;s classfile format makes references to other classes very obvious in the constant pool, and the source format is relatively easy to parse. Ruby and Python both have hookable module systems: PyUnit takes advantage of this to &#8220;roll back&#8221; any imports that happen during test evaluation, but you could just as easily hook it to log the dependencies that are actually used during a test run.</p>
<p>Even Objective-C (and gcc, incidentaly) has #import, which is a step in the right direction: it describes what the author wants to do (use a given library) rather than how to do it (paste this source file here).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
