<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet Darcs</title>
	<!--<link rel="self" type="text/atom" href=""/>-->
	<link rel="alternate" type="text/html" href="http://planetdarcs.joyful.com"/>
	<id></id>
	<updated>2010-03-11T09:00:15+00:00</updated>
	<generator uri="http://www.planetplanet.org/">http://intertwingly.net/code/venus/</generator>

	<entry>
		<title>Darcs News: darcs weekly news #56</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/03/darcs-weekly-news-56.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-2382894255156932212</id>
		<updated>2010-03-07T09:23:13+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Darcs 2.4 was released! Reinier wrote a comprehensive announcement at:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://darcs.net/announce.html&quot;&gt;http://darcs.net/announce.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Petr explained the difference of performance between darcs 2.3.1 and 2.4 on optimised pristine repositories:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023155.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023155.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Max Battcher released musdex, a tool enabling darcs to version compressed files formats such as docx or odt:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-March/023171.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-March/023171.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-3&quot;&gt;&lt;h3&gt;Issues resolved in the last week (3)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1731 Reinier Lamers&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;bump the hashed-storage dependency once more&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1731&quot;&gt;http://bugs.darcs.net/issue1731&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1749 Reinier Lamers&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;refuse to remove nonempty directories in makeRemovePatch&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1749&quot;&gt;http://bugs.darcs.net/issue1749&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1755 Eric Kow&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;fix apparent hard line break in homepage.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1755&quot;&gt;http://bugs.darcs.net/issue1755&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-27&quot;&gt;&lt;h3&gt;Patches applied in the last week (27)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-03-07&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-2382894255156932212?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Max Battcher: Storing Documents in Version Control with musdex</title>
		<link rel="alternate" type="text/html" href="http://blog.worldmaker.net/2010/mar/03/storing-documents-version-control-musdex/"/>
		<id>http://blog.worldmaker.net/2010/mar/03/storing-documents-version-control-musdex/</id>
		<updated>2010-03-03T05:12:11+00:00</updated>
		<content type="html">&lt;p&gt;I've posted my first (presumably buggy) distribution to PyPI (aka the CheeseShop): &lt;a href=&quot;http://pypi.python.org/pypi/musdex/10.03.02&quot; class=&quot;reference external&quot;&gt;musdex&lt;/a&gt; (&lt;a href=&quot;http://packages.python.org/musdex/&quot; class=&quot;reference external&quot;&gt;musdex documentation&lt;/a&gt;). You should be able to just &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;pip&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;musdex&lt;/span&gt;&lt;/tt&gt; and try it.&lt;/p&gt;
&lt;p&gt;This is part of my lead up to &lt;a href=&quot;http://www.scriptfrenzy.org&quot; class=&quot;reference external&quot;&gt;Script Frenzy&lt;/a&gt;. I'm gearing up to (hopefully) win Script Frenzy by working on a KeyLimePie project. I've got a game backstory and outline I've been working that is less controversial than some of my earlier stuff, and I think a lot of fun. I've put off some of my KeyLimePie work to focus on tooling so that Script Frenzy is as smooth as I can make it.&lt;/p&gt;
&lt;p&gt;To get that &quot;real script feel&quot;, plus nicely typeset PDF files to help &quot;win&quot; Script Frenzy, I decided to work in Celtx, which is a free screenwriting tool built on the xulrunner platform. I built a tool to convert from a few simple (and I think reasonably script-like) conventions in Celtx to the YAML KeyLimePie data format that I already have tools to work with. (More proof that I think YAML as the basic data format was a good choice.) I took one of my existing YAML scripts, converted it Celtx and then back, as a good test that things work.&lt;/p&gt;
&lt;p&gt;That's where musdex comes in. This is a tool that I've meant to build several times over, but knowing that I'm going to be working in Celtx for a month, I decided to finally build it. The Celtx format, like a number of other common document formats today, is really a zip file of a set of XML and HTML documents. musdex is designed so that I can edit a Celtx document as Celtx appears to see it, and yet (transparently) version control the individual XML and HTML documents in my version control system of choice, &lt;a href=&quot;http://darcs.net&quot; class=&quot;reference external&quot;&gt;darcs&lt;/a&gt;. Darcs works well with XML and HTML documents and not so well with binary blobs. The resulting patches from XML and HTML documents are much more interesting to review than binary patches.&lt;/p&gt;
&lt;p&gt;There's still more to do with musdex, and I expect to find bugs still. This is an early release and I would be interested in hearing feedback on it. As far as I know, it is the first released tool to do zip document version control.&lt;/p&gt;
&lt;p&gt;I think it is good enough for my interests in Celtx version control. I tested a Docx and ODT and the XML files in both were hugely minified and it would be nice to have more linebreaks in the XML before doing much in the way of tracking them in a darcs repository. I think it may still be preferable to binary patches, but not by much and I'd hate to have to debug conflicts in those XML blobs. (Although it might not actually be terrible with my tokdiff tool at hand, come to think of it. I wonder if I should post tokdiff to PyPI...)&lt;/p&gt;


&lt;a href=&quot;http://blog.worldmaker.net/2010/mar/03/storing-documents-version-control-musdex/&quot;&gt;Read More »&lt;/a&gt;</content>
		<author>
			<name>Max Battcher</name>
			<uri>http://tags.worldmaker.net/darcs/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: Prepaid EC2 — a simple way to cut amazon cloud costs when working with contractors</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/03/03/prepaid-ec2-a-simple-way-to-cut-amazon-cloud-costs-when-working-with-contractors/"/>
		<id>http://blog.patch-tag.com/?p=313</id>
		<updated>2010-03-03T01:58:16+00:00</updated>
		<content type="html">&lt;p&gt;Amazon EC2 is great, but it can get expensive, especially when you have an army of contractors doing all sorts of different things. &lt;/p&gt;
&lt;p&gt;If you’re not careful, you can wind up creeping into a sort of  tragedy of the commons situation where nobody shuts down little used EC2 instances because “that’s somebody else’s job” or simply because they’re not sure if anyone is using it. And since amazon bill doesn’t make it easy to see which server did what, let alone who was mostly using which server, it’s hard to formulate a good strategy for beating back the costs.&lt;/p&gt;
&lt;p&gt;Here’s a simple, though somewhat radical solution. Prepay cloud developers for EC2 costs and have them use their own amazon accounts. The new improved amazon panel makes it easy to snapshot AMIs, do EBS volume management, and share these resources privately on a per-user basis. Share what you need to share, paypal the developer some funds and let them get on with it.&lt;/p&gt;
&lt;p&gt;Suddenly your army of contractors is keeping a much more watchful eye on that EC2 balance because they don’t want to go back to their boss / client to request another prepaid-EC2 cash infusion more often than absolutely necessary.&lt;/p&gt;
&lt;p&gt;This isn’t a silver bullet. If you are a fortune 500 company using “enterprise” cloud, you probably don’t want to start encouraging your sysadmins to start expensing basic server costs to their corporate credit card (actually, why not?…. nah). The prepay-EC2 strategy works best where you have a small well defined task that requires an EC2 environment, for example because setup is complicated and/or unautomated, and the developer is a &lt;a href=&quot;http://www.ribbonfarm.com/cloudworker/&quot;&gt;cloudworker&lt;/a&gt; type outsourced contractor that wants to get coding with a minimum of friction. I think this approach could also work in a smallish startup environment casual enough that there is a degree of trust but using enouch computing resources that cost is beginning to matter. Prepaid EC2 might be just the trick for keeping the individual team members mindful of costs. I haven’t actually tried this though.&lt;/p&gt;
&lt;p&gt;Minor detail: what do you do when the developer does such a good job minding costs that he completes the task far under the prepaid budget? I say, let them keep the excess!&lt;/p&gt;
&lt;p&gt;Nota bene: the patch-tag production server is still in linode, and there are no concrete plans to switch to the cloud, though I am kicking the idea around.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/313/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/313/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/313/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/313/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/313/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/313/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/313/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/313/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/313/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/313/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=313&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #55</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/02/darcs-weekly-news-55.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-380278017202518934</id>
		<updated>2010-02-20T09:55:47+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Darcs 2.4 rc2 was released, try it now:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023078.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023078.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Benchmarks are starting to come to the wiki:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023073.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023073.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://wiki.darcs.net/Benchmarks&quot;&gt;http://wiki.darcs.net/Benchmarks&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Finally, the fundraising drive was a success, a big thank-you to all donators!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023067.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023067.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.darcs.net/thanks.html&quot;&gt;http://www.darcs.net/thanks.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-1&quot;&gt;&lt;h3&gt;Issues resolved in the last week (1)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1741 Eric Kow&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;fix --list-options when option has multiple names.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1741&quot;&gt;http://bugs.darcs.net/issue1741&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-6&quot;&gt;&lt;h3&gt;Patches applied in the last week (6)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-02-20&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-380278017202518934?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: The Happstack Guestbook App</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/02/19/the-happstack-guestbook-app/"/>
		<id>http://blog.patch-tag.com/?p=309</id>
		<updated>2010-02-19T02:30:05+00:00</updated>
		<content type="html">&lt;p&gt;The &lt;a href=&quot;http://patch-tag.com/r/mae/happstack/snapshot/current/content/pretty/happstack/templates/project&quot;&gt;Happstack guestbook example application&lt;/a&gt; is the best way to learn how to learn HSP with happstack.&lt;/p&gt;
&lt;p&gt;It is really cool, and HSP, haskell’s answer to php, has gotten really significantly better in the past few months.&lt;/p&gt;
&lt;p&gt;The only thing is that it is ridiculously hard to find.&lt;/p&gt;
&lt;p&gt;Hopefully that link three paragraphs back will help.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/309/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/309/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/309/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/309/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/309/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/309/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/309/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/309/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/309/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/309/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=309&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: The Witching Hour at Starbucks</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/02/18/the-witching-hour-at-starbucks/"/>
		<id>http://blog.patch-tag.com/2010/02/18/the-witching-hour-at-starbucks/</id>
		<updated>2010-02-18T04:24:02+00:00</updated>
		<content type="html">&lt;p&gt;There is something eerie about the starbucks where I sit programming, around 7 pm. It closes at 9 pm, yet it feels closed already. Employees push mops around. The temperature drops. The light seems a little dimmer.&lt;/p&gt;
&lt;p&gt;It is the witching hour.&lt;/p&gt;
&lt;p&gt;Out of nowhere, the six or seven people left here start singing happy birthday to Berry, who has made us all many an espresso. We’re on pitch. Somebody is harmonizing, and we actually sound pretty good! Birthday girl is genuinely touched.&lt;/p&gt;
&lt;p&gt;It’s a little warmer in here.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/306/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/306/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/306/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/306/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/306/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/306/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/306/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/306/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/306/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/306/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=306&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #54</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/02/darcs-weekly-news-54.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-5573551003281800790</id>
		<updated>2010-02-15T08:11:39+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Petr updated the hashed-storage library, fixing a performance regression in the upcoming darcs 2.4, and gave us new timing scores of different versions of darcs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023019.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023019.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Eric sketched out a roadmap for darcs 2.5, which influenced our plans for the upcoming hacking sprint:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/022997.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/022997.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://wiki.darcs.net/Roadmap&quot;&gt;http://wiki.darcs.net/Roadmap&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://wiki.darcs.net/Sprints/2010-03&quot;&gt;http://wiki.darcs.net/Sprints/2010-03&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The darcs team is looking for students who want to apply for a Google Summer of Code 2010:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023020.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-February/023020.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-2&quot;&gt;&lt;h3&gt;Issues resolved in the last week (2)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1250 Florent Becker&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;check for newlines in setpref values&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1250&quot;&gt;http://bugs.darcs.net/issue1250&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1719 Florent Becker&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;1719&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1719&quot;&gt;http://bugs.darcs.net/issue1719&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-14&quot;&gt;&lt;h3&gt;Patches applied in the last week (14)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-02-15&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-5573551003281800790?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: EC2 Amis for Gitit / Happstack</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/02/12/ec2-amis-for-gitit-happstack/"/>
		<id>http://blog.patch-tag.com/?p=294</id>
		<updated>2010-02-12T06:20:19+00:00</updated>
		<content type="html">&lt;p&gt;Patch-Tag uses linode, but I’ve decided to try out EC2 for development purposes, as the hourly pricing model is attractive for server instances that don’t need to persist, and… well, I’m curious.&lt;/p&gt;
&lt;p&gt;First off, with a big bow of respect to the amz engineers, I’ll tell ya, EC2 has gotten a lot better lately.&lt;/p&gt;
&lt;p&gt;The last time I used aws was 3 or so months ago when I was configuring cloud stuff for a video startup that used a lot of disk, in conjunction with rightscale management console. Everything worked from a technology standpoint, but my gut feeling vis a vis usability was that aws was an awful mess: guis that didn’t work right, command line interfaces with hard to find documentation, inconsistent flags… beh.&lt;/p&gt;
&lt;p&gt;https://console.aws.amazon.com&lt;/p&gt;
&lt;p&gt;is hugely improved, documentation and help seems to be better organized… everything is just just more polished… better.&lt;/p&gt;
&lt;p&gt;Anyways, to get to the meat of my post, I have created two public amis that I hope may prove useful to developers and newbies alike.&lt;/p&gt;
&lt;p&gt;EC2 Amazon Machine Image: ami-3122ce58&lt;/p&gt;
&lt;p&gt;AMI ID: ami-3122ce58&lt;br /&gt;
Name: Haskell on EC2&lt;br /&gt;
Description: Based on elastic karmic, with haskell platform&lt;br /&gt;
Source: 072945664613/Haskell on EC2&lt;/p&gt;
&lt;p&gt;and… a few cabal installs later&lt;/p&gt;
&lt;p&gt;EC2 Amazon Machine Image: ami-3d23cf54&lt;/p&gt;
&lt;p&gt;AMI ID: ami-3d23cf54&lt;br /&gt;
Name: Gitit Happstack Demo on EC2&lt;br /&gt;
Description: Gitit/Hapstack on EC2&lt;br /&gt;
Source: 072945664613/Gitit Happstack Demo on EC2 &lt;/p&gt;
&lt;p&gt;Now, these images are really not such a bit deal since what with cabal and the haskell platform, there have been huge gains in package installability. But they weren’t completely trivial either, due to missing dependencies, the quickcheck 1 to quickcheck 2 switch that broke a lot of happstack, and various other hoops I had to jump through…&lt;/p&gt;
&lt;p&gt;*I* had to jump through.&lt;/p&gt;
&lt;p&gt;*You* just load the AMIs.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://aws.amazon.com/about-aws/whats-new/2009/12/03/amazon-ec2-instances-now-can-boot-from-amazon-ebs/&quot;&gt;I recommend to start here if you’re an aws newbie.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Happy hacking!&lt;/p&gt;
&lt;p&gt;PS Check out the latest from Simon Marlow for another &lt;a href=&quot;http://hackage.haskell.org/trac/ghc/wiki/AmazonEC2&quot;&gt;haskell on EC2 post&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;In case there any aws experts reading this, here is also a snip of a chat of me fumbling around. Feel free to comment or add your questions.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;patch-tag&amp;gt; I am creating an EBS bootable AMI, which takes (at least) &amp;gt; 10&lt;br /&gt;
	    minutes. Say five minutes after start I do “touch somefile”. Will&lt;br /&gt;
	    “somefile” be included in the new AMI? What governs this behavior?&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; (I actually am performing this experiment at the moment but I am&lt;br /&gt;
	    curious as to what to expect and why)&lt;br /&gt;
&amp;lt;flaccid&amp;gt; um i havnt played with ebs boot yet, but i would assume so, its&lt;br /&gt;
	  meant to be persistent&lt;br /&gt;
&amp;lt;flaccid&amp;gt; try it out&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; The reason I am asking is, say I want to snapshot while&lt;br /&gt;
	    configuring something, and I am at a safe/happy place. If the&lt;br /&gt;
	    snapshot applies to that exact moment in time, I can keep doing&lt;br /&gt;
	    dangerous things. But if the snapshot extends in time I have to&lt;br /&gt;
	    sit on my hands till it completes  before continuing work.&lt;br /&gt;
&amp;lt;flaccid&amp;gt; well a snapshot is a snapshot&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; er… ?&lt;br /&gt;
* flaccid looks up ebs boot&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; not particular to ebs boot. question applies to any way of&lt;br /&gt;
	    creating amis.&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; (sorry for obfuscating the issue)&lt;br /&gt;
&amp;lt;flaccid&amp;gt; oh right&lt;br /&gt;
&amp;lt;flaccid&amp;gt; well an AMI is indeed a snapshot&lt;br /&gt;
&amp;lt;flaccid&amp;gt; thus why it is called an image&lt;br /&gt;
&amp;lt;flaccid&amp;gt; looking at ebs boot, it does seem to be only the ability to boot&lt;br /&gt;
	  from ebs snapshots, so its not a persistent image but a manual way&lt;br /&gt;
	  of gaining persistence&lt;br /&gt;
&amp;lt;flaccid&amp;gt; and it costs more&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; changing subject — costs more? I thought ebs storage when offline&lt;br /&gt;
	    was same as S3, 10c/G/month.&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; also, AMI creation completed, so I’m actually going to check if&lt;br /&gt;
	    that file I created five minutes in got bundled…&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; aaaaaand… it’s not there.&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; I guess what’s getting snapshotted is ram in a certain state, not&lt;br /&gt;
	    hard disk. which is why it can be truly instantaneous.&lt;br /&gt;
&amp;lt;flaccid&amp;gt; everyone has said that&lt;/p&gt;
&lt;p&gt;http://aws.amazon.com/about-aws/whats-new/2009/12/03/amazon-ec2-instances-now-can-boot-from-amazon-ebs/&lt;/p&gt;
&lt;p&gt;	  works out costing more&lt;br /&gt;
&amp;lt;flaccid&amp;gt; patch-tag: where was the file on the filesystem you touched ?&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; /home/ubuntu/testfile&lt;br /&gt;
&amp;lt;flaccid&amp;gt; afaik by default /home is not bundled&lt;br /&gt;
&amp;lt;flaccid&amp;gt; you will need to check that&lt;br /&gt;
&amp;lt;flaccid&amp;gt; and obviously ensure /home is actually on the root fs (/)&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; no, it’s bundled. I know this from a previous snapshot.&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; any insight on why boot from ebs costs more? I guess because if&lt;br /&gt;
	    you make a lot of snapshots those 10c/G/month add up?&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; And the convenience of it makes it tempting to do more snapshots?&lt;br /&gt;
&amp;lt;flaccid&amp;gt; well if /home is bundled then, i have no idea. bundling is&lt;br /&gt;
	  bundling…&lt;br /&gt;
&amp;lt;flaccid&amp;gt; and yeah can’t answer your second question. unfortunately i’m not&lt;br /&gt;
	  amazon sorry&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; just in case it’s not clear, we’re in good shape. this is the&lt;br /&gt;
	    behavior I want.&lt;br /&gt;
&amp;lt;patch-tag&amp;gt; My assumption is that snapshot is point in time, and I can&lt;br /&gt;
	    initiate dangerous configs after initiating snapshot without&lt;br /&gt;
	    fear.&lt;br /&gt;
&amp;lt;flaccid&amp;gt; like i was saying before, yes a snapshot is a snapshot&lt;br /&gt;
&amp;lt;flaccid&amp;gt; whether it is a bundled ami or ebs snapshot, they are both snapshots&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/294/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/294/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/294/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/294/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/294/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/294/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/294/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/294/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/294/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/294/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=294&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: https repos for patch-tag</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/02/08/https-repos-for-patch-tag/"/>
		<id>http://blog.patch-tag.com/?p=282</id>
		<updated>2010-02-08T23:30:27+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://patch-tag.com&quot;&gt;Patch-tag&lt;/a&gt; is now https safe, so you can access your projects with cryptographic security. Just use https style urls when interacting with patch-tag.&lt;/p&gt;
&lt;p&gt;By the way — for you code shops with mission critical, high-value, national security endangering repos hosted at patch-tag — https isn’t completely safe.&lt;/p&gt;
&lt;p&gt;You could, for instance, get your password sniffed by a &lt;a href=&quot;http://www.youtube.com/watch?v=91DwA5aFxLg&quot;&gt;man in the middle attack with arp poisoning&lt;/a&gt;, if you are in a public network like an internet cafe, or on a trusted network with a coworker who enjoys hanky panky.&lt;/p&gt;
&lt;p&gt;There is a simple thing you can do to foil the terrorists though — &lt;a href=&quot;http://arvindn.livejournal.com/123183.html&quot;&gt;just click outside the text fields and type some gibberish when you are entering your password&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ha! Take that script kiddies!&lt;/p&gt;
&lt;p&gt;Please enjoy secure repos at patch tag, and as always…&lt;/p&gt;
&lt;p&gt;Happy tagging.&lt;/p&gt;
&lt;p&gt;************************&lt;/p&gt;
&lt;p&gt;UPDATE: Please note the comments which contradict some of my claims. I think I may be wrong about some of this stuff, and am taking a backtrack to make sure my understanding is solid. Watch this space.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/282/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/282/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/282/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/282/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/282/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/282/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/282/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/282/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/282/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/282/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=282&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #53</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/02/darcs-weekly-news-53.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-6341651861184634625</id>
		<updated>2010-02-01T18:07:43+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Beta 3 was released: ``When no important bugs are discovered in the coming week, darcs 2.4 will be released around Sunday, February 7.''&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022969.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022969.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022992.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022992.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The new hunk editing feature (with an improved user interface in beta 3) spawned other discussions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022981.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022981.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022983.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022983.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-0&quot;&gt;&lt;h3&gt;Issues resolved in the last week (0)&lt;/h3&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-0&quot;&gt;&lt;h3&gt;Patches applied in the last week (0)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-02-01&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-6341651861184634625?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: Taking your gitit wiki offline</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/01/23/taking-your-gitit-wiki-offline/"/>
		<id>http://blog.patch-tag.com/?p=279</id>
		<updated>2010-01-23T15:55:53+00:00</updated>
		<content type="html">&lt;p&gt;One of the great things about distributed version control is that you can unplug from the internet and keep checking in.&lt;/p&gt;
&lt;p&gt;If you recreate your gitit wiki offline, you can unplug from the internet and keep interacting with your repository via your offline gitit wiki.&lt;/p&gt;
&lt;p&gt;Here’s a newsgroup discussion that describes how to &lt;a href=&quot;http://groups.google.com/group/gitit-discuss/browse_thread/thread/2c983ab4f01c08ae?hl=en&quot;&gt;use your gitit wiki offline&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Disclaimer: If you are not technically savvy, and using patch-tag only for the gitit wiki, this option is probably not for you. I have some ideas percolating though that might make this a lot more straightforward if having an offline gitit wiki is something people want.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/279/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/279/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/279/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/279/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/279/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=279&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #52</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/01/darcs-weekly-news-52.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-4227721618017178267</id>
		<updated>2010-01-23T14:40:28+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;darcs 2.4 beta 2 was released, including the fix for performance regression with check and repair:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022917.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022917.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fundraising update: $782 were given, still $1218 to go!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022915.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022915.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://darcs.net/donations.html&quot;&gt;http://darcs.net/donations.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-1&quot;&gt;&lt;h3&gt;Issues resolved in the last week (1)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1731 Reinier Lamers&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;bump hashed-storage dependency to 0.4.5&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1731&quot;&gt;http://bugs.darcs.net/issue1731&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-15&quot;&gt;&lt;h3&gt;Patches applied in the last week (15)&lt;/h3&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-01-23&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-4227721618017178267?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #51</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/01/darcs-weekly-news-51.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-2540992484017265939</id>
		<updated>2010-01-18T09:10:19+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Mark Stosberg shared his remarks concerning the user interface of hunk splitting in darcs 2.4 beta 1, and several improvements were proposed:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022838.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022838.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Thanks to our benchmark suite, a performance regression for check and repair was detected, and Reiner Lamers blocked the current release process until this regression is fixed:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022868.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022868.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022855.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022855.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-1&quot;&gt;&lt;h3&gt;Issues resolved in the last week (1)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1677 Petr Rockai&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;require hashed-storage 0.4.4.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1677&quot;&gt;http://bugs.darcs.net/issue1677&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-9&quot;&gt;&lt;h3&gt;Patches applied in the last week (9)&lt;/h3&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-01-18&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-2540992484017265939?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: The Patch Tag Bug Tracker</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2010/01/17/the-patch-tag-bug-tracker/"/>
		<id>http://blog.patch-tag.com/?p=274</id>
		<updated>2010-01-17T18:19:35+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://patch-tag.com/r/tphyahoo/patchtag-public-bugs/wiki/&quot;&gt;Patch Tag has a bug tracker&lt;/a&gt;, an anonymously editable gitit wiki hosted at patch-tag.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/patch-tag-users/browse_thread/thread/886e06b38cf9b3c0?hl=en&quot;&gt;Full details at the mailing list&lt;/a&gt;, where I made the announcement.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/274/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/274/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/274/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/274/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/274/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/274/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/274/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/274/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/274/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/274/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=274&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #50</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2010/01/darcs-weekly-news-50.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-8974916244942400187</id>
		<updated>2010-01-11T16:19:12+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Darcs 2.4 beta 1 was released:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022719.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022719.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Eric Kow launched the second fundraising call to prepare the incoming hacking sprint in March ($2000 by 15 feb):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022755.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2010-January/022755.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://darcs.net/donations.html&quot;&gt;http://darcs.net/donations.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-2&quot;&gt;&lt;h3&gt;Issues resolved in the last week (2)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue121 Ganesh Sittampalam&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;add --ask-deps support to amend-record&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue121&quot;&gt;http://bugs.darcs.net/issue121&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1720 Dave Love&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;Fix cabal haddock problem.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1720&quot;&gt;http://bugs.darcs.net/issue1720&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-5&quot;&gt;&lt;h3&gt;Patches applied in the last week (5)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2010-01-11&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-8974916244942400187?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Max Battcher: Further Adventures with Token Stream Diffs</title>
		<link rel="alternate" type="text/html" href="http://blog.worldmaker.net/2010/jan/05/further-adventures-token-stream-diffs/"/>
		<id>http://blog.worldmaker.net/2010/jan/05/further-adventures-token-stream-diffs/</id>
		<updated>2010-01-06T01:14:29+00:00</updated>
		<content type="html">&lt;p&gt;I've taken, with a tiny bit of prodding, the &lt;a href=&quot;http://blog.worldmaker.net/2009/aug/16/token-stream-diffs-using-pygments/&quot; class=&quot;reference external&quot;&gt;Token Stream Diffs Using Pygments&lt;/a&gt; from toy to a nascent toolchain that may even almost be useful.&lt;/p&gt;
&lt;p&gt;I've brought in two new dependencies &lt;a href=&quot;http://code.google.com/p/google-diff-match-patch/&quot; class=&quot;reference external&quot;&gt;Google diff-match-patch&lt;/a&gt; and, for nice argument parsing, &lt;a href=&quot;http://code.google.com/p/argparse/&quot; class=&quot;reference external&quot;&gt;argparse&lt;/a&gt;. The diff-match-patch library provides a character-based diff algorithm and patch format (a character-based unidiff-like format with character escaping) in a number of languages, including my friend Python. I can use diff-match-patch to produce useful patch output (and apply said patches with a simple new &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;tokpatch.py&lt;/span&gt;&lt;/tt&gt; file that is but a wrapper around diff-match-patch patching).&lt;/p&gt;
&lt;p&gt;&lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;tokdiff.py&lt;/span&gt;&lt;/tt&gt; has grown three new output formats. The original &quot;toy&quot; format I've renamed &quot;verbose&quot; and its quite interesting for debugging and getting an idea of why diffs look the way they do. Most useful, and the new default, is the unidiff-like output. There's also diff-match-patch's much more compact tab-delimited &quot;delta&quot; format, which is interesting, but I don't think is all that safe. (It's an undocumented, outside of the code itself, feature...)&lt;/p&gt;
&lt;p&gt;The final output format is the &quot;compare&quot; which outputs some pretty HTML visually showing the differences between the tokenized diff approach and diff-match-patch's standard character-based diff, plus some basic benchmarking of the two algorithms.&lt;/p&gt;
&lt;p&gt;Both tools and both dependencies can be grabbed from the darcs repository:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;darcs get http://repos.worldmaker.net/tokdiff/main tokdiff
&lt;/pre&gt;
&lt;p&gt;I'll consider putting together a deeper code site for it in the near future.&lt;/p&gt;
&lt;p&gt;Some brief observations and thoughts for future directions:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;I shouldn't be too surprised by it, but the tokenized diff does generally seem to be an order of magnitude faster than diff-match-patch's more generalized character-based diff algorithm.&lt;/li&gt;
&lt;li&gt;I think there are still some interesting heuristics that can be further applied to make the tokenized diff even smarter. I'm not sure how exactly to start on that (I've been lucky to get as far as I have on the backs of existing diff algorithms).&lt;/li&gt;
&lt;li&gt;I'd like to experiment with darcs-like patch selection UI using the tokenized diffs; particularly using the existing tokenization for syntax highlighting.&lt;/li&gt;
&lt;li&gt;I'd like to know if anyone finds interesting real applications of this quick hack.&lt;/li&gt;
&lt;/ul&gt;


&lt;a href=&quot;http://blog.worldmaker.net/2010/jan/05/further-adventures-token-stream-diffs/&quot;&gt;Read More »&lt;/a&gt;</content>
		<author>
			<name>Max Battcher</name>
			<uri>http://tags.worldmaker.net/darcs/</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #49</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/12/darcs-weekly-news-49.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-6177941920363637784</id>
		<updated>2009-12-27T21:51:12+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Reinier Lamers announced the release schedule of darcs 2.4 (freeze: December 31st, release: January 30th):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022597.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022597.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Eric Kow asked the team to contribute benchmarks showing the performance improvements of the next stable version:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022599.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022599.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022631.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022631.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Ganesh Sittampalam summed up his work in progress regarding versions 2.4 and 2.5:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022603.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022603.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-2&quot;&gt;&lt;h3&gt;Issues resolved in the last week (2)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1362 Joachim Breitner&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;Mention repo name in mail send body&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1362&quot;&gt;http://bugs.darcs.net/issue1362&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1392 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;noscript&amp;gt;caitt@users.sourceforge.net&amp;lt;/noscript&amp;gt;&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;use parsec to parse .authorspelling&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1392&quot;&gt;http://bugs.darcs.net/issue1392&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-32&quot;&gt;&lt;h3&gt;Patches applied in the last week (32)&lt;/h3&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2009-12-27&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-6177941920363637784?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #48</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/12/darcs-weekly-news-48.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-5905246915908940557</id>
		<updated>2009-12-20T18:57:28+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;The darcs team discussed the inclusion of Dave Love's darcs Emacs plugin into the contrib directory of darcs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022518.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022518.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Ganesh submitted a patch (based on a previous one by Sergei Trofimovich) making darcs compilable with GHC 6.12:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022540.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022540.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Cabal 1.8 and cabal-install 0.8 were released, which will enable non-redundant compilation of darcs and libdarcs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://hackage.haskell.org/package/Cabal-1.8.0.2&quot;&gt;http://hackage.haskell.org/package/Cabal-1.8.0.2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://hackage.haskell.org/package/cabal-install-0.8.0&quot;&gt;http://hackage.haskell.org/package/cabal-install-0.8.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-2&quot;&gt;&lt;h3&gt;Issues resolved in the last week (2)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue835 Luca Molteni&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;show file with file directory arguments&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue835&quot;&gt;http://bugs.darcs.net/issue835&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1712 Luca Molteni&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;darcs over-reports number of patches to pull&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1712&quot;&gt;http://bugs.darcs.net/issue1712&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-9&quot;&gt;&lt;h3&gt;Patches applied in the last week (9)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2009-12-20&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-5905246915908940557?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #47</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/12/darcs-weekly-news-47.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-6592670941058571420</id>
		<updated>2009-12-12T16:16:17+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h2&gt;News and discussions&lt;/h2&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Jason Dagit told us about his experiments to make darcs more memory-efficient:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022517.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022517.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A discussion occured about the (currently inexistent) handling of symlinks in darcs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022432.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-December/022432.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://wiki.darcs.net/Darcs3Wishlist&quot;&gt;http://wiki.darcs.net/Darcs3Wishlist&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-8&quot;&gt;&lt;h2&gt;Issues resolved in the last week (8)&lt;/h2&gt;&lt;dl&gt;&lt;dt&gt;issue223 Benedikt Huber&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;add --remote-darcs flag for remote darcs executable&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue223&quot;&gt;http://bugs.darcs.net/issue223&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1216 Trent W. Buck&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;list Match section in ToC.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1216&quot;&gt;http://bugs.darcs.net/issue1216&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1308 Luca Molteni&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;push should warn about unpulled patches &lt;em&gt;before&lt;/em&gt; patch-selection&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1308&quot;&gt;http://bugs.darcs.net/issue1308&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1336 David Markvica&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;poor error message on --last &quot;&quot; (empty string to numbers parser)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1336&quot;&gt;http://bugs.darcs.net/issue1336&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1377 Benedikt Huber&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;getProgname for local darcs instances&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1377&quot;&gt;http://bugs.darcs.net/issue1377&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1424 David Markvica&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;1424: darcs get wrongly reports &quot;using lazy repository&quot; if you ctrl-c old-fashioned get&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1424&quot;&gt;http://bugs.darcs.net/issue1424&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1594 Dave Love&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;define PREPROCHTML in makefile&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1594&quot;&gt;http://bugs.darcs.net/issue1594&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1709 quiark@centrum.cz&amp;lt;noscript&amp;gt;&amp;lt;/noscript&amp;gt;&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;Short version of progress reporting was wrong.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1709&quot;&gt;http://bugs.darcs.net/issue1709&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-52&quot;&gt;&lt;h2&gt;Patches applied in the last week (52)&lt;/h2&gt; See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2009-12-12&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-6592670941058571420?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: Transliterating python to haskell: Fibonacci in the state monad</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/12/07/transliterating-python-to-haskell-fibonacci-in-the-state-monad/"/>
		<id>http://blog.patch-tag.com/?p=266</id>
		<updated>2009-12-07T20:40:17+00:00</updated>
		<content type="html">&lt;p&gt;I have been doing some python brush-up over the last couple of days, and came across the following bit of code in an irc chat about approaches for fibonacci in python.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
def fib(n):
    a, b = 0, 1
    for _ in xrange(n):
        a, b = b, a + b
    return a
print fib(1000)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I think this is pretty typical, reasonable, and efficient python code.&lt;/p&gt;
&lt;p&gt;I wondered, how would I express this in haskell? How different this computation looks from the canonical&lt;/p&gt;
&lt;p&gt;fibs = 1:1:zipwith (+) fibs (tail fibs) &lt;/p&gt;
&lt;p&gt;!&lt;/p&gt;
&lt;p&gt;The answer, as is commonly the case for code written in imperative languages, is that this algorithm lives in the state monad. It can be ported to haskell, practically transliterated, as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
import Control.Monad.State
{-
-- haskell translational of python algo
def fib(n):
    a, b = 0, 1
    for _ in xrange(n):
        a, b = b, a + b
    return a
print fib(1000)
-}
fib :: Integer -&amp;gt; Integer
fib n = flip evalState (0,1) $ do
  forM (xrange n) $ \_ -&amp;gt; do
    (a,b) &amp;lt;- get
    put (b,a+b)
  (a,b) &amp;lt;- get
  return a 

xrange n = [0..(n-1)]

-- test that it works
traditionalFibs' = 1: 1: (zipWith (+) traditionalFibs' (tail traditionalFibs'))
traditionalFib n = traditionalFibs' !! (n-1)

t = fib 1000 == traditionalFib 1000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; Also added this to hawiki  at &lt;/p&gt;
&lt;p&gt;http://www.haskell.org/haskellwiki/The_Fibonacci_sequence#With_state&lt;br /&gt;
 &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/266/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/266/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/266/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/266/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/266/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=266&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: Clearing up loose ends</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/12/02/clearing-up-loose-ends/"/>
		<id>http://blog.patch-tag.com/?p=258</id>
		<updated>2009-12-02T23:14:16+00:00</updated>
		<content type="html">&lt;p&gt;Patch-Tag is getting closer to a place where I’d feel comfortable charging for it, but there are a couple of things I need to take care of first.&lt;/p&gt;
&lt;p&gt;First, I want to be more confident that I can scale this service out if I start getting a lot more users. It needs to be rock solid. No more downtime, no more crashes. This will definitely involve code tweaks for places that use unjustifiably large amounts lot of memory, and may (or may not — haven’t decided yet) mean infrastructure changes.&lt;/p&gt;
&lt;p&gt;Second, Patch Tag already does backups but I am going to revisit this process one more time to convince myself that this is as rock solid as it can get.&lt;/p&gt;
&lt;p&gt;Happy belated thanksgiving everyone. There will be some more interesting news soon, I am feeling sure!&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/258/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/258/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/258/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/258/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/258/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=258&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs hacking sprint 3 report</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/11/darcs-hacking-sprint-3-report.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-892467900253144443</id>
		<updated>2009-11-19T23:36:40+00:00</updated>
		<content type="html">The Darcs Hacking sprint was co-located in Vienna, Austria and Portland, Oregon, USA.&lt;p&gt;The Vienna team had a unique experience as the sprint happened to coincide with a student protest that resulted in an &lt;a href=&quot;http://tu-brennt.fsinf.at/wiki/Hauptseite&quot;&gt;occupied&lt;/a&gt; University building. Great fun was had by all as we shared our hacking space with the Occupiers on Saturday.&lt;/p&gt;&lt;p&gt;The Portland team was graciously hosted by Galois. As a special treat, we got a visit from Thomas Hartman, one of the folks behind Patch-tag.&lt;/p&gt;&lt;div id=&quot;overview&quot;&gt;&lt;h3&gt;Overview&lt;/h3&gt;&lt;p&gt;Among other things, the upcoming Darcs 2.4 release has some nice performance improvements from Petr Ročkai's hashed-storage work.&lt;/p&gt;&lt;p&gt;One first goal in this sprint was to polish up this work, making our hashed repository support good enough for GHC team to upgrade from the deprecated old-fashioned format. We think we've largely accomplished what we set out to do. Read on for more details!&lt;/p&gt;&lt;p&gt;Our second goal was to provide a space for new Darcs hackers to get started with making contributions to the project. We had 14 new Darcs developers at this sprint! We hope that they will stay on with the project and continue submitting patches.&lt;/p&gt;&lt;div id=&quot;issues-resolved&quot;&gt;&lt;h4&gt;Issues resolved&lt;/h4&gt;&lt;p&gt;Note that some of this work is still pending patch review or amendements.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;issue540 - darcs remove --recursive - Roman Plášil&lt;/li&gt;&lt;li&gt;issue835 - show files with arguments - Luca Molteni&lt;/li&gt;&lt;li&gt;issue1122 - get --complete UI - David Markvica&lt;/li&gt;&lt;li&gt;issue1208 - trackdown --bisect - Matthias Fischmann, Radoslav Dorcik&lt;/li&gt;&lt;li&gt;issue1224 - darcs convert on darcs-2 repositories - Tomáš Caithaml&lt;/li&gt;&lt;li&gt;issue1377 - hardcoding of darcs executable name - Benedikt Huber&lt;/li&gt;&lt;li&gt;issue1392 - use Parsec for authorspellings - Tomáš Caithaml&lt;/li&gt;&lt;li&gt;issue1394 - show time elapsed after each test - Kim Wallmark&lt;/li&gt;&lt;li&gt;issue1499 - versioned show files - Thomas Hartman&lt;/li&gt;&lt;li&gt;issue1500 - misleading darcs progress reports - Roman Plášil&lt;/li&gt;&lt;li&gt;issue1624 - break up global cache into subdirectories - Luca Molteni&lt;/li&gt;&lt;li&gt;issue1643 - optimize --upgrade should do optimize - Christian Berrer&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;hacking&quot;&gt;&lt;h3&gt;Hacking&lt;/h3&gt;&lt;div id=&quot;studying-darcs&quot;&gt;&lt;h4&gt;Studying darcs&lt;/h4&gt;&lt;p&gt;Thomas DuBuisson and Jason Dagit studied some hanging merge cases on the GHC repository to see if we could garner some insights into them. While this did not yield much fruit, it did result a few code cleanups.&lt;/p&gt;&lt;p&gt;Jonathan Daugherty and Josh Hoyt took a tour of the Darcs source. We hope they'll be joining us as Darcs hackers in the future :-)&lt;/p&gt;&lt;p&gt;Jason Dagit produced a &lt;a href=&quot;http://wiki.darcs.net/Development/DarcsInternals/Record&quot;&gt;concrete and low-level description&lt;/a&gt; of the Darcs record command.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;code-cleanups&quot;&gt;&lt;h4&gt;Code cleanups&lt;/h4&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7013.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7013.jpg&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 210px; height: 139px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;As a warm-up exercise, everybody worked on tidying the Darcs and hashed-storage source, eliminating annoying GHC warnings and implementing suggestions from hlint.&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7013.jpg&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7039.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7039.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 76px; height: 113px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Tomáš Caithaml simplified the darcs show authors authorspellings code by rewriting it in Parsec.&lt;/p&gt;&lt;p&gt;Jason Dagit cleaned up the elegant_merge function and removed commutex in favor of commute.&lt;/p&gt;&lt;p&gt;Jonathan Daugherty submitted some improvements to the user manual.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;performance-improvements&quot;&gt;&lt;h4&gt;Performance improvements&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7004.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7004.jpg&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 168px; height: 111px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Luca Molteni improved Darcs's handling of the global cache, splitting it into buckets for better performance.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;user-interface-improvements&quot;&gt;&lt;h4&gt;User interface improvements&lt;/h4&gt;&lt;p&gt;Tomáš Caithaml got darcs convert to abort in case user accidently tries to convert a darcs 2 repository a second time.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7058.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7058.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 114px; height: 73px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Roman Plášil improved the user experience behind Darcs progress reporting replacing misleadingly definitive text with a more accurate description as shown in the following example :&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;                           OLD TEXT    NEW TEXT&lt;br /&gt;Fetching pristine cache... 4/45        4 done, 41 queued&lt;br /&gt;(sometime later)...        10/166      10 done, 155 queued&lt;br /&gt;(finally)...               297/297     297 done&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Christian Berrer extended the darcs optimize --upgrade command to also act as plain old darcs optimize in addition to upgrading the repository format.&lt;/p&gt;&lt;p&gt;David Markvica modified darcs get --complete so that it no longer offers to create a lazy repository.&lt;/p&gt;&lt;p&gt;Benedikt Huber relaxed the assumption that darcs executable would be called &quot;darcs&quot;, instead fetching this from the command line.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;new-features&quot;&gt;&lt;h4&gt;New features&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7029.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7029.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 166px; height: 111px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Matthias Fischmann and Radoslav Dorcik worked on a new trackdown --bisect feature for darcs trackdown which makes trackdown more useful for larger sets sets of patches.&lt;/p&gt;&lt;p&gt;Roman Plášil implemented an oft-requested remove -r feature, making it easier to undo accidental adds of large directories.&lt;/p&gt;&lt;p&gt;Luca Molteni implemented darcs show files with an argument to limit the output to a specific file or directory.&lt;/p&gt;&lt;p&gt;Thomas Hartman implemented matchers support for darcs show files, allowing to get the list of files tracked by Darcs at a given point in the history (eg. darcs show files --tag 2.4).&lt;/p&gt;&lt;p&gt;Petr Ročkai worked on a new more extensible, self-documenting format mechanism as a future alterantive to _darcs/format.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;utf-8-support&quot;&gt;&lt;h4&gt;UTF-8 Support&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_6997.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_6997.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 120px; height: 79px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Reinier Lamers continued his work on storing darcs patch metadata in UTF-8. He worked on autodetecting UTF-8 content (in the patch metadata) and found some subtle bugs in the utf8-string library along the way.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;svn-integration&quot;&gt;&lt;h4&gt;SVN integration&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7014.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7014.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 194px; height: 129px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;The Vienna local team, Christian Berrer, Thomas Danecker and David Markvica, worked on SVN integration and studied the libsvn directory in great detail.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;zero-windows-bugs&quot;&gt;&lt;h4&gt;Zero Windows Bugs!&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7005.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7005.jpg&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 82px; height: 121px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Salvatore Insalaco slayed the 18 Windows bugs that resulted from our recent hashed-storage work. This means that we can can definitely release the new hashed-storage work in Darcs 2.4.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;darcs-team-infrasructure&quot;&gt;&lt;h4&gt;Darcs Team infrastructure&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7024.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7024.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 77px; height: 114px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Joachim Breitner made some improvements to the darcswatch core and user interface. He also added hooks to Darcswatch for integration with Darcs Team patch tracker. Joachim Breitner, Eric Kow, Petr Ročkai also added some polish to patch tracker, in particular to its email gateway interface and interaction with the darcs-users mailing list. The result of these efforts is a more efficient Darcs Team with simpler and smoother patch review process.&lt;/p&gt;&lt;p&gt;Kim Wallmark worked on making the 'cabal test' friendlier by outputting the amount of time elapsed after long tests.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;discussions&quot;&gt;&lt;h3&gt;Discussions&lt;/h3&gt;&lt;div id=&quot;priorities-for-the-sprint&quot;&gt;&lt;h4&gt;Priorities for the Sprint&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_3gbsIJWF64A/SwMexsRbV1I/AAAAAAAABNM/rpgQdAKUqpo/s640/DSC00757.JPG&quot;&gt;&lt;img src=&quot;http://lh5.ggpht.com/_3gbsIJWF64A/SwMexsRbV1I/AAAAAAAABNM/rpgQdAKUqpo/s640/DSC00757.JPG&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 145px; height: 106px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Salvatore Insalaco, Eric Kow, Reinier Lamers, Luca Molteni and Petr Ročkai discussed the key goals for the sprint and also produced a list of the top ProbablyEasy.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;type-witnesses&quot;&gt;&lt;h4&gt;Type witnesses&lt;/h4&gt;&lt;p&gt;Jason Dagit gave a presentation about our type-witnesses, how the type hackery in darcs is implemented, and why it is useful.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;patch-tag&quot;&gt;&lt;h4&gt;Patch-tag&lt;/h4&gt;&lt;p&gt;Thomas Hartman and the Portland crew discussed patch-tag: how it felt from a user perspective and what the most useful features would be.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;svn-integration-1&quot;&gt;&lt;h4&gt;SVN integration&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7069.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7069.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 170px; height: 113px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Thomas Danecker, Eric Kow, Petr Ročkai, Ganesh Sittampalam (IRC) discussed the SVN integration project: what the roadmap should look like and how this feature might fit into Darcs, whether as a fully integrated feature, a plugin or a standalone application.&lt;/p&gt;&lt;p&gt;Petr Ročkai and Eric Kow also discussed the nature of patch/changeset based revision control (like Darcs) and snapshot based revision control (everything else). Petr observed that changeset based version control can be seen as just snapshot based control with a fixed diffing algorithm. To support things like SVN integration, Darcs will need to freeze its diffing algorithm.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;darcs-roadmap&quot;&gt;&lt;h4&gt;Darcs roadmap&lt;/h4&gt;&lt;p&gt;Salvatore Insalaco, Eric Kow, Reinier Lamers and all Vienna hackers developed the roadmap for Darcs 2.4 (January 2010) and Darcs 2.5 (July 2010). Using a chalkboard we listed the features we wanted, how desirable they were and what order we should do them in.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7073.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7073.jpg&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 206px; height: 136px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;windows-support&quot;&gt;&lt;h4&gt;Windows support&lt;/h4&gt;&lt;p&gt;Salvatore Insalaco, Eric Kow and Reinier Lamers discussed the future of Windows support in Darcs.&lt;/p&gt;&lt;p&gt;Official binary: Our first priority will be to get an official binary for Windows downloadable from Darcs.net. The upcoming Darcs release (Darcs 2.4 in January 2010) will the first to provide an official binaries.  Currently, we have the resources to provide a binary for Windows only, but in the future the list of platforms may grow.&lt;/p&gt;&lt;p&gt;Refined integration: After the Darcs 2.4 release, we will work on developing a friendly Windows installer for Darcs which includes not just the Darcs binary but (optionally), TortoiseSSH for better ssh support and a tool for sending email via darcs send.&lt;/p&gt;&lt;p&gt;Cygwin support: We will not be able to support Cygwin, but we will work on providing more explicit documentation on what works (mostly everything) and what does not (absolute cygwin paths). We think that the improved Windows installer will provide a sufficiently comfortable Darcs experience for most Cygwin users.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;fun-and-speculation&quot;&gt;&lt;h4&gt;Fun and speculation&lt;/h4&gt;&lt;p&gt;Joachim Breitner, Reinier Lamers and Petr Ročkai discussed abstracting over patch types to just maps (eg. directories), sets and lists (eg. files).&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;better-darcs-hacking-sprints&quot;&gt;&lt;h3&gt;Better Darcs Hacking Sprints&lt;/h3&gt;&lt;p&gt;Every sprint teaches something new for what we hope to be a long tradition of biannual Darcs Hacking events.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7011.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7011.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 130px; height: 167px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;One thing which worked out well this year was that we provided a clean list of the best ProbablyEasy bugs for new hackers to work on. This allowed new developers to make highly desirable contributions from the very beginning. This year the list was built with live discussion, a few Darcs Team members huddled in a hostel room over an open bug tracker. Perhaps we can replicate the success by having similar pre-sprint meetings in the future.&lt;/p&gt;&lt;p&gt;Replicating success is one thing; how can we do even better? Mainly we need to improve the experience that new hackers have. We were lucky this year to have many new Haskellers and Darcs developers, but we could have done a better job in helping them to get started.&lt;/p&gt;&lt;p&gt;First, some technical issues: A lot of our new developers lost the better part of Saturday morning setting up the machines to build Darcs and to send patches to the list. In the next sprint, we will be ready with much more precise and detailed setup instructions (developed hastily during this sprint) going all the way to the best default settings for Darcs, configuration files for msmtp (or similar sendmail replacements). It also has been suggested that we provide a virtual machine image for instant Darcs hacking.&lt;/p&gt;&lt;p&gt;Second, our mentoring strategy: We were fairly successful at providing in-depth individual mentoring; however what we could done better was to provide more mass mentoring at the very beginning, to help developers send their first patches. To make this work, we should try starting the next sprint with a group mentoring session with the specific purpose of getting people set up to send their first patches. We should encourage new developers to work in small teams, for example with an extra USB keyboard to facilitate pair programming on a single machine.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;attendees&quot;&gt;&lt;h3&gt;Attendees&lt;/h3&gt;&lt;div id=&quot;vienna&quot;&gt;&lt;h4&gt;Vienna&lt;/h4&gt;&lt;a href=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7020.jpg&quot;&gt;&lt;img src=&quot;http://web.mornfall.net/photo/2009-11-vienna/slide_img_7020.jpg&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 235px; height: 156px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;Joachim Breitner&lt;/li&gt;&lt;li&gt;Benedikt Huber&lt;/li&gt;&lt;li&gt;Eric Kow&lt;/li&gt;&lt;li&gt;Reinier Lamers&lt;/li&gt;&lt;li&gt;David Markvica&lt;/li&gt;&lt;li&gt;Petr Rockai&lt;/li&gt;&lt;li&gt;Radoslav Dorcik&lt;/li&gt;&lt;li&gt;Salvatore Insalaco&lt;/li&gt;&lt;li&gt;Matthias Fischmann&lt;/li&gt;&lt;li&gt;Thomas Danecker&lt;/li&gt;&lt;li&gt;Christian Berrer&lt;/li&gt;&lt;li&gt;Luca Molteni&lt;/li&gt;&lt;li&gt;Roman Plášil&lt;/li&gt;&lt;li&gt;Tomáš Caithaml&lt;/li&gt;&lt;li&gt;Pivo&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;portland&quot;&gt;&lt;h4&gt;Portland&lt;/h4&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;Jason Dagit&lt;/li&gt;&lt;li&gt;Josh Hoyt&lt;/li&gt;&lt;li&gt;Thomas Hartman&lt;/li&gt;&lt;li&gt;Thomas DuBuisson&lt;/li&gt;&lt;li&gt;Kim Wallmark&lt;/li&gt;&lt;li&gt;Jonathan Daugherty&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;thanks&quot;&gt;&lt;h3&gt;Thanks!&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_3gbsIJWF64A/SwMe2JYCwsI/AAAAAAAABNw/LJKIgVLDPcY/s512/DSC00759.JPG&quot;&gt;&lt;img src=&quot;http://lh6.ggpht.com/_3gbsIJWF64A/SwMe2JYCwsI/AAAAAAAABNw/LJKIgVLDPcY/s512/DSC00759.JPG&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 121px; height: 162px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Many thanks to the local team at TU Vienna and Galois for a wonderful welcome! Thanks to the many generous &lt;a href=&quot;http://darcs.net/donations.html&quot;&gt;donors&lt;/a&gt; who helped us to subsidise travel to the sprint. Thanks also to Microsoft Austria for sponsoring the sprint with drinks and snacks. Molte grazie to Salvatore Insalaco for a wonderful lunch on Sunday.&lt;/p&gt;&lt;p&gt;Finally, thanks to Petr and Luca for the photos, and more generally to everybody who participated in the sprint! It was great to have you and we hope to see you again either on the mailing list or at future sprints.&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;see-you-in-march&quot;&gt;&lt;h3&gt;See you in March!&lt;/h3&gt;&lt;p&gt;The fourth Darcs Hacking Sprint will be taking place in Zürich on 19-21 March 2010 as part of the Haskell Hackathon. Hope to see you there!&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-892467900253144443?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>kowey (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #46</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/11/darcs-weekly-news-46.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-2630077318326371828</id>
		<updated>2009-11-18T02:34:59+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;The third darcs hacking sprint happened last weekend in Vienna and Portland! An extensive report will be posted here soon. As a teaser of all the work done, here is a draft implementation of trackdown --bisect written in Vienna by Matthias Fischmann:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022251.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022251.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://wiki.darcs.net/Sprints/2009-11&quot;&gt;http://wiki.darcs.net/Sprints/2009-11&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Eric proposed to add Florent Becker to the review team:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022270.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022270.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Still working on making patch metadata in UTF8 happen, Reinier is dealing with haskell package version issues for the 2.4 release:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022283.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022283.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-6&quot;&gt;&lt;h3&gt;Issues resolved in the last week (6)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue540 quiark@centrum.cz&amp;lt;noscript&amp;gt;&amp;lt;/noscript&amp;gt;&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;darcs remove --recursive&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue540&quot;&gt;http://bugs.darcs.net/issue540&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1122 David Markvica&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;get --complete should not offer to create a lazy repository&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1122&quot;&gt;http://bugs.darcs.net/issue1122&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1224 caitt@users.sourceforge.net &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;noscript&amp;gt;&amp;lt;/noscript&amp;gt;&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;refuse to convert a repo that's already in darcs-2 format.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1224&quot;&gt;http://bugs.darcs.net/issue1224&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1636 Kamil Dworakowski&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;match hunk&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1636&quot;&gt;http://bugs.darcs.net/issue1636&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1643 Christian Berrer&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;optimize --upgrade should do optimize&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1643&quot;&gt;http://bugs.darcs.net/issue1643&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1659 Petr Rockai&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;Make restrictBoring take recorded state into account.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1659&quot;&gt;http://bugs.darcs.net/issue1659&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-34&quot;&gt;&lt;h3&gt;Patches applied in the last week (34)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2009-11-17&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-2630077318326371828?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #45</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/11/darcs-weekly-news-45.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-341684767951641190</id>
		<updated>2009-11-04T15:09:58+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;The darcs team is now using roundup as a patch tracker! Eric Kow announced this new feature which now handles all patches send with darcs send:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021957.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021957.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Discussion about the formalization of darcs patch theory continued, involving the most prominent darcs theorists around!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021970.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021970.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.math.ucla.edu/%7Ejjacobson/patch-theory/&quot;&gt;http://www.math.ucla.edu/~jjacobson/patch-theory/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Reinier Lamers submitted a patch enabling storage of textual patch metadata in UTF-8, fixing one of darcs's oldest bugs. Review pending:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022050.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-November/022050.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue64&quot;&gt;http://bugs.darcs.net/issue64&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-2&quot;&gt;&lt;h3&gt;Issues resolved in the last week (2)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1554 Trent W. Buck&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;allow opt-out of -threaded (fix ARM builds).&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1554&quot;&gt;http://bugs.darcs.net/issue1554&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1588 Ganesh Sittampalam&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;add --skip-conflicts option&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1588&quot;&gt;http://bugs.darcs.net/issue1588&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-21&quot;&gt;&lt;h3&gt;Patches applied in the last week (21)&lt;/h3&gt;&lt;/div&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2009-11-04&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-341684767951641190?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: Parting is such sweet sorrow</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/11/03/parting-is-such-sweet-sorrow/"/>
		<id>http://blog.patch-tag.com/?p=255</id>
		<updated>2009-11-03T16:36:41+00:00</updated>
		<content type="html">&lt;p&gt;I’m keeping this one brief… Matt Elder has decided that it’s time to move on from patch-tag, in order to focus on other projects and the new addition to his family.&lt;/p&gt;
&lt;p&gt;Thanks for all the good work, Matt. Patch-tag wouldn’t have&lt;br /&gt;
gotten this far without you.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/255/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/255/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/255/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/255/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/255/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/255/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/255/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/255/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/255/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/255/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=255&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: migrating from happstack 0.1 to happstack 0.3</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/10/30/migrating-from-happstack-0-1-to-happstack-0-3/"/>
		<id>http://blog.patch-tag.com/?p=246</id>
		<updated>2009-10-30T14:41:14+00:00</updated>
		<content type="html">&lt;br /&gt;&lt;p&gt;I am in the process of migrating patch-tag to the latest version of happstack, and I thought I would post some diffs to aid others who have the same task.&lt;/p&gt;
&lt;p&gt;This probably isn’t of much interest unless you are actually faced with a migration — but if you are, could save you some time and starting at compile complaints.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;                       happstack-data == 0.1,
&amp;lt;                       happstack-helpers == 0.11,
&amp;lt;                       happstack-ixset == 0.1,
&amp;lt;                       happstack-server == 0.1,
&amp;lt;                       happstack-state == 0.1,
&amp;lt;                       happstack-util == 0.1,
---
&amp;gt;                       happstack-data == 0.3.3,
&amp;gt;                       happstack-helpers == 0.30,
&amp;gt;                       happstack-ixset == 0.3.2,
&amp;gt;                       happstack-server == 0.3.3,
&amp;gt;                       happstack-state == 0.3.3,
&amp;gt;                       happstack-util == 0.3.2,

notice msum

&amp;lt; controller pubdom privdom ts dynamicTemplateReload realEmail wikitmpl mime useGoogAnalytics =
&amp;lt;    (staticfiles ++)
---
&amp;gt; controller pubdom privdom ts dynamicTemplateReload realEmail wikitmpl mime useGoogAnalytics =
&amp;gt;     msum [ staticfiles

notice ReaderT

&amp;lt; mainController pubdom privdom ts' dynamicTemplateReload realEmail wikitmpl mime ga =
&amp;lt;        [ ServerPartT $ \rq -&amp;gt; do
---
&amp;gt; mainController pubdom privdom ts' dynamicTemplateReload realEmail wikitmpl mime ga =
&amp;gt;        ServerPartT $ ReaderT $ \rq -&amp;gt; do

notice s/unserverPartT/runServerPartT/

&amp;lt;   unServerPartT ( multi $ mainCommon pubdom privdom (RenderGlobals rq ts mbSession ga) mailFx wikitmpl mime) rq
&amp;lt;   ]
---
&amp;gt;   runServerPartT ( msum $ mainCommon pubdom privdom (RenderGlobals rq ts mbSession ga) mailFx wikitmpl mime) rq

 &amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

 &lt;/code&gt;&lt;/pre&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/246/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/246/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/246/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/246/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/246/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/246/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/246/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/246/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/246/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/246/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=246&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: Prelude golf: what can we learn by rewriting the partition function?</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/10/28/prelude_golf_partition/"/>
		<id>http://blog.patch-tag.com/?p=229</id>
		<updated>2009-10-28T20:58:11+00:00</updated>
		<content type="html">&lt;br /&gt;&lt;p&gt;To get the most out of the following blog post, first try writing your partition function, which does the same thing as Data.List.partition.&lt;/p&gt;
&lt;p&gt;*Partition&amp;gt; partition even [1..10]&lt;br /&gt;
([2,4,6,8,10],[1,3,5,7,9])&lt;/p&gt;
&lt;p&gt;Then write a testing function, tpf, which checks your partition function against a variety of input, including large or infinite input. (Which means we don’t just use quickcheck).&lt;/p&gt;
&lt;p&gt;Then read the blog post to see what obstacles I hit when I went through this process.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://patch-tag.com/r/tphyahoo/haskell-learning/snapshot/current/content/raw/monads/Partition.hs&quot;&gt;source here&lt;/a&gt;  if you’re irked by wordpress aggressively cutting off the right side of the page.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
{-# LANGUAGE NoMonomorphismRestriction #-}
module Partition where
import Debug.Trace.Helpers
import qualified Data.List as DL
import Debug.Trace

-- first attempt
partition f [] = ([],[])
partition f (x:xs) =
  let (as,bs) = partition f xs
  in  if (f x) then (x:as,bs) else (as,x:bs)
t1 = tpf partition 

-- testing function.
tpf partif =
      let a = last . snd . partif even $ [1..(10^6)]
          b = head . snd . partif even $ [1,2..]
          c = last . snd . partif even $ [1..(10^8)]
       in (a,b,c)

-- sanity checks / benchmarks. our own code should be at least as fast as Data.List versions.
-- a is immediate, b is immediate, c takes about 10 seconds.
tDL = tpf DL.partition

-- a test and b test are fine but that 10^8 list seems to take forever.
-- let's think about this. What algorithm are we using?
-- Actually, I don't know the answer to that.
-- but looking at that let/in, I don't have a clear sense of crunching through a list and building up a result, which is usually the ideal.
-- So let's try this with a fold.

-- Next question, what kind of fold?
-- Easy answer: just try both and see what happens!
-- Once you've written one, you have the other just by flipping the arguments in the helper function &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;
-- (Note: for the foldl, we try strict foldl' by default, as there is usually no reason to use lazy foldl:
-- http://haskell.org/haskellwiki/Foldr_Foldl_Foldl'
partitionR f xs = foldr g ([],[]) xs
  where g next accum@(as,bs) = if f next then (next:as,bs) else (as,next:bs)
partitionL' f xs = DL.foldl' g ([],[]) $ reverse xs
  where g accum@(as,bs) next = if f next then (next:as,bs) else (as,next:bs)
-- Harder answer, which requires thought: we probably want a foldr here, because the b test uses an infinite list and a strict fold
-- won't return anything if you feed it an infinite list.

-- OK, let's try foldr
t2 = tpf partitionR -- result: immediate stack overflow on the a test, and if you try them separately, it overflows all 3 tests.
                    -- that's kind of sad.

-- for no particular reason, let's try a strict foldl version (warning! be careful running this!)
t3 = tpf partitionL'
  -- at least the a test succeeds after a few seconds, confirming the intuition that strict foldl' crunches through a list
  -- and returns output after it's done.
  -- the b test exhausts computer memory, eventually the fan starts whirring louder than I can think, mouse stops responding and have to reboot
  -- so like I said, careful running this, and hit control c!

--okay, I give up, let's peek at the standard libs (SL) Data.List
-- this isn't word for word what the ghc standard libs Data.List has, so as to be more similar to the functions we wrote so far,
-- but it's the same algo, and same performance.
-- the important difference is the lazy match
partitionSL p xs = foldr g ([],[]) xs
  where g next accum = if (p next) then (next:fst accum,snd accum) else (fst accum, next:snd accum)
        -- which is the same as below, using irrefutable pattern syntax:
        -- g next ~accum@(as,bs) = if (p next) then (next:as,bs) else (as, next:bs)
-- Sure enough, same performance as Data.List.Partition
-- Note: to get the same performance as lazy list, you need to compile the module before loading in ghci, eg
-- ghc --make PartitionM.hs, then ghci PartitionM
-- if you do ghci PartitionM.hs, this doesn't terminate (at least, not in under a minute I'm an impatient guy.)
tSL = tpf partitionSL

-- So, why does partition need an irrefutable pattern in the accum argument?
-- Let's look at the original right folded partition again, rewritten as follows, for a 3 element list

partitionR2 f xs = foldr (select f) ([],[]) xs
select f next accum@(as,bs) = if f next then (next:as,bs) else (as,next:bs)
-- select' g next accum = if (p next) then (next:fst accum,snd accum) else (fst accum, next:snd accum) 

tpr2 :: ([Int],[Int])
tpr2 = partitionR even [1..3]
tpr2a = 1 `g` ( 2 `g` ( 3 `g` ([],[]) ) )
g = select even

-- when the accum argument to select is a strict pattern match, the algorithm can't proceed past the first element
-- without evaluating everything inside the first set of parenthesis.
-- For a million element list, this is going to be a problem.
-- if the accum arg is lazy (just accum without the @ binding), the algorithm can proceed to the if test,
-- calculate the tuple with the list parts as just a thunk to be evaluabed later, and keep chugging along,
-- by calculating the list parts next.
&lt;/code&gt;&lt;/pre&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/229/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/229/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/229/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/229/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/229/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/229/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/229/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/229/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/229/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/229/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=229&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>Darcs News: darcs weekly news #44</title>
		<link rel="alternate" type="text/html" href="http://blog.darcs.net/2009/10/darcs-weekly-news-44.html"/>
		<id>tag:blogger.com,1999:blog-819021106854702432.post-2958754463198647887</id>
		<updated>2009-10-28T17:36:41+00:00</updated>
		<content type="html">&lt;div id=&quot;news-and-discussions&quot;&gt;&lt;h3&gt;News and discussions&lt;/h3&gt;&lt;ol style=&quot;&quot;&gt;&lt;li&gt;&lt;p&gt;Judah Jacobson put online a document formalizing patch theory using inverse semigroups:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021886.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021886.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.math.ucla.edu/%7Ejjacobson/patch-theory/&quot;&gt;http://www.math.ucla.edu/~jjacobson/patch-theory/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Jason Dagit announced that the third darcs hacking sprint will also involve a group of hackers in Portland, in parallel with the Vienna meeting:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021916.html&quot;&gt;http://lists.osuosl.org/pipermail/darcs-users/2009-October/021916.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div id=&quot;issues-resolved-in-the-last-week-2&quot;&gt;&lt;h3&gt;Issues resolved in the last week (2)&lt;/h3&gt;&lt;dl&gt;&lt;dt&gt;issue1563 Eric Kow&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;official thank-you page.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1563&quot;&gt;http://bugs.darcs.net/issue1563&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;dt&gt;issue1652 Eric Kow&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;&lt;li&gt;suggest cabal update before cabal install.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.darcs.net/issue1652&quot;&gt;http://bugs.darcs.net/issue1652&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;patches-applied-in-the-last-week-21&quot;&gt;&lt;h3&gt;Patches applied in the last week (21)&lt;/h3&gt;See &lt;a href=&quot;http://wiki.darcs.net/DarcsWeeklyNews/2009-10-28&quot;&gt;darcs wiki entry&lt;/a&gt; for details.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/819021106854702432-2958754463198647887?l=blog.darcs.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>guillaume (noreply@blogger.com)</name>
			<uri>http://blog.darcs.net/</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: haskell refactoring technique for naughty house elves: make it compile by making it undefined</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/10/26/haskell-refactoring-technique-make-it-compile-by-making-it-undefined/"/>
		<id>http://blog.patch-tag.com/?p=215</id>
		<updated>2009-10-26T15:30:42+00:00</updated>
		<content type="html">&lt;br /&gt;&lt;p&gt;It is said that in haskell, If it Compiles, It Works.&lt;/p&gt;
&lt;p&gt;This is true, but what do you do when it won’t compile?&lt;/p&gt;
&lt;p&gt;I came across a real world scenario for this just now, when I was in the process of removing the HStringTemplateHelpers dependency from &lt;a href=&quot;http://tutorial.happstac.com&quot;&gt;happs tutorial&lt;/a&gt;. The reason for this is that HStringTemplateHelpers uses  the unix package (indirectly, via FileManip), which means that at the present time happs tut won’t run on windows, which lately has me smacking myself like &lt;a href=&quot;http://www.hp-lexicon.org/wizards/beings/dobbysez.html&quot;&gt;dobby the masochistic house elf&lt;/a&gt; in the harry potter movies.* &lt;/p&gt;
&lt;p&gt;The dependency wasn’t in one file, but scattered throughout the code. Some places, the dependency wasn’t that important, I could just comment the function out, but in other cases the function was core to the app and commenting it out caused cascading compile failures. Doing the type/function arithmetic in my head for figuring out what depended on what was giving me a headache and tempting me to veg out on youtube rather than face the problem, always a warning sign for me that I’m doing something wrong.&lt;/p&gt;
&lt;p&gt;I needed to make my program compile, just so I could think about it with my head screwed on straight.&lt;/p&gt;
&lt;p&gt;So, instead of commenting out the HStringTemplateHelpers-dependent functions, I set them equal to undefined and commented out their type signatures (since the type sig might be using a type that was defined in the dependency.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
-- paintProfile :: RenderGlobals -&amp;gt; String -&amp;gt; UserProfile -&amp;gt; String -&amp;gt; String&lt;br /&gt;
paintProfile rglobs user cp userimagepath = undefined {-.....-}&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A few comment-outs later and cabal install compiles! Of course, if I actually try running the resulting binary, I will hit an undefined error right away, but the point is that I can think again, and start rewriting my offending functions in a methodical way until there are no more undefineds, which is easly checked with &lt;/p&gt;
&lt;p&gt;&lt;code&gt;grep -irn undefined src &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For what it’s worth, I could have also used &lt;/p&gt;
&lt;p&gt;&lt;code&gt;paintProfile rglobs user cp userimagepath = error &quot;paintProfile uses HStringTemplateHelpers... bad dobby! &lt;em&gt;bad&lt;/em&gt; dobby! Dobby will have to shut his ears in the oven door for this.&quot; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;But whatever &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;* I suppose the righter thing to do would be to fix FileManip, but I am choosing the easy way out just to get it done. Eventually I woud like to move away from HStringTemplate with happs and use mostly Text.XHTML and/or HSP, which is type safe, which HSTringTemplate just thrown in for convenience and newb friendliness.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/215/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/215/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/215/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/215/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/215/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/215/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/215/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/215/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/215/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/215/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=215&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

	<entry>
		<title>the Patch-Tag blog: cabal install a package with local haddock documentation</title>
		<link rel="alternate" type="text/html" href="http://blog.patch-tag.com/2009/10/23/cabal-install-a-package-with-documentation/"/>
		<id>http://blog.patch-tag.com/?p=209</id>
		<updated>2009-10-23T16:46:26+00:00</updated>
		<content type="html">&lt;br /&gt;&lt;p&gt;I wanted to have a look at the latest happstack release, and noticed the documentation still wasn’t available on haddock.&lt;/p&gt;
&lt;p&gt;http://hackage.haskell.org/package/happstack&lt;/p&gt;
&lt;p&gt;It wasn’t available locally either, when I did cabal install happstack-server. In fact, haddock was not available offline for anything.&lt;/p&gt;
&lt;p&gt;To get the haddocks locally, I edited ~/.cabal/config, setting &lt;/p&gt;
&lt;p&gt;Documentation: True &lt;/p&gt;
&lt;p&gt;(and uncommenting that line by removing the starting –)&lt;/p&gt;
&lt;p&gt;After this, cabal install –reinstall built the documentation in &lt;/p&gt;
&lt;p&gt;.cabal/share/doc/happstack-server-0.3.3/html/&lt;/p&gt;
&lt;p&gt;handy &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;But shouldn’t this flag be on by default?&lt;/p&gt;
&lt;p&gt;UPDATE:&lt;/p&gt;
&lt;p&gt;cabal haddock –hyperlink-source&lt;/p&gt;
&lt;p&gt;installs documentation with links to source code, which imho should also be on by defualt.&lt;/p&gt;
&lt;p&gt;cabal install –haddock-options=–hyperlink sourceblehblehbleh&lt;/p&gt;
&lt;p&gt;doesn’t throw an error. without the blehblehbleh it runs, but doesn’t install with source links, which seems like a bug to me.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/patchtag.wordpress.com/209/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/patchtag.wordpress.com/209/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/patchtag.wordpress.com/209/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/patchtag.wordpress.com/209/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/patchtag.wordpress.com/209/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/patchtag.wordpress.com/209/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/patchtag.wordpress.com/209/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/patchtag.wordpress.com/209/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/patchtag.wordpress.com/209/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/patchtag.wordpress.com/209/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=blog.patch-tag.com&amp;amp;blog=6363373&amp;amp;post=209&amp;amp;subd=patchtag&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;</content>
		<author>
			<name>thomashartman1</name>
			<uri>http://blog.patch-tag.com</uri>
		</author>
	</entry>

</feed>
