<?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/"
		>
<channel>
	<title>Comments on: Microsoft Willing to Sell Us &#8216;Protection&#8217; for Use of Mono</title>
	<atom:link href="http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/feed/" rel="self" type="application/rss+xml" />
	<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/</link>
	<description>Exploring the reality behind exclusionary deals with Microsoft and their subtle (yet severe) implications</description>
	<lastBuildDate>Sat, 20 Mar 2010 23:57:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: AlexH</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-42/#comment-40384</link>
		<dc:creator>AlexH</dc:creator>
		<pubDate>Sat, 29 Nov 2008 20:20:52 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40384</guid>
		<description>@Jose: you have to be specific about what you&#039;re claiming. 

An API is an abstraction, and as such cannot be patented. There&#039;s nothing novel or interesting in an object method call or a function.</description>
		<content:encoded><![CDATA[<p>@Jose: you have to be specific about what you&#8217;re claiming. </p>
<p>An API is an abstraction, and as such cannot be patented. There&#8217;s nothing novel or interesting in an object method call or a function.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-42/#comment-40370</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 20:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40370</guid>
		<description>I&#039;m going to take a break and go offline soon. Maybe I&#039;ll work on this further at some point since a specific sample patent draft is easier to critique and compare with other patents.</description>
		<content:encoded><![CDATA[<p>I&#8217;m going to take a break and go offline soon. Maybe I&#8217;ll work on this further at some point since a specific sample patent draft is easier to critique and compare with other patents.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-42/#comment-40361</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 19:28:11 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40361</guid>
		<description>Alex,

wrt point A..

A patent can say that to provide &quot;a certain type of result to users&quot;, you take these 3 steps.

Step one is to &quot;convert seconds since epoch into year, mo, day so that&quot; ...(vague description here without actual algorithm but very precise semantics of end result).

Step two ....

Now, if you &quot;provide a certain type of result to users&quot; and to carry that out you &quot;convert seconds since epoch into year, mo, day so that&quot; along with the other 2 steps then you are in violation.

The &quot;algorithm&quot; violated was the larger level one that didn&#039;t specify in full detail how to do the date conversion [this is related to your point B].

Now, how do I link this to what I am talking about?

When you use a particular API, it might be common use to carry out these three steps. There might even be three such functions that people will use whenever they want to &quot;provide a certain type of result to users&quot;.

This is related to why I mentioned the sort example based on primitives. If you use that API, you will likely use all the 3 components, and these could violate a patent at that higher level (to build a sort).

In OOP, this can boil to 3 method calls perhaps.

In fact, instantiating an object, by default, might already carry out all of the steps for you but one, so that you would be in violation by calling that one method to do date conversion (at least if you didn&#039;t change the defaults).

This is why early in this thread I was referring to &quot;security feature X&quot;. There is a higher level alg that is being violated. If you use these API as intended, you will likely violate such a patent that implements security feature X in such and such a way (to match the semantics for the API).

And do note that we don&#039;t need more than one function call, eg...

Remember the general but explicit steps in the patent can be implemented behind the scenes by a single function call as per the semantics of that function call.. eg, update some other object and do X or Y other thing as side effects. ..Now if you violate a patent that does all of these side effects, you are screwed.

So when we define (high level) semantics for a function, those semantics can be violations of a patent claim that patents those semantics. [And if we change the semantics to avoid violation, we break the app in the general case.]

Look at this patent, claim number 1 http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=29&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PALL&amp;s1=software&amp;OS=software&amp;RS=software

It is vague, yet it does specify something. In fact, all the claims (as I see as I skim) are vague in many ways. Yet this was granted a patent.

You don&#039;t have to be precise to the last drop by any means.

You can match (high-level) semantics of a function so that these satisfy at least one claim from a patent. ... see that patent link above. It is vague in many ways.</description>
		<content:encoded><![CDATA[<p>Alex,</p>
<p>wrt point A..</p>
<p>A patent can say that to provide &#8220;a certain type of result to users&#8221;, you take these 3 steps.</p>
<p>Step one is to &#8220;convert seconds since epoch into year, mo, day so that&#8221; &#8230;(vague description here without actual algorithm but very precise semantics of end result).</p>
<p>Step two &#8230;.</p>
<p>Now, if you &#8220;provide a certain type of result to users&#8221; and to carry that out you &#8220;convert seconds since epoch into year, mo, day so that&#8221; along with the other 2 steps then you are in violation.</p>
<p>The &#8220;algorithm&#8221; violated was the larger level one that didn&#8217;t specify in full detail how to do the date conversion [this is related to your point B].</p>
<p>Now, how do I link this to what I am talking about?</p>
<p>When you use a particular API, it might be common use to carry out these three steps. There might even be three such functions that people will use whenever they want to &#8220;provide a certain type of result to users&#8221;.</p>
<p>This is related to why I mentioned the sort example based on primitives. If you use that API, you will likely use all the 3 components, and these could violate a patent at that higher level (to build a sort).</p>
<p>In OOP, this can boil to 3 method calls perhaps.</p>
<p>In fact, instantiating an object, by default, might already carry out all of the steps for you but one, so that you would be in violation by calling that one method to do date conversion (at least if you didn&#8217;t change the defaults).</p>
<p>This is why early in this thread I was referring to &#8220;security feature X&#8221;. There is a higher level alg that is being violated. If you use these API as intended, you will likely violate such a patent that implements security feature X in such and such a way (to match the semantics for the API).</p>
<p>And do note that we don&#8217;t need more than one function call, eg&#8230;</p>
<p>Remember the general but explicit steps in the patent can be implemented behind the scenes by a single function call as per the semantics of that function call.. eg, update some other object and do X or Y other thing as side effects. ..Now if you violate a patent that does all of these side effects, you are screwed.</p>
<p>So when we define (high level) semantics for a function, those semantics can be violations of a patent claim that patents those semantics. [And if we change the semantics to avoid violation, we break the app in the general case.]</p>
<p>Look at this patent, claim number 1 <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=29&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PALL&amp;s1=software&amp;OS=software&amp;RS=software" rel="nofollow">http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=29&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PALL&amp;s1=software&amp;OS=software&amp;RS=software</a></p>
<p>It is vague, yet it does specify something. In fact, all the claims (as I see as I skim) are vague in many ways. Yet this was granted a patent.</p>
<p>You don&#8217;t have to be precise to the last drop by any means.</p>
<p>You can match (high-level) semantics of a function so that these satisfy at least one claim from a patent. &#8230; see that patent link above. It is vague in many ways.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AlexH</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-42/#comment-40360</link>
		<dc:creator>AlexH</dc:creator>
		<pubDate>Sat, 29 Nov 2008 19:05:44 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40360</guid>
		<description>@Jose: I think we&#039;ve found the fundamental problem:

&lt;blockquote&gt;This patent does not specify how to perform that calculation. That patent covers a wider scope and this date function is a part of it.&lt;/blockquote&gt;

It doesn&#039;t matter the scope of the overall patent. If it doesn&#039;t specify how to do something, that &quot;something&quot; - whatever it is - isn&#039;t covered by the patent. That&#039;s point A.

Point B: even if it does specify how to do it, that also doesn&#039;t mean for sure that the specific implementation it mentions is covered. Take the de facto example, the patent on a rubber-curing process. Individual parts weren&#039;t novel; the collective was.</description>
		<content:encoded><![CDATA[<p>@Jose: I think we&#8217;ve found the fundamental problem:</p>
<blockquote><p>This patent does not specify how to perform that calculation. That patent covers a wider scope and this date function is a part of it.</p></blockquote>
<p>It doesn&#8217;t matter the scope of the overall patent. If it doesn&#8217;t specify how to do something, that &#8220;something&#8221; &#8211; whatever it is &#8211; isn&#8217;t covered by the patent. That&#8217;s point A.</p>
<p>Point B: even if it does specify how to do it, that also doesn&#8217;t mean for sure that the specific implementation it mentions is covered. Take the de facto example, the patent on a rubber-curing process. Individual parts weren&#8217;t novel; the collective was.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-41/#comment-40359</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 19:03:53 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40359</guid>
		<description>&gt;&gt; The point AlexH has been trying time and time again to make is that an API itself can’t infringe a patent - only a specific method application - and that specific method can easily not be what was originally planned as a “patent trap”

I skipped this section because I didn&#039;t understand what you meant. Can you clarify (so I can respond properly)?</description>
		<content:encoded><![CDATA[<p>&gt;&gt; The point AlexH has been trying time and time again to make is that an API itself can’t infringe a patent &#8211; only a specific method application &#8211; and that specific method can easily not be what was originally planned as a “patent trap”</p>
<p>I skipped this section because I didn&#8217;t understand what you meant. Can you clarify (so I can respond properly)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-41/#comment-40357</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 19:01:04 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40357</guid>
		<description>Alex, an API&#039;s semantic can be &quot;weak&quot; or not. An API can specify that other objects be affected in X or Y fashion, that certain other objects must remain constant, that certain objects need be changed as a side effect and even specify the desired result very precisely.

An API can be of something like computing the date (output: year, month, day) from an integer representing the number of seconds since some epoch. That has very precise semantics. Those semantics do not describe an algorithm, as you stated; however, any algorithm that implements this functionality will violate a patent that stated that we have a framework and within that framework, the year, month, and day will be calculated from the number of seconds since some chosen epoch.

This patent does not specify how to perform that calculation. That patent covers a wider scope and this date function is a part of it. If you rely on a particular framework (eg, some subset of dotnet) that is described by that patent and you calculate the date accordingly, you are in violation.

A patent that simply says &quot;year, month, and day are calculated from seconds such that year, date, and month are that many seconds from Jan 1, midnight....&quot; likely would have tons of prior art; however, a patent with larger scope can leave the smaller details undefined and overall have these claims (which include extra context) have no prior art.

Are you people saying that all patents specify all potential algorithms coverable within to full detail? Of course, not. There are varying levels of detail that different patents get into wrt it&#039;s various components...or so that is the impression I have gotten. Are there disagreements?</description>
		<content:encoded><![CDATA[<p>Alex, an API&#8217;s semantic can be &#8220;weak&#8221; or not. An API can specify that other objects be affected in X or Y fashion, that certain other objects must remain constant, that certain objects need be changed as a side effect and even specify the desired result very precisely.</p>
<p>An API can be of something like computing the date (output: year, month, day) from an integer representing the number of seconds since some epoch. That has very precise semantics. Those semantics do not describe an algorithm, as you stated; however, any algorithm that implements this functionality will violate a patent that stated that we have a framework and within that framework, the year, month, and day will be calculated from the number of seconds since some chosen epoch.</p>
<p>This patent does not specify how to perform that calculation. That patent covers a wider scope and this date function is a part of it. If you rely on a particular framework (eg, some subset of dotnet) that is described by that patent and you calculate the date accordingly, you are in violation.</p>
<p>A patent that simply says &#8220;year, month, and day are calculated from seconds such that year, date, and month are that many seconds from Jan 1, midnight&#8230;.&#8221; likely would have tons of prior art; however, a patent with larger scope can leave the smaller details undefined and overall have these claims (which include extra context) have no prior art.</p>
<p>Are you people saying that all patents specify all potential algorithms coverable within to full detail? Of course, not. There are varying levels of detail that different patents get into wrt it&#8217;s various components&#8230;or so that is the impression I have gotten. Are there disagreements?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jo Shields</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-41/#comment-40352</link>
		<dc:creator>Jo Shields</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:49:21 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40352</guid>
		<description>No, we don&#039;t.

Look up the Freetype case for working around an aggressive patent through reworked internal semantics.</description>
		<content:encoded><![CDATA[<p>No, we don&#8217;t.</p>
<p>Look up the Freetype case for working around an aggressive patent through reworked internal semantics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-41/#comment-40351</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:45:59 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40351</guid>
		<description>&gt;&gt; Nobody says your qsort() needs to use a patent-infringing implementation internally.

The hypothetical patented quicksort algorithm can be described at a (high) level that would cover &quot;quicksort&quot; as defined in textbooks, assuming of course that such a thing as &quot;quicksort&quot; has been defined universally. Thus you couldn&#039;t change the implementation to something non-infringing without implementing something else.

Alright, let me check wikipedia...

From wikipedia: http://en.wikipedia.org/wiki/Quicksort

&gt;&gt; Quicksort sorts by employing a divide and conquer strategy to divide a list into two sub-lists.

&gt;&gt; The steps are:

   1. Pick an element, called a pivot, from the list.
   2. Reorder the list so that all elements which are less than the pivot come before the pivot and so that all elements greater than the pivot come after it (equal values can go either way). After this partitioning, the pivot is in its final position. This is called the partition operation.
   3. Recursively sort the sub-list of lesser elements and the sub-list of greater elements.

&gt;&gt; The base case of the recursion are lists of size zero or one, which are always sorted.

So however you implement quicksort (and wikipedia does give a pseudocode example which follows these steps quoted), you would have to implement this algorithm or else you would not be implementing quicksort. Thus if this algorithm (these very steps as described on wikipedia) were patented, you could not implement quicksort.

You could implement some other sort with good average case running time, but it would not be as per this process here described.

Now, I already said that quicksort is not a good example because alternative sorts would still yield suitable results in just about all cases. But we can find many other API such that changing semantics would break apps.. or do you people not think so?</description>
		<content:encoded><![CDATA[<p>&gt;&gt; Nobody says your qsort() needs to use a patent-infringing implementation internally.</p>
<p>The hypothetical patented quicksort algorithm can be described at a (high) level that would cover &#8220;quicksort&#8221; as defined in textbooks, assuming of course that such a thing as &#8220;quicksort&#8221; has been defined universally. Thus you couldn&#8217;t change the implementation to something non-infringing without implementing something else.</p>
<p>Alright, let me check wikipedia&#8230;</p>
<p>From wikipedia: <a href="http://en.wikipedia.org/wiki/Quicksort" rel="nofollow">http://en.wikipedia.org/wiki/Quicksort</a></p>
<p>&gt;&gt; Quicksort sorts by employing a divide and conquer strategy to divide a list into two sub-lists.</p>
<p>&gt;&gt; The steps are:</p>
<p>   1. Pick an element, called a pivot, from the list.<br />
   2. Reorder the list so that all elements which are less than the pivot come before the pivot and so that all elements greater than the pivot come after it (equal values can go either way). After this partitioning, the pivot is in its final position. This is called the partition operation.<br />
   3. Recursively sort the sub-list of lesser elements and the sub-list of greater elements.</p>
<p>&gt;&gt; The base case of the recursion are lists of size zero or one, which are always sorted.</p>
<p>So however you implement quicksort (and wikipedia does give a pseudocode example which follows these steps quoted), you would have to implement this algorithm or else you would not be implementing quicksort. Thus if this algorithm (these very steps as described on wikipedia) were patented, you could not implement quicksort.</p>
<p>You could implement some other sort with good average case running time, but it would not be as per this process here described.</p>
<p>Now, I already said that quicksort is not a good example because alternative sorts would still yield suitable results in just about all cases. But we can find many other API such that changing semantics would break apps.. or do you people not think so?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AlexH</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-41/#comment-40350</link>
		<dc:creator>AlexH</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:45:03 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40350</guid>
		<description>Ok, we need to be clear about whether you&#039;re talking about &quot;what the code is doing&quot; when you mean semantic.

An API includes a very weak semantic that gives you an idea of what the function does. But it doesn&#039;t give you any idea of the actual semantics of the function: it&#039;s not telling you &lt;em&gt;what the code is actually doing&lt;/em&gt;, just what the results are.

A patent is the complete opposite. It says &quot;here is a way of solving this problem&quot; - in other words, I know what results I want, I just don&#039;t know how to do it.</description>
		<content:encoded><![CDATA[<p>Ok, we need to be clear about whether you&#8217;re talking about &#8220;what the code is doing&#8221; when you mean semantic.</p>
<p>An API includes a very weak semantic that gives you an idea of what the function does. But it doesn&#8217;t give you any idea of the actual semantics of the function: it&#8217;s not telling you <em>what the code is actually doing</em>, just what the results are.</p>
<p>A patent is the complete opposite. It says &#8220;here is a way of solving this problem&#8221; &#8211; in other words, I know what results I want, I just don&#8217;t know how to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-40/#comment-40348</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:34:10 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40348</guid>
		<description>&gt;&gt; I think you’re confusing “what an API is” with “why you use an API”. Semantics aren’t part of an API.

wikipedia disagrees: http://en.wikipedia.org/wiki/API

&gt;&gt; The software that provides the functionality described by an API is said to be an implementation of the API. The API itself is abstract, in that it specifies an interface and the behavior of the identifiers specified in that interface; it does not specify how the behavior may be implemented.

Did you get that? &quot;interface and ..behavior&quot;.

Also, if I had been wrong, I&#039;d just change terminology because the fact remains that a function comes with associated API. You can&#039;t separate the two and have something meaningful.

But, I don&#039;t have to worry about changing terminology since wikipedia appears to agree with my usage of API.</description>
		<content:encoded><![CDATA[<p>&gt;&gt; I think you’re confusing “what an API is” with “why you use an API”. Semantics aren’t part of an API.</p>
<p>wikipedia disagrees: <a href="http://en.wikipedia.org/wiki/API" rel="nofollow">http://en.wikipedia.org/wiki/API</a></p>
<p>&gt;&gt; The software that provides the functionality described by an API is said to be an implementation of the API. The API itself is abstract, in that it specifies an interface and the behavior of the identifiers specified in that interface; it does not specify how the behavior may be implemented.</p>
<p>Did you get that? &#8220;interface and ..behavior&#8221;.</p>
<p>Also, if I had been wrong, I&#8217;d just change terminology because the fact remains that a function comes with associated API. You can&#8217;t separate the two and have something meaningful.</p>
<p>But, I don&#8217;t have to worry about changing terminology since wikipedia appears to agree with my usage of API.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jo Shields</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-40/#comment-40344</link>
		<dc:creator>Jo Shields</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:28:01 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40344</guid>
		<description>No, sorry, that&#039;s where it falls down.

An API means predicted data in, predicted data out. Nobody says your qsort() needs to use a patent-infringing implementation internally. It doesn&#039;t even necessarily need to implement a quicksort, as long as it gives the same data

Do you really think MS have patented, say, using Gnome Data Access 2.0 (as Mono&#039;s ADO.NET implementation does), for example? The point AlexH has been trying time and time again to make is that an API itself can&#039;t infringe a patent - only a specific method application - and that specific method can easily not be what was originally planned as a &quot;patent trap&quot;</description>
		<content:encoded><![CDATA[<p>No, sorry, that&#8217;s where it falls down.</p>
<p>An API means predicted data in, predicted data out. Nobody says your qsort() needs to use a patent-infringing implementation internally. It doesn&#8217;t even necessarily need to implement a quicksort, as long as it gives the same data</p>
<p>Do you really think MS have patented, say, using Gnome Data Access 2.0 (as Mono&#8217;s ADO.NET implementation does), for example? The point AlexH has been trying time and time again to make is that an API itself can&#8217;t infringe a patent &#8211; only a specific method application &#8211; and that specific method can easily not be what was originally planned as a &#8220;patent trap&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AlexH</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-40/#comment-40343</link>
		<dc:creator>AlexH</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:27:25 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40343</guid>
		<description>&lt;blockquote&gt;&gt;&gt; An API is just a group of words.

Not at all. An API implies some semantics.&lt;/blockquote&gt;

I think you&#039;re confusing &quot;what an API is&quot; with &quot;why you use an API&quot;. Semantics aren&#039;t part of an API.

In terms of what patents cover and what they cost, there is a lot better information out there via Google than I could supply here.</description>
		<content:encoded><![CDATA[<blockquote><p>&gt;&gt; An API is just a group of words.</p>
<p>Not at all. An API implies some semantics.</p></blockquote>
<p>I think you&#8217;re confusing &#8220;what an API is&#8221; with &#8220;why you use an API&#8221;. Semantics aren&#8217;t part of an API.</p>
<p>In terms of what patents cover and what they cost, there is a lot better information out there via Google than I could supply here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-40/#comment-40342</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:25:52 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40342</guid>
		<description>..or take some patent, then write functions that implement the claims.

How frequently in the FOSS world do people have to go back and design around patents after they have written code? I&#039;m sure there are real costs. What if instead of this simply affecting some obscure algorithm once every blue moon, the patents get pressed against common API?

Which API might be most vulnerable?</description>
		<content:encoded><![CDATA[<p>..or take some patent, then write functions that implement the claims.</p>
<p>How frequently in the FOSS world do people have to go back and design around patents after they have written code? I&#8217;m sure there are real costs. What if instead of this simply affecting some obscure algorithm once every blue moon, the patents get pressed against common API?</p>
<p>Which API might be most vulnerable?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-40/#comment-40341</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:20:42 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40341</guid>
		<description>yes, patent the quicksort algorithm as claim 1 of patent 3333333333

create a library call named qsort which implements the quicksort algorithm as per above claim.</description>
		<content:encoded><![CDATA[<p>yes, patent the quicksort algorithm as claim 1 of patent 3333333333</p>
<p>create a library call named qsort which implements the quicksort algorithm as per above claim.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jo Shields</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-39/#comment-40340</link>
		<dc:creator>Jo Shields</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:16:12 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40340</guid>
		<description>You can&#039;t patent &quot;doing foo&quot;, you can only patent &quot;doing foo by bar baz boz&quot;.

You can&#039;t patent &quot;foosort();&quot; you can patent &quot;foosort(); by using this algorith&quot; - and even that&#039;s pretty tenuous</description>
		<content:encoded><![CDATA[<p>You can&#8217;t patent &#8220;doing foo&#8221;, you can only patent &#8220;doing foo by bar baz boz&#8221;.</p>
<p>You can&#8217;t patent &#8220;foosort();&#8221; you can patent &#8220;foosort(); by using this algorith&#8221; &#8211; and even that&#8217;s pretty tenuous</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-39/#comment-40339</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:08:52 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40339</guid>
		<description>&gt;&gt; Patent law just doesn’t cover specific embodiments: it covers methods of doing things.

Can you clarify what you mean (ie, shed light on the grayness)?</description>
		<content:encoded><![CDATA[<p>&gt;&gt; Patent law just doesn’t cover specific embodiments: it covers methods of doing things.</p>
<p>Can you clarify what you mean (ie, shed light on the grayness)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-39/#comment-40338</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 18:06:39 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40338</guid>
		<description>&gt;&gt; An API is just a group of words.

Not at all. An API implies some semantics.

Why are you even saying the foo example makes sense?

BTW, anyone now the cost for submitting a patent? [I&#039;m assuming bypassing attorneys is allowable. Also, ignore research costs, etc.]</description>
		<content:encoded><![CDATA[<p>&gt;&gt; An API is just a group of words.</p>
<p>Not at all. An API implies some semantics.</p>
<p>Why are you even saying the foo example makes sense?</p>
<p>BTW, anyone now the cost for submitting a patent? [I'm assuming bypassing attorneys is allowable. Also, ignore research costs, etc.]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AlexH</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-39/#comment-40337</link>
		<dc:creator>AlexH</dc:creator>
		<pubDate>Sat, 29 Nov 2008 17:56:59 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40337</guid>
		<description>@Jose: well, it makes sense in so far as I understand what you&#039;re saying, but it still doesn&#039;t make practical sense: a patent cannot cover an API.

If it was possible, somebody would have done it by now. But there is no such example. Patent law just doesn&#039;t cover specific embodiments: it covers methods of doing things. An API is just a group of words. They&#039;re totally different.</description>
		<content:encoded><![CDATA[<p>@Jose: well, it makes sense in so far as I understand what you&#8217;re saying, but it still doesn&#8217;t make practical sense: a patent cannot cover an API.</p>
<p>If it was possible, somebody would have done it by now. But there is no such example. Patent law just doesn&#8217;t cover specific embodiments: it covers methods of doing things. An API is just a group of words. They&#8217;re totally different.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-39/#comment-40336</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 17:56:57 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40336</guid>
		<description>Do you believe that calling foo() could ever be a patent violation for some foo and some patent? Eg, foo does something described in a patent claim.

If you do, then you are stuck in the sense that you can no longer adhere to the documented semantics for foo without violating the claim.

Now, how do you fix all the lines of code where foo was already used? If you change the semantics of foo&#039;s implementation, the apps could break. If you don&#039;t change it, you are in violation?

Changing some types of semantic information may not matter in practice, but in other cases it certainly can matter. Eg, implementing a bubblesort behind quicksort would violate the defined semantics. In this case, the application may not suffer, but in other cases it may. Generally, the type of sort should not matter, but other functions besides sort methods can prove problematic. I want to give a clear example where being forced to change semantics to something outside of a violated claim would break applications.</description>
		<content:encoded><![CDATA[<p>Do you believe that calling foo() could ever be a patent violation for some foo and some patent? Eg, foo does something described in a patent claim.</p>
<p>If you do, then you are stuck in the sense that you can no longer adhere to the documented semantics for foo without violating the claim.</p>
<p>Now, how do you fix all the lines of code where foo was already used? If you change the semantics of foo&#8217;s implementation, the apps could break. If you don&#8217;t change it, you are in violation?</p>
<p>Changing some types of semantic information may not matter in practice, but in other cases it certainly can matter. Eg, implementing a bubblesort behind quicksort would violate the defined semantics. In this case, the application may not suffer, but in other cases it may. Generally, the type of sort should not matter, but other functions besides sort methods can prove problematic. I want to give a clear example where being forced to change semantics to something outside of a violated claim would break applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose_X</title>
		<link>http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/comment-page-38/#comment-40334</link>
		<dc:creator>Jose_X</dc:creator>
		<pubDate>Sat, 29 Nov 2008 17:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://boycottnovell.com/2008/11/22/protection-for-use-of-mono/#comment-40334</guid>
		<description>The patent is not meant to be of an API, but an API can be an implementation covered by patent claims.. meaning, **if you use part of the API, you would violate a claim.**

In order to avoid prior art, the patent can become more specific in detail arbitrarily approaching the API.

If you use the API, as the API is intended to be used, you would be violating one or more claims of the patent. Semantics of the API implement one or more of the patent claims.

This issue is special because writing any old patent is not going to approach an API in all likelihood unless you design the patent with the API in mind. However, if an API exists, prior art exists; hence, you&#039;d have to write the patent before the API exists but knowledgeable of such an API.

Make sense?</description>
		<content:encoded><![CDATA[<p>The patent is not meant to be of an API, but an API can be an implementation covered by patent claims.. meaning, **if you use part of the API, you would violate a claim.**</p>
<p>In order to avoid prior art, the patent can become more specific in detail arbitrarily approaching the API.</p>
<p>If you use the API, as the API is intended to be used, you would be violating one or more claims of the patent. Semantics of the API implement one or more of the patent claims.</p>
<p>This issue is special because writing any old patent is not going to approach an API in all likelihood unless you design the patent with the API in mind. However, if an API exists, prior art exists; hence, you&#8217;d have to write the patent before the API exists but knowledgeable of such an API.</p>
<p>Make sense?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
