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

<channel>
	<title>Blog of Anders Rune Jensen &#187; Programming</title>
	<atom:link href="http://people.iola.dk/arj/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://people.iola.dk/arj</link>
	<description>metalinguistic musings and other related ramblings</description>
	<lastBuildDate>Sun, 13 Jun 2010 18:00:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/dk/</creativeCommons:license>		<item>
		<title>Programming nirvana part 2: be agile</title>
		<link>http://people.iola.dk/arj/2010/01/13/programming-nirvana-part-2/</link>
		<comments>http://people.iola.dk/arj/2010/01/13/programming-nirvana-part-2/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 21:28:29 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[compilation]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[golang]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=416</guid>
		<description><![CDATA[<p>In <a href="http://people.iola.dk/arj/2010/01/11/programming-nirvana-part-1/">part 1</a> I made the very brief argument that compiling sucks. I really like that cartoon since there is a lot of truth to it. Compiling sucks mainly because it breaks flow. There has been <a href="http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx">several</a> <a href="http://golang.org/">tries</a> to fix <a href="http://en.wikipedia.org/wiki/C%2B%2B">it</a> by lowering the time it takes to compile but in the end, it&#8217;s still the same loop: write, compile, &#8220;debug&#8221;.</p>
<p>There is another layer to it as well, one that dynamic languages doesn&#8217;t necessarily imply: Developing a program should be having a running program that can be used while it is being written. This is one of the pillars of agile programming. Step one in achieving this goal is to separate the UI from the backend. Web is a natural way to do this.</p>
<p>Django comes very close to achieving this with it&#8217;s automatic reloading on change, but the biggest problem is that it&#8217;s not able to automatically migrate the most basic model changes. On the other hand Django has many other things going for it so it is by no means a bad choice. But there might be a better one lurking in the dark.</p>
<p><img class="aligncenter" title="Lisp" src="http://imgs.xkcd.com/comics/lisp_cycles.png" alt="" width="486" height="160" /></p>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2010/01/13/programming-nirvana-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Programming nirvana part 1: avoid compilation</title>
		<link>http://people.iola.dk/arj/2010/01/11/programming-nirvana-part-1/</link>
		<comments>http://people.iola.dk/arj/2010/01/11/programming-nirvana-part-1/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 19:53:03 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=413</guid>
		<description><![CDATA[<p>I have been meaning to write about a new project I have been working on in my spare time for a while now. It&#8217;s a project where I wanted to maximize the fun I had doing it, learn something new and to do something that I can use. Sadly I have been putting it off since enumerating all the reasons feels like quite a daunting task.  So instead of writing everything in one big blog post I&#8217;ll just do shorter posts. One for each argument. First one is pretty simple.</p>
<p><img class="aligncenter" title="Compiling is no fun" src="http://imgs.xkcd.com/comics/compiling.png" alt="" width="413" height="360" /></p>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2010/01/11/programming-nirvana-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profiling multithreading applications</title>
		<link>http://people.iola.dk/arj/2009/09/25/profiling-multithreading-applications/</link>
		<comments>http://people.iola.dk/arj/2009/09/25/profiling-multithreading-applications/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 12:16:51 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[profiling]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=370</guid>
		<description><![CDATA[<p>I&#8217;ve written about profiling <a href="http://people.iola.dk/arj/2006/02/08/profiling-mmsv2/">before</a> in the general case. But when it comes to <a href="http://en.wikipedia.org/wiki/Multithreading">multithreading</a>, there are a few more factors to consider such as lock contention and cache invalidation that affect performance. And this is where <a href="http://0pointer.de/blog/projects/mutrace">mutrace</a> (mutex profiler) comes into the picture. The profiler has a very low overhead compared (no perceived delay for me) to other solutions and gives quite nice results. I tested it on <a href="http://mymediasystem.org/">My Media System</a> (C++) and <a href="http://www.iola.dk/nemo/">Nemo</a> (C#) and got interesting results for both. I knew more or less what the results for mms would be, but the results for Nemo was a bit suprising. The lock contention was significantly higher than for mms, even though I didn&#8217;t really use a multithreaded design for Nemo. So I guess it comes from the mono platform itself. Sadly it seems that mono programs aren&#8217;t compiled with -rdynamic, so the results that one gets are quite hard to decipher.</p>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2009/09/25/profiling-multithreading-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
