<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>roerd's blog</title>
	<atom:link href="http://roerd.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://roerd.wordpress.com</link>
	<description>a blog about programming and (perhaps) other things</description>
	<lastBuildDate>Sun, 07 Mar 2010 22:33:50 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='roerd.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>roerd's blog</title>
		<link>http://roerd.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://roerd.wordpress.com/osd.xml" title="roerd&#039;s blog" />
	<atom:link rel='hub' href='http://roerd.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Screenshot of the Sudoku LTK GUI</title>
		<link>http://roerd.wordpress.com/2008/09/03/screenshot-of-the-sudoku-ltk-gui/</link>
		<comments>http://roerd.wordpress.com/2008/09/03/screenshot-of-the-sudoku-ltk-gui/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 00:43:05 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/?p=20</guid>
		<description><![CDATA[Here&#8217;s a screenshot of the GUI I presented in an earlier post, so you can take a look at it without installing LTK: (This is from the latest version that you can find at Bitbucket, not from the one posted here.)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=20&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a screenshot of the GUI I presented in an earlier post, so you can take a look at it without installing LTK:</p>
<div id="attachment_21" class="wp-caption alignnone" style="width: 248px"><a href="http://roerd.files.wordpress.com/2008/09/cl-sudoku-ltk.png"><img class="size-full wp-image-21" src="http://roerd.files.wordpress.com/2008/09/cl-sudoku-ltk.png?w=238&#038;h=273" alt="Screenshot of CL-Sudoku" width="238" height="273" /></a><p class="wp-caption-text">CL-Sudoku&#39;s LTK GUI, displaying its solutions to an empty puzzle</p></div>
<p>(This is from the latest version that you can find at Bitbucket, not from the one posted here.)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=20&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2008/09/03/screenshot-of-the-sudoku-ltk-gui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>

		<media:content url="http://roerd.files.wordpress.com/2008/09/cl-sudoku-ltk.png" medium="image">
			<media:title type="html">Screenshot of CL-Sudoku</media:title>
		</media:content>
	</item>
		<item>
		<title>tree-&gt;generator with explicit CPS</title>
		<link>http://roerd.wordpress.com/2008/09/03/tree-generator-with-explicit-cps/</link>
		<comments>http://roerd.wordpress.com/2008/09/03/tree-generator-with-explicit-cps/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 23:47:02 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/?p=13</guid>
		<description><![CDATA[This is just a little follow-up to my last post. As another exercise in continuations, I transformed tree-&#62;generator to explicit continuation-passing style. I guess I could also have looked at the expansions of the cl-cont macros, but this is the result of a manual transformation: (defun tree-&#62;generator (tree) (let (generate-leaves) (setf generate-leaves (lambda () (labels [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=13&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is just a little follow-up to my last post. As another exercise in continuations, I transformed tree-&gt;generator to explicit continuation-passing style. I guess I could also have looked at the expansions of the cl-cont macros, but this is the result of a manual transformation:</p>
<pre>(defun tree-&gt;generator (tree)
  (let (generate-leaves)
    (setf generate-leaves
	  (lambda ()
	    (labels ((recur (tree cont)
		       (cond ((null tree) ; empty leaf: continue.
			      (funcall cont))
			     ((consp tree) ; recurse into branches:
			      (recur (car tree)
				     (lambda ()
				       (recur (cdr tree) cont))))
			     ('otherwise ; leaf with a value:
			      (setf generate-leaves ; update generator
				    cont)
			      tree))))	      ; and return the value.
	      (recur tree
		     (lambda () nil))))) ; return nil after exhaustion.
    (lambda ()
      (funcall generate-leaves))))</pre>
<p>[EDIT: I realized the potential for further simplification right after publishing the post. So now the call to and return from generate-leaves in the above code aren't in CPS anymore, only recur has to be in CPS.]</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=13&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2008/09/03/tree-generator-with-explicit-cps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>tree-&gt;generator in Common Lisp with cl-cont</title>
		<link>http://roerd.wordpress.com/2008/09/01/tree-generator-in-common-lisp-with-cl-cont/</link>
		<comments>http://roerd.wordpress.com/2008/09/01/tree-generator-in-common-lisp-with-cl-cont/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 21:44:54 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/?p=11</guid>
		<description><![CDATA[I&#8217;ve decided to try Slava Akhmechet&#8217;s cl-cont, a continuations library for Common Lisp. My little example for this purpose was to port the tree-&#62;generator function from Teach Yourself Scheme in Fixnum Days to Common Lisp. This function takes a tree and returns a function that will successively yield the leaves of the tree. Here&#8217;s the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=11&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to try Slava Akhmechet&#8217;s <a href="http://common-lisp.net/project/cl-cont/">cl-cont</a>, a continuations library for Common Lisp. My little example for this purpose was to port the <a href="http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme-Z-H-15.html#node_sec_13.3">tree-&gt;generator</a> function from <a href="http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html">Teach Yourself Scheme in Fixnum Days</a> to Common Lisp. This function takes a tree and returns a function that will successively yield the leaves of the tree.</p>
<p>Here&#8217;s the code:</p>
<pre>(defun/cc tree-&gt;generator (tree)
  (let (generate-leaves)
    (setf generate-leaves
	  (lambda (caller)
	    (labels ((recur (tree)
		       (cond ((null tree))  ; empty leaf: continue
			     ((consp tree)  ; recurse into branches
			      (recur (car tree))
			      (recur (cdr tree)))
			     ('otherwise ; leaf with a value:
			      (call/cc
			       (lambda (rest-of-tree)
				 ;; update generator
				 (setf generate-leaves
				       (lambda (new-caller)
					 (setf caller new-caller)
					 (funcall rest-of-tree)))
				 ;; return the value
				 (funcall caller tree)))))))
	      (recur tree))
	    (funcall caller nil)))     ; return value after exhaustion
    (lambda ()
      (call/cc generate-leaves))))</pre>
<p>The comments are my own, so I could understand how this function works. I did also add the explicit caller argument to generate-leaves, keeping variables as local as possible is generally a good thing (and I didn&#8217;t like those dummy values). These changes aren&#8217;t specific to CL, I did a Scheme version with those too.</p>
<p>There was one problem that took me quite some time to solve: (SETF SYMBOL-FUNCTION) will always operate on the global binding, so I couldn&#8217;t use LABELS to define generate-leaves. Therefore, I had to use this trick of splitting the definition into a LET and a SETF to get a local function definition that could modify its own binding. In contrast, porting the continuations stuff was easy: that worked just like in Scheme.</p>
<p>Here&#8217;s a little usage example:</p>
<pre>CL-USER&gt; (defparameter *g* (tree-&gt;generator '((1 2) (3 (4 5)))))
*G*
CL-USER&gt; (funcall *g*)
1
CL-USER&gt; (funcall *g*)
2
CL-USER&gt; (funcall *g*)
3
CL-USER&gt; (funcall *g*)
4
CL-USER&gt; (funcall *g*)
5
CL-USER&gt; (funcall *g*)
NIL</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=11&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2008/09/01/tree-generator-in-common-lisp-with-cl-cont/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>Online repository for the Sudoku solver</title>
		<link>http://roerd.wordpress.com/2008/08/09/online-repository-for-the-sudoku-solver/</link>
		<comments>http://roerd.wordpress.com/2008/08/09/online-repository-for-the-sudoku-solver/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 22:24:30 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/?p=8</guid>
		<description><![CDATA[I just read about Bitbucket, a site that provides hosting for Mercurial repositories. So for the two purposes of trying it out and giving anyone interested easier access to the code, I put the files to the Sudoku solver up there. (This gives you a chance to get a working version of the GUI, because [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=8&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just read about <a href="http://www.bitbucket.org/">Bitbucket</a>, a site that provides hosting for <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> repositories. So for the two purposes of trying it out and giving anyone interested easier access to the code, <a href="https://www.bitbucket.org/roerd/cl-sudoku/">I put the files to the Sudoku solver up there</a>. (This gives you a chance to get a working version of the GUI, because I forgot to publish the small change to the non-GUI code the GUI code depends on.)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=8&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2008/08/09/online-repository-for-the-sudoku-solver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>LTK GUI for the Sudoku solver</title>
		<link>http://roerd.wordpress.com/2008/08/08/ltk-gui-for-the-sudoku-solver/</link>
		<comments>http://roerd.wordpress.com/2008/08/08/ltk-gui-for-the-sudoku-solver/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 22:06:18 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/?p=6</guid>
		<description><![CDATA[My original plan, when I created this blog, was to evaluate several GUI toolkits for Common Lisp and write about that, but I didn&#8217;t find the time for it. Now LTK is a really simple, small library and so I was able to learn it quickly and now I made a GUI for my Sudoku [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=6&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My original plan, when I created this blog, was to evaluate several GUI toolkits for Common Lisp and write about that, but I didn&#8217;t find the time for it. Now LTK is a really simple, small library and so I was able to learn it quickly and now I made a GUI for my Sudoku solver from the previous post with it.</p>
<p>[<a href="http://roerd.wordpress.com/2008/09/03/screenshot-of-the-sudoku-ltk-gui/">I've posted a screenshot.</a>]</p>
<p>So here&#8217;s the code:</p>
<pre>(in-package #:sudoku-gui)

(defun main ()
  (let ((*wish-args* '("-name" "CL-Sudoku")))
    (with-ltk ()
      (let* ((f (make-instance 'frame))
	     (puzzle-frame (make-instance 'frame
					  :master f))
	     (button-frame (make-instance 'frame
					  :master f))
	     (fields (make-array '(9 9)))
	     (clear-button (make-instance 'button
					  :master button-frame
					  :text "Clear"
					  :command (lambda ()
						     (update-fields
						      (make-array
						       '(9 9)
						       :initial-element "")
						      fields))))
	     (solve-button (make-instance 'button
					  :master button-frame
					  :text "Solve"
					  :command (lambda ()
						     (update-fields
						      (solve-puzzle fields)
						      fields)))))
	(pack f)
	(pack puzzle-frame)
	(pack button-frame)
	(dotimes (row 3)
	  (dotimes (col 3)
	    (let ((box (make-box row col puzzle-frame fields)))
	      (grid box row col))))
	(pack clear-button :side :left)
	(pack solve-button :side :left)))))

(defun update-fields (array fields)
  (dotimes (row 9)
    (dotimes (col 9)
      (setf (text (aref fields row col))
	    (aref array row col)))))

(defun make-box (row col frame fields)
  (let ((box (make-instance 'labelframe
			    :master frame
			    :text "")))
    (dotimes (inner-row 3)
      (dotimes (inner-col 3)
	(let ((field (make-instance 'spinbox
				    :master box
				    :width 1
				    :relief "solid"
				    :values "[list {} 1 2 3 4 5 6 7 8 9]"
				    :wrap t)))
	  (grid field inner-row inner-col)
	  (setf (aref fields
		      (+ inner-row (* row 3))
		      (+ inner-col (* col 3)))
		field))))
    box))

(defun field-val (field)
  (let ((str (text field)))
    (and (plusp (length str))
	 (digit-char-p (char str 0)))))

(defun solve-puzzle (fields)
  (let ((array (make-array '(9 9) :initial-element nil)))
    (dotimes (row 9)
      (dotimes (col 9)
	(setf (aref array row col)
	      (field-val (aref fields row col)))))
    (solve-array array t)))</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=6&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2008/08/08/ltk-gui-for-the-sudoku-solver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>My Sudoku solver (in Common Lisp)</title>
		<link>http://roerd.wordpress.com/2008/02/04/my-sudoku-solver-in-common-lisp/</link>
		<comments>http://roerd.wordpress.com/2008/02/04/my-sudoku-solver-in-common-lisp/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 22:46:33 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/?p=5</guid>
		<description><![CDATA[I do realise this has been done multiple times already, but I wanted to publish something really programming-related in this blog finally. It&#8217;s almost uncommented, but should be understandable in spite of that because I used mostly very short functions with (hopefully) speaking names. So here&#8217;s my code: (defpackage sudoku (:use #:cl) (:export #:solve)) (in-package [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=5&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I do realise this has been done multiple times already, but I wanted to publish something really programming-related in this blog finally.</p>
<p>It&#8217;s almost uncommented, but should be understandable in spite of that because I used mostly very short functions with (hopefully) speaking names.</p>
<p>So here&#8217;s my code:</p>
<pre>(defpackage sudoku
  (:use #:cl)
  (:export #:solve))

(in-package #:sudoku)

(defun empty-fields (array)
  (loop for row from 0 below 9
     nconc (loop for col from 0 below 9
	      when (null (aref array row col))
	      collect (cons row col))))

(defun legal-sudoku-p (array row col n)
  (and (unique-p n (array-row array row))
       (unique-p n (array-col array col))
       (unique-p n (array-box array row col))))

(defun unique-p (item seq)
  (= 1 (count item seq)))

(defun array-row (array row)
  (loop for col from 0 below 9 collect (aref array row col)))

(defun array-col (array col)
  (loop for row from 0 below 9 collect (aref array row col)))

(defun array-box (array row col)
  (loop
     with upper = (- row (mod row 3))
     and left = (- col (mod col 3))
     for i from 0 below 9
     collect (box-ref array upper left i)))

(defun box-ref (array upper left index)
  (multiple-value-bind (row col) (floor index 3)
    (aref array (+ upper row) (+ left col))))

(defun solve (lists &amp;optional just-one)
  (let ((array (make-array '(9 9) :initial-contents lists)))
    (catch 'just-one
      (backtrace array (empty-fields array) just-one))))

(defun backtrace (array empty-fields just-one)
  (if (endp empty-fields)
      (if just-one
	  (throw 'just-one array)
	  (list (adjust-array		; this will copy the array
		 (make-array '(9 9) :displaced-to array)
		 '(9 9))))
      (loop
	 with row = (caar empty-fields)
	 and col = (cdar empty-fields)
	 for i from 1 to 9
	 do (setf (aref array row col) i)
	 when (legal-sudoku-p array row col i)
	 nconc (backtrace array (cdr empty-fields) just-one)
	 finally (setf (aref array row col) nil))))</pre>
<p>Usage examples:</p>
<pre>CL-USER&gt; (time
	  (sudoku:solve '(( 3  nil nil  1   8   5   6   2   9 )
			  (nil nil  5  nil nil nil  8  nil  4 )
			  (nil  6   8  nil nil nil nil nil nil)
			  (nil nil nil  7  nil nil  5  nil nil)
			  (nil  2  nil nil  6  nil nil  8  nil)
			  (nil nil  3  nil nil  9  nil nil nil)
			  (nil nil nil nil  5  nil  1   6  nil)
			  ( 4  nil nil nil  3  nil nil nil nil)
			  ( 7  nil nil nil nil  2  nil nil nil))))
Evaluation took:
  1.093 seconds of real time
  1.056066 seconds of user run time
  0.008 seconds of system run time
  [Run times include 0.056 seconds GC run time.]
  0 calls to %EVAL
  0 page faults and
  41,767,504 bytes consed.
(#2A((3 4 7 1 8 5 6 2 9)
     (1 9 5 2 7 6 8 3 4)
     (2 6 8 3 9 4 7 5 1)
     (6 8 4 7 2 1 5 9 3)
     (9 2 1 5 6 3 4 8 7)
     (5 7 3 8 4 9 2 1 6)
     (8 3 9 4 5 7 1 6 2)
     (4 1 2 6 3 8 9 7 5)
     (7 5 6 9 1 2 3 4 8)))
CL-USER&gt; (time
	  (sudoku:solve '(( 3  nil nil  1   8   5   6   2   9 )
			  (nil nil  5  nil nil nil  8  nil  4 )
			  (nil  6   8  nil nil nil nil nil nil)
			  (nil nil nil  7  nil nil  5  nil nil)
			  (nil  2  nil nil  6  nil nil  8  nil)
			  (nil nil  3  nil nil  9  nil nil nil)
			  (nil nil nil nil  5  nil  1   6  nil)
			  ( 4  nil nil nil  3  nil nil nil nil)
			  ( 7  nil nil nil nil  2  nil nil nil)) t))
Evaluation took:
  0.012 seconds of real time
  0.012001 seconds of user run time
  0.0 seconds of system run time
  0 calls to %EVAL
  0 page faults and
  499,712 bytes consed.
#2A((3 4 7 1 8 5 6 2 9)
    (1 9 5 2 7 6 8 3 4)
    (2 6 8 3 9 4 7 5 1)
    (6 8 4 7 2 1 5 9 3)
    (9 2 1 5 6 3 4 8 7)
    (5 7 3 8 4 9 2 1 6)
    (8 3 9 4 5 7 1 6 2)
    (4 1 2 6 3 8 9 7 5)
    (7 5 6 9 1 2 3 4 8))</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=5&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2008/02/04/my-sudoku-solver-in-common-lisp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>DocBook to PDF 2</title>
		<link>http://roerd.wordpress.com/2007/09/12/docbook-to-pdf-2/</link>
		<comments>http://roerd.wordpress.com/2007/09/12/docbook-to-pdf-2/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 12:03:04 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[DocBook]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/2007/09/12/docbook-to-pdf-2/</guid>
		<description><![CDATA[Well, after my previous post I looked a bit further into what&#8217;s available on feisty and discovered the dblatex package. It&#8217;s kind of a rewrite of db2latex, that&#8217;s actively maintained and already comes with its own executable. So forget my previous post and the quick hack I presented there and just use dblatex, i.e. dblatex [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=4&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, after my previous post I looked a bit further into what&#8217;s available on feisty and discovered the <em>dblatex</em> package. It&#8217;s kind of a rewrite of <em>db2latex</em>, that&#8217;s actively maintained and already comes with its own executable.</p>
<p>So forget my previous post and the quick hack I presented there and just use <em>dblatex</em>, i.e. <em>dblatex -bpdftex</em>. Both calls will produce PDF output directly, but the second one goes directly from LaTeX to PDF, without intermediate steps of DVI and PS.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=4&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2007/09/12/docbook-to-pdf-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>DocBook XML to PDF on Ubuntu</title>
		<link>http://roerd.wordpress.com/2007/09/12/docbook-pdf-on-ubuntu/</link>
		<comments>http://roerd.wordpress.com/2007/09/12/docbook-pdf-on-ubuntu/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 00:03:08 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[DocBook]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/2007/09/12/docbook-pdf-on-ubuntu/</guid>
		<description><![CDATA[I just looked into ESR&#8217;s DocBook Demystification HOWTO. After reading that, I wanted to try to produce PDF output from DocBook XML on my own Linux box which is running Ubuntu. But neither of the necessary packages for this task which are mentioned in the HOWTO is in Ubuntu feisty. xmlto is there, but needs [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=3&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just looked into ESR&#8217;s <a href="http://tldp.org/HOWTO/DocBook-Demystification-HOWTO/">DocBook Demystification HOWTO</a>. After reading that, I wanted to try to produce PDF output from DocBook XML on my own Linux box which is running Ubuntu.</p>
<p>But neither of the necessary packages for this task which are mentioned in the HOWTO is in Ubuntu feisty. <em>xmlto</em> is there, but needs <em>passivetex</em>, which was in earlier Ubuntu releases, but was removed (It was removed from Debian, too.). <em>fop</em> is also not in Ubuntu, though it is in Debian.</p>
<p>But I found another package  in Ubuntu: <em>db2latex-xsl</em>, which contains XSL stylesheets to turn DocBook XML into LaTeX with the help of a XSL processor like <em>xsltproc</em>. The LaTeX file can then be processed with <em>pdflatex</em> to produce PDF.</p>
<p>Here is the shell script I wrote for this:</p>
<pre>$ cat ~/bin/db2latex
#!/bin/sh

PATH=/bin:/usr/bin

for i
do
    basename=`basename "$i" .xml`
    xsltproc -nonet -o "$basename.tex" \\
    /usr/share/xml/docbook/stylesheet/db2latex/latex/docbook.xsl "$i"
done</pre>
<p>Call this with <em>db2latex foo.xml</em> and then <em>pdflatex foo.tex</em> to get a PDF file <em>foo.pdf</em> from a source file <em>foo.xml</em>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=3&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2007/09/12/docbook-pdf-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>
	</item>
		<item>
		<title>A New Hope</title>
		<link>http://roerd.wordpress.com/2007/08/04/hallo-welt/</link>
		<comments>http://roerd.wordpress.com/2007/08/04/hallo-welt/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 02:25:18 +0000</pubDate>
		<dc:creator>roerd</dc:creator>
				<category><![CDATA[Comics]]></category>

		<guid isPermaLink="false">http://roerd.wordpress.com/2007/08/04/hallo-welt/</guid>
		<description><![CDATA[Gefunden unter http://xkcd.org/297/:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=1&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Gefunden unter  <a href="http://xkcd.org/297/">http://xkcd.org/297/</a>:</p>
<p><img src="http://imgs.xkcd.com/comics/lisp_cycles.png" height="211" width="640" /></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roerd.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roerd.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roerd.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roerd.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/roerd.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/roerd.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roerd.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roerd.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roerd.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roerd.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roerd.wordpress.com&amp;blog=1457260&amp;post=1&amp;subd=roerd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://roerd.wordpress.com/2007/08/04/hallo-welt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/74afe756a787d16ae7d98ecbf6f15be1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">roerd</media:title>
		</media:content>

		<media:content url="http://imgs.xkcd.com/comics/lisp_cycles.png" medium="image" />
	</item>
	</channel>
</rss>
