<?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 For.example</title>
	<atom:link href="http://www.iam.unibe.ch/~akuhn/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iam.unibe.ch/~akuhn/blog</link>
	<description>Random notes on software, programming and languages.</description>
	<pubDate>Thu, 09 Feb 2012 21:22:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Exploring the Layout of Software Maps by akuhn</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/explorin-the-layout-of-software-maps/comment-page-1/#comment-3510</link>
		<dc:creator>akuhn</dc:creator>
		<pubDate>Sat, 03 Apr 2010 17:50:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=604#comment-3510</guid>
		<description>@niko they showed a movie with like 20 snapshots from the entire version history of a system at #msa2010. As far I understood though, their visualization tool is embedded in a nightly build system. So no live stream of events as with Codemap or Codecanvas.</description>
		<content:encoded><![CDATA[<p>@niko they showed a movie with like 20 snapshots from the entire version history of a system at #msa2010. As far I understood though, their visualization tool is embedded in a nightly build system. So no live stream of events as with Codemap or Codecanvas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Exploring the Layout of Software Maps by Niko Schwarz</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/explorin-the-layout-of-software-maps/comment-page-1/#comment-3509</link>
		<dc:creator>Niko Schwarz</dc:creator>
		<pubDate>Thu, 01 Apr 2010 14:33:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=604#comment-3509</guid>
		<description>I think the history-driven layout is pretty good. And c'mon, for plenty of projects the version history is right there in a cleanable repository. But their city-construction metaphor begs the question: what do you do on large merges? Those become more and more common. I have a hunch that they're playing with data where the changes come in keystroke by keystroke, but that doesn't need to be the way change comes to you.</description>
		<content:encoded><![CDATA[<p>I think the history-driven layout is pretty good. And c&#8217;mon, for plenty of projects the version history is right there in a cleanable repository. But their city-construction metaphor begs the question: what do you do on large merges? Those become more and more common. I have a hunch that they&#8217;re playing with data where the changes come in keystroke by keystroke, but that doesn&#8217;t need to be the way change comes to you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Respond to any Message by Henry</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-respond-to-any-message/comment-page-1/#comment-3434</link>
		<dc:creator>Henry</dc:creator>
		<pubDate>Sat, 06 Feb 2010 23:16:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=597#comment-3434</guid>
		<description>One place I've used it, is the BGOK package in VisualWorks, used for displaying charts.
The datasets for the graphs there are supposed to be accessed statically with accessors, but when you don't know in from which datasets you will be displaying, telling it to access a model object which implements DNU, you can achieve just that.

Basically, if you use any external package which expects the model you provide it to follow a predefined structure, yet you need it to be dynamic, but don't want to modify the code of the external package, DNU is your friend.
(As an alternative to light-weight classes and adding accessor methods on the go).

My #1 rule of thumb when it comes to using this superpower is: If you implement doesNotUnderstand: without calling super, you're doing it wrong.</description>
		<content:encoded><![CDATA[<p>One place I&#8217;ve used it, is the BGOK package in VisualWorks, used for displaying charts.<br />
The datasets for the graphs there are supposed to be accessed statically with accessors, but when you don&#8217;t know in from which datasets you will be displaying, telling it to access a model object which implements DNU, you can achieve just that.</p>
<p>Basically, if you use any external package which expects the model you provide it to follow a predefined structure, yet you need it to be dynamic, but don&#8217;t want to modify the code of the external package, DNU is your friend.<br />
(As an alternative to light-weight classes and adding accessor methods on the go).</p>
<p>My #1 rule of thumb when it comes to using this superpower is: If you implement doesNotUnderstand: without calling super, you&#8217;re doing it wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Respond to any Message by akuhn</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-respond-to-any-message/comment-page-1/#comment-3368</link>
		<dc:creator>akuhn</dc:creator>
		<pubDate>Wed, 20 Jan 2010 00:45:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=597#comment-3368</guid>
		<description>Teachable is nice! impressive how little code is required to build a basic mock object. Guess I should include something similar in my SUnit fork, would make a nice light-weight alternative to anonymous classes.</description>
		<content:encoded><![CDATA[<p>Teachable is nice! impressive how little code is required to build a basic mock object. Guess I should include something similar in my SUnit fork, would make a nice light-weight alternative to anonymous classes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Respond to any Message by Torsten Bergmann</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-respond-to-any-message/comment-page-1/#comment-3365</link>
		<dc:creator>Torsten Bergmann</dc:creator>
		<pubDate>Tue, 19 Jan 2010 14:39:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=597#comment-3365</guid>
		<description>Take care with the DNU trick - it may be hard for others to debug if you use it  in your own projects. However with the flexibility of Smalltalk you are even able to create objects and teach them step by step how to behave.

Have a look at 
http://astares.blogspot.com/2005/04/teaching-behavior.html

and the code/examples in the "Teachable" project on Squeaksource</description>
		<content:encoded><![CDATA[<p>Take care with the DNU trick - it may be hard for others to debug if you use it  in your own projects. However with the flexibility of Smalltalk you are even able to create objects and teach them step by step how to behave.</p>
<p>Have a look at<br />
<a href="http://astares.blogspot.com/2005/04/teaching-behavior.html" rel="nofollow">http://astares.blogspot.com/2005/04/teaching-behavior.html</a></p>
<p>and the code/examples in the &#8220;Teachable&#8221; project on Squeaksource</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Send Any Message by For.example &#187; Pharo Superpower: Respond to any Message</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-send-any-messag/comment-page-1/#comment-3364</link>
		<dc:creator>For.example &#187; Pharo Superpower: Respond to any Message</dc:creator>
		<pubDate>Tue, 19 Jan 2010 07:52:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=579#comment-3364</guid>
		<description>[...]       Random notes on software, programming and languages.By Adrian Kuhn      Pharo Superpower: Send Any Message [...]</description>
		<content:encoded><![CDATA[<p>[...]       Random notes on software, programming and languages.By Adrian Kuhn      Pharo Superpower: Send Any Message [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Send Any Message by akuhn</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-send-any-messag/comment-page-1/#comment-3342</link>
		<dc:creator>akuhn</dc:creator>
		<pubDate>Thu, 14 Jan 2010 13:53:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=579#comment-3342</guid>
		<description>Just read it 5 minutes ago :) you do a way better job of picking up the superheroes theme in the text, awesome. Looking forward to more superfeats!</description>
		<content:encoded><![CDATA[<p>Just read it 5 minutes ago :) you do a way better job of picking up the superheroes theme in the text, awesome. Looking forward to more superfeats!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Send Any Message by Travis Griggs</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-send-any-messag/comment-page-1/#comment-3338</link>
		<dc:creator>Travis Griggs</dc:creator>
		<pubDate>Wed, 13 Jan 2010 22:34:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=579#comment-3338</guid>
		<description>&lt;a href="http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&#38;printTitle=Superpower_Adventures_in_Lightweight_Classing&#38;entry=3440856756" rel="nofollow"&gt;You inspired me&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p><a href="http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&amp;printTitle=Superpower_Adventures_in_Lightweight_Classing&amp;entry=3440856756" rel="nofollow">You inspired me</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Send Any Message by Carl Gundel</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-send-any-messag/comment-page-1/#comment-3329</link>
		<dc:creator>Carl Gundel</dc:creator>
		<pubDate>Tue, 12 Jan 2010 21:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=579#comment-3329</guid>
		<description>Yes, of course as you ultimately get closer to the metal you dispense with dynamic code somewhere.  It happens all over again when the CPU executes microcode.  Down the rabbit hole we go!  ;-)</description>
		<content:encoded><![CDATA[<p>Yes, of course as you ultimately get closer to the metal you dispense with dynamic code somewhere.  It happens all over again when the CPU executes microcode.  Down the rabbit hole we go!  ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pharo Superpower: Send Any Message by akuhn</title>
		<link>http://www.iam.unibe.ch/~akuhn/blog/2010/pharo-superpower-send-any-messag/comment-page-1/#comment-3327</link>
		<dc:creator>akuhn</dc:creator>
		<pubDate>Tue, 12 Jan 2010 19:59:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.iam.unibe.ch/~akuhn/blog/?p=579#comment-3327</guid>
		<description>You are right, this is the difference at the language's core that I mentioned. 

When sending messages, the sender only encodes the name of message and the receiver decided at runtime which method is to be activated. When calling method, the caller encodes at compile time the address (or at least offset) of the target method, to which it directly jumps at runtime. However, from the programmer's view the observed behavior is (typically) the same, both cases are synchronous and thus block until the "called" method returns. I mention this because other languages (or networking systems)  have &lt;i&gt;true&lt;/i&gt; message sending where control immediately returns to the "caller" and the called method is run in parallel, ie asynchronously. So Smalltalk is kind of a hybrid in that sense. (And if you delve into the land of JIT optimization, things are put upside down anyway, and we are back at calling or even inlining methods&#8230; :)</description>
		<content:encoded><![CDATA[<p>You are right, this is the difference at the language&#8217;s core that I mentioned. </p>
<p>When sending messages, the sender only encodes the name of message and the receiver decided at runtime which method is to be activated. When calling method, the caller encodes at compile time the address (or at least offset) of the target method, to which it directly jumps at runtime. However, from the programmer&#8217;s view the observed behavior is (typically) the same, both cases are synchronous and thus block until the &#8220;called&#8221; method returns. I mention this because other languages (or networking systems)  have <i>true</i> message sending where control immediately returns to the &#8220;caller&#8221; and the called method is run in parallel, ie asynchronously. So Smalltalk is kind of a hybrid in that sense. (And if you delve into the land of JIT optimization, things are put upside down anyway, and we are back at calling or even inlining methods&hellip; :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

