<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>traces &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/traces/</link>
	<description>Feed of posts on WordPress.com tagged "traces"</description>
	<pubDate>Sun, 27 Dec 2009 22:28:46 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Graham Harman]]></title>
<link>http://brocadedarkness.wordpress.com/2009/12/13/graham-harman/</link>
<pubDate>Sun, 13 Dec 2009 18:06:25 +0000</pubDate>
<dc:creator>brocadedarkness</dc:creator>
<guid>http://brocadedarkness.wordpress.com/2009/12/13/graham-harman/</guid>
<description><![CDATA[&#8220;I’m sick of &#8216;reversals of Plato.&#8217; Are you?&#8221; via rereading this morning « Ob]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>&#8220;I’m sick of &#8216;reversals of Plato.&#8217; Are you?&#8221;</p>
<p>via <a href="http://doctorzamalek2.wordpress.com/2009/12/07/rereading-this-morning/">rereading this morning « Object-Oriented Philosophy</a>.</p>
<p>If I ever get to write that masters thesis in philosophy I&#8217;ve been postponing for eight years, this would make a great opening quote. Since I have been thinking quite a few years about writing of Plato (mainly the interplay of light and shadow in the myth of the cave), Heidegger and Latour, my recent discovery of Graham Harman fits like hand in glove&#8230;</p>
<p>Not sure if the thesis will ever be written, but I will use this rarely used blog to save this quote.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Traces]]></title>
<link>http://isolditonline.net/2009/12/13/traces/</link>
<pubDate>Sun, 13 Dec 2009 04:30:43 +0000</pubDate>
<dc:creator>exilewarriors</dc:creator>
<guid>http://isolditonline.net/2009/12/13/traces/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src='http://static.flickr.com/2533/4181160905_7f77b4669c.jpg' alt='Traces' /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Sealed Tomb]]></title>
<link>http://polishedlance.wordpress.com/2009/12/11/sealed-tomb/</link>
<pubDate>Fri, 11 Dec 2009 17:01:08 +0000</pubDate>
<dc:creator>stonewall72</dc:creator>
<guid>http://polishedlance.wordpress.com/2009/12/11/sealed-tomb/</guid>
<description><![CDATA[Sealed Tomb Originally uploaded by Polished Lance Photography The house featured in this shot was ac]]></description>
<content:encoded><![CDATA[Sealed Tomb Originally uploaded by Polished Lance Photography The house featured in this shot was ac]]></content:encoded>
</item>
<item>
<title><![CDATA[Solving the Santa Claus Problem with Conjunction]]></title>
<link>http://chplib.wordpress.com/2009/12/10/solving-the-santa-claus-problem-with-conjunction/</link>
<pubDate>Thu, 10 Dec 2009 14:53:41 +0000</pubDate>
<dc:creator>Neil Brown</dc:creator>
<guid>http://chplib.wordpress.com/2009/12/10/solving-the-santa-claus-problem-with-conjunction/</guid>
<description><![CDATA[The Santa Claus problem is a concurrency problem that, like the Dining Philosophers problem, can be ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The <a href="http://www.SantaClausProblem.net/">Santa Claus problem</a> is a concurrency problem that, like the <a href="http://en.wikipedia.org/wiki/Dining_philosophers_problem">Dining Philosophers problem</a>, can be used to demonstrate your particular concurrency framework of choice.  December seems like the right time of year to post a CHP solution that I hacked up at the <a href="http://wotug.org/cpa2008/">CPA 2008</a> conference last year.  It&#8217;s short but rather primitive.  Here&#8217;s the statement of the problem, via Simon Peyton Jones (who made an <a href="http://www.crsr.net/Notes/SantaClausProblem.html">STM solution</a> in a <a href="http://research.microsoft.com/en-us/um/people/simonpj/Papers/stm/#beautiful">chapter of Beautiful Code</a>):</p>
<blockquote><p>Santa repeatedly sleeps until wakened by either all of his nine reindeer, back from their holidays, or by a group of three of his ten elves.  If awakened by the reindeer, he harnesses each of them to his sleigh, delivers toys with them and finally unharnesses them (allowing them to go off on holiday). If awakened by a group of elves, he shows each of the group into his study, consults with them on toy R&#38;D and finally shows them each out (allowing them to go back to work).  Santa should give priority to the reindeer in the case that there is both a group of elves and a group of reindeer waiting.</p></blockquote>
<p>The particularly tricky aspects of this problem are:</p>
<ol>
<li>Santa must make a choice between the reindeer and elves.</li>
<li>Santa must give priority to the reindeer.</li>
<li>The elves must come in groups of exactly three, even though there are ten of them.</li>
</ol>
<p>Choice is easy in CHP, so the first item is not a problem.  We saw in <a href="http://chplib.wordpress.com/2009/12/08/the-problem-with-parallel-participants-professing-priority/">the last post how to emulate priority</a>, so we can use that to solve the second point.  The third item is difficult.  Our barriers require all enrolled participants to synchronise, so we cannot use one barrier for all ten elves.  We could introduce some intermediary agents to coordinate the elves, but that is a bit long-winded.  Instead we can take a slightly brute-force approach combined with a CHP feature called conjunction.</p>
<h4>Conjunction</h4>
<p>The principle behind conjunction is straightforward.  Usually you offer a choice such as read from channel c <b>or</b> read from channel d: <tt>readChannel c &#60;-&#62; readChannel d</tt>.  This waits for the first of the two events, and executes it (it can never execute both options).  A conjunction is when you want to read from channel c <b>and</b> read from channel d: <tt>readChannel c &#60;&#38;&#62; readChannel d</tt>.  Crucially, this will only read from both when both are available.  If c is not ready, it will not read from d, and vice versa.  It is both or none: an atomic item, if you like.  Conjunction also has a list form, <tt>every</tt>.</p>
<p>One example of where this is useful is the aforementioned Dining Philosophers problem: a philosopher wishing to pick up his forks should execute <tt>syncBarrier leftFork &#60;&#38;&#62; syncBarrier rightFork</tt>.  That way he will either pick up both his forks or neither, thus eliminating the deadlock wherein each philosopher ends up holding one fork.</p>
<h5>Conjunction Specifics</h5>
<p>It is valid to offer conjunction as part of a choice; for example, <tt>(readChannel c &#60;&#38;&#62; readChannel d) &#60;-&#62; readChannel e</tt> will wait to read from channels (c AND d) OR e.  These choices can be overlapping, e.g. <tt>(readChannel c &#60;&#38;&#62; readChannel d) &#60;-&#62; (readChannel d &#60;&#38;&#62;readChannel e)</tt> waits for (c AND d) OR (d AND e).</p>
<p>The choices should be in <a href="http://en.wikipedia.org/wiki/Disjunctive_normal_form">disjunctive normal form (DNF)</a>: OR on the outside, AND in the bracket, so c AND (d OR e) is not valid.  But AND does distribute over OR here, so this is equivalent to the DNF: (c AND d) or (c AND e).  (The operators do not distribute in the opposite direction, so c OR (d AND e) is not equivalent to (c OR d) AND (c OR e), because the latter allows c and e to both happen, whereas the former does not.)</p>
<h5>Conjunction and Barriers</h5>
<p>Importantly for today&#8217;s post, there is a correspondence between barriers (N participants, all N must synchronise together) and a conjunction of two-party barriers.  Let&#8217;s imagine for a moment that Santa wanted to meet with all ten of his elves.  We could create a single barrier, enroll Santa and the ten elves, and get them all to synchronise on the barrier.  The barrier would only complete when all eleven participants synchronised.  But alternatively, we could create ten two-party barriers.  We would enroll each elf on a different barrier, and enroll Santa on all of them.  When they want to meet, the elves would all synchronise on their barrier (meaning their code is unchanged), while Santa would wait for the conjunction of all ten barriers.  Each barrier would only complete when all of them complete, because of Santa waiting for the conjunfction of all of them, so we have the same semantics as we had when we had one barrier.  These ten barriers would be dynamically <i>fused</i> into one barrier.</p>
<h4>The Solution</h4>
<p>Santa does not want to wait for all ten elves; he only wants to wait for three.  We can implement this with a little brute-force.  Labelling the elves A through J, we can make Santa wait for (A AND B AND C) OR (A AND B AND D) OR&#8230; (H AND I AND J).  That&#8217;s 120 possibilities.  Not scalable, but the problem said ten elves so that&#8217;s all we have to manage.</p>
<p>Let&#8217;s finally get to some code.  A reindeer waits for a random time, then synchronises on its barrier (i.e. tries to meet with Santa).  An elf waits for a random time, then synchronises on its barrier (i.e. tries to meet with Santa).  So, perhaps unexpectedly, a reindeer has exactly the same code as an elf.  (This is also the case in Peyton Jones&#8217; solution).  Here it is:</p>
<pre>syncDelay :: EnrolledBarrier -&#62; CHP ()
syncDelay b = forever (randomDelay <b>&#62;&#62;</b> syncBarrier b)
  <font color="Blue">where</font>
    randomDelay = (liftIO <b>$</b> randomRIO (500000, 1000000)) <b>&#62;&#62;=</b> waitFor

reindeer :: EnrolledBarrier -&#62; CHP ()
reindeer = syncDelay

elf :: EnrolledBarrier -&#62; CHP ()
elf = syncDelay</pre>
<p>Our next job is to write the Santa process.  Santa will take one barrier for the reindeer, and multiple barriers for the elves (one each).  He will loop forever, first polling the reindeer (to give them priority) and otherwise choosing between the reindeer and the elves:</p>
<pre>santa :: [EnrolledBarrier] -&#62; EnrolledBarrier -&#62; CHP ()
santa elfBars reindeerBar
  = forever (deliverToys <b>&#60;/&#62;</b> (skip <b>&#62;&#62;</b> (deliverToys <b>&#60;-&#62;</b> meetThreeElves)))
  <font color="Blue">where</font></pre>
<p>Now we need to define the helper processes.  Delivering toys is straightforward; we just synchronise with the reindeer.  The rest of the code deals with picking all groups of three elves, and making a choice between synchronising with each group:</p>
<pre>    deliverToys = syncBarrier reindeerBar

    meetThreeElves = alt [meetGroup g &#124; g &#60;- allGroupsThreeElves]
    meetGroup bars = every_ [syncBarrier bar &#124; bar &#60;- bars]

    allGroupsThreeElves = allNFrom 3 elfBars
    allNFrom n = filter ((<b>==</b> n) <b>.</b> length) <b>.</b> filterM (const [True, False])</pre>
<p>The <tt>allNFrom</tt> is not important here, so I&#8217;ve used a concise (but probably inefficient) definition.  Now that we have santa, our elves and our reindeer, all that remains is to put them together.  To do this we use two wiring helper functions, <tt>enrollAll</tt> (that enrolls all of the processes on the given barrier) and <tt>enrollOneMany</tt> (that enrolls one process on all the barriers, and each of the other processes on one):</p>
<pre>main :: IO ()
main = runCHP_VCRTraceAndPrint <b>$</b>
  enrollOneMany
    (\elfBars -&#62;
        enrollAll (newBarrierWithLabel "reindeer")
                  (santa elfBars : replicate 9 reindeer)
    )
    [(newBarrierWithLabel ("elf" <b>++</b> show n), elf) &#124; n &#60;- [0..9]]</pre>
<p>That&#8217;s it.  Part of the reason that this code is quite short is that I&#8217;ve omitted all the print statements detailing what is going on (<a href="http://www.crsr.net/Notes/SantaClausProblem.html">for example in Peyton Jones&#8217; version</a>).  These print statements were only there to observe the behaviour of the computation, and we can do that with <a href="http://chplib.wordpress.com/tag/traces/">CHP&#8217;s built-in traces mechanism</a>, just by using the <tt>runCHP_VCRTraceAndPrint</tt> function.</p>
<p>View-Centric Reasoning (VCR) traces, developed by <a href="http://www.cs.vassar.edu/people/mlsmith/top">Marc L. Smith</a> and subsequently tweaked a little bit by me, display an ordered list of multisets, where each multiset holds independent events (events that did not have a sequential dependency on each other).  This style makes it very easy to see from the output that our Santa Claus solution has the right sort of behaviour, viz:</p>
<blockquote><p><tt>&#60; {elf3, elf4, elf5}, {elf0, elf6, elf7}, {reindeer}, {elf1, elf8, elf9}, {elf2, elf4, elf7}, {elf0, elf1, elf3}, {elf5, elf8, elf9}, {reindeer}, {elf3, elf6, elf7}, {elf0, elf1, elf9}, {elf2, elf4, elf8}, {reindeer}, {elf3, elf5, elf6}, {elf0, elf4, elf9}, {elf1, elf2, elf7}, {elf5, elf6, elf8}, {reindeer}, {elf0, elf1, elf3}, {elf4, elf7, elf9}, {elf2, elf5, elf8}, {elf0, elf1, elf6}, {reindeer}, {elf3, elf7, elf9}, {elf0, elf1, elf4}, {elf2, elf6, elf8}, {elf5, elf7, elf9}, {elf0, elf3, elf4}, {reindeer}, {elf1, elf2, elf6}, {elf5, elf7, elf8}, ...</tt></p></blockquote>
<hr />
<h4>Concise Solution</h4>
<p>For those who like a bit of code golf (finding the shortest version of a program), I came up with this concise version of the whole solution:</p>
<pre><font color="Blue">import</font> Control<b>.</b>Concurrent<b>.</b>CHP
<font color="Blue">import</font> Control<b>.</b>Concurrent<b>.</b>CHP<b>.</b>Traces
<font color="Blue">import</font> Control<b>.</b>Monad
<font color="Blue">import</font> Control<b>.</b>Monad<b>.</b>Trans
<font color="Blue">import</font> System<b>.</b>Random

santa elves reindeer = forever $
  syncBarrier reindeer <b>&#60;/&#62;</b> (alt $ map (every_ <b>.</b> map syncBarrier) groups)
  <font color="Blue">where</font> groups = filter ((<b>==</b> 3) <b>.</b> length) <b>$</b> filterM (const [True, False]) elves

main = runCHP_VCRTraceAndPrint <b>$</b> enrollOneMany (enrollAll
  (newBarrierWithLabel "reindeer") <b>.</b> (: replicate 9 syncDelay) <b>.</b> santa)
  [(newBarrierWithLabel ("elf" <b>++</b> show n), syncDelay) &#124; n &#60;- [0..9]]
  <font color="Blue">where</font> syncDelay = forever <b>.</b> (randomDelay <b>&#62;&#62;</b>) <b>.</b> syncBarrier
        randomDelay = (liftIO <b>$</b> randomRIO (500000, 1000000)) <b>&#62;&#62;=</b> waitFor
</pre>
<p>Excluding the import statements, that&#8217;s a solution to the Santa Claus problem in eight lines of Haskell.  Rather difficult-to-follow Haskell, but that&#8217;s usually the result of code golf.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[-PART 5-]]></title>
<link>http://e1nu.wordpress.com/2009/12/07/part-5/</link>
<pubDate>Mon, 07 Dec 2009 21:09:31 +0000</pubDate>
<dc:creator>e1nu</dc:creator>
<guid>http://e1nu.wordpress.com/2009/12/07/part-5/</guid>
<description><![CDATA[If your life&#8217;s work can be accomplished in your lifetime, you&#8217;re not thinking big enough]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><a href="http://e1nu.wordpress.com/files/2009/12/bigger_than_this_life_tchd21.jpg"><img class="aligncenter size-full wp-image-195" title="bigger_than_this_life_tchd2" src="http://e1nu.wordpress.com/files/2009/12/bigger_than_this_life_tchd21.jpg" alt="" width="420" height="315" /></a><em>If your life&#8217;s work can be accomplished in your lifetime, </em></p>
<p style="text-align:center;"><em>you&#8217;re not thinking big enough. </em></p>
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;">-Wes Jackson</p>
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;"><strong><br />
</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Rollen Aller 1 - Laif Draasch]]></title>
<link>http://cleptomanicx.wordpress.com/2009/12/03/rollen-aller-1-laif-draasch/</link>
<pubDate>Thu, 03 Dec 2009 00:01:10 +0000</pubDate>
<dc:creator>cleptomanicx</dc:creator>
<guid>http://cleptomanicx.wordpress.com/2009/12/03/rollen-aller-1-laif-draasch/</guid>
<description><![CDATA[Der Tunnel im Eingang dieses Parts war  im Winter die beste Alternative und willkommene Abwechslung ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Der Tunnel im Eingang dieses Parts war  im Winter die beste Alternative und willkommene Abwechslung zur auf Dauer öden i-punkt Halle. In ihm zu sehen die &#8220;Kieler Sprotte&#8221; Laif Draasch, der  heute für den maritimen Flair bei unseren Freunden vom <a href="http://www.mob-skateboards.com/" target="_blank">Hessenmob</a> sorgt, seinerzeit allerdings noch Teil des Cleptomanicx Teams war. Der andere Herr der den Curb Untertage mit bearbeitet ist niemand geringeres als Quirin Obermaier, Q oder auch die Qobra. Gegen das, was er sonst, wie zum Beispiel auch im <a href="http://www.trap-skateboards.de/video.php?video=quirin-obermaier.mov" target="_blank">Traces-Video</a> von <a href="http://www.trap-skateboards.de/" target="_blank">Trap </a>abliefert, haben diese zwar schönen Lines trotzdem eher etwas konservatives. Quirin hat nunmal das Auge für &#8220;den anderen Trick&#8221; und die Ohren für &#8220;<a href="http://www.myspace.com/qdaelic">die anderen Beats&#8221;</a>.</p>
<p>Film ab für Laif und Q, bevor im nächsten Part der Cäptn selbst zum Steuer greift&#8230;</p>
<span id='plh-loop-video-embed-0' class='hidden'>done</span><ins style='text-decoration:none;'>
<div class='video-player' id='x-video-0'>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="292" id="video-0" standby="">
  <param name="movie" value="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.11" />
  <param name="quality" value="best" />
  <param name="seamlesstabbing" value="true" />
  <param name="allowfullscreen" value="true" />
  <param name="allowscriptaccess" value="always" />
  <param name="overstretch" value="true" />
  <param name="flashvars" value="guid=2Kc5SHjf&amp;javascriptid=video-0&amp;width=400&amp;height=292&amp;locksize=no" />
  <!--[if !IE]>-->
  <object type="application/x-shockwave-flash" data="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.11" width="400" height="292" standby="">
    <param name="quality" value="best" />
    <param name="seamlesstabbing" value="true" />
    <param name="allowfullscreen" value="true" />
    <param name="allowscriptaccess" value="always" />
    <param name="overstretch" value="true" />
    <param name="flashvars" value="guid=2Kc5SHjf&amp;javascriptid=video-0&amp;width=400&amp;height=292&amp;locksize=no" />
  <!--<![endif]-->
  <img alt="" src="http://cdn.videos.wordpress.com/2Kc5SHjf/rollen_aller1_part5-laif_std.original.jpg" width="400" height="292" /><p><strong></strong></p><p>This movie requires <a rel="nofollow" href="http://www.adobe.com/go/getflashplayer">Adobe Flash</a> for playback.</p>
  <!--[if !IE]>-->
  </object>
  <!--<![endif]-->
</object></div></ins>
<p>Zum vorherigen Part geht es <a href="http://cleptomanicx.wordpress.com/2009/11/26/rollen-aller-1-rouven-shaw-stefan-gerkens/">hier</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Os]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/30/os/</link>
<pubDate>Mon, 30 Nov 2009 20:38:12 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/30/os/</guid>
<description><![CDATA[A la fois, les vider de leur contenu, les désosser, ronger jusqu&#8217;à leur carcasse, et les analy]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A la fois, les vider de leur contenu, les désosser, ronger jusqu&#8217;à leur carcasse, et les analyser, pour ce qu&#8217;ils sont, pour ce qu&#8217;ils m&#8217;apportent, pour ce que voudrais qu&#8217;ils ne soient pas là, parfois.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Eau]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/30/eau/</link>
<pubDate>Mon, 30 Nov 2009 15:11:23 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/30/eau/</guid>
<description><![CDATA[Les ombres de ses cils coloraient sa joue. Graciles traces noires. Grâce contenue dans une larme ret]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Les ombres de ses cils coloraient sa joue. Graciles traces noires. Grâce contenue dans une larme retenue.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Faim]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/30/faim/</link>
<pubDate>Mon, 30 Nov 2009 11:15:41 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/30/faim/</guid>
<description><![CDATA[Happer. Vorace. Tirer l&#8217;essence du jeu. Du mot. Du jeu des mots.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Happer. Vorace. Tirer l&#8217;essence du jeu. Du mot. Du jeu des mots.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Souffle]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/29/souffle/</link>
<pubDate>Sun, 29 Nov 2009 10:04:43 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/29/souffle/</guid>
<description><![CDATA[Chercher au vent des mots de rien qui seront un tout]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Chercher au vent des mots de rien qui seront un tout</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Assassin]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/28/assassin/</link>
<pubDate>Sat, 28 Nov 2009 22:29:58 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/28/assassin/</guid>
<description><![CDATA[Ta peau est un cri. Un appel au crime Ta peau est un crime. Un cri dans la Nuit]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ta peau est un cri. Un appel au crime</p>
<p>Ta peau est un crime. Un cri dans la Nuit</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mûr ... mur]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/28/mur-mur/</link>
<pubDate>Sat, 28 Nov 2009 14:04:59 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/28/mur-mur/</guid>
<description><![CDATA[Arabesques compliquées, nuances de tous les gris, arc en ciel de tendresse, de plaisir, d’envie, d’a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Arabesques compliquées, nuances de tous les gris, arc en ciel de tendresse, de plaisir, d’envie, d’attente enfin récompensée. Fermer les yeux sur ces images trop réelles à présent, bien que fantomatiques</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Esquive]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/28/esquive/</link>
<pubDate>Sat, 28 Nov 2009 13:21:50 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/28/esquive/</guid>
<description><![CDATA[Instiller les mots justes au moment pile, esquisser les caresses adéquates, retenir sur ses lèvres c]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Instiller les mots justes au moment pile, esquisser les caresses adéquates, retenir sur ses lèvres certaines phrases, trop abruptes ou péremptoires</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Un geste]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/28/un-geste/</link>
<pubDate>Sat, 28 Nov 2009 10:02:39 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/28/un-geste/</guid>
<description><![CDATA[Un geste, comme les autres, les milliers de gestes qui ont précédés, tout au long des matins somnamb]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Un geste, comme les autres, les milliers de gestes qui ont précédés, tout au long des matins somnambules&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[2009 Thanksgiving]]></title>
<link>http://e1nu.wordpress.com/2009/11/26/2009-thanksgiving/</link>
<pubDate>Fri, 27 Nov 2009 05:37:10 +0000</pubDate>
<dc:creator>e1nu</dc:creator>
<guid>http://e1nu.wordpress.com/2009/11/26/2009-thanksgiving/</guid>
<description><![CDATA[After eating some delicious pieces of pumpkin and apple pie @ Marie Calendar&#8217;s, Robbie, Lance-]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://e1nu.wordpress.com/files/2009/11/salvation_army1981.gif"><img class="size-full wp-image-167      alignleft" title="salvation_army1981" src="http://e1nu.wordpress.com/files/2009/11/salvation_army1981.gif" alt="" width="198" height="225" /></a></p>
<p>After eating some delicious pieces of pumpkin and apple pie @ Marie Calendar&#8217;s, Robbie, Lance-Paul, and I checked out an outreach event hosted by the Salvation Army.</p>
<p>This is my second time volunteering at places like this. My first experience was in Portland, Oregon. I was 13 years old and my unforgettable youth pastor, Adam An, took me there. I don&#8217;t even remember why I signed up. Actually, I don&#8217;t even remember signing up for it.</p>
<p>So this time, I signed up wanting to help out and see how they run the place. But by the time we entered the building, there wasn&#8217;t much to help out. I don&#8217;t know about Robbie and Lance-Paul, but I was somewhat bummed-out. I mean, I went to help and expecting to play a big role in running the whole outreach. I ended up sitting around and chatting with a few people.</p>
<p>Dwayne and Sister Naomi (Lt. Naomi).</p>
<p>Dwayne was a great guy. He was a tall guy in his 40&#8217;s. The first thing he asked me was, &#8220;What school do you go to?&#8221; And I said with a friendly smile, &#8220;Claremont.&#8221; &#8220;Oh, high school?&#8221; I paused with by mouth not quite closed from smiling. &#8220;Oh, no. Claremont College,&#8221; I kindly told him as I was trying to understand what was going on.&#8221;</p>
<p>I mean, this happens all the time. I go to apply for a job as a teacher, and the security stops me with the look and asks me where I&#8217;m going. The tone was there. No doubt.</p>
<p>But I digress.</p>
<p>Dwayne is a Christian guy just wanting to live out what he believes in. He definitely has compassion for the lost and the broken. At a certain point in our conversation, it led to the topic of  young people not having a real home, nowadays. Perhaps, he thought I was one of them. He asked me if my family was going to have a big dinner today and I said, &#8220;no, because we kind of had a big breakfast.&#8221; And he gave me his phone number and invited me to come over to his family&#8217;s gathering.</p>
<p>Dwayne isn&#8217;t the only cool person I met today. Through Dwayne, I met a woman who looked like she was in her 40&#8217;s, as well. Her name is Sister Naomi.</p>
<p>I didn&#8217;t get a chance to talk to her too long because she was the person in charge of everything and she had many things to take care of. If there is one thing I remember about our conversation, it is this(loosely and horribly paraphrased):</p>
<p>&#8220;We don&#8217;t know when was the last time these people ate or the next time when they&#8217;ll get to eat . So, we never turn away anyone who is hungry. We feed them until they are full.&#8221;</p>
<p>I could imagine, someone like her making sure that everyone only gets one plate so there is enough to go around. But, no. She wanted people to eat as much as they want!</p>
<p>I recently heard that food banks in our state are in need of donation because their food is running out. Even if their food ran out, I almost want to believe that her compassion and love for these needy people will be able to feed and satisfy them.</p>
<p>After all, this Bible verse is the engine that drives people, like Sister Naomi and Dwayne:</p>
<p>&#8220;I can do all things through Christ which strengthens me.&#8221;</p>
<p>I hope to see them soon, as promised.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Select Photography]]></title>
<link>http://crashtestmoron.wordpress.com/2009/11/10/select-photography/</link>
<pubDate>Tue, 10 Nov 2009 02:53:00 +0000</pubDate>
<dc:creator>crashtestmoron</dc:creator>
<guid>http://crashtestmoron.wordpress.com/2009/11/10/select-photography/</guid>
<description><![CDATA[Traces by Natalie Tkachuk To Kill a Mockingbird by Hai Zhang via File Magazine]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_253" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.filemagazine.com/galleries/archives/2007/11/traces.html"><img class="size-full wp-image-253" title="traces" src="http://crashtestmoron.wordpress.com/files/2009/11/traces.jpg" alt="traces" width="600" height="225" /></a><p class="wp-caption-text">Traces by Natalie Tkachuk</p></div>
<div id="attachment_254" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.filemagazine.com/galleries/archives/2007/09/to_kill_a_mocki.html"><img class="size-full wp-image-254" title="mockingbird" src="http://crashtestmoron.wordpress.com/files/2009/11/mockingbird.jpg" alt="mockingbird" width="600" height="225" /></a><p class="wp-caption-text">To Kill a Mockingbird  by Hai Zhang</p></div>
<p style="text-align:center;">
<p>via <a href="http://www.filemagazine.com/">File Magazine</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Visual Language Week 6]]></title>
<link>http://stickyysweets.wordpress.com/2009/11/03/visual-language-week-6/</link>
<pubDate>Tue, 03 Nov 2009 13:55:59 +0000</pubDate>
<dc:creator>Shauna Brennan</dc:creator>
<guid>http://stickyysweets.wordpress.com/2009/11/03/visual-language-week-6/</guid>
<description><![CDATA[IMMA FEILD TRIP Aaron give use MOVVVEEEMENT!!!!!! On friday last the class and I took a trip to the ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><span style="text-decoration:underline;"><strong>IMMA FEILD TRIP</strong></span></p>
<p><span style="text-decoration:underline;"><strong> </strong></span></p>
<div id="attachment_273" class="wp-caption aligncenter" style="width: 510px"><span style="text-decoration:underline;"><strong><strong><img class="size-full wp-image-273" title="Aaron give use MOVVVEEEMENT!!!!!!" src="http://stickyysweets.wordpress.com/files/2009/11/pa232536.jpg" alt="Aaron give use MOVVVEEEMENT!!!!!!" width="500" height="666" /></strong></strong></span><p class="wp-caption-text">Aaron give use MOVVVEEEMENT!!!!!!</p></div>
<p><strong> </strong></p>
<p>On friday last the class and I took a trip to the Irish Museum of Modern Art. We were asked by Niamh to update our blogs detailing our experience at IMMA, and also we were given a photography assignment by Stephen (cool guys). It was a day filled with joy and laughter <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>I started of in Traces,  Traces celebrates the IMMA Limited Editions Series, introduced by the Museum in 2003. The exhibition includes a variety of print works by Irish and international artists. Various printmaking and editioning processes are exhibited which include screen-prints, etchings, lithographs and cibachrome prints. I thought the pieces in this part of the museum were really unusual, they were all very interesting . It was over here were i saw this&#8230;&#8230;..</p>
<p><strong><span style="text-decoration:underline;">Fred Tomaselli, Untitled, 2004</span></strong></p>
<p><strong><span style="text-decoration:underline;"> </span></strong></p>
<div id="attachment_247" class="wp-caption alignleft" style="width: 218px"><strong><strong><span style="text-decoration:underline;"><img class="size-medium wp-image-247" title="Fred Tomaselli " src="http://stickyysweets.wordpress.com/files/2009/11/pa252591.jpg?w=208" alt="Fred Tomaselli " width="208" height="300" /></span></strong></strong><p class="wp-caption-text">Quick Sketch</p></div>
<p><strong> </strong><br />
Click <a href="http://www.immaeditions.com/images/editions/large/fredTomaselli.png" target="_blank">here</a> to view the original image.<br />
Some more useful links, <a href="http://www.modernart.ie/en/page_72398.htm" target="_blank">here</a>, <a href="http://www.artinfo.com/news/story/22791/fred-tomaselli/" target="_blank">here</a> and <a href="http://findarticles.com/p/articles/mi_m0268/is_6_39/ai_75577307/" target="_blank">here</a>.</p>
<ul>
<li>Digital Inkjet print on 100% rag acid free paper 246×16cm</li>
<li>Donated by the artist in 2005</li>
<li>Edition of 100 signed and numbered</li>
</ul>
<p><span style="color:#ff6600;">Colourful</span> star-like forms create ecstatic explosions of <span style="color:#cc1ec8;">colour</span> in this digital print. Based on concepts of mapping and the idea of finding one’s place in the world.</p>
<p>I think the concept of mapping really worked in this piece, his use of bold, contrasting colours really made it stand ot from the rest. <span style="color:#ff00ff;">Colours</span> like <span style="color:#ff0000;">red</span>, <span style="color:#333399;">blue</span>, <span style="color:#339966;">green</span> and <span style="color:#ffff00;">yellow</span>, made the print pop out against its <strong>black</strong> background. The star-like forms all connect with each other at some point with points/dots and lines, drawing your eye to the top left corner were the main mass of pattern is. The image itself doesn&#8217;t have much texture, the is no shading or tone making the image look 2D/flat.</p>
<p>&#8220;Tomaselli is a New York based painter, born in Santa Monica, California, in 1956. Drawing on influences from Indian miniatures to punk rock. They are characterised by the use of unorthodox materials, such as over-the-counter medicines, prescription pills, herbal remedies and psychoactive plants,cosmos.&#8221;</p>
<p>Another piece from the same collection of artwork i had a look at was&#8230;&#8230;&#8230;</p>
<p><strong><span style="text-decoration:underline;">Alex Katz, Untitled, 2007</span></strong></p>
<p><strong><span style="text-decoration:underline;"> </span></strong></p>
<div id="attachment_255" class="wp-caption alignleft" style="width: 233px"><strong><strong><span style="text-decoration:underline;"><img class="size-medium wp-image-255" title="Alex Katz" src="http://stickyysweets.wordpress.com/files/2009/11/pa252592.jpg?w=223" alt="Alex Katz" width="223" height="300" /></span></strong></strong><p class="wp-caption-text">Quick Sketch</p></div>
<p><strong> </strong></p>
<p>Click <a href="http://www.immaeditions.com/images/editions/large/alexKatz.png" target="_blank">here</a> to view the original image.<br />
Some useful links,<a href="http://www.imma.ie/en/page_170505.htm" target="_blank">here</a>, <a href="http://www.alexkatz.com/" target="_blank">here</a>, and <a href="http://topics.nytimes.com/topics/reference/timestopics/people/k/alex_katz/index.html" target="_blank"> here</a>.</p>
<ul>
<li>Silkscreen 131×95cm</li>
<li>Edition of 25 signed and numbered</li>
<li>Donated by the artist in 2007</li>
</ul>
<div id="pieceImage">This large-scale print is one of the artist celebrated portrait works.I feel the <span style="color:#333399;">blue</span> in this image mixed with the curved lines makes the face look a bit sad. The slanted lines of the eyes also made it look sad, he doesn&#8217;t smile and doesn&#8217;t seem to be looking at anything in particular. This is another 2D piece with no texture, tone or shading. The image was made with just two <span style="color:#ff99cc;">colours</span> <span style="color:#0000ff;">blue</span> and <span style="color:#c0c0c0;">silver</span>. Overall line and <span style="color:#ffcc00;">colour</span> are the only 2 types of visual language used. &#8220;Alex Katz an American figural artist associated with the pop art movement, born in New York in 1927, his work has been the subject of nearly 200 solo exhibitions internationally since he first exhibited in 1954.&#8221;</div>
<p>So of i went to Alan Phelan&#8230;&#8230;&#8230;..</p>
<p>&#8220;Fragile Absolutes presents 16 new and recent works inspired by Irish artist Alan Phelan&#8217;s ongoing engagement with political history, cultural theory, popular culture, masculinity and modified cars.&#8221;</p>
<p><span style="text-decoration:underline;"><strong>Mosquito Man Arthur, 2007</strong></span></p>
<p><span style="text-decoration:underline;"><strong> </strong></span></p>
<div id="attachment_264" class="wp-caption alignleft" style="width: 313px"><span style="text-decoration:underline;"><strong><strong><img class="size-medium wp-image-264" title="Mosquito Man Arthur" src="http://stickyysweets.wordpress.com/files/2009/11/pa252593.jpg?w=300" alt="Mosquito Man Arthur" width="303" height="225" /></strong></strong></span><p class="wp-caption-text">Quick Sketch</p></div>
<p><strong> </strong><br />
Click <a href="http://www.alanphelan.com/ralph/mosquito.jpg" target="_blank">here</a> to view the original.<br />
Some useful links<a href="http://www.modernart.ie/en/page_197020.htm" target="_blank"> here </a>, <a href="http://www.undo.net/cgi-bin/undo/pressrelease/pressrelease.pl?id=1248094627&#38;day=1248213600" target="_blank">here</a> and<a href="http://www.alanphelan.com/imma/index.htm" target="_blank"> here</a></p>
<p>Fragile Absolute #6</p>
<ul>
<li>archival paper, toner, Eva glue, balso wood, cocktail sticks, aluminium, plaster, metal, plastic</li>
<li>82×80×80cm</li>
<li>paper mache made from articles from the daily telegraph</li>
<li>based on <a href="http://generalmichaelcollins.com/Fine_Gael/Arthur_Griffith.html" target="_blank">Arthur Griffith</a></li>
</ul>
<p>This was one of my favourite piece that i saw in the IMMA. Generally i felt the 3D sculptures were a bit more interesting. This piece caught my eye straight away, as it was very well done and very different from anything else i saw. This piece is based on Arthur Griffith, a propaganda officer for the IRA (more info on Arther can be found <a href="http://generalmichaelcollins.com/Fine_Gael/Arthur_Griffith.html" target="_blank">here</a>). The idea of Arthur Griffiths head on a mosquitos body was because, he published a paper which the British called ‘the Mosquito Press’, this worked really well with its body being made up of newspaper clippings. By using newspaper he was able to give texture creating tone. Sharp lines gave it an edgier look, the spikes on the antennas. There wasn&#8217;t much <span style="color:#339966;">colour</span> used in this, but i dont think much  <span style="color:#ff6600;">colour</span> was needed.</p>
<p>I&#8217;m glad we had the oppertunity to leave the classroom for a change, it really was a nice way to get to know each other a lil better before our mid-term. It also helps getting a change of scenery once in a while. It was interesting to see how art has evolved over the years. I thought some of them were very interesting. I really enjoyed the children&#8217;s hospital section it was really creepy, you got an ery feeling as soon as you heard the old music seeping through the rooms. Click <a href="http://www.e-flux.com/show_images/1245360890image_web.jpg" target="_blank">here</a> and <a href="http://images.google.ie/imgres?imgurl=http://www.modernart.ie/en/siteimages/kabakovhospital1.jpg&#38;imgrefurl=http://www.modernart.ie/en/page_197018.htm&#38;usg=__qOa1Kh-Vn8u73TYJWXW8vN5JtZE=&#38;h=187&#38;w=281&#38;sz=14&#38;hl=en&#38;start=2&#38;sig2=KxDfKffyXUn33msmFlxXog&#38;um=1&#38;tbnid=xY224YMOC_v6mM:&#38;tbnh=76&#38;tbnw=114&#38;prev=/images%3Fq%3Dkabakov%2Bhospital%2Bimma%26hl%3Den%26safe%3Doff%26client%3Dfirefox-a%26channel%3Ds%26rls%3Dorg.mozilla:en-GB:official%26hs%3DSpy%26sa%3DG%26um%3D1&#38;ei=xSnwStPSFNixsgbsi_25Bg" target="_blank">here</a> for some links. O by the way the coffee  shop was a rip off!!!!!</p>
<p>For our digital photography assignment we were given <a href="http://www.nikonusa.com/Find-Your-Nikon/Digital-SLR/index.page" target="_blank">Nikon D-SLR</a> camera, and a list of objectives to be achieved , like a photo with diagonal lines, curved lines, complimentary colours, movement, blur&#8230;&#8230; HOWEVER! there wasn&#8217;t enough cameras to go around so me and a couple of other people had to make do with our own little smelly cameras <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Therefore we were not able to complete the task properly as we needed aperture, shutter, and iso settings which we did not have <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .  Aww well sure we still got the idea. Heres some photos i took myself&#8230;&#8230;&#8230;&#8230;&#8230;.. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="attachment_282" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-282" title="Naomi and the Ball" src="http://stickyysweets.wordpress.com/files/2009/11/pa232572.jpg" alt="Naomi and the Ball" width="500" height="375" /><p class="wp-caption-text">Naomi and the Ball</p></div>
<div id="attachment_284" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-284" title="The lone snowman" src="http://stickyysweets.wordpress.com/files/2009/11/pa232548.jpg" alt="The lone snowman" width="500" height="666" /><p class="wp-caption-text">The lone snowman </p></div>
<div id="attachment_287" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-287" title="Complimentary colours" src="http://stickyysweets.wordpress.com/files/2009/11/pa232529.jpg" alt="Complimentary colours" width="500" height="423" /><p class="wp-caption-text">Complimentary colours</p></div>
<div id="attachment_293" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-293" title="Beauty and the Beast" src="http://stickyysweets.wordpress.com/files/2009/11/pa2325191.jpg" alt="Beauty and the Beast" width="500" height="375" /><p class="wp-caption-text">Beauty and the Beast</p></div>
<div id="attachment_294" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-294" title="Curvy" src="http://stickyysweets.wordpress.com/files/2009/11/pa232523.jpg" alt="Curvy" width="500" height="666" /><p class="wp-caption-text">Curvy</p></div>
<p>So thats about it from me this week</p>
<p>Until we meet again&#8230;&#8230;&#8230;..</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Concurrent Testing and Tracing: Useful Output for Test Failures]]></title>
<link>http://chplib.wordpress.com/2009/11/02/concurrent-testing-and-tracing-useful-output-for-test-failures/</link>
<pubDate>Mon, 02 Nov 2009 14:43:57 +0000</pubDate>
<dc:creator>Neil Brown</dc:creator>
<guid>http://chplib.wordpress.com/2009/11/02/concurrent-testing-and-tracing-useful-output-for-test-failures/</guid>
<description><![CDATA[Programmers write testcases for programs to check that the programs work correctly. When a test-case]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Programmers write testcases for programs to check that the programs work correctly.  When a test-case fails, a programmer wants to know two things: first, why specifically did the test fail (which assertion did not hold?), and secondly, what is wrong with the program (or the test case!)?</p>
<p>Last Friday I released CHP 1.5.0, which adds better support for testing, tracing, and the combination of the two.  Tracing refers in theoretical terms to recording a computation&#8217;s history: practically, it means keeping a log of all the CHP synchronisation events (e.g. channel communications) that happened in your program.  CHP supports several types of tracing, but for this post I will use the simplest type: a CSP trace, which is just a linear sequence of events that occurred.</p>
<p>Let&#8217;s explore the combination of testing and tracing in practice.  Previously <a href="http://chplib.wordpress.com/2009/09/22/functions-into-processes-using-arrows/">I used an example involving a four-item pipeline to find the mode (most common element) of a list</a>.  Let&#8217;s use this example again, but since this is a post about testing, we&#8217;ll introduce an error: we will forget to include the sort process at the front of the pipeline.</p>
<p>To use the tracing framework, you have to augment your code slightly to label parts of your code.  This involves using <tt>arrLabel</tt> instead of <tt>arr</tt>, and <tt>*&#60;&#60;&#60;*</tt> instead of <tt>&#60;&#60;&#60;</tt> (see the remarks at the end of this post for why, and for a way to shorten the tedious labelling):</p>
<pre>badMode = (arrLabel "group" group) <b>*&#62;&#62;&#62;*</b> (arrLabel "maxByLength" maxByLength)
            <b>*&#62;&#62;&#62;*</b> (arrLabel "head" head)
  <font color="Blue">where</font>
    maxByLength = maximumBy (comparing length)</pre>
<p>We can then join this pipeline onto one that takes a string, and splits it into words &#8212; making a pipeline that looks for the most frequent word:</p>
<pre>mostFreqWord = (arrLabel "makeLower" makeLower) <b>*&#62;&#62;&#62;*</b> (arrLabel "words" words) <b>*&#62;&#62;&#62;*</b> badMode
  <font color="Blue">where</font>
    makeLower = map toLower</pre>
<p>Finally, we can provide a simple test sentence for the pipeline that should pick out the most frequent word, &#8220;the&#8221;:</p>
<pre>testFreqWord = testCHPInOut (const (<b>==</b> "the")) (runPipelineLabel mostFreqWord)
  "The quick brown fox jumps over the lazy dog"

main :: IO ()
main = runTestTT testFreqWord <b>&#62;&#62;</b> return ()</pre>
<p>If we run this output, what do we get?  Well, the test case fails, so we are told that, but we are also automatically given the trace of the failing test case:</p>
<pre>### Failure:
testCHP Failure; trace: &#60; _c4,
  makeLower-&#62;words."the quick brown fox jumps over the lazy dog",
  words-&#62;group.["the","quick","brown","fox","jumps","over","the","lazy","dog"],
  group-&#62;maxByLength.[["the"],["quick"],["brown"],["fox"],["jumps"],["over"],["the"],["lazy"],["dog"]],
  maxByLength-&#62;head.["dog"],
  _c5 &#62;
Cases: 1  Tried: 1  Errors: 0  Failures: 1</pre>
<p>So how do we read this trace?  The trace is delimited by angle brackets, and is a comma-separated sequence of events (I&#8217;ll look to tighten up the grammar in future to allow for automated parsing).  The <tt>_c4</tt> is an unnamed event at the start (this is the channel used in the test framework to inject the data).  Then the following events are channel communications of the form <i>channel-name</i><b>.</b><i>data-value</i>.  So <tt>makeLower-&#62;words</tt> is the channel name, and <tt>"the quick brown fox jumps over the lazy dog"</tt> is the data value.  The channel names have been automatically generated based on the two processes that the channel connects, and the data value has been printed out using show.  We can use this trace to immediately see which values were passed between each process pair, and thus track down the problem.  You can see from looking at the trace that group is not grouping the two &#8220;the&#8221;s together, which is because the list is not sorted.  We can easily fix this by putting in the missing sort process.  The trace with sort added now works as we would expect:</p>
<pre>&#60; _c5,
  makeLower-&#62;words."the quick brown fox jumps over the lazy dog",
  words-&#62;sort.["the","quick","brown","fox","jumps","over","the","lazy","dog"],
  sort-&#62;group.["brown","dog","fox","jumps","lazy","over","quick","the","the"],
  group-&#62;maxByLength.[["brown"],["dog"],["fox"],["jumps"],["lazy"],["over"],["quick"],["the","the"]],
  maxByLength-&#62;head.["the","the"],
  _c6 &#62;</pre>
<p>Tracing is useful for tracking down problems and strange behaviours in your system, so integrating it with the test framework made a lot of sense.  You can trace any program, not just test-cases, but I will explore that at a future date.  You may observe that tracing (at least a CSP trace) is not too far different from adding print (or Debug.Trace.trace) statements around your program.  The main differences are:</p>
<ul>
<li>Channels are named when you join together processes, so you don&#8217;t have to modify the definition of the original processes to get intelligible trace output (unless you want to trace the internal channels).</li>
<li>Tracing can be turned on or off at run-time (by changing the top-level call to runCHP), rather than at compile-time with pre-processor macros &#8212; but if tracing is switched off, you do not incur any overhead.</li>
<li>The order in the trace is guaranteed to reflect the real ordering of the channel communications, so you can&#8217;t end up with <a href="http://chplib.wordpress.com/2009/10/06/the-printing-process/">an unrepresentative order that usually happens when you put print statements in a concurrent program</a>.</li>
</ul>
<hr />
<p>Remarks: There are several side notes to add to this post.  Many readers will probably recoil at my introduction of a <tt>*&#62;&#62;&#62;*</tt> combinator.  This has type:</p>
<pre>(<b>*&#62;&#62;&#62;*</b>) :: Show b =&#62; ProcessPipelineLabel a b -&#62; ProcessPipelineLabel b c
  -&#62; ProcessPipelineLabel a c</pre>
<p>The show constraint is the reason that I could not declare an arrow instance &#8212; so any fix to this problem had to involve declaring a similar combinator outside the arrow, unless I&#8217;ve missed another approach.</p>
<p>The naming of the processes can be simplified with the use of a pre-processor.  Here are the same process declarations, named using the C pre-processor:</p>
<pre>#define PR(p) (arrLabel #p p)

badMode = PR(group) <b>*&#62;&#62;&#62;*</b> PR(maxByLength) <b>*&#62;&#62;&#62;*</b> PR(head)
  <font color="Blue">where</font>
    maxByLength = maximumBy (comparing length)

mostFreqWord = PR(makeLower) <b>*&#62;&#62;&#62;*</b> PR(words) <b>*&#62;&#62;&#62;*</b> badMode
  <font color="Blue">where</font>
    makeLower = map toLower
</pre>
<p>Unfortunately, GHC with the <tt>-cpp</tt> flag <a href="http://www.haskell.org/pipermail/glasgow-haskell-users/2009-October/017925.html">doesn&#8217;t support this stringize operator</a> so you have to run the C pre-processor on the file first as part of your build process before feeding it to GHC, or use the <tt>-F</tt> flag with a wrapper script.</p>
<p>Showing the data being passed down the channel obviously forces the data, which may potentially affect the behaviour.  Whether you show the data in the trace can be turned on and off &#8212; and you can also supply a custom function to show your data if, for example, you are passing around infinite lists (you could just print the first three items).  I&#8217;ve tried to give the gist here rather than all the details, but the CHP documentation explains the different ways you can record a channel communication in a trace.</p>
<p>I will present this example at the fringe session at the CPA 2009 conference this evening here in Eindhoven.  If anyone is interested, last year&#8217;s paper on tracing is available in <a href="http://twistedsquare.com/publications.html">my list of publications</a>, with this year&#8217;s publication to be added shortly.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[A New Blurb Book Edition Has Just Been Published]]></title>
<link>http://leftluggage.wordpress.com/2009/10/28/a-new-blurb-book-edition-has-just-been-published/</link>
<pubDate>Wed, 28 Oct 2009 12:07:18 +0000</pubDate>
<dc:creator>johnperivolaris</dc:creator>
<guid>http://leftluggage.wordpress.com/2009/10/28/a-new-blurb-book-edition-has-just-been-published/</guid>
<description><![CDATA[Left Luggage The Journey of a Su&#8230; By John Perivolaris Book Preview]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="badge" style="border:1px solid #a0a0a0;position:relative;width:120px;height:240px;background-color:white;margin:0;padding:10px;">
<div style="border:0 none;position:absolute;top:10px;left:10px;width:118px;height:100px;line-height:118px;text-align:center;margin:0;padding:0;"><a style="border:0;margin:0;padding:0;" href="http://www.blurb.com/bookstore/detail/959187/?utm_source=badge&#38;utm_medium=banner&#38;utm_content=140x240" target="_blank"> <img style="border:1px solid #a7a7a7;width:118px;vertical-align:middle;margin:0;padding:0;" src="http://www.blurb.com//images/uploads/catalog/13/95713/959187-284de3f6eb22b965f5f08a5c37eaaac1.jpg" alt="Left Luggage" /> </a></div>
<div style="border:0 none;overflow:hidden;position:absolute;top:140px;left:10px;text-align:left;margin:0;padding:0;">
<div style="border:0 none;overflow:hidden;width:105px;line-height:18px;margin:0;padding:0;"><a style="font:bold 12px Arial, Helvetica, sans-serif;color:#fd7820;text-decoration:none;" href="http://www.blurb.com/bookstore/detail/959187?utm_source=badge&#38;utm_medium=banner&#38;utm_content=140x240">Left Luggage</a></div>
<div style="font:bold 10px Arial, Helvetica, sans-serif;color:#545454;line-height:15px;border:0;margin:0;padding:0;">The Journey of a Su&#8230;</div>
<div style="font:10px Arial, Helvetica, sans-serif;color:#545454;line-height:15px;border:0;margin:0;padding:0;">By John Perivolaris</div>
</div>
<div style="border:0 none;position:absolute;top:197px;right:10px;margin:0;padding:0;"><a style="border:0;text-decoration:none;margin:0;padding:0;" href="http://www.blurb.com/?utm_source=badge&#38;utm_medium=banner&#38;utm_content=140x240" target="_blank"> <img style="border:0;margin:0;padding:0;" src="http://www.blurb.com/images/badge/photo-book.png" alt="Photo book" /> </a></div>
<div style="border:0 none;position:absolute;bottom:8px;left:10px;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;font-size:10px;color:#fd7820;line-height:15px;margin:0;padding:0;"><a style="color:#fd7820;text-decoration:none;" title="Book Preview" href="http://www.blurb.com/books/959187">Book Preview</a></div>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[A Chance Return? 26 October, 2009]]></title>
<link>http://leftluggage.wordpress.com/2009/10/26/a-chance-return-26-october-2009/</link>
<pubDate>Mon, 26 Oct 2009 15:54:43 +0000</pubDate>
<dc:creator>johnperivolaris</dc:creator>
<guid>http://leftluggage.wordpress.com/2009/10/26/a-chance-return-26-october-2009/</guid>
<description><![CDATA[As I write these final words, it&#8217;s been six weeks since the suitcase returned to its owner, bu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dr_john2005/4046326913/"><img class="flickr-photo" src="http://farm3.static.flickr.com/2555/4046326913_b7723c8e6d.jpg" alt="" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dr_john2005/4046326913/"><br />
</a></span></p>
</div>
<p class="flickr-yourcomment">As I write these final words, it&#8217;s been six weeks since the suitcase returned to its owner, but I now realise that a small trace of it has never left. When sifting through a pile of papers untouched since June, the suitcase unexpectedly makes a return: a final Polaroid I took of it upon its arrival at my home falls out from a book&#8217;s pages.</p>
<p>So this memento of the suitcase will remain with me in its stead. But would it not be unkind not to let this, albeit virtually, also travel? I send a scan of it to John and can but wish it <em>bon voyage</em>.</p>
<p>Image &#38; Text © Joseph McGonagle, 2009</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[`If photographs could talk...', Joseph McGonagle, Manchester, 11 September - 26 October, 2009]]></title>
<link>http://leftluggage.wordpress.com/2009/10/26/if-photographs-could-talk-joseph-mcgonagle-manchester-11-september-2009/</link>
<pubDate>Mon, 26 Oct 2009 14:51:16 +0000</pubDate>
<dc:creator>johnperivolaris</dc:creator>
<guid>http://leftluggage.wordpress.com/2009/10/26/if-photographs-could-talk-joseph-mcgonagle-manchester-11-september-2009/</guid>
<description><![CDATA[&nbsp; John noted in my journal entries over the summer that when I arrived in Algiers I put down my]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dr_john2005/4046848518/"><img class="flickr-photo" src="http://farm3.static.flickr.com/2679/4046848518_31c9b6d021.jpg" alt="" /></a><span class="flickr-caption"><a href="http://www.flickr.com/photos/dr_john2005/4046848518/"><br />
</a></span>
<p>&#160;</p>
</div>
<p class="flickr-yourcomment">John noted in my journal entries over the summer that when I arrived in Algiers I put down my pen and switched to using my camera to continue the dialogue.</p>
<p>But this was not as straightforward as it might seem.</p>
<p>I had been warned before by several people that taking photographs in Algiers would not be easy &#8211; and is, in fact, to be discouraged. On my previous visit to the city a year earlier I had noted that the camera culture endemic to the UK&#8217;s streets seemed nowhere to be found. I didn&#8217;t think this was necessarily a question of limited means or access to photographic equipment: as any visitor to Algiers will immediately realise, mobile phones (many of which have cameras) are ubiquitous and there is no shortage of camera studios and film processing shops in the city centre. The invisibility of the street photographer seemed more down to local and cultural reasons rather than the socio-economic ones Western visitors may readily assume.</p>
<p>But, of course, not all street photographers in the city would be locals anyway: I might have expected to see a more visible presence of visitors there, but tourism clearly continues not to be a priority. This is not to say that Algiers is devoid of such influxes: many foreigners are residents, and the current numbers of Chinese migrants working on major construction projects across Algeria is testament to this. As I described earlier, summertime also heralds an increase in the circulation of diasporas between France and Algeria, and it was clear that many of the people thronging the city&#8217;s streets in July were visiting family and friends during their summer holidays. Nevertheless, I very seldom saw someone actually using a camera &#8211; and on the very rare occasions when I have in the past, it has mostly been by the city&#8217;s seafront, with families posing against the backdrop of the Mediterranean.</p>
<p>Discretion is therefore de rigueur, and from discussions I have had with local photographers, it&#8217;s clear that surreptitiousness is crucial. Consequently, many of my photographs were taken in carefully chosen places: in famous sites outside the city and areas where I felt less conspicuous. But looking back at my images now, it&#8217;s not a coincidence that few feature people: apart from the attendant ethical questions this would pose, I was also concerned by the more immediate consequences of being caught snapping by local police.</p>
<p>Indeed, my brief brush with the law during my stay was a case in point. Unable to sleep one morning as dawn broke, I decided to venture outside onto my fifth-floor hotel balcony in order to photograph the skyline and roofs opposite. Through blurry eyes, I dozily composed several images. My snapping abruptly stopped, however, when out of the corner of my left eye I discerned a policeman down below, hands firmly on his hips, silently staring up at me&#8230;</p>
<p>The automatic flash on my camera had given me away. Without wishing to acknowledge his presence &#8211; and keen to avoid the detailed conversation that would undoubtedly ensue &#8211; I quietly retired inside my room and gently closed the window behind me. I then waited for the knock on the door&#8230;</p>
<p>But none ever came. Now fully awake, and feeling suitably foolish, I returned to bed and tried to fall back to sleep. It would be easy to write off this incident as an illustration of the evident nervousness and suspicion that surrounds the use of photography within Algiers, but given recent events closer to home &#8211; that have notably inspired the British Journal of Photography&#8217;s current `Not A Crime&#8217; campaign (http://www.not-a-crime.com/), alongside the `I&#8217;m a Photographer, Not a Terrorist&#8217; campaign (http://photographernotaterrorist.org/) &#8211; perhaps the plight of photographers in the UK is not so dissimilar&#8230;</p>
<p>Away from my travels, as a researcher in visual culture, over time I have become acutely conscious of how hazardous working with images can be and sometimes wondered if they shouldn&#8217;t have a warning sign. It&#8217;s often all too tempting to use images as mere `illustration&#8217; of a pre-existing argument, as if they were little more than an ingredient in a recipe. It seems far more preferable to let images `speak&#8217; for themselves&#8230; but if images could `talk&#8217;, what would they say?</p>
<p>I have always been interested in how an image can denote very different things simply through the use of cropping and choice of scale, the location where it appears, and which text accompanies it. The seemingly ever-increasing circulation of images via online social networking and media sites serves as a reminder of how foolish it would be to assume that an image has any inherent meaning &#8211; or that there&#8217;s only ever one and that this is immutable.</p>
<p>This thought leads me to recall Susan Sontag&#8217;s assertion that:</p>
<p>`Strictly speaking, one never understands anything from a photograph&#8217;</p>
<p>Susan Sontag, <em>On Photography</em> (London: Penguin, 2002) (orig. publ. 1979), p. 23</p>
<p>&#8230;a timely reminder of how a photograph&#8217;s veneer of veracity may peel back to reveal nothing: the more you look, the less you see.</p>
<p>Nevertheless, to reflect upon this collaboration with John, it&#8217;s been enlightening to observe which photographs he has chosen from those I offered him, how he processed them, and which of the many possible narratives have developed over the time of my participation. The selection of images and positioning of text alongside them has duly shaped our narrative and undoubtedly encouraged certain meanings. Perhaps, in light of this, we could reformulate Sontag&#8217;s statement: whilst one may never understand anything from a photograph, with the auxiliary power of an accompanying text, can&#8217;t they be made to say almost anything?</p>
<p>As our dialogue in <em>Left Luggage </em>thus begins to draw to a close, John sent me an e-mail asking me to think about:</p>
<p>`The role of photography in your trip and its relationship with your simultaneous roles of researcher, tourist, diary writer, suitcase carrier, North European, and linguist. I was also thinking of the relationship between the snapshots and the texts you have produced, as well as the ensuing dialogue between us traced in <em>Left Luggage</em>.&#8217;</p>
<p>I now become conscious of a link between the function of the suitcase in <em>Left Luggage</em> and of photography within it. Whilst the use of accompanying texts, blog entry titles, photograph captions and sequencing of photographs all work to anchor the uploaded images, is not the fate of these images, circulating virtually via the blog, also to travel?</p>
<p>Participants in <em>Left Luggage</em> may briefly borrow John&#8217;s suitcase, but perhaps its viewers could be interpreted in turn as `borrowers&#8217; too: the image here, like the case in between uses, an empty vessel filled with whatever significance its user chooses. The image considered thus would become an item of left luggage too: deposited online but in suspended animation until accessed or, indeed, reclaimed.</p>
<p>Or should we, alternatively, see the viewers as passengers too, transported elsewhere by the images? Do images travel with you, carried within your mind? Could viewers themselves be `carriers&#8217;? Photography as infection?</p>
<p>But as I muse about the role of images here, another voice from the past returns with a timely warning never to take photography at face value. For, as Barthes claimed:</p>
<p>`Au fond, une photo ressemble à n&#8217;importe qui, sauf à celui qu&#8217;elle représente&#8217;</p>
<p>(Ultimately, a photo resembles anyone, except the person it represents)</p>
<p>Roland Barthes, <em>La Chambre claire: Note sur la photographie</em> (Paris: Gallimard, 1980), p. 160.</p>
<p>I had hesitated before suggesting I participate personally in Left Luggage: perhaps I had had nothing to fear all along.<br />
Text © Joseph McGonagle, 2009</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mush Crazier the Second Time]]></title>
<link>http://bydog.wordpress.com/2009/10/19/mush-crazier-the-second-time/</link>
<pubDate>Mon, 19 Oct 2009 21:14:22 +0000</pubDate>
<dc:creator>Working Dog Press</dc:creator>
<guid>http://bydog.wordpress.com/2009/10/19/mush-crazier-the-second-time/</guid>
<description><![CDATA[This is a much belated blog about our second sled outing with our dogs which occured a few weeks ago]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is a much belated blog about our second sled outing with our dogs which occured a few weeks ago.  This sled trip was a little more of a fiasco than the first.  Once again Nicki was kind to lend us a sled and a dog.  At first she was going to give us two of her dogs but after a conversation with another musher we took a different pair.  So we put Carmel and Cashew (the two from the other musher) in the lead, Tensaw (our pup) next in the traces, then Blue and Kona in the wheel.  With me in the sled and Cobey driving the team we took off.  Right off the bat, it was crazy and Carmel and Cashew obviously didn&#8217;t want to lead with Tensaw the terror behind them.  So Tensaw got a crack at the lead with Raven (Nicki&#8217;s dog), who was just added to the team.  In this case, Tensaw was only interested in Raven, and Carmel and Cashew just wanted to return to their team.  After a few minutes of confusion and tangles, Cobey removed Carmel and Cashew from the traces and sent me off with Raven in the lead, Tensaw second in the traces and Kona and Blue at the wheel.  </p>
<p>Things went well until we passed by a man with his small ankle biter dog (that I&#8217;m sure the Huskies thought was a cat).  The dogs were doing well and ignoring it until Raven make a quick turn towards the dog.  By the time I was off the sled and to her she had the dog by the throat and had picked it up off the ground.  I got her to release it and it took off running down the trail (the man eventually caught his dog before the other two sled teams came up the trail).  After that whole mess, I got the dogs lined out and we continued on.  We probably made it about 2 -2.25 miles up the trail before I decided our dogs had had enough pulling (after all they are new to it and need to be conditioned to this type of running/work).  The way back was all down hill and we passed by the man with his dog, whom I apologized to and who was very understanding of the whole ordeal.  At one point during the run after we turned around and Nicki was still headed up the trail with her team, I switched Raven and Kona in the traces because Raven wasn&#8217;t interested in leading.  Kona did an amazing job!  She is a REALLY hard worker, aims to please and does what she&#8217;s asked&#8230;which I now realize makes her our best candidate for lead dog of the three.  And after that day, I&#8217;d say she&#8217;d do a pretty good job.  Blue also worked really hard.  You could tell she was sore and would fall back in the traces but then would surge forward and pull for a bit before falling behind again and continuing the cycle.  She worked hard but you could tell she was either tired or her hip was sore.</p>
<p>This was another great mushing adventure and we&#8217;re getting pretty serious about it.   We want to get a few more dogs, all Siberians, and especially a trained lead dog,  Right now we&#8217;re putting those plans on hold until next fall/winter season because Cobey is moving to Alaska for seasonal work this spring through fall.  But we&#8217;ll keep you posted on any new advances in our sled team.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Bilan]]></title>
<link>http://garancegaranceblog.wordpress.com/2009/11/28/bilan/</link>
<pubDate>Sat, 28 Nov 2009 10:47:18 +0000</pubDate>
<dc:creator>garance</dc:creator>
<guid>http://garancegaranceblog.wordpress.com/2009/11/28/bilan/</guid>
<description><![CDATA[Nos deux corps côte à côte. Hiératiques. De marbre. Si lisses. Doux. Mais insensibles. Nos peaux ne ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Nos deux corps côte à côte. Hiératiques. De marbre. Si lisses. Doux. Mais insensibles. Nos peaux ne s’emeuvent plus. Trop imprégnées l’une de l’autre, trop attendues. Quand mon regard se pose sur toi, il ne s’attarde plus. Il voit à travers. Vers un ailleurs. Vers d’autres possibles. Et pourtant, il se heurte encore à toi. C’est insoluble.</p>
<p>La peau glacée, les battements sourds qui grondent comme un orage, menaçants. Les yeux écarquillés à l’infini, pour essayer de voir. Essayer d’atteindre. Encore. Le plus jamais. L’irrépressible. Toi. Par dessus tout.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
