<?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>A Path Less Taken &#187; Software</title>
	<atom:link href="http://www.legendrefamily.org/blog/category/software-of-interest-for-web-developers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.legendrefamily.org/blog</link>
	<description>Breaking with convention in a very conventional fashion.</description>
	<lastBuildDate>Tue, 11 Oct 2011 03:19:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>BPM</title>
		<link>http://www.legendrefamily.org/blog/2011/07/bpm/</link>
		<comments>http://www.legendrefamily.org/blog/2011/07/bpm/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 00:51:46 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[bpm]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1478</guid>
		<description><![CDATA[At work lately I&#8217;ve been encountering a lot of Business Process Management or BPM tools in disguise. It got me to wondering if the open source community is active in this area. I found this blog post which suggests maybe. These do appear to be mostly free, but they have commercial companies around them which [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>At work lately I&#8217;ve been encountering a lot of Business Process Management or BPM tools in disguise. It got me to wondering if the open source community is active in this area.  I found <a href="http://www.wareprise.com/2009/03/13/list-of-top-open-source-bpm-workflow-solution/" title="List of Top Open Source / BPM Solutions">this</a> blog post which suggests maybe.  These do appear to be mostly free, but they have commercial companies around them which always complicates the issue.</p>
<p>Today my colleague pointed out a commercial RAD tool that was very promising. It&#8217;s called <a href="http://www.outsystems.com/" title="outsystems Agility Platform">outsystems Agility Platform</a> and it is worth a look if you are in the market for this kind of solution.</p>
<p>What does all this mean? Nothing maybe. Eventually it could spell the end to the software engineering profession as it exists today. I doubt that will be tomorrow, but it could happen. Wouldn&#8217;t that make for an interesting world?</p>
<div class="shr-publisher-1478"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2011%2F07%2Fbpm%2F' data-shr_title='BPM'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2011%2F07%2Fbpm%2F' data-shr_title='BPM'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2011/07/bpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just Enough</title>
		<link>http://www.legendrefamily.org/blog/2010/05/just-enough/</link>
		<comments>http://www.legendrefamily.org/blog/2010/05/just-enough/#comments</comments>
		<pubDate>Sun, 16 May 2010 15:48:54 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1036</guid>
		<description><![CDATA[It is the plight of the modern software engineer to know that there is always more than one way to solve a problem. Often we struggle with trade offs between usability (our own) and performance (the users). Eventually we individually or collectively chose &#8220;something&#8221; only to find that a single choice then cascades through our [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>It is the plight of the modern software engineer to know that there is always more than one way to solve a problem.  Often we struggle with trade offs between usability (our own) and performance (the users).  Eventually we individually or collectively chose &#8220;something&#8221; only to find that a single choice then cascades through our entire solution.  If you don&#8217;t believe me you can validate this for yourself.  Just ask a software engineer their &#8220;best practices&#8221; for managing dates and date logic and watch their eyes roll.</p>
<p><span id="more-1036"></span></p>
<p>For my part, I&#8217;m just as bad as the rest.  I chose scripting over compiled for the instant gratification.  I chose free over commercial because I&#8217;m cheap!  I chose frameworks for their lightness, ease of use and ability to get out of my way when I need them to.  I chose operating systems for their ease of use rather than cost because I have no passion for fighting obscure OS&#8217;s.</p>
<p>It is in the midst of making all these &#8220;choices&#8221; that I&#8217;ve come to realize why modern software is the way it is.  Choices, made by developers with the best of intentions, will drive the evolution of a product deep from it&#8217;s very core architecture on through to the user experience it eventually will present.  This is not universally true, but in commercial offerings from all but &#8220;the biggest&#8221; providers this is often easy to spot.  The question is, do we care.  The answer is, we better if we hope to evolve past this point.</p>
<p>As I thumb through my copy of Algorithms in C++ I&#8217;m reminded that although ease of use is arguably more of a subjective measure, performance at the very high end of the spectrum is materially impacted by built to purpose.  As a for instance, take the Relational Database Management System (RDBMS).  The spread of these solutions has been matched in equal measure by the explosion of built to purpose (domain specific) applications that dot the software landscape today.  This was all well and good, until the recent growth in high performance, high availability and high user count solutions that the web community now demands.  Software engineers have quickly begun to look beyond the venerable old work horse that is the RDBMS towards distributed document based database management systems or the cloud as some prefer to call it.</p>
<p>The problem is, document DB&#8217;s are good for some solutions, but they are not ideal for everything.  Yet recently I&#8217;ve seen people assert that all DB&#8217;s should be document based.  It is here that the trouble starts.  Human nature is to find the &#8220;best&#8221; way to solve a problem and then always solve it that way.  Software, really good software, is about finding the best way to solve a very specific problem, but also about having the intellectual awareness to recognize that other problems which may look &#8220;very similar&#8221; are in fact different enough in their need to warrant a different approach.  The challenge becomes how to create tools such as frameworks or even open or closed platforms that will help us scale and adapt our solutions organically without changing code in every part of the application.  This is no small task.</p>
<p>This is the holy grail of the passionate software engineer.  To build a solution that is usable and scalable without becoming brittle.  As we look in our tool box we are convinced that we have enough of the basic building blocks to achieve this result.  We try and try again.  We spawn new projects, frameworks, patterns, approaches, and slowly, painfully, we move the ball forward.  We are not there yet, but I think that big gains are coming.  To that end I will keep making choices.  I will chose each building block I need through the filters and lenses that work for me.  I will keep my mind open and objective.  I will do &#8220;just enough&#8221; to achieve what is needed for my solution, but I will also carefully review every choice to determine what it&#8217;s implications are for tomorrow.  Performance and flexibility will continue to color my perception of each new tool.  I encourage every passionate software engineer to do the same!</p>
<div class="shr-publisher-1036"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F05%2Fjust-enough%2F' data-shr_title='Just+Enough'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F05%2Fjust-enough%2F' data-shr_title='Just+Enough'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/05/just-enough/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Git</title>
		<link>http://www.legendrefamily.org/blog/2010/01/getting-git/</link>
		<comments>http://www.legendrefamily.org/blog/2010/01/getting-git/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 16:15:48 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=860</guid>
		<description><![CDATA[If you are an open source developer and you have not been living under a rock for years (yes, I know, many have) then you have probably heard of git. Billing itself as &#8220;the fast version control system&#8220;, git is the distributed version control management system that has become the darling of the hour. It [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>If you are an open source developer and you have not been living under a rock for years (yes, I know, many have) then you have probably heard of <a href="http://git-scm.com/" title="git">git</a>.  Billing itself as &#8220;<i>the fast version control system</i>&#8220;, git is the distributed version control management system that has become the darling of the hour.  It allows developers to work on-line and off-line, to host repositories locally or on the now popular <a href="http://github.com/" title="github">github</a>, to perform merges as the rule rather than the exception.  In short, git is to version control what WordPress is to blogging.  The eight hundred pound gorilla in a small room.</p>
<p><span id="more-860"></span></p>
<p>The problem is, I&#8217;m a windows user.  Microsoft sells my drug of choice at the conner electronics store.  Command line tools just are not my style.  Be that as it may, I decided it was high time I caught up with the hip open source crowd and learned how to drive this thing commando (Linux) style.  That plus there is the code block on github that I want to fork, but let&#8217;s not get bogged down in details!</p>
<p>What follows is a series of simple commands wrapped in a monkey stupid (yes, I said monkey stupid) how-to guide for git using the Git Bash on Windows Vista.  I&#8217;m not going to tell you how to install it on Windows.  You can Google that for yourself.  I&#8217;m going to tell you the (mostly) absolute minimum needed to get up and running with git version control.  If you are nice and follow along to the end, I may even share some web resources where I obtained this top secret information.  No promises mind you.  We will just have to see how well you behave along the way.  Remember, there will be a test at the end.  (There actually won&#8217;t be, but when the monkeys hear test it gets their attention!)</p>
<h2>Navigation</h2>
<p>Let&#8217;s begin by launching the Git Bash program.  You know, Start, All Programs, Git, Git Bash.  Good monkey!  Now what you see is the MINGW32:~ header on what looks like a slightly off beat DOS command prompt.  Sigh.  The directory that Git Bash opens in is the c:\Users\your_user_name directory.  Since most monkeys don&#8217;t put source code there we need to navigate to the directory of the source that we want to version.  You can use the cd command (change directory for you old school DOS nerds) to navigate around your computer to find the directory where you source lives.  Let&#8217;s try some commands and see what we get.</p>
<ul>
<li>It&#8217;s not navigation really, but to clear the Git Bash DOS prompt window we type:

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">clear</span></pre></td></tr></table></div>

</li>
<li>Next, we can navigate using the cd command to change directory.  Here we move up to the parent directory of the current directory.

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ..</pre></td></tr></table></div>

<p>Afterwards the prompt should show the new directory, in my case that is:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>c<span style="color: #000000; font-weight: bold;">/</span>Users</pre></td></tr></table></div>

<p>In Windows speak this is the equivalent of c:\User\.</li>
<li>For our example let&#8217;s assume that my source is on my e: drive and I want to navigate directly there.

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>e<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span></pre></td></tr></table></div>

<p>This brings me to e:\Lighttpd\htdocs\test in my Windows directory structure.</li>
<li>To find out what is in my current directory I simply type the ls command.

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ls</span></pre></td></tr></table></div>

<p>At the moment my folder is empty so nothing is returned.  Let&#8217;s throw some files in and start to version our source.</li>
</ul>
<h2>Basic git</h2>
<p>To start I create an index.php file with the this content.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*My Awesome Program! */</span>
<span style="color: #990000;">phpinfo</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Yes, it&#8217;s amazing.  I also create a test.css file, but you can put anything you want in that.  Now when we run our ls command again we see the two files we created.  Since git is in the directory that we want to control we can start managing our source with a few simple commands.</p>
<ul>
<li>To start tracking at the current project level we type

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> init</pre></td></tr></table></div>

</li>
<li>To add both our PHP and CSS files and commit them initially we type

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> add <span style="color: #000000; font-weight: bold;">*</span>.php
<span style="color: #c20cb9; font-weight: bold;">git</span> add <span style="color: #000000; font-weight: bold;">*</span>.css
<span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;the monkey flips the switch&quot;</span></pre></div></div>

</li>
</ul>
<p>Once you have done this you can run the ls command again and you will see that Git Bash appends the &#8220;(master)&#8221; description to the end of the directory path.  This is a fancy way of git saying that it just created a <i>.git</i> directory right in the middle of your project directory and stored your commit there.  But we are monkey stupid, right?  We did not want to do that.  It&#8217;s cool.  We can just blow it away.  For the real monkeys out there you may want to use Windows Explorer to do this.  For stupid monkeys (like me) you can use the following.  <span style="font-weight:bold;">WARNING: MAKE SURE YOU ARE IN THE RIGHT DIRECTORY, MAKE SURE YOU BACKED UP YOUR PROJECT, ETC!</span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> .git</pre></div></div>

<p>Afterwards you can just use git init again to start over and rebuild your git repository.  If you did try the delete (bad monkey!) then go back and re-init, populate and commit your source.  Afterwards you can run the following command to see what git thinks of your repository.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> status</pre></td></tr></table></div>

<p>If you added all file types in your project folder using the git add command and if you ran your commit then you should see something like this.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#On branch master</span>
nothing to commit <span style="color: #7a0874; font-weight: bold;">&#40;</span>working directory clean<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p>You have saved the day (and some source code too)!  Now let&#8217;s get to programming.  Go change your index.php file to contain the following.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*My Awesome Program! */</span>
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;My even more awesome program!&quot;</span> <span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Now when we run git status again we see something like this.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">On branch master
<span style="color: #666666; font-style: italic;">#Changed but not updated:</span>
<span style="color: #666666; font-style: italic;">#  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)</span>
<span style="color: #666666; font-style: italic;">#  (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        modified:      index.php</span>
<span style="color: #666666; font-style: italic;">#</span>
on changes added to commit <span style="color: #7a0874; font-weight: bold;">&#40;</span>use <span style="color: #ff0000;">&quot;git add&quot;</span> and<span style="color: #000000; font-weight: bold;">/</span>or <span style="color: #ff0000;">&quot;git commit -a&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>What happened!?!  Work happened my monkey friend, work happened.  Now that you are off creating the next great application git is waiting patiently in the background to save your source code or recover it for you.  Let&#8217;s commit our changes since they are clearly better than what we had before!  You already know the commands that you need.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> add index.php
<span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;now with really awesome monkey output&quot;</span></pre></td></tr></table></div>

<p>Solid.  You are now a certified (not really) monkey stupid git user.  Sweet!  git will actually do a lot of other cool and powerful things like cloning, merges, etc, but that is beyond the scope of a monkey stupid guide.  When you are ready to move on to more sophisticated fair you should absolutely check out <a href="http://progit.org/book/" title="Pro Git">Pro Git</a> and buy a paper copy of the book to support the site.  Good luck and have fun using git my monkeys!</p>
<div class="shr-publisher-860"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F01%2Fgetting-git%2F' data-shr_title='Getting+Git'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F01%2Fgetting-git%2F' data-shr_title='Getting+Git'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/01/getting-git/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Open Source Licenses</title>
		<link>http://www.legendrefamily.org/blog/2010/01/open-source-licenses/</link>
		<comments>http://www.legendrefamily.org/blog/2010/01/open-source-licenses/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 05:24:18 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[license]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=831</guid>
		<description><![CDATA[I like the idea of open source software. I even want to contribute to the cause when I can find an effort that I can connect with and where I can make a difference. The big problem I run into is what can I do with open source? There seem to be a few licenses [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I like the idea of open source software.  I even want to contribute to the cause when I can find an effort that I can connect with and where I can make a difference.  The big problem I run into is what can I do with open source?  There seem to be a few licenses out there that are in common use and they are not all created equal.  I&#8217;m all about giving, but sometimes a fellow has to eat too.  How do you figure out what you can and cannot do under an open source license?  I decided to give the research a shot and see what I can come up with.  I figured I would look at big open source projects, see what licenses they use and then research those licenses.  Simple, right?  We will see.</p>
<p><span id="more-831"></span></p>
<p>To start with, let&#8217;s see how big the list can get.  Check out these two links.</p>
<ol>
<li><a href="http://en.wikipedia.org/wiki/Open_source_license" title="Open-source license">Open-source license</a></li>
<li><a href="http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses" title="Comparison of free software licenses">Comparison of free software licenses</a></li>
</ol>
<p>When you see the list you quickly get the idea that there are more than a few options.  It&#8217;s hard to know where to start.  Let&#8217;s start with the blogging software that launched a thousand blogs.</p>
<p><a href="http://www.gnu.org/copyleft/gpl.html" title="GNU General Public License v3">GNU General Public License (GPL)</a> &#8211; The GNU GPL sits to the extreme left (pardon the pun) of the open source license food chain.  It has a cousin, the GNU Lesser General Public License (LGPL), which per <a href="http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License" title="LGPL">Wikipedia</a> &#8220;was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License.&#8221;  From what I can tell by reading the <a href="http://www.gnu.org/licenses/quick-guide-gplv3.html" title="Quick Guide to GPL v3">Quick Guide to GPL v3</a> it seems like the GPL&#8217;s approach is free for all and always free.  In other words, if you want to make any money off selling your work based on GPL software you are coding up the wrong tree.</p>
<p>GPL is out there and some big open source projects do use it.  They include <a href="http://wordpress.org/" title="WordPress">WordPress</a>, <a href="http://www.mysql.com/" title="MySQL Server">MySQL Server</a>, <a href="http://www.ubuntu.com/" title="Ubuntu">Ubuntu</a> and <a href="http://www.openoffice.org/" title="OpenOffice.org (LGPL)">OpenOffice.org (LGPL)</a>.  These are heavy weight products in the open source world.  Although they carry the GPL or LGPL, it seems that most of these products have commercial companies around them.  Some seek to profit from services (<a href="http://automattic.com/" title="Automattic">Automattic</a>) while others want to profit from license fees if you do anything commercial with the software (<a href="http://www.mysql.com/" title="MySQL AB - Now Sun">MySQL AB &#8211; Now Sun</a>).  MySQL seems more complicated when you start to look at things like the <a href="http://www.percona.com/percona-lab.html" title="Percona Builds">Percona Builds</a>, but the basic idea seems hard to separate from more commercial ventures.  The impression I get is companies that form around the GPL license use it as a shield to prevent anyone from having too much success using their work commercially.  This attitude seems to be personified by <a href="http://ma.tt/" title="Matt Mullenweg">Matt Mullenweg</a> of Automattic fame who has <a href="http://ma.tt/2009/07/not-lonely-at-all/">this</a> to say on the topic.  I&#8217;m not making a value judgement here.  Matt is basically saying free software should stay free.  I get that.  It just becomes very limiting if that&#8217;s not the only thing you want or need to produce.</p>
<p><a href="http://www.opensource.org/licenses/bsd-license.php" title="The BSD License">The BSD License</a> &#8211; If GPL is the extreme left of the software licensing world the BSD License (or New BSD License) is the extreme right.  It is about as short and sweet as you can get.  The core intent here seems to be open source software that can be used as the basis for commercial efforts.  From what I can see it is simply that straight forward.  Basically it only seems to exist to provide credit to the original author on re-distribution and to remove any implied warranty of merchantability.  Lots of open source efforts that you are probably familiar with use the BSD.  Some of the more notable include <a href="http://framework.zend.com/" title="The Zend Framework">The Zend Framework</a> (<a href="http://framework.zend.com/license">license</a>), <a href="http://trac.edgewall.org/" title="Trac">Trac</a> (<a href="http://trac.edgewall.org/wiki/TracLicense">license</a>), <a href="http://www.djangoproject.com/" title="Django">Django</a> (<a href="http://code.djangoproject.com/browser/django/trunk/LICENSE">license</a>) and the <a href="http://kohanaphp.com/" title="Kohana Framework">Kohana Framework</a> (<a href="http://kohanaphp.com/license">license</a>) to name a few.  BSD is just the kind of license you need if you want to make some money.  I would say it&#8217;s as open as it can get, but then I don&#8217;t think that&#8217;s exactly true.</p>
<p><a href="http://www.opensource.org/licenses/mit-license.php" title="MIT License">MIT License</a> &#8211; The MIT license is as open as you can get.  It is essentially a liability waiver and nothing else.  It does not have the BSD&#8217;s copyright preservation or marketing restrictions.  The main difference to me is that MIT could care less what you do with both the software and the branding of the software.  That seems overly open, but there are products that use MIT.  One notable product is the vastly popular <a href="http://rubyonrails.org/" title="Ruby on Rails">Ruby on Rails</a> Ruby Framework.</p>
<p>It is interesting to note that some products offer a choice between licenses.  Two that I noted were the <a href="http://jquery.com/" title="jQuery">jQuery</a> Javascript Framework (<a href="http://jquery.org/license">license</a>) and the <a href="http://960.gs/" title="960 Grid System">960 Grid System</a> CSS Framework.  Both these frameworks are licensed under the MIT and GPL licenses.  My understanding is that the software developer / consumer is free to choose which license they will use the product under.  This allows some modified work products to enter the market as truly open (GPL) or whatever the developer wants them to be (MIT). If I&#8217;m being honest it seems to me like the teams simply could not take a stand so they decided to pass the buck on to the next developer.  It&#8217;s not a bad solution if you want to be many things to many people.  That is, after all, what it seems like open source is all about.  Having it your way.
<p>As the Habari project team states , &#8220;<i>None of the packages we&#8217;ve tried have really satisfied us, so in the fine tradition of open source software we&#8217;re trying to scratch our own itch.</i>&#8221;  Interestingly enough, <a href="http://habariproject.org/" title="Habari">Habari</a> blogging software uses <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache License Version 2.0">Apache License Version 2.0</a>. My quick scan (the legal jargon put me to sleep) is that Apache is a more verbose and slightly more limiting version of the BSD.  That is an over simplification, but you get the general idea.  This license is also reasonably popular and is used by (among others) the <a href="http://projects.apache.org/projects/http_server.html" title="Apache HTTP Server">Apache HTTP Server</a>.  If you think the license might be right for you then by all means give it a read.  Also if you are having trouble getting to sleep the same advice applies</p>
<p>So where does all this leave us?  If you&#8217;re like me it leaves you confused.  Although we briefly covered some of the most popular licenses there are many more out there to chose from.  You can find an exhaustive list (and some good information) on the <a href="http://www.opensource.org/licenses/" title="The Open Source Initiative">Open Source Initiative</a> web site.  Ultimately only you can decided what is right for your project and what open source products are correctly licensed to support your project&#8217;s goals.  I recommend getting to know them better.  If you start to pay attention to open source licenses you begin to get a glimpse into the philosophy of the development teams.  That may prove to be as helpful to you as the license itself in determining if each solution is a good fit for you.  Good luck!</p>
<div class="shr-publisher-831"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F01%2Fopen-source-licenses%2F' data-shr_title='Open+Source+Licenses'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F01%2Fopen-source-licenses%2F' data-shr_title='Open+Source+Licenses'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/01/open-source-licenses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ORM Solutions</title>
		<link>http://www.legendrefamily.org/blog/2009/12/php-orm-solutions/</link>
		<comments>http://www.legendrefamily.org/blog/2009/12/php-orm-solutions/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 23:54:25 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=739</guid>
		<description><![CDATA[Although I&#8217;m sure there are more than this, here is quick run down on some PHP ORM solutions that I was able to find with limited searching. The first 2 seem to be the most popular ones. If you know of another good solution please post a comment. Doctrine Propel Outlet RedBean dORM Jelly Kohana [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Although I&#8217;m sure there are more than this, here is quick run down on some PHP ORM solutions that I was able to find with limited searching.  The first 2 seem to be the most popular ones.  If you know of another good solution please post a comment.</p>
<ul>
<li><a href="http://www.doctrine-project.org/" title="Doctrine">Doctrine</a></li>
<li><a href="http://propel.phpdb.org/trac/" title="Propel">Propel</a></li>
<li><a href="http://www.outlet-orm.org/site/" title="Outlet">Outlet</a></li>
<li><a href="http://www.redbeanphp.com/" title="RedBean">RedBean</a></li>
<li><a href="http://www.getdorm.com/" title="dORM">dORM</a></li>
<li><a href="http://jelly.jonathan-geiger.com/" title="Jelly (Kohana ORM)">Jelly</a></li>
<li><a href="http://docs.kohanaphp.com/libraries/orm" title="Kohana ORM">Kohana ORM</a></li>
<li><a href="http://github.com/shadowhand/sprig/" title="Sprig (Kohana ORM)">Sprig</a></li>
<li><a href="http://sourceforge.net/projects/phplightorm/" title="LightORM">LightORM</a></li>
<li><a href="http://flourishlib.com/docs/ObjectRelationalMapping" title="Flourish ORM">Flourish ORM</a></li>
<li><a href="http://www.phpactiverecord.org/" title="php.activerecord">php-activerecord</a></li>
<li><a href="http://www.coughphp.com/" title="cough">CoughPHP</a></li>
<li><a href="http://code.google.com/p/torpor-php/" title="Torpor">Torpor</a></li>
</ul>
<div class="shr-publisher-739"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2009%2F12%2Fphp-orm-solutions%2F' data-shr_title='PHP+ORM+Solutions'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2009%2F12%2Fphp-orm-solutions%2F' data-shr_title='PHP+ORM+Solutions'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2009/12/php-orm-solutions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

