<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Lost in Technopolis</title>
	
	<link>http://newartisans.com</link>
	<description />
	<lastBuildDate>Wed, 19 Jun 2013 19:10:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/newartisanscom" /><feedburner:info uri="newartisanscom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Temporary mirror of comonad.com</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/cJmXtYfw2AA/</link>
		<comments>http://newartisans.com/2013/06/temporary-mirror-of-comonad-com/#comments</comments>
		<pubDate>Wed, 19 Jun 2013 19:10:39 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://newartisans.com/?p=444</guid>
		<description>Until the Comonad Reader comes back online, I have a temporary mirror setup at http://comonad.newartisans.com. It&amp;#8217;s a bit old (Sep 2012), but has some classics like &amp;#8220;Free Monads for Less&amp;#8221;. It is missing the &amp;#8220;Algebra of Applicatives&amp;#8221;, though, since I hadn&amp;#8217;t run the mirror in a while.&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/cJmXtYfw2AA" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2013/06/temporary-mirror-of-comonad-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://newartisans.com/2013/06/temporary-mirror-of-comonad-com/</feedburner:origLink></item>
		<item>
		<title>Nightly builds of GHC HEAD for Ubuntu 12.04.2 LTS</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/NgMXKVKCM14/</link>
		<comments>http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-ubuntu-12-04-2-lts/#comments</comments>
		<pubDate>Wed, 19 Jun 2013 01:32:34 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://tech.wp.newartisans.com/?p=441</guid>
		<description>Chatting with merijn on #haskell, I realized I have a file server running Ubuntu in a VM that&amp;#8217;s idle most of the time, so I decided to set up a jenkins user there and make use of it as a build slave in the evenings. This means that at http://ghc.newartisans.com, you&amp;#8217;ll now find nightly builds &lt;a href='http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-ubuntu-12-04-2-lts/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/NgMXKVKCM14" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-ubuntu-12-04-2-lts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-ubuntu-12-04-2-lts/</feedburner:origLink></item>
		<item>
		<title>Nightly builds of GHC HEAD for OS X 10.8</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/cpc_YFAQ9WY/</link>
		<comments>http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-os-x-10-8/#comments</comments>
		<pubDate>Wed, 12 Jun 2013 22:35:44 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://tech.wp.newartisans.com/?p=436</guid>
		<description>Since mid-January, I&amp;#8217;ve been running nightly builds of GHC on my Mac Pro for 10.8.x, 64-bit. I&amp;#8217;ve decided to make these results publically downloadable here: http://ghc.newartisans.com. The installer tarballs are in dist, while the fulltest and nofib logs are in logs. According to Jenkins this build takes 8h15m minutes, so I figured this might save &lt;a href='http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-os-x-10-8/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/cpc_YFAQ9WY" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-os-x-10-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://newartisans.com/2013/06/nightly-builds-of-ghc-head-for-os-x-10-8/</feedburner:origLink></item>
		<item>
		<title>Three examples of problems with Lazy I/O</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/eyTIDytcMLk/</link>
		<comments>http://newartisans.com/2013/05/three-examples-of-problems-with-lazy-io/#comments</comments>
		<pubDate>Mon, 13 May 2013 01:44:48 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://tech.wp.newartisans.com/?p=428</guid>
		<description>Problem 1: The source of exceptions is obscured main = getArgs &amp;#62;&amp;#62;= readFile . head &amp;#62;&amp;#62;= print . length Even though length is a pure function, this is where the I/O will happen (lazily), which means that is where any exceptions relating to I/O will get raised. Pure code should avoid raising exceptions, which this &lt;a href='http://newartisans.com/2013/05/three-examples-of-problems-with-lazy-io/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/eyTIDytcMLk" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2013/05/three-examples-of-problems-with-lazy-io/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://newartisans.com/2013/05/three-examples-of-problems-with-lazy-io/</feedburner:origLink></item>
		<item>
		<title>An experiment: shorter posts</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/MZdxmWzp_DA/</link>
		<comments>http://newartisans.com/2013/05/an-experiment-shorter-posts/#comments</comments>
		<pubDate>Mon, 13 May 2013 01:43:46 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.wp.newartisans.com/?p=426</guid>
		<description>I think one reason I&amp;#8217;ve been avoiding posting to my blog lately is the time commitment of writing something of decent length. To get over this hump, I&amp;#8217;m going to shift my focus to writing smaller little discoveries of things I find during my researches into Haskell and technology. Let&amp;#8217;s see how that goes.&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/MZdxmWzp_DA" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2013/05/an-experiment-shorter-posts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://newartisans.com/2013/05/an-experiment-shorter-posts/</feedburner:origLink></item>
		<item>
		<title>Getting Started with Lenses</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/_j3700NRv3M/</link>
		<comments>http://newartisans.com/2012/11/getting-started-with-lenses/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 22:28:39 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://newartisans.com/?p=401</guid>
		<description>The following is the first in a series of articles I hope to write as a gentle introduction to Edward Kmett&amp;#8217;s excellent lens library. Control.Lens provides a composable way to access and modify sub-parts of data structures (where by modify I mean: return a new copy with that part changed). In this introduction I won&amp;#8217;t &lt;a href='http://newartisans.com/2012/11/getting-started-with-lenses/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/_j3700NRv3M" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2012/11/getting-started-with-lenses/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://newartisans.com/2012/11/getting-started-with-lenses/</feedburner:origLink></item>
		<item>
		<title>Arrows are simpler than they appear</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/OD4iwQPbR4Y/</link>
		<comments>http://newartisans.com/2012/10/arrows-are-simpler-than-they-appear/#comments</comments>
		<pubDate>Sat, 20 Oct 2012 15:56:30 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://tech.wp.newartisans.com/?p=370</guid>
		<description>I have found that arrows in Haskell are far simpler than they might appear based on the literature. They are simply abstractions of functions. To see how this is practically useful, consider that you have a bunch of functions you want to compose, where some of them are pure and some are monadic. For example, &lt;a href='http://newartisans.com/2012/10/arrows-are-simpler-than-they-appear/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/OD4iwQPbR4Y" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2012/10/arrows-are-simpler-than-they-appear/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://newartisans.com/2012/10/arrows-are-simpler-than-they-appear/</feedburner:origLink></item>
		<item>
		<title>Just discovered pxz</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/uhhuebWwguI/</link>
		<comments>http://newartisans.com/2012/09/just-discovered-pxz/#comments</comments>
		<pubDate>Thu, 06 Sep 2012 08:01:00 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://newartisans.com/?p=359</guid>
		<description>To show just how significant parallelized algorithms can be, today I discovered pxz, a parallelized version of the xz compression utility, which I use constantly. The proof is in the numbers: Command Before After Ratio Time xz 2937M 305M 0.104 32m pxz -9e 2937M 281M 0.096 4m(!) I put this alias in my .zshrc: alias &lt;a href='http://newartisans.com/2012/09/just-discovered-pxz/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/uhhuebWwguI" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2012/09/just-discovered-pxz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://newartisans.com/2012/09/just-discovered-pxz/</feedburner:origLink></item>
		<item>
		<title>Running a fully local Hoogle</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/Yn_sO4wVMhk/</link>
		<comments>http://newartisans.com/2012/09/running-a-fully-local-hoogle/#comments</comments>
		<pubDate>Wed, 05 Sep 2012 03:09:58 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://newartisans.com/?p=355</guid>
		<description>Today I finally succeeded at getting a fully local version of Hoogle running on my machine, with filesystem links for all packages that I have installed, and remote links for those I don&amp;#8217;t. Since this was definitely a non-trivial exercise, I wanted to capture the knowledge here for anyone else trying to do the same. &lt;a href='http://newartisans.com/2012/09/running-a-fully-local-hoogle/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/Yn_sO4wVMhk" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2012/09/running-a-fully-local-hoogle/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://newartisans.com/2012/09/running-a-fully-local-hoogle/</feedburner:origLink></item>
		<item>
		<title>The fix combinator and recursive lambdas</title>
		<link>http://feedproxy.google.com/~r/newartisanscom/~3/w6CbcuMCqv0/</link>
		<comments>http://newartisans.com/2012/09/the-fix-combinator-and-recursive-lambdas/#comments</comments>
		<pubDate>Mon, 03 Sep 2012 13:00:36 +0000</pubDate>
		<dc:creator>johnw</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://tech.wp.newartisans.com/?p=299</guid>
		<description>The fix combinator is a higher order function that can turn any function into a potentially recursive one. It can be a bit difficult to wrap your head around, since neither the definition nor the documentation is very clear on what you might use it for. However, I&amp;#8217;ve found one handy use case: creating recursive &lt;a href='http://newartisans.com/2012/09/the-fix-combinator-and-recursive-lambdas/' class='excerpt-more'&gt;[...]&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/newartisanscom/~4/w6CbcuMCqv0" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://newartisans.com/2012/09/the-fix-combinator-and-recursive-lambdas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://newartisans.com/2012/09/the-fix-combinator-and-recursive-lambdas/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.270 seconds. --><!-- Cached page generated by WP-Super-Cache on 2013-06-19 13:12:32 --><!-- Compression = gzip -->
