<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for No Ordering</title>
	<atom:link href="http://noordering.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://noordering.wordpress.com</link>
	<description>Geekery with no known evaluation order</description>
	<lastBuildDate>Mon, 21 Jan 2013 19:30:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on The Death of the Separate Search Bar by FSM</title>
		<link>http://noordering.wordpress.com/2012/08/28/the-death-of-the-seperate-search-bar/comment-page-1/#comment-237</link>
		<dc:creator><![CDATA[FSM]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 19:30:53 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=155#comment-237</guid>
		<description><![CDATA[The strangest thing to me in all this is that when the browser companies do disable the second search box, without exception they&#039;ve done away with even the option to re-enable it.  Completely gone.  Safari, IE9, both followed google&#039;s lead.  

It makes absolutely no sense for MS and Apple to follow suit, google originally introduced the combined bar to increase their search revenue.  Now, when someone asks &quot;Can I get a separate search box?&quot;  without exception the reply is &quot;Why do you want a separate search box?&quot; as if you just need more convincing this thing is AWESOME.

It&#039;s probably something that will get reintroduced to major browsers in a few years as a special feature once the novelty wears off, and no end-user feels idiotically proud of their integrated search box anymore.  

Probably the biggest thing I miss about having a separate search box is the ability to choose from several search providers from the list.  Google&#039;s way of typing a letter then space for a certain engine is just not as good as CTRL + up or down to scroll through the list.]]></description>
		<content:encoded><![CDATA[<p>The strangest thing to me in all this is that when the browser companies do disable the second search box, without exception they&#8217;ve done away with even the option to re-enable it.  Completely gone.  Safari, IE9, both followed google&#8217;s lead.  </p>
<p>It makes absolutely no sense for MS and Apple to follow suit, google originally introduced the combined bar to increase their search revenue.  Now, when someone asks &#8220;Can I get a separate search box?&#8221;  without exception the reply is &#8220;Why do you want a separate search box?&#8221; as if you just need more convincing this thing is AWESOME.</p>
<p>It&#8217;s probably something that will get reintroduced to major browsers in a few years as a special feature once the novelty wears off, and no end-user feels idiotically proud of their integrated search box anymore.  </p>
<p>Probably the biggest thing I miss about having a separate search box is the ability to choose from several search providers from the list.  Google&#8217;s way of typing a letter then space for a certain engine is just not as good as CTRL + up or down to scroll through the list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developers and &#8220;bad&#8221; code by Anton</title>
		<link>http://noordering.wordpress.com/2011/04/22/developers-and-bad-code/comment-page-1/#comment-234</link>
		<dc:creator><![CDATA[Anton]]></dc:creator>
		<pubDate>Thu, 27 Sep 2012 13:01:19 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=150#comment-234</guid>
		<description><![CDATA[Dear friend. I know officially proclaim a truce between you and me. Its obvious that we agree
on to much stuff to bother with a fistfight.(BTW: You are correct on the LINQ)

Upon leaving this great blog I would like to take the time to discuss a EMS (yes you may google it)
I recently designed and implemented in little over 3 months from ground up. An EMS is a highly sophisticated and advanced piece of software that is pretty fucking far from the day-to-day programs that mostly never does anything more important than fetching rows in a database based on some key. 
If someone had told me that they designed such a system AND delivered it to production in less than 4 months I  would definetely call them a liar, because it simply cant be done. 

But I and two more guys did it.

On the first day, when I met the team I told them the basics: This system is gonna be a straight procedural system, simply because we have no time to wonder about what kind of objects we should use to represent real-world entitys. If I see a class definition anywhere I will delete it.

You see, most &#039;modern&#039; day programmers have gone completely bananas over all the patterns that exists that they actually forgot that it is possible to create really great apps with really little code. 

If you want to that is...Just have a look at the app-industri. These guys that dont have access to the big supermotor that  a pc is, and actually have to household with what they got wouldnt get far if the tried to build some of the  monsters that is the result of a pattern such as MVC. 

In my opinion if you use MVC you are an idiot. 

Because you are writing code that never had to be written in the first place. And that statement is also true for any other pattern that exists out there like OO and multi-tier etc. And I am probably the biggest idiot of all for having believed in these patterns and actually built a whole lot of systems in them. 

They are wrong and dont work and thats it. No need to cry about it, just forget them

My 0.02$

Best wishes

/A]]></description>
		<content:encoded><![CDATA[<p>Dear friend. I know officially proclaim a truce between you and me. Its obvious that we agree<br />
on to much stuff to bother with a fistfight.(BTW: You are correct on the LINQ)</p>
<p>Upon leaving this great blog I would like to take the time to discuss a EMS (yes you may google it)<br />
I recently designed and implemented in little over 3 months from ground up. An EMS is a highly sophisticated and advanced piece of software that is pretty fucking far from the day-to-day programs that mostly never does anything more important than fetching rows in a database based on some key.<br />
If someone had told me that they designed such a system AND delivered it to production in less than 4 months I  would definetely call them a liar, because it simply cant be done. </p>
<p>But I and two more guys did it.</p>
<p>On the first day, when I met the team I told them the basics: This system is gonna be a straight procedural system, simply because we have no time to wonder about what kind of objects we should use to represent real-world entitys. If I see a class definition anywhere I will delete it.</p>
<p>You see, most &#8216;modern&#8217; day programmers have gone completely bananas over all the patterns that exists that they actually forgot that it is possible to create really great apps with really little code. </p>
<p>If you want to that is&#8230;Just have a look at the app-industri. These guys that dont have access to the big supermotor that  a pc is, and actually have to household with what they got wouldnt get far if the tried to build some of the  monsters that is the result of a pattern such as MVC. </p>
<p>In my opinion if you use MVC you are an idiot. </p>
<p>Because you are writing code that never had to be written in the first place. And that statement is also true for any other pattern that exists out there like OO and multi-tier etc. And I am probably the biggest idiot of all for having believed in these patterns and actually built a whole lot of systems in them. </p>
<p>They are wrong and dont work and thats it. No need to cry about it, just forget them</p>
<p>My 0.02$</p>
<p>Best wishes</p>
<p>/A</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developers and &#8220;bad&#8221; code by beelsebob</title>
		<link>http://noordering.wordpress.com/2011/04/22/developers-and-bad-code/comment-page-1/#comment-233</link>
		<dc:creator><![CDATA[beelsebob]]></dc:creator>
		<pubDate>Thu, 27 Sep 2012 08:20:17 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=150#comment-233</guid>
		<description><![CDATA[I think you and I are rather violently agreeing in some ways.  In general, the point both of us are trying to make is that it&#039;s good to &quot;write what you mean&quot;, that is, the code should read like the english description of what it&#039;s doing and why.  Your example of a mega-regex is almost certainly a time when a one liner should be split out into more, clearer code; on the other hand, the LINQ example I give in a comment above, I&#039;d hope you&#039;d see is much clearer in one line.

You also touch on one of the comments that prompted me to write this a while ago – that someone asserted &quot;this isn&#039;t SOAP, therefore it&#039;s bad&quot; – as you rightly point out, what they really mean is &quot;this isn&#039;t written in the flavour of the month, or isn&#039;t written how I would choose to do it today&quot;, and lacks any understanding of why it is written the way it&#039;s written.

Where I disagree is that a straight procedural system is always better... It&#039;s often very clear, but then, MVC has its uses, functional programs are often significantly clearer in their intention (though often not in their runtime characteristics).]]></description>
		<content:encoded><![CDATA[<p>I think you and I are rather violently agreeing in some ways.  In general, the point both of us are trying to make is that it&#8217;s good to &#8220;write what you mean&#8221;, that is, the code should read like the english description of what it&#8217;s doing and why.  Your example of a mega-regex is almost certainly a time when a one liner should be split out into more, clearer code; on the other hand, the LINQ example I give in a comment above, I&#8217;d hope you&#8217;d see is much clearer in one line.</p>
<p>You also touch on one of the comments that prompted me to write this a while ago – that someone asserted &#8220;this isn&#8217;t SOAP, therefore it&#8217;s bad&#8221; – as you rightly point out, what they really mean is &#8220;this isn&#8217;t written in the flavour of the month, or isn&#8217;t written how I would choose to do it today&#8221;, and lacks any understanding of why it is written the way it&#8217;s written.</p>
<p>Where I disagree is that a straight procedural system is always better&#8230; It&#8217;s often very clear, but then, MVC has its uses, functional programs are often significantly clearer in their intention (though often not in their runtime characteristics).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developers and &#8220;bad&#8221; code by Anton</title>
		<link>http://noordering.wordpress.com/2011/04/22/developers-and-bad-code/comment-page-1/#comment-232</link>
		<dc:creator><![CDATA[Anton]]></dc:creator>
		<pubDate>Thu, 27 Sep 2012 06:07:09 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=150#comment-232</guid>
		<description><![CDATA[I am almost compelled to say I stand corrected, because you seem to have an sincere goal of actually doing something good for the developing community. So lets elaborate a tad on the subject at hand.

First, I would like to give some input on my background so you can understand my background. Having spent spent some 15 years as a developer (consultant) I have had ample opportunity to look at some really bad and some really good systems.

It depresses me a lot to see, too often that a system is chucked in the bin and replaced by an almost exactly twin. The system that prevails over time and thus honors its creators are often the simple system. The more &#039;advanced&#039; systems...well no one has the inclination the expand on them as they are too tedious to maintain and often you will have to rewrite so much of it anyway.

When I say simple, I indeed support the idea of &#039;writing down&#039; to the reader and fully enforcing the KISS rule. Who am I to believe that the next developer is competent in the language/environment?

Therefore I conclude that &#039;Good&#039; code is, roughly speaking, an expansion of a few lines of the aforementioned compressed oneliner. 

This is especially true in an SQL statement where the readability of the code is tenfold if you divide your composed statement into several small parts.

This discussion, as refreshing as it is, merely scratches the surface of the issues of building good systems. The make or break factor is never about the syntax but of the complexity of the system itself.

Therefore a lot of idiots buy into whatever pattern is popular for the day, OO, multi-tier or the most recent one MVC. With that kind of arsenal at your disposal you can get into a lot of trouble. Just to explain a little on what I mean I would like to state an example. 

Imagine a new technology that is coming, you are excited about building some system in it. This is your first time. Do you think it will be good? No, probably not. You actually wont build it &#039;good&#039; until you build it for the third or fourth time. The nature of most programmers however is to constantly improve and therefore the are constantly moving on to the next pattern instead of excelling in one pattern.

In my opinion therefore a straight procedural system is always better over any other pattern, giving you ample time to reflect on what problem to solve instead of the inner workings of an architecure that goes sideways from the the organization from day 1 it is implemented.

This is not my humble opinion it is the facts of how it works in reality.

Thank you for your time and Godspeed with your next system.

/A]]></description>
		<content:encoded><![CDATA[<p>I am almost compelled to say I stand corrected, because you seem to have an sincere goal of actually doing something good for the developing community. So lets elaborate a tad on the subject at hand.</p>
<p>First, I would like to give some input on my background so you can understand my background. Having spent spent some 15 years as a developer (consultant) I have had ample opportunity to look at some really bad and some really good systems.</p>
<p>It depresses me a lot to see, too often that a system is chucked in the bin and replaced by an almost exactly twin. The system that prevails over time and thus honors its creators are often the simple system. The more &#8216;advanced&#8217; systems&#8230;well no one has the inclination the expand on them as they are too tedious to maintain and often you will have to rewrite so much of it anyway.</p>
<p>When I say simple, I indeed support the idea of &#8216;writing down&#8217; to the reader and fully enforcing the KISS rule. Who am I to believe that the next developer is competent in the language/environment?</p>
<p>Therefore I conclude that &#8216;Good&#8217; code is, roughly speaking, an expansion of a few lines of the aforementioned compressed oneliner. </p>
<p>This is especially true in an SQL statement where the readability of the code is tenfold if you divide your composed statement into several small parts.</p>
<p>This discussion, as refreshing as it is, merely scratches the surface of the issues of building good systems. The make or break factor is never about the syntax but of the complexity of the system itself.</p>
<p>Therefore a lot of idiots buy into whatever pattern is popular for the day, OO, multi-tier or the most recent one MVC. With that kind of arsenal at your disposal you can get into a lot of trouble. Just to explain a little on what I mean I would like to state an example. </p>
<p>Imagine a new technology that is coming, you are excited about building some system in it. This is your first time. Do you think it will be good? No, probably not. You actually wont build it &#8216;good&#8217; until you build it for the third or fourth time. The nature of most programmers however is to constantly improve and therefore the are constantly moving on to the next pattern instead of excelling in one pattern.</p>
<p>In my opinion therefore a straight procedural system is always better over any other pattern, giving you ample time to reflect on what problem to solve instead of the inner workings of an architecure that goes sideways from the the organization from day 1 it is implemented.</p>
<p>This is not my humble opinion it is the facts of how it works in reality.</p>
<p>Thank you for your time and Godspeed with your next system.</p>
<p>/A</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developers and &#8220;bad&#8221; code by Bill</title>
		<link>http://noordering.wordpress.com/2011/04/22/developers-and-bad-code/comment-page-1/#comment-231</link>
		<dc:creator><![CDATA[Bill]]></dc:creator>
		<pubDate>Wed, 26 Sep 2012 15:10:11 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=150#comment-231</guid>
		<description><![CDATA[&quot;for readability fewer lines is never a good thing&quot;

I don&#039;t agree with this statement. It all depends on context. There are many times when using a particular concise expression is more readable -- for someone who is competent in the language/environment. Who is doing the reading matters: a beginner or a professional. Just because something is difficult to learn does not mean it isn&#039;t good. Here&#039;s a simple example:

char* strcpy( char* to, const char* from )
{
    while( *to++ = *from++ )
        ;
return to;
}

This is much easier to understand for an experienced programmer than the expanded &quot;simpler&quot; equivalent code. 

I do agree that compressing lines just because you can isn&#039;t good. For example:

if( (answer = myfunction( x, y, z ) )
   ...
should probably be written on two lines as:
answer = myfunction( x, y, z );
if( answer )
...
especially if myfunction has a longer or more complex list of arguments.

In programming, as in writing, say what you mean directly and simply. Don&#039;t intentionally try to be clever, but don&#039;t &quot;write down&quot; to your audience either. Assume the maintainer is competent in the tool set being using.]]></description>
		<content:encoded><![CDATA[<p>&#8220;for readability fewer lines is never a good thing&#8221;</p>
<p>I don&#8217;t agree with this statement. It all depends on context. There are many times when using a particular concise expression is more readable &#8212; for someone who is competent in the language/environment. Who is doing the reading matters: a beginner or a professional. Just because something is difficult to learn does not mean it isn&#8217;t good. Here&#8217;s a simple example:</p>
<p>char* strcpy( char* to, const char* from )<br />
{<br />
    while( *to++ = *from++ )<br />
        ;<br />
return to;<br />
}</p>
<p>This is much easier to understand for an experienced programmer than the expanded &#8220;simpler&#8221; equivalent code. </p>
<p>I do agree that compressing lines just because you can isn&#8217;t good. For example:</p>
<p>if( (answer = myfunction( x, y, z ) )<br />
   &#8230;<br />
should probably be written on two lines as:<br />
answer = myfunction( x, y, z );<br />
if( answer )<br />
&#8230;<br />
especially if myfunction has a longer or more complex list of arguments.</p>
<p>In programming, as in writing, say what you mean directly and simply. Don&#8217;t intentionally try to be clever, but don&#8217;t &#8220;write down&#8221; to your audience either. Assume the maintainer is competent in the tool set being using.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developers and &#8220;bad&#8221; code by Anton</title>
		<link>http://noordering.wordpress.com/2011/04/22/developers-and-bad-code/comment-page-1/#comment-230</link>
		<dc:creator><![CDATA[Anton]]></dc:creator>
		<pubDate>Wed, 26 Sep 2012 12:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=150#comment-230</guid>
		<description><![CDATA[Dear Sir!

You and your friends are totally wrong, it&#039;s not your arguments, its your attitude. Debating over which code-monkey is the better is a losing game. As for oneliners I can honestly say that I have never seen a oneliner that was maintainable. It&#039;s like you said, take a piece of code and compress it. Well for many reasons that is not an good idea, but for readability fewer lines is never a good thing. 

Stop sissying about with your comments and come clean about one key element of development: Simplicity is everything. Now all you have to do is ask yourself which is the simpler: One line of regular expression or the 20 or so lines of procedural code.]]></description>
		<content:encoded><![CDATA[<p>Dear Sir!</p>
<p>You and your friends are totally wrong, it&#8217;s not your arguments, its your attitude. Debating over which code-monkey is the better is a losing game. As for oneliners I can honestly say that I have never seen a oneliner that was maintainable. It&#8217;s like you said, take a piece of code and compress it. Well for many reasons that is not an good idea, but for readability fewer lines is never a good thing. </p>
<p>Stop sissying about with your comments and come clean about one key element of development: Simplicity is everything. Now all you have to do is ask yourself which is the simpler: One line of regular expression or the 20 or so lines of procedural code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developers and &#8220;bad&#8221; code by Bill</title>
		<link>http://noordering.wordpress.com/2011/04/22/developers-and-bad-code/comment-page-1/#comment-219</link>
		<dc:creator><![CDATA[Bill]]></dc:creator>
		<pubDate>Tue, 08 May 2012 16:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=150#comment-219</guid>
		<description><![CDATA[&quot;If code is not easy to understand by someone, usually because there is not a comment saying what the code does. That is bad code. If you can’t easily tell what the code is doing, that is bad code. The point of code is that is should be understandable and maintainable, with the later being typically dependant on the former.&quot;

I disagree. Usually I can figure out what code does. What I want from comments is WHY the programmer chose to do something a particular non-obvious way.]]></description>
		<content:encoded><![CDATA[<p>&#8220;If code is not easy to understand by someone, usually because there is not a comment saying what the code does. That is bad code. If you can’t easily tell what the code is doing, that is bad code. The point of code is that is should be understandable and maintainable, with the later being typically dependant on the former.&#8221;</p>
<p>I disagree. Usually I can figure out what code does. What I want from comments is WHY the programmer chose to do something a particular non-obvious way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on About by Dietmar Hofer</title>
		<link>http://noordering.wordpress.com/about/comment-page-1/#comment-218</link>
		<dc:creator><![CDATA[Dietmar Hofer]]></dc:creator>
		<pubDate>Tue, 21 Feb 2012 18:37:25 +0000</pubDate>
		<guid isPermaLink="false">#comment-218</guid>
		<description><![CDATA[Dear Tom
I just spent quite some time to find a way to contact you (github-&gt;Google-&gt;LinkedIn-&gt;Blog) and hope I can reach you this way.
The starting point was your OpenStreetPad repository at github, which may turn out to be very useful for a project I&#039;m involved with.
If it&#039;s ok for you to be contacted in this regard, please send me a short reply and I&#039;ll provide more details.

thanks and best regards from Vienna
Dietmar]]></description>
		<content:encoded><![CDATA[<p>Dear Tom<br />
I just spent quite some time to find a way to contact you (github-&gt;Google-&gt;LinkedIn-&gt;Blog) and hope I can reach you this way.<br />
The starting point was your OpenStreetPad repository at github, which may turn out to be very useful for a project I&#8217;m involved with.<br />
If it&#8217;s ok for you to be contacted in this regard, please send me a short reply and I&#8217;ll provide more details.</p>
<p>thanks and best regards from Vienna<br />
Dietmar</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dependancies are Bad by John m.</title>
		<link>http://noordering.wordpress.com/2009/04/02/dependancies-are-bad/comment-page-1/#comment-216</link>
		<dc:creator><![CDATA[John m.]]></dc:creator>
		<pubDate>Wed, 07 Dec 2011 16:45:48 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=99#comment-216</guid>
		<description><![CDATA[I&#039;m a bit late to the party, but as things have not improved much in a few years,  here goes:  It&#039;s not necessarily a dependency, it&#039;s dependencies of dependencies of that one dependency.

Case in point: all the graphics packages.  Instead of getting some tools to manipulate abstract geometry you end up depending on gtk2hs, gtk, cairo, the whole f**king gnome distribution etc. which adds up to a few GIGABYTES worth of crap totally unrelated to the problem you were trying to solve.  And surely it will not compile on OS X without days of tweaking.  And if it did, it would look like totally out of place and it would be inoperable with whatever native libraries you might have.  Or other Haskell libraries you&#039;re already using.

Not to mention the issues of combining several incompatible licenses and company policies.

Separation of concerns comes to mind.  Fist step could be for Cabal to list external dependencies in some way, as depending on another Haskell package might only be 5% of the story.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m a bit late to the party, but as things have not improved much in a few years,  here goes:  It&#8217;s not necessarily a dependency, it&#8217;s dependencies of dependencies of that one dependency.</p>
<p>Case in point: all the graphics packages.  Instead of getting some tools to manipulate abstract geometry you end up depending on gtk2hs, gtk, cairo, the whole f**king gnome distribution etc. which adds up to a few GIGABYTES worth of crap totally unrelated to the problem you were trying to solve.  And surely it will not compile on OS X without days of tweaking.  And if it did, it would look like totally out of place and it would be inoperable with whatever native libraries you might have.  Or other Haskell libraries you&#8217;re already using.</p>
<p>Not to mention the issues of combining several incompatible licenses and company policies.</p>
<p>Separation of concerns comes to mind.  Fist step could be for Cabal to list external dependencies in some way, as depending on another Haskell package might only be 5% of the story.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Why the GPL is not free by Petr Skocik</title>
		<link>http://noordering.wordpress.com/2009/01/20/why-the-gpl-is-not-free/comment-page-1/#comment-215</link>
		<dc:creator><![CDATA[Petr Skocik]]></dc:creator>
		<pubDate>Mon, 21 Nov 2011 03:47:37 +0000</pubDate>
		<guid isPermaLink="false">http://noordering.wordpress.com/?p=3#comment-215</guid>
		<description><![CDATA[@Dennis: Mandatory freedom makes sense if by mandatory freedom you mean freedom that can be legally enforced. Nevertheless, the is not how it was used above. Above it meant &quot;freedom that imposes mandatory obligations.&quot;  That is not true freedom. 

 Freedom means the ability to do as one wishes without restraints. True, they are always restraints, the physical ones at the very least. But if we forget the restraints forced upon us by the laws of physics, we can consider ourselves free if there are no other restraints.

As for the software licenses, the BSD license may be considered relatively free. Relatively because there are tiny restrictions such as the one saying that you have to retain the disclaimer. Otherwise, the license does not restrict you in any noticable way and thus it may be considered free. Moreover it gives you the right to use it in any way you see fit, and this is not implied by law unless explicitly stated (!). This is freedom. There are no social obligations that bind you if you decide to use the code. It&#039;s almost as if you found the code magically written on a piece of rock in nature. Your&#039;re free to use it in any way you naturally can. (When I say &quot;no obligations&quot; I consider the obligation to retain the disclaimer as a negligible one).

On the other hand, using code licensed under the GPL gives you obligations that you would not normally expect if you used a piece of code you&#039;d had found  laying around in nature not attributed to anyone. That&#039;s not freedom. You are restricted, and you are restricted by something more than physical laws. What restricts you here is the copyright law. The author does not waive his copyright freely but in exchange for an obligation.

As for &quot;any right is mandatory&quot;, I beg to differ. Rights are never mandatory* (*never mandatory towards the holder of the right-- they are mandatory from the point of view of a judicial authority--a court has to respect somebody&#039;s right ) You can always choose to exercise your right, but you never have to. :-) Licences do not have to be mandatory either. Licences that grant rights to someone (it is implied by the law that copyright remain with the author) are not mandatory toward the person they grant rights to. Such person is always free to ignore the existence of such a right without having to face consequences.]]></description>
		<content:encoded><![CDATA[<p>@Dennis: Mandatory freedom makes sense if by mandatory freedom you mean freedom that can be legally enforced. Nevertheless, the is not how it was used above. Above it meant &#8220;freedom that imposes mandatory obligations.&#8221;  That is not true freedom. </p>
<p> Freedom means the ability to do as one wishes without restraints. True, they are always restraints, the physical ones at the very least. But if we forget the restraints forced upon us by the laws of physics, we can consider ourselves free if there are no other restraints.</p>
<p>As for the software licenses, the BSD license may be considered relatively free. Relatively because there are tiny restrictions such as the one saying that you have to retain the disclaimer. Otherwise, the license does not restrict you in any noticable way and thus it may be considered free. Moreover it gives you the right to use it in any way you see fit, and this is not implied by law unless explicitly stated (!). This is freedom. There are no social obligations that bind you if you decide to use the code. It&#8217;s almost as if you found the code magically written on a piece of rock in nature. Your&#8217;re free to use it in any way you naturally can. (When I say &#8220;no obligations&#8221; I consider the obligation to retain the disclaimer as a negligible one).</p>
<p>On the other hand, using code licensed under the GPL gives you obligations that you would not normally expect if you used a piece of code you&#8217;d had found  laying around in nature not attributed to anyone. That&#8217;s not freedom. You are restricted, and you are restricted by something more than physical laws. What restricts you here is the copyright law. The author does not waive his copyright freely but in exchange for an obligation.</p>
<p>As for &#8220;any right is mandatory&#8221;, I beg to differ. Rights are never mandatory* (*never mandatory towards the holder of the right&#8211; they are mandatory from the point of view of a judicial authority&#8211;a court has to respect somebody&#8217;s right ) You can always choose to exercise your right, but you never have to. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Licences do not have to be mandatory either. Licences that grant rights to someone (it is implied by the law that copyright remain with the author) are not mandatory toward the person they grant rights to. Such person is always free to ignore the existence of such a right without having to face consequences.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
