<?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 jalf.dk</title>
	<atom:link href="http://jalf.dk/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://jalf.dk/blog</link>
	<description>Musings and thoughts on programming and other geeky stuff</description>
	<lastBuildDate>Fri, 16 Jul 2010 07:38:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>Comment on Psychic Octopuses by Casper Fabricius</title>
		<link>http://jalf.dk/blog/2010/07/psychic-octopuses/comment-page-1/#comment-1605</link>
		<dc:creator>Casper Fabricius</dc:creator>
		<pubDate>Fri, 16 Jul 2010 07:38:32 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=589#comment-1605</guid>
		<description>&lt;p&gt;Awesome post. Not gonna argue. I&#039;m right with you ;)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Awesome post. Not gonna argue. I’m right with you ;)</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Well, that’s that. What should happen now? by jalf</title>
		<link>http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/comment-page-1/#comment-1441</link>
		<dc:creator>jalf</dc:creator>
		<pubDate>Fri, 04 Jun 2010 23:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/#comment-1441</guid>
		<description>&lt;p&gt;haha, is it that noticeable that I&#039;ve been less active there?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>haha, is it that noticeable that I’ve been less active there?</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Well, that’s that. What should happen now? by GMan</title>
		<link>http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/comment-page-1/#comment-1440</link>
		<dc:creator>GMan</dc:creator>
		<pubDate>Fri, 04 Jun 2010 23:06:30 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/#comment-1440</guid>
		<description>&lt;p&gt;Congrats. :) Get back to SO.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Congrats. :) Get back to SO.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Singletons: Solving problems you didn’t know you never had since 1995 by Scott</title>
		<link>http://jalf.dk/blog/2010/03/singletons-solving-problems-you-didnt-know-you-never-had-since-1995/comment-page-1/#comment-1407</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Sat, 29 May 2010 21:39:27 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=532#comment-1407</guid>
		<description>&lt;p&gt;What I&#039;ve taken to saying lately is that Singleton should be an &lt;em&gt;Application&lt;/em&gt; design question rather than a &lt;em&gt;Class&lt;/em&gt; design question.  If in your specific application it&#039;s convenient to have one globally-accessible instance of a certain type, that&#039;s great, but there&#039;s no reason to write the class in such a way that the class needs to know about that decision.&lt;/p&gt;

&lt;p&gt;Of course, that doesn&#039;t &lt;em&gt;prevent&lt;/em&gt; someone using another instance, but if the application is architected that way, you can&#039;t get the other code to use the instance you created even if you wanted it to.&lt;/p&gt;

&lt;p&gt;BTW, it might not be a bad idea to write a bit about dependency injection to add to your singleton rants, since that&#039;s in many ways a &quot;do this where your current instinct is a singleton, and you get all these advantages&quot;.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>What I’ve taken to saying lately is that Singleton should be an <em>Application</em> design question rather than a <em>Class</em> design question.  If in your specific application it’s convenient to have one globally-accessible instance of a certain type, that’s great, but there’s no reason to write the class in such a way that the class needs to know about that decision.</p>

<p>Of course, that doesn’t <em>prevent</em> someone using another instance, but if the application is architected that way, you can’t get the other code to use the instance you created even if you wanted it to.</p>

<p>BTW, it might not be a bad idea to write a bit about dependency injection to add to your singleton rants, since that’s in many ways a “do this where your current instinct is a singleton, and you get all these advantages”.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Well, that’s that. What should happen now? by tzaman</title>
		<link>http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/comment-page-1/#comment-1274</link>
		<dc:creator>tzaman</dc:creator>
		<pubDate>Tue, 11 May 2010 19:14:01 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/#comment-1274</guid>
		<description>&lt;p&gt;Hiya :) found this place through your SO profile; so far, really enjoying reading your stuff. Gratz on the thesis defense!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hiya :) found this place through your SO profile; so far, really enjoying reading your stuff. Gratz on the thesis defense!</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Hopes for 2010: Games for Windows Live by Raj</title>
		<link>http://jalf.dk/blog/2009/12/hopes-for-2010-games-for-windows-live/comment-page-1/#comment-1122</link>
		<dc:creator>Raj</dc:creator>
		<pubDate>Mon, 26 Apr 2010 20:18:29 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=389#comment-1122</guid>
		<description>&lt;p&gt;Nice post, agree with all the points ya made. Its funny, I came across this as I was searching for an error I was getting whilst using the GFW client. What a lovely service, makes me happy to be a PC gamer.....&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Nice post, agree with all the points ya made. Its funny, I came across this as I was searching for an error I was getting whilst using the GFW client. What a lovely service, makes me happy to be a PC gamer.….</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Well, that’s that. What should happen now? by AraK</title>
		<link>http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/comment-page-1/#comment-1051</link>
		<dc:creator>AraK</dc:creator>
		<pubDate>Sat, 17 Apr 2010 03:08:25 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/#comment-1051</guid>
		<description>&lt;p&gt;Congrats man :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Congrats man :)</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Well, that’s that. What should happen now? by Craig</title>
		<link>http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/comment-page-1/#comment-989</link>
		<dc:creator>Craig</dc:creator>
		<pubDate>Mon, 12 Apr 2010 22:33:49 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/2010/04/well-thats-that-what-should-happen-now/#comment-989</guid>
		<description>&lt;p&gt;Yay, congrats!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yay, congrats!</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thesis defense! by Daniel Earwicker</title>
		<link>http://jalf.dk/blog/2010/04/thesis-defense/comment-page-1/#comment-980</link>
		<dc:creator>Daniel Earwicker</dc:creator>
		<pubDate>Mon, 12 Apr 2010 15:09:24 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=556#comment-980</guid>
		<description>&lt;p&gt;I&#039;ll certainly be giving it a read, looks very interesting.&lt;/p&gt;

&lt;p&gt;Have you seen this:&lt;/p&gt;

&lt;p&gt;http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I’ll certainly be giving it a read, looks very interesting.</p>

<p>Have you seen this:</p>

<p><a href="http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx" rel="nofollow">http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx</a></p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Singletons: Solving problems you didn’t know you never had since 1995 by Tom Plunket</title>
		<link>http://jalf.dk/blog/2010/03/singletons-solving-problems-you-didnt-know-you-never-had-since-1995/comment-page-1/#comment-916</link>
		<dc:creator>Tom Plunket</dc:creator>
		<pubDate>Wed, 07 Apr 2010 18:26:07 +0000</pubDate>
		<guid isPermaLink="false">http://jalf.dk/blog/?p=532#comment-916</guid>
		<description>&lt;p&gt;Good points made, especially the ones relating to cout vs. ostream.  I personally feel the &quot;what if another instance of the thing can&#039;t be instantiated&quot; is a weak argument; the construction of an object should require enough context to get a useful object, so if someone wants to create their own Logger instance that&#039;s fine- but they&#039;ll need to configure it properly if it&#039;s going to do anything useful and it should be obvious to anyone who spends ten minutes in the code that that&#039;s not how everyone else gets their messages out to the world.&lt;/p&gt;

&lt;p&gt;Anyway- I see Singletons as additional complexity on top of the overwhelming complexity that mutable global state itself brings.  I don&#039;t want that mutable global state in the first place, so Singletons bring no value to me, personally.&lt;/p&gt;

&lt;p&gt;I don&#039;t think ignorance of the codebase is a fruitful argument, one way or the other; people will do whatever they want to do, and sometimes people screw up.  The best way to code (IMO) is such that screw ups are shown quickly and obviously.  Globals tend to make this more difficult, as well.&lt;/p&gt;

&lt;p&gt;The most useful statement made, I must say, is that of artificially constraining your objects.  What&#039;s the problem if someone instantiates another instance of this class?  (and if they do it wrong, report the error promptly and unambiguously!)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Good points made, especially the ones relating to cout vs. ostream.  I personally feel the “what if another instance of the thing can’t be instantiated” is a weak argument; the construction of an object should require enough context to get a useful object, so if someone wants to create their own Logger instance that’s fine– but they’ll need to configure it properly if it’s going to do anything useful and it should be obvious to anyone who spends ten minutes in the code that that’s not how everyone else gets their messages out to the world.</p>

<p>Anyway– I see Singletons as additional complexity on top of the overwhelming complexity that mutable global state itself brings.  I don’t want that mutable global state in the first place, so Singletons bring no value to me, personally.</p>

<p>I don’t think ignorance of the codebase is a fruitful argument, one way or the other; people will do whatever they want to do, and sometimes people screw up.  The best way to code (IMO) is such that screw ups are shown quickly and obviously.  Globals tend to make this more difficult, as well.</p>

<p>The most useful statement made, I must say, is that of artificially constraining your objects.  What’s the problem if someone instantiates another instance of this class?  (and if they do it wrong, report the error promptly and unambiguously!)</p>]]></content:encoded>
	</item>
</channel>
</rss>
