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

<channel>
	<title>sides of march &#187; Open Source</title>
	<atom:link href="http://www.sidesofmarch.com/index.php/archive/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sidesofmarch.com</link>
	<description>Thoughts on life, liberty, and information technology</description>
	<lastBuildDate>Mon, 16 Jan 2012 02:43:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Looking for advice on open source licenses</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2009/02/05/looking-for-advice-on-open-source-licenses/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2009/02/05/looking-for-advice-on-open-source-licenses/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 02:27:34 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[CSFBL]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/?p=339</guid>
		<description><![CDATA[<p>I&#8217;ve been developing (and operating) <a title="Computer Simulated Fantasy Baseball League" href="http://www.csfbl.com/">CSFBL</a>, my multiplayer, web-based baseball game, for over eight years. After mulling for quite some time as to the future of the game, I’m seriously considering the transition of the game to an open source project. That being said, <strong>finding the right open source license is important</strong>.</p>
<p>After doing my reading, I&#8217;m thinking of going the route taken by <a href="http://www.mysql.com">MySQL</a> – i.e., open-source under the <a title="The GNU General Public License" href="http://www.gnu.org/licenses/gpl.html">GPL</a>, but the potential for closed-source and commercial options available with a separate license.</p>
<p>Realistically, I highly doubt people would come to license the software for commercial use, but I do want to protect the product, intellectual property, and my sweat equity (I&#8217;ve spent an inordinate amount of time, money, and energy on it over 8+ years). My interest is in sharing it (and getting help from others), not letting others profit off it. (Hence I am avoiding licenses such <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2009/02/05/looking-for-advice-on-open-source-licenses/">Looking for advice on open source licenses</a></span>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been developing (and operating) <a title="Computer Simulated Fantasy Baseball League" href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.csfbl.com%2F&sref=rss">CSFBL</a>, my multiplayer, web-based baseball game, for over eight years. After mulling for quite some time as to the future of the game, I’m seriously considering the transition of the game to an open source project. That being said, <strong>finding the right open source license is important</strong>.</p>
<p>After doing my reading, I&#8217;m thinking of going the route taken by <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.mysql.com&sref=rss">MySQL</a> – i.e., open-source under the <a title="The GNU General Public License" href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.gnu.org%2Flicenses%2Fgpl.html&sref=rss">GPL</a>, but the potential for closed-source and commercial options available with a separate license.</p>
<p>Realistically, I highly doubt people would come to license the software for commercial use, but I do want to protect the product, intellectual property, and my sweat equity (I&#8217;ve spent an inordinate amount of time, money, and energy on it over 8+ years). My interest is in sharing it (and getting help from others), not letting others profit off it. (Hence I am avoiding licenses such as <a title="Open Source Initiative: BSD Licensing" href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.opensource.org%2Flicenses%2Fbsd-license.php&sref=rss">BSD</a>).</p>
<p>Does anyone have suggestions, thoughts, or words of advice on this matter?</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=339&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2009/02/05/looking-for-advice-on-open-source-licenses/' addthis:title='Looking for advice on open source licenses ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2009/02/05/looking-for-advice-on-open-source-licenses/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Announcing the ASP.Net Control Adapters, a new open source project</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2008/10/04/announcing-aspnet-control-adapters-a-new-open-source-project/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2008/10/04/announcing-aspnet-control-adapters-a-new-open-source-project/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 03:43:07 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[ASP.Net Control Adapters]]></category>
		<category><![CDATA[CSSFriendly]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/?p=289</guid>
		<description><![CDATA[<p>Over the past few weeks, I started doing some experimentation with a different approach to changing the rendering of default ASP.Net controls. For a few years, I (and many others) have used the <a href="http://www.codeplex.com/cssfriendly">CSSFriendly</a> project for this. That project does some nice things, but has many shortcomings.</p>
<p>I hemmed and hawed about this a bit (see <a href="http://www.sidesofmarch.com/index.php/archive/2008/09/23/rewriting-the-aspnet-css-friendly-adapters-does-anyone-care/"><em>Rewriting the ASP.Net CSS Friendly Adapters &#8211; does anyone care?</em></a>), but in the end some fundamental interest &#8212; and the underlying popularity of the CSSFriendly project (consistently in the top-20 downloads on CodePlex) made me decide to go ahead with it.</p>
<p>So, I am proud to announce a new open source project: the ASP.Net Control Adapters!</p>
<p>The project site is hosted through Google Code: <a href="http://code.google.com/p/aspnetcontroladapters/">http://code.google.com/p/aspnetcontroladapters/</a></p>
<p>I have checked in my original test/experimentation code, cleaned up a bit to make it more useful. It implements limited support for the CheckBoxList control. Source code includes the main project, a UnitTests project (using <a href="http://www.nunit.org/index.php">NUnit</a>), a WebTests project (a <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2008/10/04/announcing-aspnet-control-adapters-a-new-open-source-project/">Announcing the ASP.Net Control Adapters, a new open source project</a></span>]]></description>
			<content:encoded><![CDATA[<p>Over the past few weeks, I started doing some experimentation with a different approach to changing the rendering of default ASP.Net controls. For a few years, I (and many others) have used the <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.codeplex.com%2Fcssfriendly&sref=rss">CSSFriendly</a> project for this. That project does some nice things, but has many shortcomings.</p>
<p>I hemmed and hawed about this a bit (see <a href="http://www.sidesofmarch.com/index.php/archive/2008/09/23/rewriting-the-aspnet-css-friendly-adapters-does-anyone-care/"><em>Rewriting the ASP.Net CSS Friendly Adapters &#8211; does anyone care?</em></a>), but in the end some fundamental interest &#8212; and the underlying popularity of the CSSFriendly project (consistently in the top-20 downloads on CodePlex) made me decide to go ahead with it.</p>
<p>So, I am proud to announce a new open source project: the ASP.Net Control Adapters!<span id="more-289"></span></p>
<p>The project site is hosted through Google Code: <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fcode.google.com%2Fp%2Faspnetcontroladapters%2F&sref=rss">http://code.google.com/p/aspnetcontroladapters/</a></p>
<p>I have checked in my original test/experimentation code, cleaned up a bit to make it more useful. It implements limited support for the <code>CheckBoxList</code> control. Source code includes the main project, a UnitTests project (using <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.nunit.org%2Findex.php&sref=rss">NUnit</a>), a WebTests project (a web app that invokes the adapted control in a web page), license/readme files, and an <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fnant.sourceforge.net%2F&sref=rss">NAnt</a> build script.</p>
<p>I also started working on a documentation format, which you can see at <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fcode.google.com%2Fp%2Faspnetcontroladapters%2Fwiki%2FCheckBoxList&sref=rss">http://code.google.com/p/aspnetcontroladapters/wiki/CheckBoxList</a>.</p>
<p>There&#8217;s still a lot missing in terms of implementation (not even postback support yet!), and unit testing, but in general the programmers out there should be able to understand the approach I&#8217;m taking, and designers/front-end developers can understand the GUI approach.</p>
<p>Still lots to do before this is consumable by others, but I wanted to get this up and hosted.</p>
<p>Also &#8212; there&#8217;s a Google Group for it: <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fgroups.google.com%2Fgroup%2Faspnetcontroladapters&sref=rss">http://groups.google.com/group/aspnetcontroladapters</a> &#8212; be sure to head there to add to the discussion.</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=289&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2008/10/04/announcing-aspnet-control-adapters-a-new-open-source-project/' addthis:title='Announcing the ASP.Net Control Adapters, a new open source project ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2008/10/04/announcing-aspnet-control-adapters-a-new-open-source-project/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A free replacement for the Windows defragment utility</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2008/07/21/a-free-replacement-for-the-windows-defragment-utility/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2008/07/21/a-free-replacement-for-the-windows-defragment-utility/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 19:47:11 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[defrag]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/?p=262</guid>
		<description><![CDATA[<p>Defragmenting hard drives is something that is often unnecessary, but when it is necessary, most people run the built-in Windows &#8220;Disk Defragmenter&#8221; utility. It&#8217;s serviceable, but there is a better option: <a href="http://www.kessels.com/JkDefrag/index.html">JkDefrag</a>.</p>
<p>There&#8217;s a few things that make JkDefrag an improvement over what Windows offers:</p>

It runs on anything that mounts like a disk drive &#8212; including USB drives and memory sticks.
You can run it from Windows, from a command line, or as a screen saver.
It offers several different optimization strategies.
It can be configured to defragment specific drives, files, or folders, or to exclude defragmenting specific drives, files, or folders.
You can run it in the background and tell it to run at less than full speed.
It&#8217;s continually developed by a person who you can actually talk to via an <a href="http://www.kessels.com/forum/index.php">online forum</a>.
There&#8217;s no installer &#8212; just extract files from a ZIP archive into a directory and run the executable.
It&#8217;s free, as in free beer, and open source.

<p>Hats off to <a href="http://www.kessels.com/Address/index.php">Jeroen Kessels</a> <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2008/07/21/a-free-replacement-for-the-windows-defragment-utility/">A free replacement for the Windows defragment utility</a></span>]]></description>
			<content:encoded><![CDATA[<p>Defragmenting hard drives is something that is often unnecessary, but when it is necessary, most people run the built-in Windows &#8220;Disk Defragmenter&#8221; utility. It&#8217;s serviceable, but there is a better option: <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.kessels.com%2FJkDefrag%2Findex.html&sref=rss">JkDefrag</a>.</p>
<p>There&#8217;s a few things that make JkDefrag an improvement over what Windows offers:</p>
<ul>
<li>It runs on anything that mounts like a disk drive &#8212; including USB drives and memory sticks.</li>
<li>You can run it from Windows, from a command line, or as a screen saver.</li>
<li>It offers several different optimization strategies.</li>
<li>It can be configured to defragment specific drives, files, or folders, or to exclude defragmenting specific drives, files, or folders.</li>
<li>You can run it in the background and tell it to run at less than full speed.</li>
<li>It&#8217;s continually developed by a person who you can actually talk to via an <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.kessels.com%2Fforum%2Findex.php&sref=rss">online forum</a>.</li>
<li>There&#8217;s no installer &#8212; just extract files from a ZIP archive into a directory and run the executable.</li>
<li>It&#8217;s free, as in free beer, and open source.</li>
</ul>
<p>Hats off to <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.kessels.com%2FAddress%2Findex.php&sref=rss">Jeroen Kessels</a> for writing a fine utility and making it available for free. He doesn&#8217;t even ask for donations (too bad, because I&#8217;d have sent him a few bucks if he did!).</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=262&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2008/07/21/a-free-replacement-for-the-windows-defragment-utility/' addthis:title='A free replacement for the Windows defragment utility ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2008/07/21/a-free-replacement-for-the-windows-defragment-utility/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Free file archiving and (de)compression with 7-Zip [with expensive minimum donations]</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2008/05/16/free-file-archiving-and-decompression-with-7-zip-with-expensive-minimum-donations/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2008/05/16/free-file-archiving-and-decompression-with-7-zip-with-expensive-minimum-donations/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:56:33 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2008/05/16/free-file-archiving-and-decompression-with-7-zip-with-expensive-minimum-donations/</guid>
		<description><![CDATA[<p>In thinking about all the free and open source tools I use, one seems to run underneath the radar: <a href="http://www.7-zip.org/">7-Zip</a>.</p>
<p>7-Zip will compress, expand, encode, and decode more formats than you can shake a stick at. It integrates seamlessly with Windows Explorer, so you just right-click and choose the option you want, as shown below.</p>
<p align="center"><a href="http://www.sidesofmarch.com/wp-content/uploads/images/Freefilearchivinganddecompressionwith7Zi_A7E6/image.png"></a> </p>
<p>[That little fuzzy thing in the background is <a href="http://www.sidesofmarch.com/index.php/archive/2007/10/12/goodbye-old-friend/">my dog, Thea</a>. How I miss her!]</p>
<p>The fact that 7-Zip does so much and is free makes me wonder why anyone would pay $30 for a copy of <a href="http://www.winzip.com/index.htm">WinZip</a>. Instead, <a href="http://www.7-zip.org/register.html">donate that money to Igor Pavlov</a>, author of 7-Zip.</p>
<p>I decided to do just that. Heading over to <a href="http://www.7-zip.org/register.html">the donate page for 7-Zip</a> tells you that the &#8220;base donation amount is $50 or €40, but if you would like to donate more, just change the Quantity field&#8221;. Apparently, you can donate <em>more</em> than $50, but you can not donate <em>less than</em> $50 &#8212; <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2008/05/16/free-file-archiving-and-decompression-with-7-zip-with-expensive-minimum-donations/">Free file archiving and (de)compression with 7-Zip [with expensive minimum donations]</a></span>]]></description>
			<content:encoded><![CDATA[<p>In thinking about all the free and open source tools I use, one seems to run underneath the radar: <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.7-zip.org%2F&sref=rss">7-Zip</a>.</p>
<p>7-Zip will compress, expand, encode, and decode more formats than you can shake a stick at. It integrates seamlessly with Windows Explorer, so you just right-click and choose the option you want, as shown below.</p>
<p align="center"><a href="http://www.sidesofmarch.com/wp-content/uploads/images/Freefilearchivinganddecompressionwith7Zi_A7E6/image.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="170" alt="image" src="http://www.sidesofmarch.com/wp-content/uploads/images/Freefilearchivinganddecompressionwith7Zi_A7E6/image_thumb.png" width="320" border="0"/></a> </p>
<p>[That little fuzzy thing in the background is <a href="http://www.sidesofmarch.com/index.php/archive/2007/10/12/goodbye-old-friend/">my dog, Thea</a>. How I miss her!]</p>
<p>The fact that 7-Zip does so much and is free makes me wonder why anyone would pay $30 for a copy of <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.winzip.com%2Findex.htm&sref=rss">WinZip</a>. Instead, <small><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.7-zip.org%2Fregister.html&sref=rss">donate that money to Igor Pavlov</a>, author of 7-Zip</small>.</p>
<p>I decided to do just that. Heading over to <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.7-zip.org%2Fregister.html&sref=rss">the donate page for 7-Zip</a> tells you that the &#8220;base donation amount is $50 or €40, but if you would like to donate more, just change the Quantity field&#8221;. Apparently, you can donate <em>more</em> than $50, but you can not donate <em>less than</em> $50 &#8212; donations must be whole-number multiples of $50.</p>
<p>This is a bit odd. I would think a minimum donation for a free product would be less than the retail price of a commercial product. I wonder how many people <em>don&#8217;t</em> donate due to this high number?</p>
<p>Considering that 99% of the archive files I receive are ZIP files, that Windows can compress and expand ZIP files (albeit slowly), and that minimum $50 price tag, I&#8217;m going to pass. If Mr. Pavlov would let me set a lower donation level, I&#8217;d be happy to oblige; until then, I have that weird feeling I get when there&#8217;s a minimum tip amount added to a restaurant bill.</p>
<p>I guess I&#8217;ll look for another free/open-source product to send my money to.</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=246&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2008/05/16/free-file-archiving-and-decompression-with-7-zip-with-expensive-minimum-donations/' addthis:title='Free file archiving and (de)compression with 7-Zip [with expensive minimum donations] ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2008/05/16/free-file-archiving-and-decompression-with-7-zip-with-expensive-minimum-donations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Castle now accepting donations (and getting one from me)</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2008/04/30/castle-now-accepting-donations-and-getting-one-from-me/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2008/04/30/castle-now-accepting-donations-and-getting-one-from-me/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 17:08:19 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2008/04/30/castle-now-accepting-donations-and-getting-one-from-me/</guid>
		<description><![CDATA[<p><a href="http://www.castleproject.org/">Castle Project</a> is a wonderful thing. I still don&#8217;t understand a lot of it, but it&#8217;s darn impressive, and has become my library of choice. It&#8217;s also no coincidence that my long-sought departure from ASP.Net WebForms was timed with my discovery of <a href="http://www.castleproject.org/monorail">Castle MonoRail</a>.</p>
<p><a href="http://hammett.castleproject.org">Hammett</a> (the man behind Castle) has finally <a href="http://hammett.castleproject.org/?p=279">started accepting donations</a> for his work. I have one thing to say to him:</p>
<p><strong>&#34;It&#8217;s about time!&#34;</strong></p>
<p>I know first-hand what it&#8217;s like to spend a lot of time on something that:</p>

a lot of people use, and
does not bring in any money (at least, not directly)

<p>My pain has been <a href="http://www.csfbl.com">CSFBL</a>, which today does accept donations (and I truly appreciate every one of them!).</p>
<p>Thinking about this more, it&#8217;s been <em>six months</em> since I&#8217;ve donated to an open source/free project (I promised last year to donate $5 per month to one), so in order to catch up, I&#8217;m sending Hammett $30 ($5 per month). Let&#8217;s hope the exchange rate is <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2008/04/30/castle-now-accepting-donations-and-getting-one-from-me/">Castle now accepting donations (and getting one from me)</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.castleproject.org%2F&sref=rss">Castle Project</a> is a wonderful thing. I still don&#8217;t understand a lot of it, but it&#8217;s darn impressive, and has become my library of choice. It&#8217;s also no coincidence that my long-sought departure from ASP.Net WebForms was timed with my discovery of <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.castleproject.org%2Fmonorail&sref=rss">Castle MonoRail</a>.</p>
<p><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fhammett.castleproject.org&sref=rss">Hammett</a> (the man behind Castle) has finally <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fhammett.castleproject.org%2F%3Fp%3D279&sref=rss">started accepting donations</a> for his work. I have one thing to say to him:</p>
<p><strong>&quot;It&#8217;s about time!&quot;</strong></p>
<p>I know first-hand what it&#8217;s like to spend a lot of time on something that:</p>
<ol>
<li>a lot of people use, and</li>
<li>does not bring in any money (at least, not directly)</li>
</ol>
<p>My pain has been <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.csfbl.com&sref=rss">CSFBL</a>, which today does accept donations (and I truly appreciate every one of them!).</p>
<p>Thinking about this more, it&#8217;s been <em>six months</em> since I&#8217;ve donated to an open source/free project (I promised last year to donate $5 per month to one), so in order to catch up, I&#8217;m sending Hammett $30 ($5 per month). Let&#8217;s hope the exchange rate is favorable to him!</p>
<p>My open source donation history to date far is as follows.</p>
<ul>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.castleproject.org%2F&sref=rss">Castle</a> (November 2007 thru April 2008) </li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.launchy.net%2F&sref=rss">Launchy</a> (September/October 2007) </li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Ftortoisesvn.net%2F&sref=rss">TortoiseSVN</a> (August 2007) </li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Ffilezilla.sourceforge.net%2F&sref=rss">FileZilla</a> (July 2007) </li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.openoffice.org%2F&sref=rss">OpenOffice</a> (June 2007)</li>
</ul>
<p>Thanks for all your hard work, Hammett, and I hope you can afford yourself a nice vacation for the donations you receive!</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=235&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2008/04/30/castle-now-accepting-donations-and-getting-one-from-me/' addthis:title='Castle now accepting donations (and getting one from me) ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2008/04/30/castle-now-accepting-donations-and-getting-one-from-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who needs Photoshop? I have Paint.NET!</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2007/12/18/who-needs-photoshop-i-have-paintnet/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2007/12/18/who-needs-photoshop-i-have-paintnet/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 14:41:39 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2007/12/18/who-needs-photoshop-i-have-paintnet/</guid>
		<description><![CDATA[<p>Granted, I&#8217;m no graphics designer, so my graphic editing needs are pretty mundane. Still, I need to crop, resize, recolor, reformat, enhance, distort, and do all those other fun things to images from time to time. I also need to mock up web pages and graphics. I could buy Photoshop to do this, but I don&#8217;t have to, because I have <a href="http://www.getpaint.net/">Paint.NET</a> &#8212; and it&#8217;s free!</p>
<p>Paint.NET is a free, open source image editing application for Windows. It has a <a href="http://www.getpaint.net/features.html">fantastic feature set</a> and is <em>rock solid</em> &#8212; I have never had it crash, become unresponsive, or otherwise trash anything on my system, and that&#8217;s after using it for months (and using it on my 4 1/2-year-old underpowered home PC to do some image editing for Christmas cards).</p>
<p>If Paint.NET can&#8217;t do what you want out-of-the-box, then you can extend it. It offers a plug-in architecture, and there&#8217;s a <a href="http://paintdotnet.forumer.com/viewforum.php?f=16">nice collection of community-written plugins</a> available to download.</p>
<p>Hats off to Rick <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2007/12/18/who-needs-photoshop-i-have-paintnet/">Who needs Photoshop? I have Paint.NET!</a></span>]]></description>
			<content:encoded><![CDATA[<p>Granted, I&#8217;m no graphics designer, so my graphic editing needs are pretty mundane. Still, I need to crop, resize, recolor, reformat, enhance, distort, and do all those other fun things to images from time to time. I also need to mock up web pages and graphics. I could buy Photoshop to do this, but I don&#8217;t have to, because I have <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.getpaint.net%2F&sref=rss">Paint.NET</a> &#8212; and it&#8217;s free!</p>
<p><img id="image189" src="http://www.sidesofmarch.com/wp-content/uploads/pdn310_car.jpg" alt="Paint.NET: free, open-source image editing" style="float:right;margin:0 0 1em 1em;" />Paint.NET is a free, open source image editing application for Windows. It has a <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.getpaint.net%2Ffeatures.html&sref=rss">fantastic feature set</a> and is <em>rock solid</em> &#8212; I have never had it crash, become unresponsive, or otherwise trash anything on my system, and that&#8217;s after using it for months (and using it on my 4 1/2-year-old underpowered home PC to do some image editing for Christmas cards).</p>
<p>If Paint.NET can&#8217;t do what you want out-of-the-box, then you can extend it. It offers a plug-in architecture, and there&#8217;s a <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fpaintdotnet.forumer.com%2Fviewforum.php%3Ff%3D16&sref=rss">nice collection of community-written plugins</a> available to download.</p>
<p>Hats off to Rick Brewster and others for this fantastic product. It&#8217;s so nice that I&#8217;m going to donate as part of my drive to donate $5 per month to a free software product. Since I&#8217;m two months behind, the Paint.NET team get ten samoleans. Well worth it, considering Photoshop costs just a bit more than that.</p>
<p>My donation history to date far is as follows.</p>
<ul>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.getpaint.net%2F&sref=rss">Paint.NET</a> (November/December 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.launchy.net%2F&sref=rss">Launchy</a> (September/October 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Ftortoisesvn.net%2F&sref=rss">TortoiseSVN</a> (August 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Ffilezilla.sourceforge.net%2F&sref=rss">FileZilla</a> (July 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.openoffice.org%2F&sref=rss">OpenOffice</a> (June 2007)</li>
</ul>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=188&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2007/12/18/who-needs-photoshop-i-have-paintnet/' addthis:title='Who needs Photoshop? I have Paint.NET! ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2007/12/18/who-needs-photoshop-i-have-paintnet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The ultimate launcher: Launchy</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2007/10/09/the-ultimate-launcher-launchy/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2007/10/09/the-ultimate-launcher-launchy/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 04:50:22 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2007/10/09/the-ultimate-launcher-launchy/</guid>
		<description><![CDATA[<p>William of <a href="http://bugthis.blogspot.com/">Bug this! Technie Journal</a> writes about how he likes Vista&#8217;s start menu search feature, which lets you quickly find programs in the start menu (<em><a href="http://bugthis.blogspot.com/2007/09/tools-that-save-you-headache-on-trying.html">Tools that save you headache on trying to find your program in 100+ items start menu</a></em>). I also liked the feature, and I agree with him in that the feature is not good enough to warrant a Vista upgrade. However, while he found a solution in <a href="http://colibri.leetspeak.org/">Colibri</a>, I prefer <a href="http://www.launchy.net/">Launchy</a>.</p>
<p>What does Launchy let you do? To understand, let&#8217;s look at some ways to open Remote Desktop Connection:</p>

Click Start, then All Programs, then Accessories, then Remote Desktop Connection.
Press Windows-R to open a command prompt, then type mstsc, then press enter.
Press ALT-Enter, type rem, then press enter.

<p>#3 is Launchy in action. You can mistype commands, and it&#8217;ll still find reasonable matches &#8212; type reno and you&#8217;ll still likely find Remote Desktop Connection. Multiple matches? Choose from a drop-down list that puts the most <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2007/10/09/the-ultimate-launcher-launchy/">The ultimate launcher: Launchy</a></span>]]></description>
			<content:encoded><![CDATA[<p>William of <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fbugthis.blogspot.com%2F&sref=rss">Bug this! Technie Journal</a> writes about how he likes Vista&#8217;s start menu search feature, which lets you quickly find programs in the start menu (<em><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fbugthis.blogspot.com%2F2007%2F09%2Ftools-that-save-you-headache-on-trying.html&sref=rss">Tools that save you headache on trying to find your program in 100+ items start menu</a></em>). I also liked the feature, and I agree with him in that the feature is not good enough to warrant a Vista upgrade. However, while he found a solution in <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fcolibri.leetspeak.org%2F&sref=rss">Colibri</a>, I prefer <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.launchy.net%2F&sref=rss">Launchy</a>.</p>
<p>What does Launchy let you do? To understand, let&#8217;s look at some ways to open Remote Desktop Connection:</p>
<ol>
<li>Click Start, then All Programs, then Accessories, then Remote Desktop Connection.</li>
<li>Press Windows-R to open a command prompt, then type <code>mstsc</code>, then press enter.</li>
<li>Press ALT-Enter, type rem, then press enter.</li>
</ol>
<p><img src="http://www.sidesofmarch.com/wp-content/uploads/images/launchy.jpg" alt="Launchy screenshot" align="right" style="margin:1em 0 1em 2em;" />#3 is Launchy in action. You can mistype commands, and it&#8217;ll still find reasonable matches &#8212; type <code>reno</code> and you&#8217;ll still likely find Remote Desktop Connection. Multiple matches? Choose from a drop-down list that puts the most recently used and best matches at the top. It&#8217;s super-productive.</p>
<p>With Launchy, here&#8217;s how I open Mozilla: ALT-Enter, <code>moz</code>, enter. Visual Studio? ALT-Enter, <code>vis</code>, enter. Cisco VPN Client: ALT-Enter, <code>vpn</code>, enter. This is very cool.</p>
<p>Thinking of how much I love Launchy reminds me that I&#8217;ve totally skipped the month of September in my drive to donate $5 per month to a free software product, so I&#8217;m going to donate $10 to Launchy &#8212; because it is that cool. My donation history to date far is as follows.</p>
<ul>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.launchy.net%2F&sref=rss">Launchy</a> (September/October 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Ftortoisesvn.net%2F&sref=rss">TortoiseSVN</a> (August 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Ffilezilla.sourceforge.net%2F&sref=rss">FileZilla</a> (July 2007)</li>
<li><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.openoffice.org%2F&sref=rss">OpenOffice</a> (June 2007)</li>
</ul>
<p>Thanks to <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fcs.unm.edu%2F%7Ekarlinjf%2F&sref=rss">Josh Karlin</a> for writing such a great utility!</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=164&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2007/10/09/the-ultimate-launcher-launchy/' addthis:title='The ultimate launcher: Launchy ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2007/10/09/the-ultimate-launcher-launchy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wilson&#8217;s O/R Mapper going open source</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2007/09/07/wilsons-or-mapper-going-open-source/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2007/09/07/wilsons-or-mapper-going-open-source/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 03:15:18 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WilsonORMapper]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2007/09/07/wilsons-or-mapper-going-open-source/</guid>
		<description><![CDATA[<p>I&#8217;ve been a fan (and user) of <a href="http://www.wilsondotnet.com">Paul Wilson</a>&#8216;s <a href="http://www.ormapper.net">O/R mapper</a> for some time now, having contributed to <a href="http://www.sidesofmarch.com/index.php/projects/codesmith-templates-for-wilsons-or-mapper/">code generation templates</a>, a <a href="http://www.sidesofmarch.com/index.php/projects/wilsonorwrapper/">service library</a>, and a private Subversion repository for registered owners. I&#8217;m happy to say that, as of today, Paul has decided to <a href="http://ormapper.net/Forums/Default.aspx?part=74&#38;action=thread&#38;id=2580&#38;key=wyjyckxZYAKD9WiUMF8c4Q%3d%3d">release his O/R mapper as open source</a>, and I&#8217;ve been given the honor of being its caretaker in the process.</p>
<p>The open source release of WilsonORMapper will be hosted on Google Code at <a href="http://code.google.com/p/wilsonormapper/">http://code.google.com/p/wilsonormapper/</a>. I expect to check-in the first official open source release over the next few days, once I clean up a few things and make the necessary license changes to the source. The code will be released under the <a href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a>, which is one of the most permissive open source licenses out there.</p>
<p>Thanks to Paul for all his work over the years and for releasing this wonderful product to the community, and for giving me the go-ahead <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2007/09/07/wilsons-or-mapper-going-open-source/">Wilson&#8217;s O/R Mapper going open source</a></span>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a fan (and user) of <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.wilsondotnet.com&sref=rss">Paul Wilson</a>&#8216;s <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.ormapper.net&sref=rss">O/R mapper</a> for some time now, having contributed to <a href="http://www.sidesofmarch.com/index.php/projects/codesmith-templates-for-wilsons-or-mapper/">code generation templates</a>, a <a href="http://www.sidesofmarch.com/index.php/projects/wilsonorwrapper/">service library</a>, and a private Subversion repository for registered owners. I&#8217;m happy to say that, as of today, Paul has decided to <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Formapper.net%2FForums%2FDefault.aspx%3Fpart%3D74%26amp%3Baction%3Dthread%26amp%3Bid%3D2580%26amp%3Bkey%3DwyjyckxZYAKD9WiUMF8c4Q%253d%253d&sref=rss">release his O/R mapper as open source</a>, and I&#8217;ve been given the honor of being its caretaker in the process.</p>
<p>The open source release of WilsonORMapper will be hosted on Google Code at <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fcode.google.com%2Fp%2Fwilsonormapper%2F&sref=rss">http://code.google.com/p/wilsonormapper/</a>. I expect to check-in the first official open source release over the next few days, once I clean up a few things and make the necessary license changes to the source. The code will be released under the <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.opensource.org%2Flicenses%2Fbsd-license.php&sref=rss">New BSD License</a>, which is one of the most permissive open source licenses out there.</p>
<p>Thanks to Paul for all his work over the years and for releasing this wonderful product to the community, and for giving me the go-ahead to make it happen.</p>
<p>And for those keeping score&#8230; this is the second product I&#8217;ve coerced into full public open source in 2007 (the <a href="http://www.sidesofmarch.com/index.php/archive/2007/03/07/microsoft-oks-community-development-of-css-friendly-control-adapters/">ASP.Net CSS Adapters</a>, back in March, and now WilsonORMapper). Not bad for a hack like me. <img src='http://www.sidesofmarch.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=149&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2007/09/07/wilsons-or-mapper-going-open-source/' addthis:title='Wilson&#8217;s O/R Mapper going open source ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2007/09/07/wilsons-or-mapper-going-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WilsonORWrapper now part of Koders.com</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2007/09/05/wilsonorwrapper-now-part-of-koderscom/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2007/09/05/wilsonorwrapper-now-part-of-koderscom/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 17:09:52 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[O/R Mappers]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2007/09/05/wilsonorwrapper-now-part-of-koderscom/</guid>
		<description><![CDATA[<p>I received the following email today:</p>
<blockquote><p>We&#8217;d like to inform you that your project submission has been approved and we&#8217;ve added WilsonORWrapper to our index&#8230;</p></blockquote>
<p>What does this mean? You can <a href="http://www.koders.com/info.aspx?c=ProjectInfo&#038;pid=9W7NPWYXNYAP6CY311H5RNZC7B">search the WilsonORWrapper repository from Koders.com</a>. Maybe someone will find it useful&#8230;  </p>
<a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2007/09/05/wilsonorwrapper-now-part-of-koderscom/">WilsonORWrapper now part of Koders.com</a></span>]]></description>
			<content:encoded><![CDATA[<p>I received the following email today:</p>
<blockquote><p>We&#8217;d like to inform you that your project submission has been approved and we&#8217;ve added WilsonORWrapper to our index&#8230;</p></blockquote>
<p>What does this mean? You can <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.koders.com%2Finfo.aspx%3Fc%3DProjectInfo%26%23038%3Bpid%3D9W7NPWYXNYAP6CY311H5RNZC7B&sref=rss">search the WilsonORWrapper repository from Koders.com</a>. Maybe someone will find it useful&#8230; <img src='http://www.sidesofmarch.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=148&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2007/09/05/wilsonorwrapper-now-part-of-koderscom/' addthis:title='WilsonORWrapper now part of Koders.com ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2007/09/05/wilsonorwrapper-now-part-of-koderscom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FileHelpers: the .Net way to import text files</title>
		<link>http://www.sidesofmarch.com/index.php/archive/2007/08/03/filehelpers-the-net-way-to-import-text-files/</link>
		<comments>http://www.sidesofmarch.com/index.php/archive/2007/08/03/filehelpers-the-net-way-to-import-text-files/#comments</comments>
		<pubDate>Fri, 03 Aug 2007 19:47:26 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.sidesofmarch.com/index.php/archive/2007/08/03/filehelpers-the-net-way-to-import-text-files/</guid>
		<description><![CDATA[<p>I am working on a project where I have to import data from&#160;<em>thousands</em> of text files. These text files vary in formats: they use different delimiters; they use quoted identifiers&#160;never, sometimes, or always; they sometimes have missing end-of-row columns. Importing these took a combination of custom scripts (to clean up and reformat) and XML format files for SQL&#8217;s BCP (bulk copy) command&#8230; until I found FileHelpers.</p>
<p><a href="http://www.filehelpers.com">FileHelpers</a>&#160;by <a href="http://www.marcosmeli.com.ar/">Marcos Meli</a> is a&#160;.Net library which provides services to import and export text in delimited and fixed-length file formats. It takes a unique approach to the file import problem:</p>

You write a class, giving it properties to store the data in the text file.
You apply attributes to the class and properties, describing the format of the file and applying import rules.
You import the file using a single command, which creates an array of objects populated with the data from the text file.

<p>With support for custom converters, null types, optional fields, before/after import events, extensive <span style="color:#777"> . . .<br /><br />&#8594; Read More: <a href="http://www.sidesofmarch.com/index.php/archive/2007/08/03/filehelpers-the-net-way-to-import-text-files/">FileHelpers: the .Net way to import text files</a></span>]]></description>
			<content:encoded><![CDATA[<p>I am working on a project where I have to import data from&nbsp;<em>thousands</em> of text files. These text files vary in formats: they use different delimiters; they use quoted identifiers&nbsp;never, sometimes, or always; they sometimes have missing end-of-row columns. Importing these took a combination of custom scripts (to clean up and reformat) and XML format files for SQL&#8217;s BCP (bulk copy) command&#8230; until I found FileHelpers.</p>
<p><a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.filehelpers.com&sref=rss">FileHelpers</a>&nbsp;by <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.marcosmeli.com.ar%2F&sref=rss">Marcos Meli</a> is a&nbsp;.Net library which provides services to import and export text in delimited and fixed-length file formats. It takes a unique approach to the file import problem:</p>
<ul>
<li>You write a class, giving it properties to store the data in the text file.</li>
<li>You apply attributes to the class and properties, describing the format of the file and applying import rules.</li>
<li>You import the file using a single command, which creates an array of objects populated with the data from the text file.</li>
</ul>
<p>With support for custom converters, null types, optional fields, before/after import events, extensive parsing rules, and so much more &#8212; not to mention a web site with gobs of examples and documentation &#8212; FileHelpers has single-handedly driven me away from the script and batch file approach to a much more powerful .Net application to import my files.</p>
<p>The fact that FileHelpers uses regular .Net classes allows you to use the same class to both import data from a file and persist it to a database. For example, consider the following sample text file:</p>
<pre class="brush: c-sharp; ">

1,Chris,Smith
2,Bob,Jones
3,&quot;Mary Jane&quot;,Brown
</pre>
<p>Clearly we have three fields in this comma-delimited file, so we write the following class to hold the data. Attributes provide instructions to FileHelpers &#8212; specifying that it is a comma-delimited file, and that the quotes in the first and last name fields are optional. (Note that you can use fields or properties; I use fields below for brevity.)</p>
<pre class="brush: c-sharp; ">

[DelimitedRecord(&quot;,&quot;)]
public class Person
{
	public int PersonID;
	[FieldQuoted(&#039;&quot;&#039;, QuoteMode.OptionalForRead)]
	public string FirstName;
	[FieldQuoted(&#039;&quot;&#039;, QuoteMode.OptionalForRead)]
	public string LastName;
}
</pre>
<p>Importing this file now becomes as easy as writing two lines of code.</p>
<pre class="brush: c-sharp; ">

FileHelperEngine&amp;lt;Person&amp;gt; engine = new FileHelperEngine&amp;lt;Person&amp;gt;();
Person[] records = engine.ReadFile(@&quot;c:\myfile.csv&quot;);
</pre>
<p>You now have an array of <code>Person</code> objects loaded with data from the text file. Now, let&#8217;s say you wanted to persist these objects to a database. You can use the same <code>Person</code> object to persist to your database with an O/R mapper. If you were using <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.ormapper.net%2F&sref=rss">Paul Wilson&#8217;s O/R Mapper</a> and the <a href="http://www.sidesofmarch.com/index.php/projects/wilsonorwrapper/">WilsonORWrapper</a>, you would decorate your class as follows:</p>
<pre class="brush: c-sharp; ">

[DelimitedRecord(&quot;,&quot;), IgnoreInheritedClass]
public class Person : WilsonORWrapper.Entities.EntityBase&amp;lt;Person&amp;gt;
{
	public int PersonID;
	[FieldQuoted(&#039;&quot;&#039;, QuoteMode.OptionalForRead)]
	public string FirstName;
	[FieldQuoted(&#039;&quot;&#039;, QuoteMode.OptionalForRead)]
	public string LastName;
}
</pre>
<p>Note I added the base class and the <code>IgnoreInheritedClass</code> attribute, which tells FileHelpers to ignore any inherited fields and properties (otherwise, the IsReadOnly property from <code>EntityBase<t></t></code> would be included). </p>
<p>With that, I can now persist all the records I read using FileHelpers back to my database using the O/R mapper.</p>
<pre class="brush: c-sharp; ">

FileHelperEngine&amp;lt;Person&amp;gt; engine = new FileHelperEngine&amp;lt;Person&amp;gt;();
Person[] records = engine.ReadFile(@&quot;c:\myfile.csv&quot;);
foreach ( Person p in records )
{
	Data&amp;lt;Person&amp;gt;.Track(p);
}
Data&amp;lt;Person&amp;gt;.Save(records);
</pre>
<p>Incredible! We can even add supporting logic. Let&#8217;s say I wanted to only insert new persons into the database. I could do this.</p>
<pre class="brush: c-sharp; ">

FileHelperEngine&amp;lt;Person&amp;gt; engine = new FileHelperEngine&amp;lt;Person&amp;gt;();
Person[] records = engine.ReadFile(@&quot;c:\myfile.csv&quot;);
foreach ( Person p in records )
{
	Person pers = Data&amp;lt;Person&amp;gt;.Retrieve(&quot;PersonID = &quot; + p.PersonID.ToString());
	if (pers == null)
	{
		Data&amp;lt;Person&amp;gt;.Track(p);
		Data&amp;lt;Person&amp;gt;.Insert(p);
	}
}
</pre>
<p>FileHelpers makes this and so much more possible. It&#8217;s the backbone of a project I&#8217;m writing, and it&#8217;s making some heavy data-parsing much easier. To top it all off, FileHelpers is open source &#8212; you can download the code from their <a href="http://redirectingat.com?id=17923X751173&xs=1&url=https%3A%2F%2Ffilehelpers.svn.sourceforge.net%2Fsvnroot%2Ffilehelpers%2Ftrunk&sref=rss">Subversion repository</a>, and post patches on their <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.filehelpers.com%2Fforums%2Findex.php&sref=rss">support forums</a>. Patches are well-received &#8212; I&#8217;ve already had two (<a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.filehelpers.com%2Fforums%2Fviewtopic.php%3Ft%3D384&sref=rss">1</a>, <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fwww.filehelpers.com%2Fforums%2Fviewtopic.php%3Ft%3D387&sref=rss">2</a>) I&#8217;ve sent and had applied.</p>
<p>Thanks again to Marcos (and recently-added co-developer, <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fblog.filehelpers.com%2F2007%2F07%2Ffilehelpers-goes-international.html&sref=rss">Matt Campbell</a>) for providing this fantastic library. For regular updates, be sure to read the <a href="http://redirectingat.com?id=17923X751173&xs=1&url=http%3A%2F%2Fblog.filehelpers.com%2F&sref=rss">FileHelpers Library Blog</a>.</p>
<img src="http://www.sidesofmarch.com/?ak_action=api_record_view&id=142&type=feed" alt="" /><div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.sidesofmarch.com/index.php/archive/2007/08/03/filehelpers-the-net-way-to-import-text-files/' addthis:title='FileHelpers: the .Net way to import text files ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.sidesofmarch.com/index.php/archive/2007/08/03/filehelpers-the-net-way-to-import-text-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

