<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Failing fast to learn a lot</title>
	<atom:link href="http://runefs.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://runefs.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Sun, 06 Dec 2009 12:53:29 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='runefs.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/4282049fb1f06b06c4ad2bf34e657632?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Failing fast to learn a lot</title>
		<link>http://runefs.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://runefs.wordpress.com/osd.xml" title="Failing fast to learn a lot" />
		<item>
		<title>languages</title>
		<link>http://runefs.wordpress.com/2009/12/06/languages/</link>
		<comments>http://runefs.wordpress.com/2009/12/06/languages/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 12:53:29 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[Thoughts on development]]></category>
		<category><![CDATA[c++ cpp language compiler]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/2009/12/06/languages/</guid>
		<description><![CDATA[working with c++ i often wander if c++ even qualify as a language. sometimes it feals more like a rather advanced compiler-compiler. 
One definition could be unambigeous semantics. That would certainly disqualify c/c++. With the flexibility of say operator overloading comes the lack of semantics. 
Think about it every statement involving any operator have arbitrary [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=77&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>working with c++ i often wander if c++ even qualify as a language. sometimes it feals more like a rather advanced compiler-compiler. </p>
<p>One definition could be unambigeous semantics. That would certainly disqualify c/c++. With the flexibility of say operator overloading comes the lack of semantics. </p>
<p>Think about it every statement involving any operator have arbitrary semantics. Take a look at the below example. it&#8217;s rather weird but none the less possible in c++. </p>
<p>C=Z;<br />
assert_equal(C,Z);</p>
<p>A=B=C;<br />
assert_notEqual(B,Z);<br />
assert_notEqual(A,B);<br />
assert_notEqual(C,Z);<br />
assert_isNull(B);</p>
<p>and so forth. C might even be deleted and A uninitialized.</p>
<p>My point is that you can only have assumptions of what any given statement in c++ means. there&#8217;s no way of knowing what any piece of code Will do unless you know the entire code base. with that lack of semantics in even the most central statements such as assignment, I find it difficult to Call c++ a language. </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=77&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/12/06/languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>Where to allocate resposibilities</title>
		<link>http://runefs.wordpress.com/2009/11/02/where-to-allocate-resposibilities/</link>
		<comments>http://runefs.wordpress.com/2009/11/02/where-to-allocate-resposibilities/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 10:17:10 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[Thoughts on development]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/?p=51</guid>
		<description><![CDATA[I was reviewing code today and one of the things we discussed was if certain data should be parameters to a method or if they should be attributes of the class that held that method.
When I see a method I want every argument used in decisions or in expressions that will eventually make their way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=51&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was reviewing code today and one of the things we discussed was if certain data should be parameters to a method or if they should be attributes of the class that held that method.</p>
<p>When I see a method I want every argument used in decisions or in expressions that will eventually make their way to the return value. If there&#8217;s no return value the method probably have side effects and if that&#8217;s the case I&#8217;d probably rewrite the method so for this post let&#8217;s stick to a method with return value.</p>
<p>The issue we had was that some of the arguments were actually used to ensure invariants but invariants not ever changing they are known at the time the object is created and should be enforced at the time of creation. If they are violated at the time of creation they are still violated at the time of execution.</p>
<p>The first point worth mentioning is to enforce constraints as early as possible to fail as early A&#8217;s possible. If some constraint can be enforced at compile time they should be.</p>
<p>The second point worth mentioning is that every argument given to a method should influence the flow of the method everytime and possibly the result as well. The only exception to influencing the result I can think of is when the result is partly based on things external to the method. E.g. if the method is returning calls to a database.    </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=51&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/11/02/where-to-allocate-resposibilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>Continuation passing</title>
		<link>http://runefs.wordpress.com/2009/06/03/continuation-passing/</link>
		<comments>http://runefs.wordpress.com/2009/06/03/continuation-passing/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 12:28:58 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[ProS]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/?p=71</guid>
		<description><![CDATA[While working on version 0.3 of ProS I had the following requirement:
When given a list of statements that all return a value of IProcessor (That interface defines a method called Process) call each processors process method in turn and pass the result of the execution to the next processor in the list if and only [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=71&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While working on version 0.3 of ProS I had the following requirement:</p>
<p>When given a list of statements that all return a value of IProcessor (That interface defines a method called Process) call each processors process method in turn and pass the result of the execution to the next processor in the list if and only if the result is null. At the same time the sequence of calls needs to be wrapped in a new IProcessor object so that the entire sequence can be part of another sequence.</p>
<p>After trying a few different approaches I ended up with using continuation passing. But what is that?</p>
<p>given two methods:</p>
<p>public int GetRandomInt()</p>
<p>{</p>
<p>return new Random().GetNext();</p>
<p>}</p>
<p>public void DoSomethingWithAnInt(int i)</p>
<p>{</p>
<p>Console.WriteLine(i.ToString());</p>
<p>}</p>
<p>a main could look like this:</p>
<p>public int main()</p>
<p>{</p>
<p>var i = GetRandomInt();</p>
<p>DoSomethingWithAnInt(i);</p>
<p>}</p>
<p>if we wanted to turn that into continuation passing we would have to change the first method and make it something like</p>
<p>public void GetRandomInt(Action&lt;int&gt; doSomethingWithAnInt)</p>
<p>{</p>
<p>var i = new Random().GetNext();</p>
<p>doSomeThingWithAnInt(i);</p>
<p>}</p>
<p>and main would then simply be</p>
<p>public int main()</p>
<p>{</p>
<p>GetRandomInt(DoSomethingWithAnInt);</p>
<p>}</p>
<p>This is actually more common than what you might think at first. Think of any Async call in .NET you&#8217;ll probably remember that one of the arguments is an AsynCallback. That call back is the continuation of the Async call. So for implementing asyncromeous behaviour the continuation passing style is very straight forward, simply pass what you want executed when the first call completes.</p>
<p>I need to represent a tree where each node is a decision point. E.g I might need to represent the code structure</p>
<p>if(a())</p>
<p>{</p>
<p>DoA();</p>
<p>}</p>
<p>else if (b())</p>
<p>{</p>
<p>DoB();</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>throw new InvalioperationException(&#8220;No sensible default action&#8221;);</p>
<p>}</p>
<p>however a() and b() is not known compile time and the number of if&#8217;s is not known either.</p>
<p>I ended up with a class called ContinuationProcessor that looks similiar to this:</p>
<p>public class ContinuationProcessor&lt;T&gt; : Irpocessor&lt;T&gt;</p>
<p>{</p>
<p>public ContinuationProcessor(ContinuationProcessor&lt;T&gt; continuation, IProcessor&lt;T&gt; processor,Func&lt;object[],bool&gt; condition)</p>
<p>{</p>
<p>//initialize the private fields</p>
<p>}</p>
<p>//This method is defined in IProcessor</p>
<p>public T Process(T obj, params object[] arguments)</p>
<p>{</p>
<p>T processedObj = null;</p>
<p>if(condition((new object[]{processedObj}).Concat(arguments)))</p>
<p>{</p>
<p>processedObj = processor.Process(obj,arguments);</p>
<p>}</p>
<p>if(continuation != null)</p>
<p>{</p>
<p>processedObj =  continuation.Process(processedObj,arguments);</p>
<p>}</p>
<p>return processedObj;</p>
<p>}</p>
<p>}</p>
<p>So it ends up not being true continuation passing since I end up returning a value, but it does make it possible to represent an arbitrary number of decision points together with the code that should be executed in case the associated decision is taken.</p>
<p>It&#8217;s a lot of fun writing code that represent code, but it gives me a headache trying to debug it&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=71&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/06/03/continuation-passing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>Things that makes me go hmm</title>
		<link>http://runefs.wordpress.com/2009/05/30/things-that-makes-me-go-hmm/</link>
		<comments>http://runefs.wordpress.com/2009/05/30/things-that-makes-me-go-hmm/#comments</comments>
		<pubDate>Sat, 30 May 2009 17:09:31 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Hmmm]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/2009/05/30/things-that-makes-me-go-hmm/</guid>
		<description><![CDATA[One of my favorit bloggers Eric Lippert wrote recently a post he called &#8220;Things that makes you go hmmm&#8221;
I&#8217;ve written a few hmms in other post bu t just stubled across another one today.
In c# it&#8217;s perfectly legal to declare a constructor protected in a sealed class!
Kind of strange. How would you instatiate that class [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=70&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of my favorit bloggers Eric Lippert wrote recently a post he called &#8220;Things that makes you go hmmm&#8221;<br />
I&#8217;ve written a few hmms in other post bu t just stubled across another one today.<br />
In c# it&#8217;s perfectly legal to declare a constructor protected in a sealed class!<br />
Kind of strange. How would you instatiate that class (without using reflection)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=70&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/05/30/things-that-makes-me-go-hmm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>ProS v0.2</title>
		<link>http://runefs.wordpress.com/2009/05/25/pros-v0-2/</link>
		<comments>http://runefs.wordpress.com/2009/05/25/pros-v0-2/#comments</comments>
		<pubDate>Mon, 25 May 2009 21:27:33 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[ProS]]></category>
		<category><![CDATA[Subtle bugs]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Dependency Injection]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Inversion of Control]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Reflection.Emit]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/?p=66</guid>
		<description><![CDATA[Just finished v0.2 actually there&#8217;s not that much new to v0.2. It simple adds a property production to the language as well. The syntax is similar to the one used in c#
A long the way I had quite a few strange experiences. The one that took me the longest to find a solution for was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=66&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just finished v0.2 actually there&#8217;s not that much new to v0.2. It simple adds a property production to the language as well. The syntax is similar to the one used in c#</p>
<p>A long the way I had quite a few strange experiences. The one that took me the longest to find a solution for was the fact that new LanguageCompiler(new Grammar()) (languageCompiler is a Irnoy class) ment to differrent things depending on how I used my compiler. If I used it with the Grammar Explorer from the <a title="Irony" href="http://www.codeplex.com/irony">Irony project</a> or in the VS SDK hive everything worked fine, but using it stand alone to compile to a .dll new Grammar() suddenly turn it self into instanciating the Irony GRammar class instead of the PRoS Grammar.</p>
<p>Never figured out why but I can only say it&#8217;s a good thing to have the source code of the Libraries you&#8217;re using when you have to hunt down the reason to why they throw a null refererance exception.</p>
<p>Guess that the next thing I&#8217;ll include is a propperty setter or more advanced caching than the simple property</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=66&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/05/25/pros-v0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>Strange things in Reflection.Emit</title>
		<link>http://runefs.wordpress.com/2009/05/25/strange-things-in-reflection-emit/</link>
		<comments>http://runefs.wordpress.com/2009/05/25/strange-things-in-reflection-emit/#comments</comments>
		<pubDate>Mon, 25 May 2009 12:43:57 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/?p=61</guid>
		<description><![CDATA[During my development of ProS I&#8217;d had to dig into Reflection.Emit again and one thing that keeps puzzeling me is the way the class in Reflection.Emit is designed.
Take for an example Typebuilder, the corner stone of creating a new class using Reflection.Emit. It inherits from Type however most, if not all methods it inherits from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=61&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>During my development of <a title="ProS" href="http://runefs.wordpress.com/2009/05/25/pros-ver-0-1/" target="_blank">ProS</a> I&#8217;d had to dig into Reflection.Emit again and one thing that keeps puzzeling me is the way the class in Reflection.Emit is designed.</p>
<p>Take for an example Typebuilder, the corner stone of creating a new class using Reflection.Emit. It inherits from Type however most, if not all methods it inherits from Type is overriden with a version that throws an exception explaining that that particular method is not available on TypeBuilder. The same goes for MethodBuilder, PropertyBuilder and all the other builders That all inherit from xInfo.</p>
<p>The design decision is a hefty violation of the <a title="liskov substitution principle" href="http://en.wikipedia.org/wiki/Liskov_substitution_principle" target="_blank">liskov substitution principle</a> (LSP) and for just that reason I&#8217;d say they need a really good argument for it. It basically results in yoou having to build a framework for reflection on your newly created types and members to be able to create a compiler. It&#8217;s a trivial but time consuming process to make that reflectio possible and well since it&#8217;s trivial I can not find that really good argument for violating LSP.</p>
<p>Needless that Im a huge fan of designing by contract, that&#8217;s basically my driving motivation for creating ProS, and devolping ProS I hope Im not violating LSP. If I am that is going to give me even more grey hair when I get to testing the plugability. The supporting structure of the plugability <em>is </em>LSP.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=61&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/05/25/strange-things-in-reflection-emit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>ProS ver 0.1</title>
		<link>http://runefs.wordpress.com/2009/05/25/pros-ver-0-1/</link>
		<comments>http://runefs.wordpress.com/2009/05/25/pros-ver-0-1/#comments</comments>
		<pubDate>Mon, 25 May 2009 12:27:23 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[ProS]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Dependency Injection]]></category>
		<category><![CDATA[Inversion of Control]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Reflection.Emit]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/?p=57</guid>
		<description><![CDATA[I&#8217;ve decided to write a post for if not all the incremental versions of ProS then at least quite a few of them. My goal is to make addition to ProS and the rebuild ProS using those additions. The reasons for this approach are mainly two. I get a good idea of what&#8217;s working and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=57&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve decided to write a post for if not all the incremental versions of ProS then at least quite a few of them. My goal is to make addition to ProS and the rebuild ProS using those additions. The reasons for this approach are mainly two. I get a good idea of what&#8217;s working and what&#8217;s not and I might just get new ideas a long the way.</p>
<p>Reading a book written by the team who originally created SharpDeveloper (an Open Source IDE for c#) I learn the concept of &#8220;eating your own shit&#8221; as they called it. The Search and replace functionality had been lacking and at some point they realized that the developer doing that part of the IDE was him self using UltraEdit (or some other tool) when he needed to search and replace. With that in mind they decided that going forth they could only use SharpDeveloper for their development.</p>
<p>It&#8217;s the same thing I&#8217;m trying to do here, though my goal is not to make a <a href="http://en.wikipedia.org/wiki/Turing_complete language">Turing_complete</a>. Actually I&#8217;m not sure it&#8217;s even Turing incomplete <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  So writing all of ProS in ProS will not be an option.</p>
<p>The first version is little more than a configurable object factory. Except for things such as using, types and values there&#8217;s really only one contruct to the language: The constructor.</p>
<p>The cunstructor gives the option of creating what well end up being a method returning an instance of an object. The syntax is</p>
<p>constructor returnType Name(arguments) : objectType</p>
<p>{</p>
<p>statements</p>
<p>}</p>
<p>The constructor is a keyword say: &#8220;next is the definition of a constructor. arguments hav the c like syntaks: type name and multiple arguments a seperated by a comma.</p>
<p>Statements can in this version only be used for setting ctor (which is the term I&#8217;ll use for class constructors to not confuse them with ProS constrcutor and by the way the term class is intentional) arguments. A stament could look like</p>
<p>number = 10;</p>
<p>That would tell the ProS compiler that each time this constructor is call the value passed for the arument number to the ctor must be 10. The argument names must match ctor argument names as well, and there must be a ctor with a list of arguments that matches the total of arguments and statements.</p>
<p>A complete example could look like the below:</p>
<p><span style="color:blue;"><br />
using </span> Irony.Compiler;<span style="color:blue;"><br />
using </span>Motologi.ProSLanguageService;<span style="color:blue;"><br />
using </span>Motologi.ProSLanguageService.Compilers;<span style="color:blue;"><br />
alias </span>tokenCompiler = ITokenCompiler;</p>
<p><span style="color:blue;"><br />
class</span> Compilers{<span style="color:blue;"><br />
constructor </span>tokenCompiler Alias(AstNode node) : AliasCompiler {</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler Using(AstNode node) : UsingCompiler{</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler Argument(AstNode node, TypeEmitter typeEmitter) : ArgumentCompiler{</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler ArgumentValue(<span style="color:blue;">int </span>position, <span style="color:blue;">bool </span>isForStaticMethod):ArgumentValueCompiler{<br />
}</p>
<p><span style="color:blue;"><br />
constructor </span>tokenCompiler Class(AstNode node, TypeEmitter typeEmitter):ClassCompiler{</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler Configuration(AstNode node, TypeEmitter typeEmitter):ConfigurationCompiler{</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler Constructor(AstNode node, TypeEmitter typeEmitter):ConstructorCompiler{<br />
}</p>
<p><span style="color:blue;"><br />
constructor </span>tokenCompiler Identifier(AstNode node, TypeEmitter typeEmitter):IdentifierCompiler{</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler Int(AstNode node, TypeEmitter typeEmitter):IntCompiler{<br />
}</p>
<p><span style="color:blue;"><br />
constructor </span>tokenCompiler Statement(AstNode node, TypeEmitter typeEmitter):StatementCompiler{</p>
<p>}<span style="color:blue;"><br />
constructor </span>tokenCompiler String(AstNode node, TypeEmitter typeEmitter):StringCompiler{<br />
}</p>
<p><span style="color:blue;"><br />
constructor </span>tokenCompiler Type(AstNode node, TypeEmitter typeEmitter):TypeCompiler{<br />
}<br />
}</p>
<p>That class declaration is the inner workings of the ProS compiler ver 0.2. The result is two classes. One is called Injector and the other is called Compilers. The class Compilers is what is directly defined in the above code. For each of the construct there&#8217;ll be one static method on the class Compilers. The method will take the arguments listen in the argumentslist for the constructor and will return an instance of the type specified after &#8216;:&#8217; I.e TypeCompiler for the last constructor.</p>
<p>The Injector class is nothing more than a container. For all the constructs defined in all classes there&#8217;ll be an over over of a method called Get. In essence it&#8217;s a large factory that given an ID and a set of arguments will return an object.</p>
<p>In contrast with say Windsor&#8217;s ServiceContainer or similar in other reflection based frameworks the list of arguments is type checked compile type.</p>
<p>The approach of compiling the dependency configuration does impose some other (sometimes strange) issues. So the gain in type safety and performance is not for free. But some of those issues can be resolved with delayed compilation. So that the types mentioned above wont be created until runtime. I have a plan of adressing just that in a later version of ProS. For now I&#8217;ll dig into ProS ver 0.2 using the above configuration</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=57&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/05/25/pros-ver-0-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>ProS part 1</title>
		<link>http://runefs.wordpress.com/2009/05/22/pros-part-1/</link>
		<comments>http://runefs.wordpress.com/2009/05/22/pros-part-1/#comments</comments>
		<pubDate>Fri, 22 May 2009 08:40:59 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Dependency Injection]]></category>
		<category><![CDATA[Inversion of Control]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Reflection.Emit]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/?p=53</guid>
		<description><![CDATA[Well as I mentioned in Creating dynamic types in net im currently working on a language compiler. The language is called ProS. Thinking of it I might blog on the language name at some other point. The short version is that my thesis in compilers at Uni was called &#8216;ProS&#8217; and whe I worked on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=53&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well as I mentioned in <a href="http://runefs.wordpress.com/2009/05/21/creating-dynamic-types-in-net/">Creating dynamic types in net</a> im currently working on a language compiler. The language is called ProS. Thinking of it I might blog on the language name at some other point. The short version is that my thesis in compilers at Uni was called &#8216;ProS&#8217; and whe I worked on the first version of this language I realized a lot of similarities to that project.</p>
<p>If you wander what happen to the first version: It died. My laptop died two days after I infected my back with Vira due to me making a backup of my moms HDD. Note to self. Use seperate backup media to own data in future.</p>
<p>The language is YANL (Yet anothe .Net language). you can write a program using the language only certain classes. I&#8217;m using dependency injection in all my projects and I&#8217;ve been using a few different and as noted in <a href="http://www.clariusconsulting.net/blogs/kzu/archive/2009/04/20/142789.aspx">MAB ContainerModel / Funq: a transparent container</a> most are painstackingly slow when it comes to creating objects. To me that&#8217;s a bit weird they are all used for just that!</p>
<p>The problem for most of them is that they are build on reflection. To me that&#8217;s two problems in one.  The main reason they are slow is due to reflection being slow. The second problem is that reflection is not safe.</p>
<p>(That is not entirely true:<a href="http://www.clariusconsulting.net/blogs/kzu/archive/2006/07/06/TypedReflection.aspx">Typed Reflection </a>but for the way reflection is used by ObjectBuilder, Windsor and similar the satement is true)</p>
<p>I like the way Funq mentioned above solves the problem with Lambda expression but I decided to take another approach to it by making a domain specific language to hanlde the injection. Basically what you can do is some thing like:</p>
<p>class Injector</p>
<p>{</p>
<p>constructor returnType GetMyObject([arguments])</p>
<p>{</p>
<p>//Here goes your dependency arguments</p>
<p>//Setting an argument named arg1 to 10:</p>
<p>//arg1 = 10;</p>
<p>//Then comes property setters.</p>
<p>//Same syntax as above</p>
<p>}</p>
<p>}</p>
<p>This will compile into a class named Injector with a set of methods called GetMyObject. The number of methods created depends on the number of constructors on the class returned by GetMyObject and the arguments given to GetMyObject. The arguments given to GetMyObject will be passed on as arguments to the constructor.</p>
<p>The result I expect is that this approach will be basically as fast as just simply calling the constructor. The method call is trivial and in the simple form is just one extra jump instruction.</p>
<p>The benefits of the ProS approach to the reflection approach is, not surprisingly, speed and type safty. After all that was my two main design goals. I&#8217;m very much looking forward to performing Daniel Cazzolino&#8217;s benchmark test to Funq and ProS.</p>
<p>Due to the fact that <a href="http://irony.codeplex.com/">Irony</a> and the <a href="http://msdn.microsoft.com/en-us/library/bb166441(VS.80).aspx">Visual Studio SDK</a> making it trivial to get highlighting, brace macthing and similar.  ProS comes with that as well.</p>
<p>Next step in the development is to take my version 0.1 and turn it on it self. Using ProS 0.1 as dependency Injector for ProS 0.2</p>
<p>A long the way I&#8217;ll make a few other features and add them to ProS v0.2.<br />
A few of them are standard in most Ioc&#8217;s such as making caching possible but a few Is ProS only. One of them I had a lot of fun with when building version one. Making the Compiler plugable.</p>
<p>I&#8217;d write a post on  making the compiler plugable. For now I&#8217;ll just stick with saying it&#8217;s fun but im affraid it&#8217;s also the option of potentially really weird coding.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=53&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/05/22/pros-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating dynamic types in .NET</title>
		<link>http://runefs.wordpress.com/2009/05/21/creating-dynamic-types-in-net/</link>
		<comments>http://runefs.wordpress.com/2009/05/21/creating-dynamic-types-in-net/#comments</comments>
		<pubDate>Thu, 21 May 2009 10:57:51 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Reflection.Emit]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/2009/05/21/creating-dynamic-types-in-net/</guid>
		<description><![CDATA[Im working on a language at the moment, which i&#8217;ll blog more on later. During the development I came to a point where I needed to actually create assembly files to test the result of the compiler. I&#8217;ve writte a few compilers using Reflection.Emit before and I&#8217;ve always come to a point where everything seems [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=52&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Im working on a language at the moment, which i&#8217;ll blog more on later. During the development I came to a point where I needed to actually create assembly files to test the result of the compiler. I&#8217;ve writte a few compilers using Reflection.Emit before and I&#8217;ve always come to a point where everything seems to be working fine. Using reflection I can see all the methods and all the classes but when I write it to file. There&#8217;s absolutely nothing but the manifest.</p>
<p>I seem to forget the trick everytime. If the module name is different from the filename it  just wont work. I have actually no clue to why that is. But I had the problem today and with one single change namely making the module name the same as the file name, I solved the problem. If you don&#8217;t need to save your assemblies to disk, your basically free to choose the module name.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=52&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/05/21/creating-dynamic-types-in-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t believe everything you&#8217;re told</title>
		<link>http://runefs.wordpress.com/2009/02/13/dont-believe-everything-your-told/</link>
		<comments>http://runefs.wordpress.com/2009/02/13/dont-believe-everything-your-told/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 09:52:27 +0000</pubDate>
		<dc:creator>runefs</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://runefs.wordpress.com/2009/02/13/dont-believe-everything-your-told/</guid>
		<description><![CDATA[One of my collegues had an intereseting error report from our test suit today:
Error: &#8220;Expected 3 but was 3&#8243;
At first glance it might seem that everything is as expected!! actually it&#8217;s not but finding where the error is might be a little tricky. There&#8217;s not a lot of information to start with.
The problem is a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=47&subd=runefs&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of my collegues had an intereseting error report from our test suit today:</p>
<p>Error: &#8220;Expected 3 but was 3&#8243;</p>
<p>At first glance it might seem that everything is as expected!! actually it&#8217;s not but finding where the error is might be a little tricky. There&#8217;s not a lot of information to start with.</p>
<p>The problem is a some what shaky implementation of the unit test framework we&#8217;re using. The line of code that reports the error looks like<br />
ASSERT_EQ(++errorCount, errorHandler.Errors.Count);</p>
<p>I personally don&#8217;t like the ++errorCount argument but would expect it to be fine except ASSERT_EQ is a macro and the argument is used once for comparison and once for outputting and hence incremented twice</p>
<p>Moral: If you&#8217;re not 100% sure what a macro does and you need it to work on a value <em>pass a value</em>. Only pass expressions when the macro needs an expression and not a value.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/runefs.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/runefs.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/runefs.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/runefs.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/runefs.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/runefs.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/runefs.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/runefs.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/runefs.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/runefs.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=runefs.wordpress.com&blog=3876111&post=47&subd=runefs&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://runefs.wordpress.com/2009/02/13/dont-believe-everything-your-told/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e632a5065527a8bfa7f2287b44b8dc61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">runefs</media:title>
		</media:content>
	</item>
	</channel>
</rss>