<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Awelon Blue</title>
	<atom:link href="http://awelonblue.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://awelonblue.wordpress.com</link>
	<description>Thoughts on Programming Experience Design</description>
	<lastBuildDate>Thu, 06 Jun 2013 19:58:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on FRP Fails at the Edges by David Barbour</title>
		<link>http://awelonblue.wordpress.com/2011/05/27/frp-fails-at-the-edges/#comment-957</link>
		<dc:creator><![CDATA[David Barbour]]></dc:creator>
		<pubDate>Thu, 06 Jun 2013 19:58:39 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=110#comment-957</guid>
		<description><![CDATA[You could read the &lt;a href=&quot;http://haskell.cs.yale.edu/?post_type=publication&amp;p=802&quot; rel=&quot;nofollow&quot;&gt;Wormholes&lt;/a&gt; paper, which is an incomplete attempt to solve this problem (wormholes integrate effects, but do not compose effectful systems). 

The issue here isn&#039;t &quot;making things pure&quot; but rather the difficulty of integrating &#039;open&#039; resources (e.g. databases, blackboards, web servers) that multiple independent participants or agents may observe and influence. The &#039;edges&#039; of any useful computation model are always open (i.e. sensors, actuators, real world state) so this is a pretty important failing. &lt;a href=&quot;http://lambda-the-ultimate.org/node/4357#comment-67178&quot; rel=&quot;nofollow&quot;&gt;Purity has problems.&lt;/a&gt;]]></description>
		<content:encoded><![CDATA[<p>You could read the <a href="http://haskell.cs.yale.edu/?post_type=publication&amp;p=802" rel="nofollow">Wormholes</a> paper, which is an incomplete attempt to solve this problem (wormholes integrate effects, but do not compose effectful systems). </p>
<p>The issue here isn&#8217;t &#8220;making things pure&#8221; but rather the difficulty of integrating &#8216;open&#8217; resources (e.g. databases, blackboards, web servers) that multiple independent participants or agents may observe and influence. The &#8216;edges&#8217; of any useful computation model are always open (i.e. sensors, actuators, real world state) so this is a pretty important failing. <a href="http://lambda-the-ultimate.org/node/4357#comment-67178" rel="nofollow">Purity has problems.</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on FRP Fails at the Edges by Raoul Duke</title>
		<link>http://awelonblue.wordpress.com/2011/05/27/frp-fails-at-the-edges/#comment-956</link>
		<dc:creator><![CDATA[Raoul Duke]]></dc:creator>
		<pubDate>Thu, 06 Jun 2013 19:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=110#comment-956</guid>
		<description><![CDATA[Presumably I should re-read http://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/ and keep trying to digest.]]></description>
		<content:encoded><![CDATA[<p>Presumably I should re-read <a href="http://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/" rel="nofollow">http://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/</a> and keep trying to digest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on FRP Fails at the Edges by Raoul Duke</title>
		<link>http://awelonblue.wordpress.com/2011/05/27/frp-fails-at-the-edges/#comment-955</link>
		<dc:creator><![CDATA[Raoul Duke]]></dc:creator>
		<pubDate>Thu, 06 Jun 2013 19:47:42 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=110#comment-955</guid>
		<description><![CDATA[I wish I knew enough to understand how FRP falls down as you say here. Might you have a pointer to another place where you&#039;ve or somebody has talked about this? I&#039;ll go googling...

(I thought the standard trick for making things pure was to include timestamps, and to consider the future verboten. Eg. for the history of events, I naively again think that could be exposed as a function taking some kind of index or timestamp, which returns the history, which is kept hidden under the covers in a mutable way. (For history that seems fine, for timestamps ahead of &#039;now&#039; of course there&#039;s trouble.))]]></description>
		<content:encoded><![CDATA[<p>I wish I knew enough to understand how FRP falls down as you say here. Might you have a pointer to another place where you&#8217;ve or somebody has talked about this? I&#8217;ll go googling&#8230;</p>
<p>(I thought the standard trick for making things pure was to include timestamps, and to consider the future verboten. Eg. for the history of events, I naively again think that could be exposed as a function taking some kind of index or timestamp, which returns the history, which is kept hidden under the covers in a mutable way. (For history that seems fine, for timestamps ahead of &#8216;now&#8217; of course there&#8217;s trouble.))</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Modular Manipulation of the Link-Time Environment by Manuel Simoni (@msimoni)</title>
		<link>http://awelonblue.wordpress.com/2013/04/16/direct-manipulation-of-the-link-time-environment/#comment-951</link>
		<dc:creator><![CDATA[Manuel Simoni (@msimoni)]]></dc:creator>
		<pubDate>Tue, 21 May 2013 08:38:05 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=1477#comment-951</guid>
		<description><![CDATA[A procedural language doesn&#039;t prevent link-time manipulation per se - if procedures are all it has. The problem with this approach in a classical procedural language would of course be global variables and top-level initialization expressions (e.g. like expressions at the top-level of a file in Lisp, or like GCC&#039;s &lt;a href=&quot;http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html&quot; rel=&quot;nofollow&quot;&gt;constructor functions&lt;/a&gt;.)

Global variables could be replaced with thread-local ones, and implicit top-level expressions with explicit calls to main and other init functions. This opens up at least some forms of link-time manipulations for procedural PLs.]]></description>
		<content:encoded><![CDATA[<p>A procedural language doesn&#8217;t prevent link-time manipulation per se &#8211; if procedures are all it has. The problem with this approach in a classical procedural language would of course be global variables and top-level initialization expressions (e.g. like expressions at the top-level of a file in Lisp, or like GCC&#8217;s <a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html" rel="nofollow">constructor functions</a>.)</p>
<p>Global variables could be replaced with thread-local ones, and implicit top-level expressions with explicit calls to main and other init functions. This opens up at least some forms of link-time manipulations for procedural PLs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Abandoning Commitment in HCI by Raoul Duke</title>
		<link>http://awelonblue.wordpress.com/2012/05/20/abandoning-commitment-in-hci/#comment-950</link>
		<dc:creator><![CDATA[Raoul Duke]]></dc:creator>
		<pubDate>Mon, 20 May 2013 22:36:03 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=928#comment-950</guid>
		<description><![CDATA[a slow Android 2.2 device is a nice way to experience how bad the whole &#039;committed&#039; approach is.]]></description>
		<content:encoded><![CDATA[<p>a slow Android 2.2 device is a nice way to experience how bad the whole &#8216;committed&#8217; approach is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Abandoning Commitment in HCI by Raoul Duke</title>
		<link>http://awelonblue.wordpress.com/2012/05/20/abandoning-commitment-in-hci/#comment-949</link>
		<dc:creator><![CDATA[Raoul Duke]]></dc:creator>
		<pubDate>Mon, 20 May 2013 22:34:41 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=928#comment-949</guid>
		<description><![CDATA[@Daimu 
looks like Coherence is another FRP. i gotta read this paper some day:
soft.vub.ac.be/Publications/2012/vub-soft-tr-12-13.pdf]]></description>
		<content:encoded><![CDATA[<p>@Daimu<br />
looks like Coherence is another FRP. i gotta read this paper some day:<br />
soft.vub.ac.be/Publications/2012/vub-soft-tr-12-13.pdf</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on About RDP by dmbarbour</title>
		<link>http://awelonblue.wordpress.com/about/#comment-944</link>
		<dc:creator><![CDATA[dmbarbour]]></dc:creator>
		<pubDate>Tue, 14 May 2013 16:46:35 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?page_id=2#comment-944</guid>
		<description><![CDATA[No. Well, at a philosophical level, there is some relationship: both RDP and Boomerang support influence of a system through a view of the system. But RDP does not ensure reversibility, and is a very different approach from Boomerang.]]></description>
		<content:encoded><![CDATA[<p>No. Well, at a philosophical level, there is some relationship: both RDP and Boomerang support influence of a system through a view of the system. But RDP does not ensure reversibility, and is a very different approach from Boomerang.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on About RDP by vitalyper</title>
		<link>http://awelonblue.wordpress.com/about/#comment-943</link>
		<dc:creator><![CDATA[vitalyper]]></dc:creator>
		<pubDate>Tue, 14 May 2013 15:37:08 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?page_id=2#comment-943</guid>
		<description><![CDATA[Is RDP has any relation to B. Pierce et la. Boomerang http://www.seas.upenn.edu/~harmony]]></description>
		<content:encoded><![CDATA[<p>Is RDP has any relation to B. Pierce et la. Boomerang <a href="http://www.seas.upenn.edu/~harmony" rel="nofollow">http://www.seas.upenn.edu/~harmony</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Local State is Poison by David Clark</title>
		<link>http://awelonblue.wordpress.com/2012/10/21/local-state-is-poison/#comment-920</link>
		<dc:creator><![CDATA[David Clark]]></dc:creator>
		<pubDate>Thu, 25 Apr 2013 22:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=1154#comment-920</guid>
		<description><![CDATA[We will have to agree to disagree on state being a problem. I am not familiar with OpenCV or Unreal4. I thought that OpenCV might be a programming version control system but Google says it is a Computer Vision library. If that is the case then I wouldn&#039;t write my own either!

My &quot;remain under control&quot; comment was just my trying to be funny and I do take these issues very seriously. Power tools to me are fully functioning Lists,tables,queue, stack, map,array, indexes etc with a few variations so that you don&#039;t need to use the full feature List type if something small will do. All the power tools I have contain a &quot;sort&quot; function where that makes sense etc. Why reinvent the wheel.

I think state should have exclusive control for all the reasons I have stated BUT I also see where exposing that internal state to outside functions under controlled conditions can be very useful. If libraries provided such a facility, that would seem to fit your needs as well. I don&#039;t believe code where the state was designed to be private could be correctly modified (maybe if just read only) if the language just let you in the back door. It could work but only if the functions in the library were designed for that purpose up front.]]></description>
		<content:encoded><![CDATA[<p>We will have to agree to disagree on state being a problem. I am not familiar with OpenCV or Unreal4. I thought that OpenCV might be a programming version control system but Google says it is a Computer Vision library. If that is the case then I wouldn&#8217;t write my own either!</p>
<p>My &#8220;remain under control&#8221; comment was just my trying to be funny and I do take these issues very seriously. Power tools to me are fully functioning Lists,tables,queue, stack, map,array, indexes etc with a few variations so that you don&#8217;t need to use the full feature List type if something small will do. All the power tools I have contain a &#8220;sort&#8221; function where that makes sense etc. Why reinvent the wheel.</p>
<p>I think state should have exclusive control for all the reasons I have stated BUT I also see where exposing that internal state to outside functions under controlled conditions can be very useful. If libraries provided such a facility, that would seem to fit your needs as well. I don&#8217;t believe code where the state was designed to be private could be correctly modified (maybe if just read only) if the language just let you in the back door. It could work but only if the functions in the library were designed for that purpose up front.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Local State is Poison by dmbarbour</title>
		<link>http://awelonblue.wordpress.com/2012/10/21/local-state-is-poison/#comment-919</link>
		<dc:creator><![CDATA[dmbarbour]]></dc:creator>
		<pubDate>Thu, 25 Apr 2013 22:00:14 +0000</pubDate>
		<guid isPermaLink="false">http://awelonblue.wordpress.com/?p=1154#comment-919</guid>
		<description><![CDATA[&lt;blockquote&gt;Do you really believe that getting access to local variables where the source code to the functions working on that data isn’t available, is a good thing?&lt;/blockquote&gt;

It depends. 

If the variables represent &lt;i&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Essential_complexity&quot; rel=&quot;nofollow&quot;&gt;essential&lt;/a&gt;&lt;/i&gt; state - i.e. state that exists because it is a natural part of the problem being solved - then I will generally desire external access to support extensions. If the state is &lt;i&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Accidental_complexity&quot; rel=&quot;nofollow&quot;&gt;accidental&lt;/a&gt;&lt;/i&gt; - e.g. a consequence of representing the solution in an eventful, imperative programming model - then I desire to eliminate the state because state is difficult to debug. The ideal end of those two forces is that all essential state is external state, and all state is essential, and therefore all state is external. While it is unrealistic that I&#039;ll ever eliminate all accidental state, I&#039;ve found there are benefits even in shifting the remaining &#039;accidental&#039; state to external resources - not so much for &quot;getting access&quot; as for the peripheral advantages (orthogonal persistence, runtime code update, a more uniform consistency model and debugging experience, disruption tolerance). 

&lt;blockquote&gt;I would never use a framework exactly because I wouldn’t have access to the source code.&lt;/blockquote&gt;

This is a valid option, though it has its own costs. For example, I doubt I&#039;ll ever be able to compete with the expertise embedded in OpenCV or the Unreal4 engine. And implementing something like SDK or another XML library would be a big hassle. And even having &#039;access&#039; to the source code doesn&#039;t mean much unless you can &#039;control&#039; the source code (i.e. commit to it), which is often a problem for shared libraries that have lots of different users.

&lt;blockquote&gt;the number of power tools isn’t as important as having a full set of power tools that will do the job, out the box, in most circumstances&lt;/blockquote&gt;

I agree. A PL or IDE should come with a variety of tools to get jobs done. 

&lt;blockquote&gt;“Remains under control”, sorry but I am not the kind of person that likes to be controlled.&lt;/blockquote&gt;

You misread me. I spoke of the tools remaining under control, not the programmer. &quot;Powerful&quot; tools often are difficult to control, and they can damage a product or user if not used with care, sometimes in non-obvious ways. Power is not the property I prize most highly. I am willing to limit some powers to achieve some features - e.g. limit exclusive control of state in order to protect extensibility and access.]]></description>
		<content:encoded><![CDATA[<blockquote><p>Do you really believe that getting access to local variables where the source code to the functions working on that data isn’t available, is a good thing?</p></blockquote>
<p>It depends. </p>
<p>If the variables represent <i><a href="http://en.wikipedia.org/wiki/Essential_complexity" rel="nofollow">essential</a></i> state &#8211; i.e. state that exists because it is a natural part of the problem being solved &#8211; then I will generally desire external access to support extensions. If the state is <i><a href="http://en.wikipedia.org/wiki/Accidental_complexity" rel="nofollow">accidental</a></i> &#8211; e.g. a consequence of representing the solution in an eventful, imperative programming model &#8211; then I desire to eliminate the state because state is difficult to debug. The ideal end of those two forces is that all essential state is external state, and all state is essential, and therefore all state is external. While it is unrealistic that I&#8217;ll ever eliminate all accidental state, I&#8217;ve found there are benefits even in shifting the remaining &#8216;accidental&#8217; state to external resources &#8211; not so much for &#8220;getting access&#8221; as for the peripheral advantages (orthogonal persistence, runtime code update, a more uniform consistency model and debugging experience, disruption tolerance). </p>
<blockquote><p>I would never use a framework exactly because I wouldn’t have access to the source code.</p></blockquote>
<p>This is a valid option, though it has its own costs. For example, I doubt I&#8217;ll ever be able to compete with the expertise embedded in OpenCV or the Unreal4 engine. And implementing something like SDK or another XML library would be a big hassle. And even having &#8216;access&#8217; to the source code doesn&#8217;t mean much unless you can &#8216;control&#8217; the source code (i.e. commit to it), which is often a problem for shared libraries that have lots of different users.</p>
<blockquote><p>the number of power tools isn’t as important as having a full set of power tools that will do the job, out the box, in most circumstances</p></blockquote>
<p>I agree. A PL or IDE should come with a variety of tools to get jobs done. </p>
<blockquote><p>“Remains under control”, sorry but I am not the kind of person that likes to be controlled.</p></blockquote>
<p>You misread me. I spoke of the tools remaining under control, not the programmer. &#8220;Powerful&#8221; tools often are difficult to control, and they can damage a product or user if not used with care, sometimes in non-obvious ways. Power is not the property I prize most highly. I am willing to limit some powers to achieve some features &#8211; e.g. limit exclusive control of state in order to protect extensibility and access.</p>
]]></content:encoded>
	</item>
</channel>
</rss>