<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code Obscurata &#187; Programming</title>
	<atom:link href="http://nealabq.com/blog/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://nealabq.com/blog</link>
	<description>... dodging grues in the dark</description>
	<lastBuildDate>Mon, 08 Nov 2010 17:26:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Meta functions and parallel programming: map, filter, and reduce</title>
		<link>http://nealabq.com/blog/2009/03/27/meta-functions-and-parallel-programming-map-filter-and-reduce/</link>
		<comments>http://nealabq.com/blog/2009/03/27/meta-functions-and-parallel-programming-map-filter-and-reduce/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 02:14:15 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[parallel processing]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=1169</guid>
		<description><![CDATA[(This is a continuation of my previous post, Why is parallel programming difficult?.) When programming, we&#8217;re always dealing with collections &#8212; objects that hold other objects. You cannot go far without them &#8212; they&#8217;re as fundamental as bools and forks (if statements). In Erlang and Lisp we often use lists as the default generic collection. [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2009/03/27/meta-functions-and-parallel-programming-map-filter-and-reduce/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>We&#8217;re not used to thinking parallel</title>
		<link>http://nealabq.com/blog/2009/03/26/looking-for-parallel/</link>
		<comments>http://nealabq.com/blog/2009/03/26/looking-for-parallel/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 22:58:39 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[multi-thread]]></category>
		<category><![CDATA[parallel processing]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=1159</guid>
		<description><![CDATA[(This is a continuation of my previous post, Why is parallel programming difficult?.) Because we&#8217;re not looking for it, we often don&#8217;t notice the potential parallelisms in our programs. I&#8217;m not talking about obvious parallel problems like matrix multiplication and graphics rendering pipelines. I mean everyday problems. For example, we&#8217;re always weaving independent patterns together [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2009/03/26/looking-for-parallel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why is parallel programming difficult?</title>
		<link>http://nealabq.com/blog/2009/03/26/why-is-parallel-programming-difficult/</link>
		<comments>http://nealabq.com/blog/2009/03/26/why-is-parallel-programming-difficult/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 21:07:31 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[multi-thread]]></category>
		<category><![CDATA[parallel processing]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=1155</guid>
		<description><![CDATA[Why is parallel programming so hard? At least it&#8217;s supposed to be hard &#8212; that&#8217;s the myth. Of course there&#8217;s also a myth (among non-programmers) that all programming is hard, for everyone except 12 year-olds in movies. One reason parallel programming is hard is we don&#8217;t get any practice. Programmers aren&#8217;t used to thinking parallel. [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2009/03/26/why-is-parallel-programming-difficult/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Transformative pattern: re-factoring a function to make it tail recursive</title>
		<link>http://nealabq.com/blog/2009/01/08/transformative_pattern/</link>
		<comments>http://nealabq.com/blog/2009/01/08/transformative_pattern/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 23:36:37 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[metaprogramming]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=790</guid>
		<description><![CDATA[A few days ago I talked a little about tail recursion, and I mentioned a pattern I called iterator/builder to transform some simple recursive functions into tail-recursive functions. The transformation looks like this (in Erlang). % not tail recursive factorial_a( 0 ) -> 1; factorial_a( N ) -> N * factorial_a( N - 1 ). [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2009/01/08/transformative_pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

