<?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: Apple Rejects Mono; Moonlight Marching Orders</title>
	<atom:link href="http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/feed/" rel="self" type="application/rss+xml" />
	<link>http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/</link>
	<description>Fire is the one, who inspires and protects truth.</description>
	<lastBuildDate>Sun, 20 Dec 2009 07:04:36 +0900</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Richard</title>
		<link>http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/comment-page-1/#comment-1555</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Tue, 17 Nov 2009 09:05:51 +0000</pubDate>
		<guid isPermaLink="false">http://mono-nono.com/?p=604#comment-1555</guid>
		<description>Jason,

IMHO, it&#039;s &lt;a href=&quot;http://www.rogueamoeba.com/utm/2009/11/13/airfoil-speakers-touch-1-0-1-finally-ships/&quot; rel=&quot;nofollow&quot;&gt;arbitrary&lt;/a&gt;, and in your opinion, it&#039;s not.  I think you could stand to talk to a few people who&#039;ve had their apps rejected, though.  You&#039;d be surprised at the sheer frustration that comes of knowing that other apps -- or ever previous versions of your OWN apps! -- use X functionality, but now (because they&#039;re &quot;tightening&quot; regulations, or because Venus isn&#039;t aligned, or because Jobs&#039; feng shui is out-of-kilter) it&#039;s not OK.  In 3 months&#039; (or 2 weeks&#039;) time, it might be OK again, or maybe it will be OK for your direct competitor, but certainly not for you.  Or it will be OK as long as you change the background-color, or load exactly the same image via a plain-HTTP webpage rather than via a JSON-using request to the webpage.

But on to matters that are technical, and not subjective...

&lt;blockquote&gt;No. It appears that Unity APIs in turn called private functions – something they did not need to do, nor should have done. This certainly COULD allow naughty behavior. We know this was a part of the Unity API, because Unity admitted it was so.&lt;/blockquote&gt;

Nope.  If I build a framework that calls NaughtyFunction7(), and take the GUID or string that it gives me, and correlate that with something else so that I can return &quot;true&quot; or &quot;false&quot; through my API function ICanHasCheezburger(), how could that possibly allow for any sort of naughty behaviour?

But the point is moot.  Unity has removed the problem, and it&#039;ll now be up to Apple to reject the app on other grounds (maybe the logo that is used has a flat edge, and it should be rounded -- oh horror!).</description>
		<content:encoded><![CDATA[<p>Jason,</p>
<p>IMHO, it&#8217;s <a href="http://www.rogueamoeba.com/utm/2009/11/13/airfoil-speakers-touch-1-0-1-finally-ships/" rel="nofollow">arbitrary</a>, and in your opinion, it&#8217;s not.  I think you could stand to talk to a few people who&#8217;ve had their apps rejected, though.  You&#8217;d be surprised at the sheer frustration that comes of knowing that other apps &#8212; or ever previous versions of your OWN apps! &#8212; use X functionality, but now (because they&#8217;re &#8220;tightening&#8221; regulations, or because Venus isn&#8217;t aligned, or because Jobs&#8217; feng shui is out-of-kilter) it&#8217;s not OK.  In 3 months&#8217; (or 2 weeks&#8217;) time, it might be OK again, or maybe it will be OK for your direct competitor, but certainly not for you.  Or it will be OK as long as you change the background-color, or load exactly the same image via a plain-HTTP webpage rather than via a JSON-using request to the webpage.</p>
<p>But on to matters that are technical, and not subjective&#8230;</p>
<blockquote><p>No. It appears that Unity APIs in turn called private functions – something they did not need to do, nor should have done. This certainly COULD allow naughty behavior. We know this was a part of the Unity API, because Unity admitted it was so.</p></blockquote>
<p>Nope.  If I build a framework that calls NaughtyFunction7(), and take the GUID or string that it gives me, and correlate that with something else so that I can return &#8220;true&#8221; or &#8220;false&#8221; through my API function ICanHasCheezburger(), how could that possibly allow for any sort of naughty behaviour?</p>
<p>But the point is moot.  Unity has removed the problem, and it&#8217;ll now be up to Apple to reject the app on other grounds (maybe the logo that is used has a flat edge, and it should be rounded &#8212; oh horror!).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/comment-page-1/#comment-1551</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 17 Nov 2009 06:49:41 +0000</pubDate>
		<guid isPermaLink="false">http://mono-nono.com/?p=604#comment-1551</guid>
		<description>Richard,

This was the specific reason given by Apple for rejection, and in fact, Unity has claimed to remove any calls to those private functions in order to solve the problem. So, bringing up how arbitrary Apple might be in other cases is not relevant here - this case was not arbitrary, it was specifically given by Apple and responded to by Unity. In fact, it was the abuse of another company using similar private API calls that caused Apple to tighten its enforcement of existing rules. There is not one single thing arbitrary about the rejections. This is what a rejection from Apple looked like:

&lt;blockquote&gt;
... cannot be posted to the App Store due to the usage of private API. Usage of such non-public API, as outlined in the iPhone Developer Program License Agreement section 3.3.1, is prohibited: 

&quot;3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.&quot; 

The following non-public APIs are included in your application: _NSGetEnviron 
exc_server
&lt;/blockquote&gt;

This is clearly documented in the Touch Arcade story, on the Unity Community Forums, and even the official Unity  blog. Why do people insist on quibbling or flatly denying reality?

&lt;blockquote&gt;Unless it publishes them externally, it certainly does NOT “allow some naughty behavior”. Are they part of the Unity API? We don’t know.&lt;/blockquote&gt;

No. It appears that Unity APIs in turn called private functions - something they did not need to do, nor should have done. This certainly COULD allow naughty behavior. We know this was a part of the Unity API, &lt;strong&gt;because Unity admitted it was so.&lt;/strong&gt;

In any case, I sincerly doubt there is any possible way I could summarize the news without pedantic and pointless uninformed challenges.

AAAAnyway, as for the .NET Micro Framework, yes I&#039;ve read the news. I almost made a post about it, but I&#039;ll put my thoughts here since you brought it up.

In the roughest terms: I like to see any project be open sourced. Each concession Microsoft makes I consider good, because it both reinforces Open Source as the preferred choice and hastens the decline of Microsoft&#039;s influence. Both are powerful wins for users.

It&#039;s also funny to me that Microsoft can not release the TCP/IP stack in the .NET Micro Framework because of its restrictive license, especially in the context that Microsoft used to use a BSD-licensed TCP/IP stack in its flagship Windows OS code!

It makes me ponder what would happen if Microsoft went whole hog and open-sourced the .NET Framework proper (or as much of it as they legally could). I think an open-source .NET would kill Mono, which puts Mono in a strange position, philosophically speaking. 

As far as your interesting wording about &quot;the thought of what the community can use it for&quot;; I suspect that all depends on how you define &quot;the community&quot;. Outside of Novell, and maybe 1-2 steps removed, I don&#039;t see Mono being used for much. I doubt that community will do much with .NET Micro Framework.

I&#039;m far more interested in Go in the context of Open Source tools being championed by large corporations.</description>
		<content:encoded><![CDATA[<p>Richard,</p>
<p>This was the specific reason given by Apple for rejection, and in fact, Unity has claimed to remove any calls to those private functions in order to solve the problem. So, bringing up how arbitrary Apple might be in other cases is not relevant here &#8211; this case was not arbitrary, it was specifically given by Apple and responded to by Unity. In fact, it was the abuse of another company using similar private API calls that caused Apple to tighten its enforcement of existing rules. There is not one single thing arbitrary about the rejections. This is what a rejection from Apple looked like:</p>
<blockquote><p>
&#8230; cannot be posted to the App Store due to the usage of private API. Usage of such non-public API, as outlined in the iPhone Developer Program License Agreement section 3.3.1, is prohibited: </p>
<p>&#8220;3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.&#8221; </p>
<p>The following non-public APIs are included in your application: _NSGetEnviron<br />
exc_server
</p></blockquote>
<p>This is clearly documented in the Touch Arcade story, on the Unity Community Forums, and even the official Unity  blog. Why do people insist on quibbling or flatly denying reality?</p>
<blockquote><p>Unless it publishes them externally, it certainly does NOT “allow some naughty behavior”. Are they part of the Unity API? We don’t know.</p></blockquote>
<p>No. It appears that Unity APIs in turn called private functions &#8211; something they did not need to do, nor should have done. This certainly COULD allow naughty behavior. We know this was a part of the Unity API, <strong>because Unity admitted it was so.</strong></p>
<p>In any case, I sincerly doubt there is any possible way I could summarize the news without pedantic and pointless uninformed challenges.</p>
<p>AAAAnyway, as for the .NET Micro Framework, yes I&#8217;ve read the news. I almost made a post about it, but I&#8217;ll put my thoughts here since you brought it up.</p>
<p>In the roughest terms: I like to see any project be open sourced. Each concession Microsoft makes I consider good, because it both reinforces Open Source as the preferred choice and hastens the decline of Microsoft&#8217;s influence. Both are powerful wins for users.</p>
<p>It&#8217;s also funny to me that Microsoft can not release the TCP/IP stack in the .NET Micro Framework because of its restrictive license, especially in the context that Microsoft used to use a BSD-licensed TCP/IP stack in its flagship Windows OS code!</p>
<p>It makes me ponder what would happen if Microsoft went whole hog and open-sourced the .NET Framework proper (or as much of it as they legally could). I think an open-source .NET would kill Mono, which puts Mono in a strange position, philosophically speaking. </p>
<p>As far as your interesting wording about &#8220;the thought of what the community can use it for&#8221;; I suspect that all depends on how you define &#8220;the community&#8221;. Outside of Novell, and maybe 1-2 steps removed, I don&#8217;t see Mono being used for much. I doubt that community will do much with .NET Micro Framework.</p>
<p>I&#8217;m far more interested in Go in the context of Open Source tools being championed by large corporations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/comment-page-1/#comment-1550</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Tue, 17 Nov 2009 05:44:17 +0000</pubDate>
		<guid isPermaLink="false">http://mono-nono.com/?p=604#comment-1550</guid>
		<description>Jason,

I think that what the Julian is trying to say is that this section of your article:

&lt;blockquote&gt;Part of the problem is because the Unity engine appears to allow some naughty behavior:&lt;/blockquote&gt;

... is incorrect.  Sure, it may use those calls internally.  Unless it publishes them externally, it certainly does NOT &quot;allow some naughty behavior&quot;.  Are they part of the Unity API?  We don&#039;t know.

I doubt that this sentence:

&lt;blockquote&gt;Apparently, the Unity engine – which is built on Mono – uses some API calls that Apple disapproves of, cause apps to be rejected left and right.&lt;/blockquote&gt;

... is entirely accurate, either.  The approval process is effectively a crap-shoot: there are hundreds (perhaps thousands, now?) of articles that bemoan the near-arbitrary nature of Apple&#039;s decisions.  These days, it seems just as sensible to blame the alignment of Mars and Neptune as to blame the framework you&#039;re using...

By the way, have you heard the excellent news?  Just out today, the .Net Micro Framework is being open-sourced (under Apache 2.0)!  Even though I don&#039;t do embedded system development, I&#039;m quite excited by the thought of what the community can use it for.  And Don Syme is heading towards releasing the F# PowerPack, and other parts of F#, under a permissive license -- perhaps MsPL, or even BSD!  Announcements like these are like early Christmas presents :).</description>
		<content:encoded><![CDATA[<p>Jason,</p>
<p>I think that what the Julian is trying to say is that this section of your article:</p>
<blockquote><p>Part of the problem is because the Unity engine appears to allow some naughty behavior:</p></blockquote>
<p>&#8230; is incorrect.  Sure, it may use those calls internally.  Unless it publishes them externally, it certainly does NOT &#8220;allow some naughty behavior&#8221;.  Are they part of the Unity API?  We don&#8217;t know.</p>
<p>I doubt that this sentence:</p>
<blockquote><p>Apparently, the Unity engine – which is built on Mono – uses some API calls that Apple disapproves of, cause apps to be rejected left and right.</p></blockquote>
<p>&#8230; is entirely accurate, either.  The approval process is effectively a crap-shoot: there are hundreds (perhaps thousands, now?) of articles that bemoan the near-arbitrary nature of Apple&#8217;s decisions.  These days, it seems just as sensible to blame the alignment of Mars and Neptune as to blame the framework you&#8217;re using&#8230;</p>
<p>By the way, have you heard the excellent news?  Just out today, the .Net Micro Framework is being open-sourced (under Apache 2.0)!  Even though I don&#8217;t do embedded system development, I&#8217;m quite excited by the thought of what the community can use it for.  And Don Syme is heading towards releasing the F# PowerPack, and other parts of F#, under a permissive license &#8212; perhaps MsPL, or even BSD!  Announcements like these are like early Christmas presents <img src='http://mono-nono.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/comment-page-1/#comment-1544</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 17 Nov 2009 01:38:03 +0000</pubDate>
		<guid isPermaLink="false">http://mono-nono.com/?p=604#comment-1544</guid>
		<description>Julian,

&lt;strong&gt;On the first&lt;/strong&gt; 

The Unity game engine uses Mono and according the thread on the Unity forums the APIs are: 
&lt;blockquote&gt;used by Mono runtime to provide implementation of .NET core API method: Environment.GetEnvironmentVariable().

exc_server is also used by Mono runtime to provide gracefull NULL reference exception handling.
&lt;/blockquote&gt;

So it has something to do with Mono beyond the letters in the name. 

According to Unity the scripting is built &quot;on&quot; Mono and Mono is used to extend Unity. Quibble with the phrasing as much as you like, Unity uses Mono extensively.

&lt;strong&gt;On the second&lt;/strong&gt;

There is no question that Microsoft&#039;s so-called &quot;covenant&quot; on Moonlight only applies to Linux so long as it come directly from Novell and no other Linux distribution.

&lt;blockquote&gt;
&quot;Intermediate Recipients&quot; means resellers, recipients, and distributors to the extent they are authorized (directly or indirectly) by Novell or its Subsidiaries to resell, license, supply, distribute or otherwise make available Moonlight Implementations (whether the resale, licensing, supplying, making available, or distribution is on a stand-alone basis, or on an OEM basis as bundled with hardware or other software of the reseller or distributor, or otherwise, so long as it is not bundled with a Linux operating system other than Novell-branded operating system software), except for resellers, recipients, or distributors who are in the business of offering their own branded operating system software.
&lt;/blockquote&gt;

Furthermore, the so-called &quot;covenant&quot; does not cover future versions of Moonlight or Silverlight and explictly excludes GPLv3:
&lt;blockquote&gt;“Moonlight Implementation” means only those specific portions of Moonlight 1.0 or Moonlight 2 that run only as a plug-in to a browser on a Personal Computer and are not licensed under GPLv3 or a Similar License. &lt;/blockquote&gt;

Furthermore, the so-called &quot;covenant&quot; expires in less than two years:
&lt;blockquote&gt;
“Term” The term of this Agreement will commence on the Effective Date and continue through September 1, 2011, unless terminated earlier under the Agreement. 
&lt;/blockquote&gt;

My understanding of the media codecs that Moonlight/Silverlight needs is based on Miguel de Icaza&#039;s own words:

&lt;blockquote&gt;Today if you download Moonlight&#039;s source code you can build it with either the ffmpeg codecs or you can let Moonlight fetch the binary Microsoft Media Pack and use Microsoft&#039;s codecs on Linux. &lt;/blockquote&gt;

So, you can compile yourself (but not redistribute safely under the covenant - that&#039;s a technical solution, but not a realistic one.

Or, you can use Microsoft binary codecs with whatever restrictions Microsoft chooses to implement, which are at least:
&lt;blockquote&gt;
Microsoft will make the codecs for video and audio available to users of Moonlight from their web site. The codecs will be binary codecs, and they will only be licensed for use with Moonlight on a web browser (sorry, those are the rules for the Media codecs[1]). 
&lt;/blockquote&gt;

There may be other restrictions on the codecs - there&#039;s not much point in looking beyond the above I&#039;d say.

&lt;strong&gt;HOWEVER&lt;/strong&gt;, if you can show how a video editing solution built in Moonlight would &lt;strong&gt;NOT&lt;/strong&gt; rely on some closed binary codecs, each end-user compiling code or direct distribution only from Microsoft-approved Novell, then I would be glad to follow your explanation. Personally, I don&#039;t cotton much to the idea of Microsoft dictating what flavor of Linux I can use. 

Or, as an alternative, if you could explain exactly why anyone that cares about FLOSS would think all that above Moonlight covenant garbage is even worth bothering with. What exactly is so attractive about Silverlight that people professing to place freedom as some sort of interest would even bother with something under such requirements? That&#039;s a very interesting point to me.

In summary you can call it &quot;tinfoil hat&quot; if you like, but it seems to me that Novell and Mr. de Icaza continue to seek out ways to make Linux &lt;strong&gt;more dependant&lt;/strong&gt; on Microsoft, rather than more independent. I think that of all possible application spaces, it is strange that Novell and Team Mono continue to &quot;coincidentally&quot; target such areas.</description>
		<content:encoded><![CDATA[<p>Julian,</p>
<p><strong>On the first</strong> </p>
<p>The Unity game engine uses Mono and according the thread on the Unity forums the APIs are: </p>
<blockquote><p>used by Mono runtime to provide implementation of .NET core API method: Environment.GetEnvironmentVariable().</p>
<p>exc_server is also used by Mono runtime to provide gracefull NULL reference exception handling.
</p></blockquote>
<p>So it has something to do with Mono beyond the letters in the name. </p>
<p>According to Unity the scripting is built &#8220;on&#8221; Mono and Mono is used to extend Unity. Quibble with the phrasing as much as you like, Unity uses Mono extensively.</p>
<p><strong>On the second</strong></p>
<p>There is no question that Microsoft&#8217;s so-called &#8220;covenant&#8221; on Moonlight only applies to Linux so long as it come directly from Novell and no other Linux distribution.</p>
<blockquote><p>
&#8220;Intermediate Recipients&#8221; means resellers, recipients, and distributors to the extent they are authorized (directly or indirectly) by Novell or its Subsidiaries to resell, license, supply, distribute or otherwise make available Moonlight Implementations (whether the resale, licensing, supplying, making available, or distribution is on a stand-alone basis, or on an OEM basis as bundled with hardware or other software of the reseller or distributor, or otherwise, so long as it is not bundled with a Linux operating system other than Novell-branded operating system software), except for resellers, recipients, or distributors who are in the business of offering their own branded operating system software.
</p></blockquote>
<p>Furthermore, the so-called &#8220;covenant&#8221; does not cover future versions of Moonlight or Silverlight and explictly excludes GPLv3:</p>
<blockquote><p>“Moonlight Implementation” means only those specific portions of Moonlight 1.0 or Moonlight 2 that run only as a plug-in to a browser on a Personal Computer and are not licensed under GPLv3 or a Similar License. </p></blockquote>
<p>Furthermore, the so-called &#8220;covenant&#8221; expires in less than two years:</p>
<blockquote><p>
“Term” The term of this Agreement will commence on the Effective Date and continue through September 1, 2011, unless terminated earlier under the Agreement.
</p></blockquote>
<p>My understanding of the media codecs that Moonlight/Silverlight needs is based on Miguel de Icaza&#8217;s own words:</p>
<blockquote><p>Today if you download Moonlight&#8217;s source code you can build it with either the ffmpeg codecs or you can let Moonlight fetch the binary Microsoft Media Pack and use Microsoft&#8217;s codecs on Linux. </p></blockquote>
<p>So, you can compile yourself (but not redistribute safely under the covenant &#8211; that&#8217;s a technical solution, but not a realistic one.</p>
<p>Or, you can use Microsoft binary codecs with whatever restrictions Microsoft chooses to implement, which are at least:</p>
<blockquote><p>
Microsoft will make the codecs for video and audio available to users of Moonlight from their web site. The codecs will be binary codecs, and they will only be licensed for use with Moonlight on a web browser (sorry, those are the rules for the Media codecs[1]).
</p></blockquote>
<p>There may be other restrictions on the codecs &#8211; there&#8217;s not much point in looking beyond the above I&#8217;d say.</p>
<p><strong>HOWEVER</strong>, if you can show how a video editing solution built in Moonlight would <strong>NOT</strong> rely on some closed binary codecs, each end-user compiling code or direct distribution only from Microsoft-approved Novell, then I would be glad to follow your explanation. Personally, I don&#8217;t cotton much to the idea of Microsoft dictating what flavor of Linux I can use. </p>
<p>Or, as an alternative, if you could explain exactly why anyone that cares about FLOSS would think all that above Moonlight covenant garbage is even worth bothering with. What exactly is so attractive about Silverlight that people professing to place freedom as some sort of interest would even bother with something under such requirements? That&#8217;s a very interesting point to me.</p>
<p>In summary you can call it &#8220;tinfoil hat&#8221; if you like, but it seems to me that Novell and Mr. de Icaza continue to seek out ways to make Linux <strong>more dependant</strong> on Microsoft, rather than more independent. I think that of all possible application spaces, it is strange that Novell and Team Mono continue to &#8220;coincidentally&#8221; target such areas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Julian</title>
		<link>http://mono-nono.com/2009/11/13/apple-rejects-mono-moonlight-marching-orders/comment-page-1/#comment-1526</link>
		<dc:creator>Julian</dc:creator>
		<pubDate>Mon, 16 Nov 2009 02:42:33 +0000</pubDate>
		<guid isPermaLink="false">http://mono-nono.com/?p=604#comment-1526</guid>
		<description>On the first: Am I the only one missing how this has anything to do with Mono? The fact that Mono was used here seems about as relevant as the fact that &quot;Mono&quot; and &quot;iPhone&quot; both have the letters &#039;n&#039; and &#039;o&#039; in them. Not to mention that to say that Unity is &quot;built on Mono&quot; is more than slightly inaccurate. 

On the second: Would you like fries with your tinfoil hat?</description>
		<content:encoded><![CDATA[<p>On the first: Am I the only one missing how this has anything to do with Mono? The fact that Mono was used here seems about as relevant as the fact that &#8220;Mono&#8221; and &#8220;iPhone&#8221; both have the letters &#8216;n&#8217; and &#8216;o&#8217; in them. Not to mention that to say that Unity is &#8220;built on Mono&#8221; is more than slightly inaccurate. </p>
<p>On the second: Would you like fries with your tinfoil hat?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
