<?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 therning.org/ magnus</title>
	<atom:link href="http://therning.org/magnus/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://therning.org/magnus</link>
	<description>Incoherent mumblings</description>
	<lastBuildDate>Wed, 08 Aug 2012 00:21:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>Comment on Strachey, referential transparency, Haskell by Thiago Negri</title>
		<link>http://therning.org/magnus/archives/1093/comment-page-1#comment-251642</link>
		<dc:creator>Thiago Negri</dc:creator>
		<pubDate>Wed, 08 Aug 2012 00:21:01 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1093#comment-251642</guid>
		<description><![CDATA[&lt;p&gt;IMO&lt;/p&gt;

&lt;p&gt;All that buzz about RT is going nowhere.&lt;/p&gt;

&lt;p&gt;Maybe, I&#039;ve learned it wrong. But I&#039;ve never heard of RT when I was absorbed in an imperative world.
RT is a common term in functional programming. I&#039;ve read the term and it&#039;s &quot;definition&quot; just after a couple of Haskell&#039;s tutorials.&lt;/p&gt;

&lt;p&gt;To me, it&#039;s simple as that: RT is the ability to switch sentences that refer to the same thing without changing the result.&lt;/p&gt;

&lt;p&gt;In Haskell, you can do that freely. Even inside IO monad! If you do anything wrong, the compiler won&#039;t let you continue.
In Java, you can do that too, but you need to be aware of all the environment and sequencing in order to preserve the result.&lt;/p&gt;

&lt;p&gt;Sequencing in the IO monad is enforced by the types, an IO String will not fit as a valid argument for a function that needs a String, so you will not be able to inline an IO String value, you are enforced to use the bind operator.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>IMO</p>

<p>All that buzz about RT is going nowhere.</p>

<p>Maybe, I&#8217;ve learned it wrong. But I&#8217;ve never heard of RT when I was absorbed in an imperative world.
RT is a common term in functional programming. I&#8217;ve read the term and it&#8217;s &#8220;definition&#8221; just after a couple of Haskell&#8217;s tutorials.</p>

<p>To me, it&#8217;s simple as that: RT is the ability to switch sentences that refer to the same thing without changing the result.</p>

<p>In Haskell, you can do that freely. Even inside IO monad! If you do anything wrong, the compiler won&#8217;t let you continue.
In Java, you can do that too, but you need to be aware of all the environment and sequencing in order to preserve the result.</p>

<p>Sequencing in the IO monad is enforced by the types, an IO String will not fit as a valid argument for a function that needs a String, so you will not be able to inline an IO String value, you are enforced to use the bind operator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Strachey, referential transparency, Haskell by AntC</title>
		<link>http://therning.org/magnus/archives/1093/comment-page-1#comment-251439</link>
		<dc:creator>AntC</dc:creator>
		<pubDate>Sun, 05 Aug 2012 21:43:19 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1093#comment-251439</guid>
		<description><![CDATA[&lt;p&gt;Hi Magnus, Re: &quot;An open question (to me) is if anyone has built on Strachey’s work in this area ...&quot;&lt;/p&gt;

&lt;p&gt;At the time of his writing, Strachey was heavily involved with the team developing the language CPL.&lt;/p&gt;

&lt;p&gt;The most rigorous use of L-values and R-values was (is) BCPL (Martin Richards) -- which some claims stands for &quot;Basically Christopher&#039;s Programming Language&quot;. BCPL inspired C, and the rest is history.&lt;/p&gt;

&lt;p&gt;Regarding IO and side effects, CPL, and BCPL were conventional for their day (and followed ALGOL 60) in leaving IO as being &#039;implementation dependent&#039;. These were all in the von Neumann/Turing/procedural model of computing. They all used destructive assignment.&lt;/p&gt;

&lt;p&gt;BCPL supports assignment to L-values. In particular, the R-values of functions/procedures are just static cells holding pointers to the code body. Function application is just entering that code point using the current stack frame. So you can put an arbitrary expression to yield the code point:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(x &gt; y -&gt; SIN, COS) (z)                        // ... -&gt; ... , ... is conditional expression, apply to z
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or put function calls on the LHS of assignments:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Array (x, y) := z                              // array update (note that arrays are not native)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or change a function to point to a different code point:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;TRIG := (x &gt; y -&gt; SIN, COS)                    // excellent way to perplex any reader
                                               // but can achieve something like anonymous funs
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Strachey died tragically young. Oh, that he could have continued, and collaborated with the wealth of PL research going on at the time.&lt;/p&gt;

&lt;p&gt;AntC&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Hi Magnus, Re: &#8220;An open question (to me) is if anyone has built on Strachey’s work in this area &#8230;&#8221;</p>

<p>At the time of his writing, Strachey was heavily involved with the team developing the language CPL.</p>

<p>The most rigorous use of L-values and R-values was (is) BCPL (Martin Richards) &#8212; which some claims stands for &#8220;Basically Christopher&#8217;s Programming Language&#8221;. BCPL inspired C, and the rest is history.</p>

<p>Regarding IO and side effects, CPL, and BCPL were conventional for their day (and followed ALGOL 60) in leaving IO as being &#8216;implementation dependent&#8217;. These were all in the von Neumann/Turing/procedural model of computing. They all used destructive assignment.</p>

<p>BCPL supports assignment to L-values. In particular, the R-values of functions/procedures are just static cells holding pointers to the code body. Function application is just entering that code point using the current stack frame. So you can put an arbitrary expression to yield the code point:</p>

<pre><code>(x &gt; y -&gt; SIN, COS) (z)                        // ... -&gt; ... , ... is conditional expression, apply to z
</code></pre>

<p>Or put function calls on the LHS of assignments:</p>

<pre><code>Array (x, y) := z                              // array update (note that arrays are not native)
</code></pre>

<p>Or change a function to point to a different code point:</p>

<pre><code>TRIG := (x &gt; y -&gt; SIN, COS)                    // excellent way to perplex any reader
                                               // but can achieve something like anonymous funs
</code></pre>

<p>Strachey died tragically young. Oh, that he could have continued, and collaborated with the wealth of PL research going on at the time.</p>

<p>AntC</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Strachey, referential transparency, Haskell by TuukkaH</title>
		<link>http://therning.org/magnus/archives/1093/comment-page-1#comment-251414</link>
		<dc:creator>TuukkaH</dc:creator>
		<pubDate>Sun, 05 Aug 2012 13:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1093#comment-251414</guid>
		<description><![CDATA[&lt;p&gt;I think we have to carefully consider the language level whose RT we&#039;re talking about: do we include statements, function calls, embedded languages, and the language runtime?&lt;/p&gt;

&lt;p&gt;Monadic expressions (of Haskell) are a RT way of encoding an imperative language that isn&#039;t necessarily RT. The potential side effects lie in the semantics of the encoded language (which isn&#039;t Haskell, although you could consider it a part of Haskell). Similarily, the underlying implementation of a monad might or might not rely on unsafe/non-RT constructions.&lt;/p&gt;

&lt;p&gt;From that point of view, Haskell with the IO monad is RT, but the execution of Haskell with IO is not RT.&lt;/p&gt;

&lt;p&gt;In a similar manner, you might claim that C is RT and the side effects lie on a different level. But as a programmer, you don&#039;t have separate access to the RT level so its existence is theoretical. In C, you just can&#039;t replace the expression random() + random() with 2 * random() but in (non-unsafe) Haskell you can. In the end, you can twist the terms in various ways but you shouldn&#039;t hide the clear differences between C and Haskell.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>I think we have to carefully consider the language level whose RT we&#8217;re talking about: do we include statements, function calls, embedded languages, and the language runtime?</p>

<p>Monadic expressions (of Haskell) are a RT way of encoding an imperative language that isn&#8217;t necessarily RT. The potential side effects lie in the semantics of the encoded language (which isn&#8217;t Haskell, although you could consider it a part of Haskell). Similarily, the underlying implementation of a monad might or might not rely on unsafe/non-RT constructions.</p>

<p>From that point of view, Haskell with the IO monad is RT, but the execution of Haskell with IO is not RT.</p>

<p>In a similar manner, you might claim that C is RT and the side effects lie on a different level. But as a programmer, you don&#8217;t have separate access to the RT level so its existence is theoretical. In C, you just can&#8217;t replace the expression random() + random() with 2 * random() but in (non-unsafe) Haskell you can. In the end, you can twist the terms in various ways but you shouldn&#8217;t hide the clear differences between C and Haskell.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Wrapping IO, part 2 by therning.org/ magnus &#187; Blog Archive &#187; Strachey, referential transparency, Haskell</title>
		<link>http://therning.org/magnus/archives/742/comment-page-1#comment-251378</link>
		<dc:creator>therning.org/ magnus &#187; Blog Archive &#187; Strachey, referential transparency, Haskell</dc:creator>
		<pubDate>Sun, 05 Aug 2012 04:24:18 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=742#comment-251378</guid>
		<description><![CDATA[&lt;p&gt;[...] possible to make subsets of IO (by wrapping IO, see e.g. my own posts on wrapping IO, part 1 and wrapping IO, part 2). I&#8217;m sure that if including the world in the environment is the way to achieve RT with [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] possible to make subsets of IO (by wrapping IO, see e.g. my own posts on wrapping IO, part 1 and wrapping IO, part 2). I&#8217;m sure that if including the world in the environment is the way to achieve RT with [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Wrapping IO, part 1 by therning.org/ magnus &#187; Blog Archive &#187; Strachey, referential transparency, Haskell</title>
		<link>http://therning.org/magnus/archives/738/comment-page-1#comment-251377</link>
		<dc:creator>therning.org/ magnus &#187; Blog Archive &#187; Strachey, referential transparency, Haskell</dc:creator>
		<pubDate>Sun, 05 Aug 2012 04:22:51 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=738#comment-251377</guid>
		<description><![CDATA[&lt;p&gt;[...] in Haskell it&#8217;s possible to make subsets of IO (by wrapping IO, see e.g. my own posts on wrapping IO, part 1 and wrapping IO, part 2). I&#8217;m sure that if including the world in the environment is the way [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] in Haskell it&#8217;s possible to make subsets of IO (by wrapping IO, see e.g. my own posts on wrapping IO, part 1 and wrapping IO, part 2). I&#8217;m sure that if including the world in the environment is the way [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Manual setup of Qt+Eclipse on Windows by Bryan Green</title>
		<link>http://therning.org/magnus/archives/1023/comment-page-1#comment-250503</link>
		<dc:creator>Bryan Green</dc:creator>
		<pubDate>Fri, 27 Jul 2012 12:24:28 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1023#comment-250503</guid>
		<description><![CDATA[&lt;p&gt;Thanks for another great post!  It is good to see some nice posts on using Qt for windows as well as professional work.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Thanks for another great post!  It is good to see some nice posts on using Qt for windows as well as professional work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 0MQ and Haskell by Dag</title>
		<link>http://therning.org/magnus/archives/1009/comment-page-1#comment-236869</link>
		<dc:creator>Dag</dc:creator>
		<pubDate>Thu, 22 Mar 2012 15:44:10 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1009#comment-236869</guid>
		<description><![CDATA[&lt;p&gt;You know &lt;code&gt;forM_ = flip mapM_&lt;/code&gt; right, just trying to spare an import?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>You know <code>forM_ = flip mapM_</code> right, just trying to spare an import?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C and Haskell sitting in a tree&#8230; by anon</title>
		<link>http://therning.org/magnus/archives/238/comment-page-1#comment-236816</link>
		<dc:creator>anon</dc:creator>
		<pubDate>Thu, 22 Mar 2012 02:00:22 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/238#comment-236816</guid>
		<description><![CDATA[&lt;p&gt;excellent, thank you&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>excellent, thank you</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 0MQ and Haskell by Mark</title>
		<link>http://therning.org/magnus/archives/1009/comment-page-1#comment-235672</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Sun, 11 Mar 2012 12:51:13 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1009#comment-235672</guid>
		<description><![CDATA[&lt;p&gt;@Magnus not yet, it&#039;s still at a very early stage. We can successfully receive and send messages, but we haven&#039;t got proper support for the different socket types. I&#039;m a bit torn here, actually - the C implementation uses a state machine to model the allowable patterns (ie, a REQ socket has to send then receive in strict alternation, and vice-versa for a REP socket) - it feels like something we ought to be able to model in the type system in Haskell.&lt;/p&gt;

&lt;p&gt;Interestingly, I&#039;ve found it changes the way I write C much more than the way I write Haskell. The appeal for Haskell is in being able to interoperate with other runtimes, i think: if you just wanted intra-process coordination, you already have cheap threads and MVar/TVar/STM etc.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>@Magnus not yet, it&#8217;s still at a very early stage. We can successfully receive and send messages, but we haven&#8217;t got proper support for the different socket types. I&#8217;m a bit torn here, actually &#8211; the C implementation uses a state machine to model the allowable patterns (ie, a REQ socket has to send then receive in strict alternation, and vice-versa for a REP socket) &#8211; it feels like something we ought to be able to model in the type system in Haskell.</p>

<p>Interestingly, I&#8217;ve found it changes the way I write C much more than the way I write Haskell. The appeal for Haskell is in being able to interoperate with other runtimes, i think: if you just wanted intra-process coordination, you already have cheap threads and MVar/TVar/STM etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 0MQ and Haskell by Magnus</title>
		<link>http://therning.org/magnus/archives/1009/comment-page-1#comment-235650</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Sun, 11 Mar 2012 08:38:15 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1009#comment-235650</guid>
		<description><![CDATA[&lt;p&gt;&lt;em&gt;@Mark&lt;/em&gt;, Cool, do you already have some numbers comparing your pure Haskell implementation against the FFI implementation in zeromq?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p><em>@Mark</em>, Cool, do you already have some numbers comparing your pure Haskell implementation against the FFI implementation in zeromq?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 0MQ and Haskell by Magnus</title>
		<link>http://therning.org/magnus/archives/1009/comment-page-1#comment-235644</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Sun, 11 Mar 2012 08:29:11 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1009#comment-235644</guid>
		<description><![CDATA[&lt;p&gt;&lt;em&gt;@anonymous&lt;/em&gt;, indeed, I&#039;d love reading something like that too.  Have you started writing it yet? ;)&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p><em>@anonymous</em>, indeed, I&#8217;d love reading something like that too.  Have you started writing it yet? <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 0MQ and Haskell by Mark Wotton</title>
		<link>http://therning.org/magnus/archives/1009/comment-page-1#comment-235319</link>
		<dc:creator>Mark Wotton</dc:creator>
		<pubDate>Wed, 07 Mar 2012 08:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1009#comment-235319</guid>
		<description><![CDATA[&lt;p&gt;Xavier Lange and I have been working on a pure Haskell implementation of 0MQ too.  I&#039;ve been using the binding pretty heavily, but there are some things you can&#039;t do directly with it. Still, it&#039;s exciting technology, I&#039;ve put a large part of ninjablocks.com&#039;s back end onto it (albeit using ruby) and I&#039;m looking forward to shifting more of it to Haskell.&lt;/p&gt;

&lt;p&gt;http://github.com/ninjablocks/zmqhs (at least until Xavier pulls my changes in)&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Xavier Lange and I have been working on a pure Haskell implementation of 0MQ too.  I&#8217;ve been using the binding pretty heavily, but there are some things you can&#8217;t do directly with it. Still, it&#8217;s exciting technology, I&#8217;ve put a large part of ninjablocks.com&#8217;s back end onto it (albeit using ruby) and I&#8217;m looking forward to shifting more of it to Haskell.</p>

<p><a href="http://github.com/ninjablocks/zmqhs" rel="nofollow">http://github.com/ninjablocks/zmqhs</a> (at least until Xavier pulls my changes in)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 0MQ and Haskell by anonymous</title>
		<link>http://therning.org/magnus/archives/1009/comment-page-1#comment-235303</link>
		<dc:creator>anonymous</dc:creator>
		<pubDate>Wed, 07 Mar 2012 04:53:53 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=1009#comment-235303</guid>
		<description><![CDATA[&lt;blockquote&gt;
  &lt;p&gt;I’m not sure why, but the Haskell client dies after receiving just a few messages (they are properly filtered though).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Someone should write a blog post where they successfully debug a problem like this. That would be a pretty interesting display of real world Haskell and its development tools.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<blockquote>
  <p>I’m not sure why, but the Haskell client dies after receiving just a few messages (they are properly filtered though).</p>
</blockquote>

<p>Someone should write a blog post where they successfully debug a problem like this. That would be a pretty interesting display of real world Haskell and its development tools.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on GConf in Python by web(cslai) &#124; Creating a new daemon script for Meego 1.2 Harmattan</title>
		<link>http://therning.org/magnus/archives/57/comment-page-1#comment-233091</link>
		<dc:creator>web(cslai) &#124; Creating a new daemon script for Meego 1.2 Harmattan</dc:creator>
		<pubDate>Wed, 08 Feb 2012 09:24:47 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/57#comment-233091</guid>
		<description><![CDATA[&lt;p&gt;[...] on and off the settings is not as complicated as it seems. Using python-gconf, the actual code to do the work is [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] on and off the settings is not as complicated as it seems. Using python-gconf, the actual code to do the work is [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on LXDE and xmonad by Magnus</title>
		<link>http://therning.org/magnus/archives/974/comment-page-1#comment-227309</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Fri, 09 Dec 2011 20:40:28 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=974#comment-227309</guid>
		<description><![CDATA[&lt;p&gt;@Otto, your comment cracked me up, so I just had to send a thank-you email:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Dear Mr Kranz,&lt;/p&gt;
  
  &lt;p&gt;Thank you so much for your valuable feedback on my most recent &lt;a href=&quot;http://therning.org/magnus/archives/974&quot; rel=&quot;nofollow&quot;&gt;blog entry&lt;/a&gt;.  I do understand why you use a spam protection service such
  as mailmetrash.com, since you must receive an absolute deluge of
  thank-you emails for your tireless effort in improving the writing on
  the internet.&lt;/p&gt;
  
  &lt;p&gt;I do hope you are considering joining the grammar police.  If you are
  in need of a reference for your application then I&#039;ll be happy to help
  out in any way I can.&lt;/p&gt;
  
  &lt;p&gt;Yours sincerely,
  /M&lt;/p&gt;
&lt;/blockquote&gt;
]]></description>
		<content:encoded><![CDATA[<p>@Otto, your comment cracked me up, so I just had to send a thank-you email:</p>

<blockquote>
  <p>Dear Mr Kranz,</p>
  
  <p>Thank you so much for your valuable feedback on my most recent <a href="http://therning.org/magnus/archives/974" rel="nofollow">blog entry</a>.  I do understand why you use a spam protection service such
  as mailmetrash.com, since you must receive an absolute deluge of
  thank-you emails for your tireless effort in improving the writing on
  the internet.</p>
  
  <p>I do hope you are considering joining the grammar police.  If you are
  in need of a reference for your application then I&#8217;ll be happy to help
  out in any way I can.</p>
  
  <p>Yours sincerely,
  /M</p>
</blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on LXDE and xmonad by Berggeist</title>
		<link>http://therning.org/magnus/archives/974/comment-page-1#comment-227298</link>
		<dc:creator>Berggeist</dc:creator>
		<pubDate>Fri, 09 Dec 2011 16:16:14 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=974#comment-227298</guid>
		<description><![CDATA[&lt;p&gt;learn to use past tense: s/create/created/&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>learn to use past tense: s/create/created/</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Anshuman Bhaduri</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-227215</link>
		<dc:creator>Anshuman Bhaduri</dc:creator>
		<pubDate>Thu, 08 Dec 2011 08:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-227215</guid>
		<description><![CDATA[&lt;p&gt;Ah yup, &lt;a href=&quot;https://wiki.archlinux.org/index.php/Xmonad#GNOME_3_and_xmonad&quot; rel=&quot;nofollow&quot;&gt;the Arch Linux wiki&lt;/a&gt; also states the same thing that I mentioned in my previous comment. Also, as mentioned in the &lt;a href=&quot;http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Configure_Xmonad_to_interoperate_with_Gnome&quot; rel=&quot;nofollow&quot;&gt;Xmonad wiki&lt;/a&gt;, I had to have my &lt;code&gt;~/.xmonad/xmonad.hs&lt;/code&gt; config as&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import XMonad
import XMonad.Config.Gnome

main = xmonad gnomeConfig
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;(this requires the &lt;code&gt;xmonad-contrib&lt;/code&gt; package on Arch Linux).
Now GNOME panel shows up just fine, along with a list of workspaces. I guess it shouldn&#039;t be too hard from here.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Ah yup, <a href="https://wiki.archlinux.org/index.php/Xmonad#GNOME_3_and_xmonad" rel="nofollow">the Arch Linux wiki</a> also states the same thing that I mentioned in my previous comment. Also, as mentioned in the <a href="http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Configure_Xmonad_to_interoperate_with_Gnome" rel="nofollow">Xmonad wiki</a>, I had to have my <code>~/.xmonad/xmonad.hs</code> config as</p>

<pre><code>import XMonad
import XMonad.Config.Gnome

main = xmonad gnomeConfig
</code></pre>

<p>(this requires the <code>xmonad-contrib</code> package on Arch Linux).
Now GNOME panel shows up just fine, along with a list of workspaces. I guess it shouldn&#8217;t be too hard from here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Anshuman Bhaduri</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-227214</link>
		<dc:creator>Anshuman Bhaduri</dc:creator>
		<pubDate>Thu, 08 Dec 2011 08:27:13 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-227214</guid>
		<description><![CDATA[&lt;p&gt;Like it says on the &lt;a href=&quot;http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Setting_up_Gnome_to_use_Xmonad&quot; rel=&quot;nofollow&quot;&gt;Xmonad GNOME wiki page&lt;/a&gt;, I also needed the &lt;code&gt;applications/xmonad.desktop&lt;/code&gt; file. This made the &lt;code&gt;failed to load session &quot;xmonad&quot;&lt;/code&gt; message disappear, however I&#039;m still trying to get stuff to work just right.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ cat /usr/share/applications/xmonad.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Xmonad
Exec=xmonad
NoDisplay=true
X-GNOME-WMName=Xmonad
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=false
&lt;/code&gt;&lt;/pre&gt;
]]></description>
		<content:encoded><![CDATA[<p>Like it says on the <a href="http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Setting_up_Gnome_to_use_Xmonad" rel="nofollow">Xmonad GNOME wiki page</a>, I also needed the <code>applications/xmonad.desktop</code> file. This made the <code>failed to load session "xmonad"</code> message disappear, however I&#8217;m still trying to get stuff to work just right.</p>

<pre><code>$ cat /usr/share/applications/xmonad.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Xmonad
Exec=xmonad
NoDisplay=true
X-GNOME-WMName=Xmonad
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=false
</code></pre>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by David</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-224832</link>
		<dc:creator>David</dc:creator>
		<pubDate>Mon, 17 Oct 2011 17:05:34 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-224832</guid>
		<description><![CDATA[&lt;p&gt;I was getting &lt;code&gt;failed to load session &quot;xmonad&quot;&lt;/code&gt; because I did not have the notification-daemon installed.  To install the notification-daemon on Ubuntu 11.10 I used:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get install notification-daemon
&lt;/code&gt;&lt;/pre&gt;
]]></description>
		<content:encoded><![CDATA[<p>I was getting <code>failed to load session "xmonad"</code> because I did not have the notification-daemon installed.  To install the notification-daemon on Ubuntu 11.10 I used:</p>

<pre><code>sudo apt-get install notification-daemon
</code></pre>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Alex</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-224800</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Mon, 17 Oct 2011 07:48:00 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-224800</guid>
		<description><![CDATA[&lt;p&gt;I was having the [failed to load session &quot;xmonad&quot;] issue.  I fixed it by running &quot;sudo apt-get install gnome-panel&quot; and modifying the xmonad.session file as follows:&lt;/p&gt;

&lt;p&gt;/usr/share/gnome-session/sessions/xmonad.session
[GNOME Session]
Name=Xmonad session
RequiredComponents=gnome-panel;gnome-settings-daemon;
RequiredProviders=windowmanager
DefaultProvider-windowmanager=xmonad&lt;/p&gt;

&lt;p&gt;I tried using Gnome 3, but it&#039;s a little clunky for my computer and xmonad makes using workspaces a zillion times more efficient.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>I was having the [failed to load session "xmonad"] issue.  I fixed it by running &#8220;sudo apt-get install gnome-panel&#8221; and modifying the xmonad.session file as follows:</p>

<p>/usr/share/gnome-session/sessions/xmonad.session
[GNOME Session]
Name=Xmonad session
RequiredComponents=gnome-panel;gnome-settings-daemon;
RequiredProviders=windowmanager
DefaultProvider-windowmanager=xmonad</p>

<p>I tried using Gnome 3, but it&#8217;s a little clunky for my computer and xmonad makes using workspaces a zillion times more efficient.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by emchristiansen</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-224797</link>
		<dc:creator>emchristiansen</dc:creator>
		<pubDate>Mon, 17 Oct 2011 06:21:42 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-224797</guid>
		<description><![CDATA[&lt;p&gt;Oddly, this worked on one of my Ubuntu 11.10 machines but not the other. The error I&#039;m getting on the other is &#039;Failed to load session &quot;xmonad&quot;&#039;, and I can&#039;t figure out the difference between the machines.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Oddly, this worked on one of my Ubuntu 11.10 machines but not the other. The error I&#8217;m getting on the other is &#8216;Failed to load session &#8220;xmonad&#8221;&#8216;, and I can&#8217;t figure out the difference between the machines.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Magnus</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-224333</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Sun, 09 Oct 2011 07:51:08 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-224333</guid>
		<description><![CDATA[&lt;p&gt;I&#039;ve actually stopped using Xmonad since I wrote this. Soon after Gnome 3 was released I started looking around for alternatives to Gnome in the Gnome+Xmonad combo. Nothing seemed to really suit me though so I decided to give the Gnome Shell a serious chance instead. I&#039;ve gotten to the point where it&#039;s very usable and hence I don&#039;t use the setup I describe in this post myself.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve actually stopped using Xmonad since I wrote this. Soon after Gnome 3 was released I started looking around for alternatives to Gnome in the Gnome+Xmonad combo. Nothing seemed to really suit me though so I decided to give the Gnome Shell a serious chance instead. I&#8217;ve gotten to the point where it&#8217;s very usable and hence I don&#8217;t use the setup I describe in this post myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by pconwell</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-224328</link>
		<dc:creator>pconwell</dc:creator>
		<pubDate>Sun, 09 Oct 2011 06:55:27 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-224328</guid>
		<description><![CDATA[&lt;p&gt;Ditto:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;failed to load session &quot;xmonad&quot;
&lt;/code&gt;&lt;/pre&gt;
]]></description>
		<content:encoded><![CDATA[<p>Ditto:</p>

<pre><code>failed to load session "xmonad"
</code></pre>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Vladimir Gordeev</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-224177</link>
		<dc:creator>Vladimir Gordeev</dc:creator>
		<pubDate>Wed, 05 Oct 2011 17:19:12 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-224177</guid>
		<description><![CDATA[&lt;blockquote&gt;
  &lt;p&gt;“failed to load xmonad session”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;same problem.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<blockquote>
  <p>“failed to load xmonad session”</p>
</blockquote>

<p>same problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Bruno</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-222863</link>
		<dc:creator>Bruno</dc:creator>
		<pubDate>Thu, 01 Sep 2011 01:35:00 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-222863</guid>
		<description><![CDATA[&lt;p&gt;Hello,
How does it render? Could you maybe share a screenshot?&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Hello,
How does it render? Could you maybe share a screenshot?</p>

<p>Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Per-user Gnome 3 configuration by Successfully edited gnome-shell.css. How do I apply these changes to only one user?</title>
		<link>http://therning.org/magnus/archives/933/comment-page-1#comment-220682</link>
		<dc:creator>Successfully edited gnome-shell.css. How do I apply these changes to only one user?</dc:creator>
		<pubDate>Fri, 08 Jul 2011 16:25:15 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=933#comment-220682</guid>
		<description><![CDATA[&lt;p&gt;[...]  I have come across this - http://therning.org/magnus/archives/933 Would that help in your situation?  Cheers,  [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...]  I have come across this &#8211; <a href="http://therning.org/magnus/archives/933" rel="nofollow">http://therning.org/magnus/archives/933</a> Would that help in your situation?  Cheers,  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Tayfur Yilmaz</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-218358</link>
		<dc:creator>Tayfur Yilmaz</dc:creator>
		<pubDate>Tue, 31 May 2011 14:05:32 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-218358</guid>
		<description><![CDATA[&lt;p&gt;Thanks for notes I want to use Xmonad+Gnome3 on Pardus and I edit this changes on my system and on Login Screen I choose Xmonad+Gnome and I want to login but this message shown to screen.&lt;/p&gt;

&lt;p&gt;&quot;failed to load xmonad session&quot;&lt;/p&gt;

&lt;p&gt;How to solve this problem?&lt;/p&gt;

&lt;p&gt;Best  Regars&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Thanks for notes I want to use Xmonad+Gnome3 on Pardus and I edit this changes on my system and on Login Screen I choose Xmonad+Gnome and I want to login but this message shown to screen.</p>

<p>&#8220;failed to load xmonad session&#8221;</p>

<p>How to solve this problem?</p>

<p>Best  Regars</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Mutt and GNOME MIME types by xim</title>
		<link>http://therning.org/magnus/archives/251/comment-page-1#comment-217279</link>
		<dc:creator>xim</dc:creator>
		<pubDate>Thu, 19 May 2011 01:51:26 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/251#comment-217279</guid>
		<description><![CDATA[&lt;p&gt;I wanted to do this, but noticed that gnomevfs.mime_get_default_application gives you the system default application i.e. it doesn&#039;t respect user preferences set in gnome.&lt;/p&gt;

&lt;p&gt;Solution: gio.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&gt;&gt;&gt; import gio
&gt;&gt;&gt; gfile = gio.File(filename)
&gt;&gt;&gt; gapp = gfile.query_default_handler()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That gives you the default app. The correct way to use it afterwards may be to use&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&gt;&gt;&gt; gapp.launch_uris([gfile.get_uri()])
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;but I&#039;m not sure if you can make that blocking or not.&lt;/p&gt;

&lt;p&gt;I have, however incorporated it into an old python script that has run-mailcap and then xdg-open as fallbacks. It&#039;s a bit ugly, but solid: https://gist.github.com/979990&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>I wanted to do this, but noticed that gnomevfs.mime_get_default_application gives you the system default application i.e. it doesn&#8217;t respect user preferences set in gnome.</p>

<p>Solution: gio.</p>

<pre><code>&gt;&gt;&gt; import gio
&gt;&gt;&gt; gfile = gio.File(filename)
&gt;&gt;&gt; gapp = gfile.query_default_handler()
</code></pre>

<p>That gives you the default app. The correct way to use it afterwards may be to use</p>

<pre><code>&gt;&gt;&gt; gapp.launch_uris([gfile.get_uri()])
</code></pre>

<p>but I&#8217;m not sure if you can make that blocking or not.</p>

<p>I have, however incorporated it into an old python script that has run-mailcap and then xdg-open as fallbacks. It&#8217;s a bit ugly, but solid: <a href="https://gist.github.com/979990" rel="nofollow">https://gist.github.com/979990</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by dixie</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-216937</link>
		<dc:creator>dixie</dc:creator>
		<pubDate>Thu, 12 May 2011 20:39:52 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-216937</guid>
		<description><![CDATA[&lt;p&gt;thanks!&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xmonad and Gnome 3 by Jacob</title>
		<link>http://therning.org/magnus/archives/938/comment-page-1#comment-216919</link>
		<dc:creator>Jacob</dc:creator>
		<pubDate>Thu, 12 May 2011 11:01:50 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=938#comment-216919</guid>
		<description><![CDATA[&lt;p&gt;Hey Magnus&lt;/p&gt;

&lt;p&gt;Had the same problem.
Thanks for sharing the fix! :)&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Hey Magnus</p>

<p>Had the same problem.
Thanks for sharing the fix! <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Maintaining Haskell packages for a Linux distribution&#8212;cblrepo by therning.org/ magnus &#187; Blog Archive &#187; ArchHaskell HABS with cblrepo</title>
		<link>http://therning.org/magnus/archives/914/comment-page-1#comment-216516</link>
		<dc:creator>therning.org/ magnus &#187; Blog Archive &#187; ArchHaskell HABS with cblrepo</dc:creator>
		<pubDate>Wed, 04 May 2011 21:26:55 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=914#comment-216516</guid>
		<description><![CDATA[&lt;p&gt;[...] a follow-up to my earlier post on cblrepo I thought I&#8217;d convert the current ArchHaskell HABS to cblrepo. It&#8217;s mostly done as an [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] a follow-up to my earlier post on cblrepo I thought I&#8217;d convert the current ArchHaskell HABS to cblrepo. It&#8217;s mostly done as an [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Revisiting JSON in Haskell by Magnus</title>
		<link>http://therning.org/magnus/archives/919/comment-page-1#comment-216353</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Sun, 01 May 2011 21:00:10 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=919#comment-216353</guid>
		<description><![CDATA[&lt;p&gt;Neil, &lt;code&gt;cmdargs&lt;/code&gt; is where I first came across this little trick :-)
It&#039;s also coded up in &lt;code&gt;Data.Default&lt;/code&gt;, which can be found on Hackage.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Neil, <code>cmdargs</code> is where I first came across this little trick <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> 
It&#8217;s also coded up in <code>Data.Default</code>, which can be found on Hackage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Revisiting JSON in Haskell by Neil Mitchell</title>
		<link>http://therning.org/magnus/archives/919/comment-page-1#comment-216351</link>
		<dc:creator>Neil Mitchell</dc:creator>
		<pubDate>Sun, 01 May 2011 20:44:55 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=919#comment-216351</guid>
		<description><![CDATA[&lt;p&gt;You may be interested to see that the default class already exists in cmdargs: http://hackage.haskell.org/packages/archive/cmdargs/0.6.9/doc/html/System-Console-CmdArgs-Default.html&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>You may be interested to see that the default class already exists in cmdargs: <a href="http://hackage.haskell.org/packages/archive/cmdargs/0.6.9/doc/html/System-Console-CmdArgs-Default.html" rel="nofollow">http://hackage.haskell.org/packages/archive/cmdargs/0.6.9/doc/html/System-Console-CmdArgs-Default.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on JSON in Haskell by therning.org/ magnus &#187; Blog Archive &#187; Revisiting JSON in Haskell</title>
		<link>http://therning.org/magnus/archives/719/comment-page-1#comment-216348</link>
		<dc:creator>therning.org/ magnus &#187; Blog Archive &#187; Revisiting JSON in Haskell</dc:creator>
		<pubDate>Sun, 01 May 2011 19:43:34 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=719#comment-216348</guid>
		<description><![CDATA[&lt;p&gt;[...] just received an email with some praise for my earlier post on JSON in Haskell&#8211;it&#8217;s always nice to receive some praise  However, the sender also mentioned that the [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] just received an email with some praise for my earlier post on JSON in Haskell&#8211;it&#8217;s always nice to receive some praise  However, the sender also mentioned that the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on GConf in Python by Wolter</title>
		<link>http://therning.org/magnus/archives/57/comment-page-1#comment-215117</link>
		<dc:creator>Wolter</dc:creator>
		<pubDate>Mon, 04 Apr 2011 16:53:50 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/57#comment-215117</guid>
		<description><![CDATA[&lt;p&gt;Great tutorial, I just have some questions.&lt;/p&gt;

&lt;p&gt;Is the add dir method what one should normally use to initialize a key on a system? i.e. If your application is being used for the first time, is this the method that should create the gconf key?&lt;/p&gt;

&lt;p&gt;Also, the notify add method didn&#039;t work for me. Isn&#039;t it supposed to call the callback whenever the key is changed?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Great tutorial, I just have some questions.</p>

<p>Is the add dir method what one should normally use to initialize a key on a system? i.e. If your application is being used for the first time, is this the method that should create the gconf key?</p>

<p>Also, the notify add method didn&#8217;t work for me. Isn&#8217;t it supposed to call the callback whenever the key is changed?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on More sensible comments on cabal-debian by Adam Jones</title>
		<link>http://therning.org/magnus/archives/485/comment-page-1#comment-215011</link>
		<dc:creator>Adam Jones</dc:creator>
		<pubDate>Sat, 02 Apr 2011 05:10:01 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=485#comment-215011</guid>
		<description><![CDATA[&lt;p&gt;Well, I&#039;ve seen that information generated from a &lt;em&gt;source build&lt;/em&gt;
(debuild -S is what I tend to use).  I suppose it could be incomplete
if the rules file modifies the control file.  I would hope that&#039;s a
fairly rare setup though.  Surely it isn&#039;t something that cabal-debian
engages in, right?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Well, I&#8217;ve seen that information generated from a <em>source build</em>
(debuild -S is what I tend to use).  I suppose it could be incomplete
if the rules file modifies the control file.  I would hope that&#8217;s a
fairly rare setup though.  Surely it isn&#8217;t something that cabal-debian
engages in, right?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Signals in Haskell by Andrew Pennebaker</title>
		<link>http://therning.org/magnus/archives/285/comment-page-1#comment-211772</link>
		<dc:creator>Andrew Pennebaker</dc:creator>
		<pubDate>Mon, 07 Feb 2011 21:30:48 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/285#comment-211772</guid>
		<description><![CDATA[&lt;p&gt;Thanks for the example code!&lt;/p&gt;

&lt;p&gt;I would like my Haskell program to exitFailure when the program is interrupted, so I changed the handler function to this:&lt;/p&gt;

&lt;p&gt;import System.Exit (exitFailure)&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;handler :: MVar Int -&gt; IO ()
handler mi = do
    i &lt;- takeMVar mi
    putStrLn &quot;In handler&quot;
    exitFailure&lt;/p&gt;

&lt;p&gt;But when I run this code, the program doesn&#039;t actually exit. It just prints out a notice that main.hs raised exitWith (Failure 1).&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Thanks for the example code!</p>

<p>I would like my Haskell program to exitFailure when the program is interrupted, so I changed the handler function to this:</p>

<p>import System.Exit (exitFailure)</p>

<p>&#8230;</p>

<p>handler :: MVar Int -&gt; IO ()
handler mi = do
    i &lt;- takeMVar mi
    putStrLn &#8220;In handler&#8221;
    exitFailure</p>

<p>But when I run this code, the program doesn&#8217;t actually exit. It just prints out a notice that main.hs raised exitWith (Failure 1).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On maintaining Haskell packages for a Linux distro by Tweets that mention therning.org/ magnus » Blog Archive » On maintaining Haskell packages for a Linux distro -- Topsy.com</title>
		<link>http://therning.org/magnus/archives/897/comment-page-1#comment-210849</link>
		<dc:creator>Tweets that mention therning.org/ magnus » Blog Archive » On maintaining Haskell packages for a Linux distro -- Topsy.com</dc:creator>
		<pubDate>Mon, 24 Jan 2011 23:34:16 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=897#comment-210849</guid>
		<description><![CDATA[&lt;p&gt;[...] This post was mentioned on Twitter by planet_haskell, magthe. magthe said: New blog post: On maintaining Haskell packages for a Linux distro http://therning.org/magnus/archives/897 [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by planet_haskell, magthe. magthe said: New blog post: On maintaining Haskell packages for a Linux distro <a href="http://therning.org/magnus/archives/897" rel="nofollow">http://therning.org/magnus/archives/897</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on PaiMei on Python 2.5 by [0x0104]In Memory Fuzzing &#171; clnoe == eohnik</title>
		<link>http://therning.org/magnus/archives/278/comment-page-1#comment-204941</link>
		<dc:creator>[0x0104]In Memory Fuzzing &#171; clnoe == eohnik</dc:creator>
		<pubDate>Sun, 24 Oct 2010 11:17:12 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/278#comment-204941</guid>
		<description><![CDATA[&lt;p&gt;[...] Pydasm: http://therning.org/magnus/archive/278 [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] Pydasm: <a href="http://therning.org/magnus/archive/278" rel="nofollow">http://therning.org/magnus/archive/278</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Playing unsafe haskell by Is There a Such Thing as Real World Haskell? &#171; The Other Librarian</title>
		<link>http://therning.org/magnus/archives/249/comment-page-1#comment-202734</link>
		<dc:creator>Is There a Such Thing as Real World Haskell? &#171; The Other Librarian</dc:creator>
		<pubDate>Wed, 08 Sep 2010 16:54:32 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/249#comment-202734</guid>
		<description><![CDATA[&lt;p&gt;[...] tests should include the System.IO.Unsafe module (cheating should be allowed when you are testing your code &#8211; let the learning happen when you [...]&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>[...] tests should include the System.IO.Unsafe module (cheating should be allowed when you are testing your code &#8211; let the learning happen when you [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dent Weekly Updates for 2010-09-05 by Will Thompson</title>
		<link>http://therning.org/magnus/archives/877/comment-page-1#comment-202644</link>
		<dc:creator>Will Thompson</dc:creator>
		<pubDate>Mon, 06 Sep 2010 08:39:58 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/877#comment-202644</guid>
		<description><![CDATA[&lt;p&gt;Yeah, I had that first problem too when I used XMonad. The code to show/hide the contact list is really crufty; there are workarounds cargo-culted from Rhythmbox which apparently fixed real-world problems with Metacity but no-one knows why. I feel like GtkTrayIcon should have solved this once and for all with some kind of &lt;code&gt;gtk_tray_icon_set_toggle_window (GtkTrayIcon *, GtkWindow *)&lt;/code&gt; feature…&lt;/p&gt;

&lt;p&gt;If you can figure it out, there would be much rejoicing!&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Yeah, I had that first problem too when I used XMonad. The code to show/hide the contact list is really crufty; there are workarounds cargo-culted from Rhythmbox which apparently fixed real-world problems with Metacity but no-one knows why. I feel like GtkTrayIcon should have solved this once and for all with some kind of <code>gtk_tray_icon_set_toggle_window (GtkTrayIcon *, GtkWindow *)</code> feature…</p>

<p>If you can figure it out, there would be much rejoicing!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dent Weekly Updates for 2010-08-22 by Will Thompson</title>
		<link>http://therning.org/magnus/archives/872/comment-page-1#comment-202643</link>
		<dc:creator>Will Thompson</dc:creator>
		<pubDate>Mon, 06 Sep 2010 08:36:34 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/872#comment-202643</guid>
		<description><![CDATA[&lt;p&gt;Fair enough! ?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Fair enough! ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dent Weekly Updates for 2010-08-22 by Magnus</title>
		<link>http://therning.org/magnus/archives/872/comment-page-1#comment-202199</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Tue, 24 Aug 2010 06:00:57 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/872#comment-202199</guid>
		<description><![CDATA[&lt;p&gt;&lt;strong&gt;@ Will:&lt;/strong&gt; I&#039;m not sure since I couldn&#039;t be bothered spending much time on it so far.  My distro is on 0.4.0 (&lt;code&gt;telepathy-haze&lt;/code&gt;) so I should have the improvements you mention :-)  In any case I&#039;ll try it again as soon as I can be bothered making another attempt.  At the moment I&#039;m not feeling much motivation hooking up to any of Microsoft cruft my employer insists on using :-)&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p><strong>@ Will:</strong> I&#8217;m not sure since I couldn&#8217;t be bothered spending much time on it so far.  My distro is on 0.4.0 (<code>telepathy-haze</code>) so I should have the improvements you mention <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   In any case I&#8217;ll try it again as soon as I can be bothered making another attempt.  At the moment I&#8217;m not feeling much motivation hooking up to any of Microsoft cruft my employer insists on using <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on XML character dereferencer by Magnus</title>
		<link>http://therning.org/magnus/archives/828/comment-page-1#comment-202198</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Tue, 24 Aug 2010 05:51:01 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=828#comment-202198</guid>
		<description><![CDATA[&lt;p&gt;&lt;strong&gt;@Chris:&lt;/strong&gt; Except of course that the type would be&lt;/p&gt;

&lt;pre lang=&quot;haskell&quot;&gt;xmlCharDeref :: XMLString -&gt; String&lt;/pre&gt;

&lt;p&gt;In any case it&#039;s hardly worth doing for the particular case where I had use for this function.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p><strong>@Chris:</strong> Except of course that the type would be</p>


<div class="wp_syntax"><table><tr><td class="code"><pre class="haskell" style="font-family:monospace;">xmlCharDeref <span style="color: #339933; font-weight: bold;">::</span> XMLString <span style="color: #339933; font-weight: bold;">-&gt;</span> <span style="color: #cccc00; font-weight: bold;">String</span></pre></td></tr></table></div>




<p>In any case it&#8217;s hardly worth doing for the particular case where I had use for this function.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dent Weekly Updates for 2010-08-22 by Will Thompson</title>
		<link>http://therning.org/magnus/archives/872/comment-page-1#comment-202190</link>
		<dc:creator>Will Thompson</dc:creator>
		<pubDate>Mon, 23 Aug 2010 19:10:07 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/872#comment-202190</guid>
		<description><![CDATA[&lt;p&gt;What trouble are you having with using &lt;code&gt;pidgin-sipe&lt;/code&gt; via &lt;code&gt;telepathy-haze&lt;/code&gt; in Empathy? The main issue that I can see you might be hitting is &lt;a href=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=19018&quot; rel=&quot;nofollow&quot;&gt;this SSL certificate bug&lt;/a&gt; that I&#039;ve never found time to finish my libpurple branch which is needed to fix it. Also, Stefan Becker of Nokia recently fixed some issues with haze and Sipe, so if you were using haze older than 0.3.5 it might be worth another shot.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>What trouble are you having with using <code>pidgin-sipe</code> via <code>telepathy-haze</code> in Empathy? The main issue that I can see you might be hitting is <a href="https://bugs.freedesktop.org/show_bug.cgi?id=19018" rel="nofollow">this SSL certificate bug</a> that I&#8217;ve never found time to finish my libpurple branch which is needed to fix it. Also, Stefan Becker of Nokia recently fixed some issues with haze and Sipe, so if you were using haze older than 0.3.5 it might be worth another shot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on XML character dereferencer by Chris Done</title>
		<link>http://therning.org/magnus/archives/828/comment-page-1#comment-201898</link>
		<dc:creator>Chris Done</dc:creator>
		<pubDate>Sat, 14 Aug 2010 09:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=828#comment-201898</guid>
		<description><![CDATA[&lt;p&gt;How about:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;newtype XMLString = XMLString String

xmlCharDeref :: String -&gt; XMLString
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now there&#039;s no way you can accidentally encode twice. :-)&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>How about:</p>

<pre><code>newtype XMLString = XMLString String

xmlCharDeref :: String -&gt; XMLString
</code></pre>

<p>Now there&#8217;s no way you can accidentally encode twice. <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Any Haskell puzzlers? by Ketil</title>
		<link>http://therning.org/magnus/archives/835/comment-page-1#comment-201765</link>
		<dc:creator>Ketil</dc:creator>
		<pubDate>Mon, 09 Aug 2010 09:07:31 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=835#comment-201765</guid>
		<description><![CDATA[&lt;p&gt;Intrigued by the puzzles, I had to look briefly at the video.  It is interesting that the conclusion after the first puzzle http://www.youtube.com/watch?v=V1vQf4qyMXg, @09:34 is that &quot;Strange and terrible methods lurk in libraries&quot;.  Huge libraries are a main selling point of Java, especially vs. Haskell, but sometimes there&#039;s something to be said for the DYI approach also - something that &quot;clearly works, as opposed to merely works&quot;.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Intrigued by the puzzles, I had to look briefly at the video.  It is interesting that the conclusion after the first puzzle <a href="http://www.youtube.com/watch?v=V1vQf4qyMXg" rel="nofollow">http://www.youtube.com/watch?v=V1vQf4qyMXg</a>, @09:34 is that &#8220;Strange and terrible methods lurk in libraries&#8221;.  Huge libraries are a main selling point of Java, especially vs. Haskell, but sometimes there&#8217;s something to be said for the DYI approach also &#8211; something that &#8220;clearly works, as opposed to merely works&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Any Haskell puzzlers? by Axio</title>
		<link>http://therning.org/magnus/archives/835/comment-page-1#comment-201670</link>
		<dc:creator>Axio</dc:creator>
		<pubDate>Thu, 05 Aug 2010 05:50:33 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=835#comment-201670</guid>
		<description><![CDATA[&lt;pre lang=&quot;haskell&quot;&gt;f (n+1) = n
main = do
  putStrLn . show $ f 1
  putStrLn . show $ f 0&lt;/pre&gt;
]]></description>
		<content:encoded><![CDATA[


<div class="wp_syntax"><table><tr><td class="code"><pre class="haskell" style="font-family:monospace;">f <span style="color: green;">&#40;</span>n<span style="color: #339933; font-weight: bold;">+</span><span style="color: red;">1</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> n
main <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #06c; font-weight: bold;">do</span>
  <span style="font-weight: bold;">putStrLn</span> <span style="color: #339933; font-weight: bold;">.</span> <span style="font-weight: bold;">show</span> <span style="color: #339933; font-weight: bold;">$</span> f <span style="color: red;">1</span>
  <span style="font-weight: bold;">putStrLn</span> <span style="color: #339933; font-weight: bold;">.</span> <span style="font-weight: bold;">show</span> <span style="color: #339933; font-weight: bold;">$</span> f <span style="color: red;">0</span></pre></td></tr></table></div>



]]></content:encoded>
	</item>
	<item>
		<title>Comment on Any Haskell puzzlers? by Magnus</title>
		<link>http://therning.org/magnus/archives/835/comment-page-1#comment-201598</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Tue, 03 Aug 2010 07:56:58 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=835#comment-201598</guid>
		<description><![CDATA[&lt;p&gt;@solrize, hardly the kind of code you&#039;re likely to find in any real software project out there though, is it? :-)&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>@solrize, hardly the kind of code you&#8217;re likely to find in any real software project out there though, is it? <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Any Haskell puzzlers? by solrize</title>
		<link>http://therning.org/magnus/archives/835/comment-page-1#comment-201590</link>
		<dc:creator>solrize</dc:creator>
		<pubDate>Tue, 03 Aug 2010 03:29:58 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=835#comment-201590</guid>
		<description><![CDATA[&lt;p&gt;let 1 = 2 in print 1&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>let 1 = 2 in print 1</p>
]]></content:encoded>
	</item>
</channel>
</rss>
