<?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; clojure</title>
	<atom:link href="http://people.iola.dk/arj/tag/clojure/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>mucomp released into the wild</title>
		<link>http://people.iola.dk/arj/2010/02/04/mucomp-released-into-the-wild/</link>
		<comments>http://people.iola.dk/arj/2010/02/04/mucomp-released-into-the-wild/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:01:58 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=437</guid>
		<description><![CDATA[<p>Today I&#8217;m happy to announce that the world is one audio player richer! This is a personal <a href="http://code.google.com/p/mucomp/">project</a> of mine that I have been working on for a little while. It&#8217;s written in clojure and javascript (jQuery) and uses alsaplayer as the audio player. I probably won&#8217;t have much time to hack on it, so consider this a code dump that hopefully someone else will find useful and play/run/do-whatever with. As for maturity I use it almost daily and it&#8217;s pretty stable. There are some known bugs and kinks (mostly due to that its using alsaplayer and that the java inotify library is buggy).</p>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2010/02/04/mucomp-released-into-the-wild/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming nirvana part 4: the repl</title>
		<link>http://people.iola.dk/arj/2010/01/28/programming-nirvana-part-4-the-repl/</link>
		<comments>http://people.iola.dk/arj/2010/01/28/programming-nirvana-part-4-the-repl/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 19:51:33 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=428</guid>
		<description><![CDATA[<p>A <a href="http://en.wikipedia.org/wiki/REPL">repl</a> is a very important tool in the arsenal of a programmer. It allows one to test bits and pieces of code and then assembling that into a running program. Examples of this includes the excellent firebug utility for firefox and various shells (like the python shell). There has even been <a href="http://tirania.org/blog/archive/2008/Sep-08.html">tries</a> to bring a repl to C#, but the languages is not at all designed for this purpose, so it&#8217;s a crude hack at best.</p>
<p>Often developing using the repl consists of a lot of copy pasting back and forth between then editor and the repl. Moving the repl into the editor makes this even less painful, but I would argue that in order to fully embrace a repl one has to have something like lisp, or a very good editor (that I havn&#8217;t seen yet). In lisp it&#8217;s very easy to take parts of a function and evaluation only that part simply by finding the right parenthesis and evaluation that. Using Emacs and SLIME it&#8217;s a simple two-key-gesture.</p>
<p>But one can take it one step further. Why not simply start your program as a repl, instead of adding a repl to your program. That way also the running state of the program can be determined. But in order for that to work, one has to be able to redefine functions without stopping the program. <a href="http://clojure.org/dynamic">Clojure</a> allows that, and it&#8217;s the key that makes it all work.</p>
<p>Programming in clojure is a process of organically growing your program in a bottom-up fashion where the running state of the program allows one to inspect, debug and fix programs all without shutting it down.</p>
<p>The best way to do this is to start up a repl in a seperate process and then to connect to that process, that way one can always disconnect and reconnect again when the need arises.</p>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2010/01/28/programming-nirvana-part-4-the-repl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming nirvana part 3: avoid relational databases</title>
		<link>http://people.iola.dk/arj/2010/01/18/programming-nirvana-part-3-relational-databases/</link>
		<comments>http://people.iola.dk/arj/2010/01/18/programming-nirvana-part-3-relational-databases/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 21:37:27 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[functional programming]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=421</guid>
		<description><![CDATA[<p>This is actually a blog post I have been meaning to write for quite a while not, but I just never got around to it. Relational databases are ubiquitous in programming. Whether it&#8217;s mainframes, application programming or even <a href="http://www.android.com/">phones</a> now a days everyone stores persistent data in a database. Recently there has been some talk about non-schema databases and there&#8217;s a myriad different implementations of them, but why the sudden interest?</p>
<ul>
<li>Database has at least two things that makes it less than ideal for agile development. First one being types, especially if the types propagate out into the application code (*cough* Microsoft). The second being based on a schema, which means that one has to make all the choices up front.</li>
<li>Databases are really built for a single machine, and even though all the big database vendors has replication support, it still seems like a bad solution if one really wants scalability. There are a lot better ways of doing scalability now a days (a distributed hash tables comes to mind).</li>
<li>Databases are meant to be standardized, but in reality they are not. They all have different syntax to do common things.</li>
<li>It has been said that when you build a DSL, then sooner or later it will turn into a (bad) full-fledged programming language. What if instead the data was simply part of the program and you could manipulate it as you are used to? Functional languages makes this much easier and possible. Especially a programming language that is built with <a href="http://clojure.org/concurrent_programming">concurrency in mind</a>.</li>
</ul>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2010/01/18/programming-nirvana-part-3-relational-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clojure</title>
		<link>http://people.iola.dk/arj/2008/08/05/clojure/</link>
		<comments>http://people.iola.dk/arj/2008/08/05/clojure/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 00:18:03 +0000</pubDate>
		<dc:creator>Anders Rune Jensen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jvm]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[funtional programming]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://people.iola.dk/arj/?p=166</guid>
		<description><![CDATA[<p><a href="http://clojure.blip.tv/#819147">This</a> is perhaps one of the most interesting talks I have heard in a long time. The talk is about a <a href="http://clojure.org/rationale">modern implementation of lisp</a> for the jvm which is designed for concurrency.</p>
]]></description>
		<wfw:commentRss>http://people.iola.dk/arj/2008/08/05/clojure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
