<?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>The Farr Side</title>
	<atom:link href="http://ericfarr.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://ericfarr.net</link>
	<description>Eric Farr's view of the software world.</description>
	<lastBuildDate>Wed, 03 Feb 2010 15:58:53 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='ericfarr.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/30b9a2c8b19e2e7fa5b65a313de1f852?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Farr Side</title>
		<link>http://ericfarr.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ericfarr.net/osd.xml" title="The Farr Side" />
	<atom:link rel='hub' href='http://ericfarr.net/?pushpress=hub'/>
		<item>
		<title>Update Route Tables on Windows Mobile</title>
		<link>http://ericfarr.net/2010/02/03/update-route-tables-on-windows-mobile/</link>
		<comments>http://ericfarr.net/2010/02/03/update-route-tables-on-windows-mobile/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 15:58:53 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://ericfarr.wordpress.com/2010/02/03/update-route-tables-on-windows-mobile/</guid>
		<description><![CDATA[Our dev team needed to do something that, evidently, very few people need to do… update the routing tables on a Windows Mobile device that is simultaneously connected to both WiFi and the wireless carrier. Internet searching was very little help, but we eventually stumbled across a nifty little shareware app called PocketLAN by z2 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=108&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Our dev team needed to do something that, evidently, very few people need to do… update the routing tables on a Windows Mobile device that is simultaneously connected to both WiFi and the wireless carrier. Internet searching was very little help, but we eventually stumbled across a nifty little shareware app called <a href="http://www.z2software.com/PocketLAN.htm">PocketLAN</a> by z2 Software. If you are doing any advanced networking on a Windows Mobile device, PocketLAN is well worth the $14.99.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=108&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2010/02/03/update-route-tables-on-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>A Nifty Extension Method for Mapping Property Values by Name</title>
		<link>http://ericfarr.net/2009/06/08/a-nifty-extension-method-for-mapping-property-values-by-name/</link>
		<comments>http://ericfarr.net/2009/06/08/a-nifty-extension-method-for-mapping-property-values-by-name/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 22:30:19 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[AutoMapper]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[extension method]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=89</guid>
		<description><![CDATA[Here is a nice little C# extension method that allows you to copy all of the properties from one object to another where the names match.
SetPropertiesByName(this object target, object source)
{
PropertyInfo[] sourceProperties = source.GetType().GetProperties();
PropertyInfo[] targetProperties = target.GetType().GetProperties();
foreach (PropertyInfo targetField in targetProperties)
{
PropertyInfo sourceProperty =
(sourceProperties.Where(f =&#62; f.Name == targetField.Name)).FirstOrDefault();
if (sourceProperty.IsNotNull())
{
targetField.SetValue(target, sourceProperty.GetValue(source, null), null);
}
}
}
The usage looks this…
foo.SetPropertiesByName(bar);
I was using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=89&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Here is a nice little C# extension method that allows you to copy all of the properties from one object to another where the names match.</p>
<p>SetPropertiesByName(this object target, object source)<br />
{<br />
PropertyInfo[] sourceProperties = source.GetType().GetProperties();<br />
PropertyInfo[] targetProperties = target.GetType().GetProperties();<br />
foreach (PropertyInfo targetField in targetProperties)<br />
{<br />
PropertyInfo sourceProperty =<br />
(sourceProperties.Where(f =&gt; f.Name == targetField.Name)).FirstOrDefault();</p>
<p>if (sourceProperty.IsNotNull())<br />
{<br />
targetField.SetValue(target, sourceProperty.GetValue(source, null), null);<br />
}<br />
}<br />
}</p>
<p>The usage looks this…</p>
<p>foo.SetPropertiesByName(bar);</p>
<p>I was using <a href="http://www.codeplex.com/AutoMapper">AutoMapper</a> for this, but it was overkill for what I needed.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=89&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/06/08/a-nifty-extension-method-for-mapping-property-values-by-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop Developer’s Introduction to Compact Framework Development: Part 4-LINQ on the Compact Framework</title>
		<link>http://ericfarr.net/2009/06/08/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-4-linq-on-the-compact-framework/</link>
		<comments>http://ericfarr.net/2009/06/08/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-4-linq-on-the-compact-framework/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 22:30:05 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Compact Framework]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=87</guid>
		<description><![CDATA[LINQ (Language-Integrated Query) is supported on the Compact Framework. However, like with every other technology on CF, there is stuff you might that isn&#8217;t there. In my case, it&#8217;s LINQ to SQL. System.Data.Linq is not provided on the Compact Framework.
Also, contrary to some reports, the Entity Framework 3.5 is not provided on the Compact Framework, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=87&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>LINQ (Language-Integrated Query) is supported on the Compact Framework. However, like with every other technology on CF, there is stuff you might that isn&#8217;t there. In my case, it&#8217;s LINQ to SQL. System.Data.Linq is not provided on the Compact Framework.</p>
<p>Also, contrary to <a href="http://jmayo.spaces.live.com/blog/cns!5F243997972597CE!568.entry">some reports</a>, the Entity Framework 3.5 is not provided on the Compact Framework, either.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=87&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/06/08/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-4-linq-on-the-compact-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Referencing a File by Relative Path with T4</title>
		<link>http://ericfarr.net/2009/06/05/referencing-a-file-by-relative-path-with-t4/</link>
		<comments>http://ericfarr.net/2009/06/05/referencing-a-file-by-relative-path-with-t4/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 17:43:22 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[T4]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=94</guid>
		<description><![CDATA[This was way harder to figure out than it should have been, so for the next person that needs to reference an input file in a T4 template by its relative path, here is what you need to do&#8230;
1. Include T4Toolbox.tt&#8230;
&#60;#@ include file=&#8221;T4Toolbox.tt&#8221; #&#62;
2. Add hostspecific=&#8221;True&#8221; to your template setting&#8230;
&#60;#@ template language=&#8221;C#&#8221; hostspecific=&#8221;True&#8221; #&#62;
3. Import [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=94&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This was way harder to figure out than it should have been, so for the next person that needs to reference an input file in a <a title="T4 Template Engine" href="http://msdn.microsoft.com/en-us/library/bb126445.aspx">T4</a> template by its relative path, here is what you need to do&#8230;</p>
<p>1. Include T4Toolbox.tt&#8230;</p>
<p>&lt;#@ include file=&#8221;T4Toolbox.tt&#8221; #&gt;</p>
<p>2. Add hostspecific=&#8221;True&#8221; to your template setting&#8230;</p>
<p>&lt;#@ template language=&#8221;C#&#8221; hostspecific=&#8221;True&#8221; #&gt;</p>
<p>3. Import EnvDTE&#8230;</p>
<p>&lt;#@ import namespace=&#8221;EnvDTE&#8221; #&gt;</p>
<p>4. Now TransformationContext.Host.ResolvePath(&#8220;SomeFile.sdf&#8221;) will return the absolute path of &#8220;SomeFile.sdf&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=94&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/06/05/referencing-a-file-by-relative-path-with-t4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Domain-Driven Design Friendly Persistence on the Compact Framework</title>
		<link>http://ericfarr.net/2009/04/13/domain-driven-design-friendly-persistence-on-the-compact-framework/</link>
		<comments>http://ericfarr.net/2009/04/13/domain-driven-design-friendly-persistence-on-the-compact-framework/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 11:27:48 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Entity Spaces]]></category>
		<category><![CDATA[LLBLGen]]></category>
		<category><![CDATA[persistence]]></category>

		<guid isPermaLink="false">http://ericfarr.net/2009/04/13/domain-driven-design-friendly-persistence-on-the-compact-framework/</guid>
		<description><![CDATA[I&#8217;ve been searching for a persistence tool that will eliminate the hand coding of our basic CRUD operations. I&#8217;m looking for something that allows us to develop our domain model in plain, unencumbered C# classes, and later persist them to a data store. Ideally, I&#8217;d like to use the same tool on both the Windows [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=84&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been searching for a persistence tool that will eliminate the hand coding of our basic CRUD operations. I&#8217;m looking for something that allows us to develop our domain model in plain, unencumbered C# classes, and later persist them to a data store. Ideally, I&#8217;d like to use the same tool on both the Windows Mobile devices and on the server (just so we don&#8217;t have to learn two different tools or frameworks). This is the story of my pain…
</p>
<p><strong>NHibernate</strong> – The first and obvious choice for DDD-friendly persistence in .NET is <a href="http://www.nhibernate.org/">NHibernate</a>. It is a true object-first ORM and seems to have a lot of interesting tooling growing up around it. Alas, NHibernate is not supported on the Compact Framework because of some unsupported reflection it uses.
</p>
<p><strong>LLBLGen Pro</strong> – Developers who use <a href="http://www.llblgen.com/">LLBLGen Pro</a> seem to love it. It is supported on the Compact Framework, but LLBLGen will not support an object-first approach until version 3.0 which won&#8217;t even beta until the end of Summer 2009, which is way too late for me.
</p>
<p><strong>Entity Spaces</strong> – <a href="http://www.entityspaces.net">Entity Spaces</a> is yet another commercial database-first ORM that runs on the Compact Framework. I don&#8217;t see anything that it offers that LLBLGen doesn&#8217;t offer.
</p>
<p><strong>Entity Framework</strong> – <a href="http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework">Entity Framework</a> is supported on the Compact Framework and is free but does not support any kind of POCO, object-first approach.
</p>
<p><strong>db4objects</strong> &#8211; <a href="http://www.db4o.com/">db4objects</a> was an extremely intriguing option. I had never considered using an object database before. I found db4o extremely easy to use and intuitive—perfect for the lightweight storage needs we have on handheld devices. However, db4o is offered under a <a href="http://www.db4o.com/about/company/legalpolicies/gpl.aspx">GPL</a> or commercial license. The GPL license won&#8217;t work for us and the commercial license is orders of magnitude more expensive than a tool like LLBLGen or Entity Spaces.
</p>
<p>Given that having our developers write all of the database access code by hand is (in my opinion) too time-consuming and error prone, I&#8217;m left facing some sort of compromise approach.
</p>
<p>One option is to create my domain model as I need to, ignoring persistence. Then, within my repository implementation use a data-first tool, treating the &#8220;entities&#8221; generated by the persistence tool as DTOs and manually translate them into my true domain objects.
</p>
<p>The second option is to again model the domain, but attempt to back into the code we need for those objects using a tool like EF or LLBLGen. The Patterns and Practices guys seem to think this approach is true to the DDD concept (<a href="http://apparch.codeplex.com/Wiki/View.aspx?title=How%20To%20-%20Domain%20Driven%20Design">see this article</a>). I&#8217;m not sure I agree.
</p>
<p>I think I&#8217;ll give a go at the second approach and fall back to the first if I see that the database schema, and not my domain, is driving the conceptual creation of my object model. I&#8217;ll also have to figure out whether to use LLBLGen or Entity Framework. EF is free, but LLBLGen is more mature and may offer a better option in the next version.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=84&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/04/13/domain-driven-design-friendly-persistence-on-the-compact-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop Developer’s Introduction to Compact Framework Development: Part 3-C++/CLI on Compact Framework</title>
		<link>http://ericfarr.net/2009/01/29/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-3-ccli-on-compact-framework/</link>
		<comments>http://ericfarr.net/2009/01/29/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-3-ccli-on-compact-framework/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 22:07:59 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[C++/CLI]]></category>
		<category><![CDATA[interop]]></category>
		<category><![CDATA[Managed C++]]></category>
		<category><![CDATA[P/Invoke]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=81</guid>
		<description><![CDATA[It may seem like a waste to have a whole post dedicated to a feature that isn&#8217;t there, but knowing this fact would have saved me some wasted mental effort and disappointment.
The Compact Framework is necessarily small. Microsoft only puts functionality into it that developers will be likely to actually need. This means that a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=81&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>It may seem like a waste to have a whole post dedicated to a feature that isn&#8217;t there, but knowing this fact would have saved me some wasted mental effort and disappointment.</p>
<p>The Compact Framework is necessarily small. Microsoft only puts functionality into it that developers will be likely to actually need. This means that a lot of stuff you&#8217;d like to be there isn&#8217;t. This also means that you might need to interoperate with native code to do some of what you want to do.</p>
<p>If you are like me, this means you would like to use C++/CLI (the old-school .NET technology formerly known as Managed C++) to do that interop. You, like me, would be sorely disappointed. C++/CLI is not supported on the Compact Framework, and as far as I know there are no plans to add it. Prepare to P/Invoke.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=81&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/01/29/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-3-ccli-on-compact-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Unit Tests Just a Happy Side Effect of Test-Driven Development</title>
		<link>http://ericfarr.net/2009/01/17/unit-tests-just-a-happy-side-effect-of-test-driven-development/</link>
		<comments>http://ericfarr.net/2009/01/17/unit-tests-just-a-happy-side-effect-of-test-driven-development/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 23:26:05 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Hanselminutes]]></category>
		<category><![CDATA[Scott Bellware]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=77</guid>
		<description><![CDATA[Interviewing developers has given me an interesting, although not scientific, sampling of the thinking and mindset of software developers in the Atlanta area. While there have been a few bright spots, most of what I&#8217;ve learned has been disheartening.
I have found that TDD is still only an idea that most developers have heard about but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=77&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Interviewing developers has given me an interesting, although not scientific, sampling of the thinking and mindset of software developers in the Atlanta area. While there have been a few bright spots, most of what I&#8217;ve learned has been disheartening.</p>
<p>I have found that TDD is still only an idea that most developers have heard about but never practiced. Of the ones who have practiced it, almost none of them understand what TDD was meant to achieve and only view it as automated unit testing. I believe this is due to two factors working together derail the original intent of TDD. First, TDD was named poorly. &#8220;Test&#8221; has specific meaning and has for a long time. It naturally biases us toward a certain type of thinking (strangely enough… testing and quality assurance). Second, most developers and development organizations would rather apply a formula or recipe to what they do than to take the time and effort to deeply understand what makes software development success or failure (and all of the degrees in between).</p>
<p><a href="http://blog.scottbellware.com/">Scott Bellware</a> is the guy who first got me thinking about a new way to approach TDD. It started with a new name: <em>Behavior</em> Driven Development (BDD). I actually think the &#8220;D&#8221; should be changed to <em>Design</em> to complete the mind shift. In a nutshell, BDD attempts to get back to the XP view of the tests being documentation of what the code should <em>do</em>. In this way of thinking, the set-up code is referred to as <em>context</em> and the assertions are referred to as <em>specification</em>. It has helped reform my thinking about TDD for the better.</p>
<p>You can catch Scott pontificating on the subject on the latest Hanselminutes <a href="http://www.hanselminutes.com/default.aspx?showID=164">podcast</a>. Scott doesn&#8217;t get as specific as I would have liked, but this interview shows the side of Scott that I like so much. He&#8217;s passionately advocating a valuable practice and philosophy without the insults and vitriol that he is prone to fall into. I highly recommend it.</p>
<p>[Update: My reference to "Scott" in the above paragraph is to Bellware--not Hanselman, who is always pleasant and rarely vitriolic.]</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=77&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/01/17/unit-tests-just-a-happy-side-effect-of-test-driven-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Spell-Checking for ReSharper</title>
		<link>http://ericfarr.net/2009/01/15/spell-checking-for-resharper/</link>
		<comments>http://ericfarr.net/2009/01/15/spell-checking-for-resharper/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 22:18:31 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Agent Smith]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ReSharper]]></category>
		<category><![CDATA[spelling]]></category>
		<category><![CDATA[Visual Assist]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=75</guid>
		<description><![CDATA[Your code will be written once. It will be read (by you and others) many times. Code should be easy to read. This means that I should be able to scan a screen full of code and get a sense of what it does quickly. Layout and spacing plays s big part in that. Naming [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=75&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Your code will be written once. It will be read (by you and others) many times. Code should be easy to read. This means that I should be able to scan a screen full of code and get a sense of what it does quickly. Layout and spacing plays s big part in that. Naming things with real, recognizable words just as important.</p>
<p>If you buy that, it goes without saying that those words that make up your identifiers must be spelled correctly. I am a terrible speller. As a C++ coder, I loved that <a href="http://www.wholetomato.com/">Visual Assist</a> would give me the red squiggles under any word that I misspelled. This has been the only regret I have about moving from VA to ReSharper. In every other way, ReSharper is a win over what VA offered.</p>
<p>I&#8217;ve just discovered <a href="http://www.agentsmithplugin.com/">Agent Smith</a> as a plug-in to ReSharper. I had to make a few tweaks and drop one of the checking rules, but I am loving it. My ReSharper experience is now complete!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=75&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/01/15/spell-checking-for-resharper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop Developer’s Introduction to Compact Framework Development: Part 2-Windows CE versus Windows Mobile</title>
		<link>http://ericfarr.net/2009/01/03/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-2-windows-ce-versus-windows-mobile/</link>
		<comments>http://ericfarr.net/2009/01/03/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-2-windows-ce-versus-windows-mobile/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 16:38:25 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[pda]]></category>
		<category><![CDATA[pocket pc]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=70</guid>
		<description><![CDATA[Sorting out the difference between Windows CE and Windows Mobile is the key to understanding the platform versioning (which can be very confusing). Here it is in a nutshell…
Windows CE is a set of modules that Microsoft releases for hardware vendors to build operating systems custom for their devices. Because these devices are so resource [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=70&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Sorting out the difference between Windows CE and Windows Mobile is the key to understanding the platform versioning (which can be very confusing). Here it is in a nutshell…</p>
<p>Windows CE is a set of modules that Microsoft releases for hardware vendors to build operating systems custom for their devices. Because these devices are so resource constrained, manufacturers don&#8217;t want to put any functionality on them that isn&#8217;t necessary.</p>
<p>It turns out that there are a whole bunch of devices that need about the same functionality, namely smart phones and PDAs. Instead of having each smart phone and PDA manufacturer build their own version of CE and add in all of the niceties that are needed to be productive on those devices, Microsoft offers Windows Mobile. In other words, Windows Mobile releases are instances of Windows CE specifically built for handheld devices.</p>
<p>The group that develops Windows Mobile is a customer of the CE group. The Windows Mobile releases always trail the CE releases and have their own (crazy) naming and versioning scheme. In the beginning, it was called PocketPC (first 2000, then 2002), then there was a split, as they offered Windows Mobile 2003 for PocketPC and Windows Mobile 2003 for Smartphone. PocketPC was optimized for a touch screen and keyboard while Smartphone was optimized for menu buttons and a numeric keypad.</p>
<p>With Windows Mobile 5 and 6 (which are found on most devices today), there are three flavors: Pocket PC without phone (classic), Pocket PC with phone (professional), and Smartphone (standard).</p>
<p><a href="http://en.wikipedia.org/wiki/Windows_Mobile">Wikipedia</a> has a decent breakdown of the various combinations.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=70&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/01/03/desktop-developer%e2%80%99s-introduction-to-compact-framework-development-part-2-windows-ce-versus-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>
	</item>
		<item>
		<title>SOLID: What is Old is New Again</title>
		<link>http://ericfarr.net/2009/01/01/solid-what-is-old-is-new-again/</link>
		<comments>http://ericfarr.net/2009/01/01/solid-what-is-old-is-new-again/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 15:09:00 +0000</pubDate>
		<dc:creator>Eric Farr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[Dependency Inversion]]></category>
		<category><![CDATA[Interface Segregation]]></category>
		<category><![CDATA[Liskov Substitution]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[Open-Closed]]></category>
		<category><![CDATA[Robert Martin]]></category>
		<category><![CDATA[Single Responsibility]]></category>
		<category><![CDATA[solid]]></category>

		<guid isPermaLink="false">http://ericfarr.net/?p=64</guid>
		<description><![CDATA[
Sometime around 2001, I came across a series of articles by Robert C. Martin.  At that time they were already a little old—from The C++ Report in 1996. I didn&#8217;t really care. This guy (who I now know as everyone else does as &#8220;Uncle Bob&#8221;) had captured and expressed core principles that I knew [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=64&subd=ericfarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-66" title="SOLID" src="http://ericfarr.files.wordpress.com/2009/01/solid.jpg?w=300&#038;h=182" alt="SOLID" width="300" height="182" /></p>
<p>Sometime around 2001, I came across a series of articles by Robert C. Martin.  At that time they were already a little old—from <em>The C++ Report</em> in 1996. I didn&#8217;t really care. This guy (who I now know as everyone else does as &#8220;Uncle Bob&#8221;) had captured and expressed core principles that I knew from experience were the key to creating maintainable software. I mostly knew it mostly from having violated them and paying the price.</p>
<p>The principles put forth in those articles express fundamentals truths that are in play in any Object-Oriented software project.</p>
<p>In <a href="http://www.objectmentor.com/resources/articles/granularity.pdf">the fifth article in the series</a>, Martin sums up the first four…</p>
<p style="margin-left:36pt;">1. <a href="http://www.objectmentor.com/resources/articles/ocp.pdf">The Open Closed Principle</a>. (OPC) January, 1996. This article discussed the notion that a software module that is designed to be reusable, maintainable and robust must be extensible without requiring change. Such modules can be created in C++ by using abstract classes. The algorithms embedded in those classes make use of pure virtual functions and can therefore be extended by deriving concrete classes that implement those pure virtual function in different ways. The net result is a set of functions written in abstract classes that can be reused in different detailed contexts and are not affected by changes to those contexts.</p>
<p style="margin-left:36pt;">2. <a href="http://www.objectmentor.com/resources/articles/lsp.pdf">The Liskov Substitution Principle</a>. (LSP) March, 1996. Sometimes known as &#8220;Design by Contract&#8221;. This principle describes a system of constraints for the use of public inheritance in C++. The principle says that any function which uses a base class must not be confused when a derived class is substituted for the base class. This article showed how difficult this principle is to conform to, and described some of the subtle traps that the software designer can get into that affect reusability and maintainability.</p>
<p style="margin-left:36pt;">3. <a href="http://www.objectmentor.com/resources/articles/dip.pdf">The Dependency Inversion Principle</a>. (DIP) May, 1996. This principle describes the overall structure of a well designed object-oriented application. The principle states that the modules that implement high level policy should not depend upon the modules that implement low level details. Rather both high level policy and low level details should depend upon abstractions. When this principle is adhered to, both the high level policy modules, and the low level detail modules will be reusable and maintainable.</p>
<p style="margin-left:36pt;">4. <a href="http://www.objectmentor.com/resources/articles/isp.pdf">The Interface Segregation Principle</a>. (ISP) Aug, 1996. This principle deals with the disadvantages of &#8220;fat&#8221; interfaces. Classes that have &#8220;fat&#8221; interfaces are classes whose interfaces are not cohesive. In other words, the interfaces of the class can be broken up into groups of member functions. Each group serves a different set of clients. Thus some clients use one group of member functions, and other clients use the other groups.</p>
<p style="margin-left:36pt;">The ISP acknowledges that there are objects that require non-cohesive interfaces; however it suggests that clients should not know about them as a single class. Instead, clients should know about abstract base classes that have cohesive interfaces; and which are multiply inherited into the concrete class that describes the non-cohesive object.</p>
<p>Martin later published <a href="http://www.objectmentor.com/resources/articles/srp.pdf">The Single Responsibility Principle</a>, which says that there should never be more than one reason for a class to change.</p>
<p>There were several aspects of these short articles that helped me so much…</p>
<ul>
<li>The articles were short but clear.</li>
<li>The articles were available on-line for anyone to download and read.</li>
<li>Martin gave these principles names.</li>
</ul>
<p>All of these aspects made these principles easy to promote—and I did! I preached all of these principles, whether in C++ or later C#. So, I am particularly pleased to see the recent resurgence in these principles as the <a href="http://codebetter.com/">ALT.NET crowd</a> has arranged them into a nice acronym (SOLID) and made back-to-basics cool again. We see the SOLID principles all over blogs and articles in the agile community. It reaffirms my belief that the fundamentals may go in and out of style, but they are always what matters most in good software development.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ericfarr.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ericfarr.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ericfarr.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ericfarr.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ericfarr.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ericfarr.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ericfarr.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ericfarr.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ericfarr.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ericfarr.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ericfarr.net&blog=5295076&post=64&subd=ericfarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://ericfarr.net/2009/01/01/solid-what-is-old-is-new-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81fa4a195187b1a5c38b033d91be8a7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efarr</media:title>
		</media:content>

		<media:content url="http://ericfarr.files.wordpress.com/2009/01/solid.jpg?w=300" medium="image">
			<media:title type="html">SOLID</media:title>
		</media:content>
	</item>
	</channel>
</rss>