<?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: Deatherage Drivel on X&#8217;s &#8220;Open Formats&#8221;</title>
	<atom:link href="http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/feed" rel="self" type="application/rss+xml" />
	<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats</link>
	<description>The Weblog of Erik J. Barzeski</description>
	<lastBuildDate>Wed, 23 May 2012 23:05:21 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Michael Tsai's Weblog</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1838</link>
		<dc:creator>Michael Tsai's Weblog</dc:creator>
		<pubDate>Sat, 17 Jan 2004 17:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1838</guid>
		<description>&lt;strong&gt;Games&lt;/strong&gt;

Halo didn&#8217;t initially work on my iBook G4; it would always quit just after showing the splash screen. After some weeks, Greg Grimes at MacSoft figured out that I should copy the &#8220;shaders&#8221; folder on the CD into the &#8220;Halo&#8221; ...
</description>
		<content:encoded><![CDATA[<p><strong>Games</strong></p>
<p>Halo didn&rsquo;t initially work on my iBook G4; it would always quit just after showing the splash screen. After some weeks, Greg Grimes at MacSoft figured out that I should copy the &ldquo;shaders&rdquo; folder on the CD into the &ldquo;Halo&rdquo; ...</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anton Rang</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1836</link>
		<dc:creator>Anton Rang</dc:creator>
		<pubDate>Tue, 20 May 2003 05:01:05 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1836</guid>
		<description>A few more examples of how XML is not self-documenting, with examples drawn from iTunes....



Without supporting documents, the range of values isn&#039;t known. For instance, the track ID is listed as an integer. Are negative IDs allowed? Is zero reserved? What about 1? What are the legal values for Genre (a &quot;string&quot;)?



The domains from which values are chosen, and their semantics, aren&#039;t known. For instance, if playlists had IDs (and it&#039;s odd that they don&#039;t), could a playlist ID be the same as a track ID? I can think of plausible implementations which would prohibit this, as well as ones to allow it. For that matter, can a track number be greater than a track count in the same entry? (I have one CD with 12 &quot;listed&quot; tracks and a 13th &quot;hidden&quot; track....)



The semantics of XML elements aren&#039;t known, either. Is it legal to have a playlist with no tracks? What about a playlist in which a track appears more than once? What does it mean when a playlist has &quot;All Items&quot; set to false?



XML is just a way of writing an association list for people who can&#039;t follow LISP.  ;-)



(Also worth noting, though a separate point, is that the iTunes XML representation is still missing a number of fields from the real library, such as equalizer settings.)</description>
		<content:encoded><![CDATA[<p>A few more examples of how XML is not self-documenting, with examples drawn from iTunes....</p>
<p>Without supporting documents, the range of values isn't known. For instance, the track ID is listed as an integer. Are negative IDs allowed? Is zero reserved? What about 1? What are the legal values for Genre (a "string")?</p>
<p>The domains from which values are chosen, and their semantics, aren't known. For instance, if playlists had IDs (and it's odd that they don't), could a playlist ID be the same as a track ID? I can think of plausible implementations which would prohibit this, as well as ones to allow it. For that matter, can a track number be greater than a track count in the same entry? (I have one CD with 12 "listed" tracks and a 13th "hidden" track....)</p>
<p>The semantics of XML elements aren't known, either. Is it legal to have a playlist with no tracks? What about a playlist in which a track appears more than once? What does it mean when a playlist has "All Items" set to false?</p>
<p>XML is just a way of writing an association list for people who can't follow LISP.  <img src='http://nslog.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>(Also worth noting, though a separate point, is that the iTunes XML representation is still missing a number of fields from the real library, such as equalizer settings.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anton Rang</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1835</link>
		<dc:creator>Anton Rang</dc:creator>
		<pubDate>Tue, 20 May 2003 03:39:14 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1835</guid>
		<description>Steven wrote:

&lt;blockquote&gt;People have shown that this XML stuff _IS_ self documenting, because every tag has a name. Every one. Just in the way if you looked at a HTML page without knowing HTML, you can understand that the junk between the  tags is going to be the page title, you can read XML.&lt;/blockquote&gt;



Hmmm&#8230; somehow it&#039;s not intuitively obvious what this extract from my iTunes Music Library indicates:



&lt;key&gt;Smart Info&lt;/key&gt;

&lt;data&gt;

AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAA==

&lt;/data&gt;



On the other hand, I tend to be slightly less enamoured of &quot;open formats&quot; than Matt&#039;s position in his column. I think there&#039;s a solution which is the best of both worlds: A documented file format, and a shared library to access it.



Documenting the file format means that it can be used on another platform, or after the original software has long since passed into oblivion.  This is (almost self-evidently) a good thing.



What&#039;s not so obvious is that documenting the file format can also lead to stagnation. If Apple documents exactly what &quot;Smart Criteria&quot; is, and third party developers begin to rely on that, then Apple can&#039;t change this key because it would break third-party applications.



This is where having a shared library (a framework, for Mac OS X) comes into play. Third parties can use a well-defined API to access files; if Apple updates the file format, they can simply update the API as well. Applications may require updates to take advantage of new features, but they won&#039;t break if the file format changes. (The keychain is an example of how this can work well in practice.)



Providing a shared library allows applications to access files in a supported way; providing file format documentation allows developers on other platforms (or other OS versions) to read and write those files as well.



Building and testing a shared library is much more work, but it&#039;s likely that Apple&#039;s doing much of this anyway with iLife; hopefully they&#039;re not actually writing separate code for iPhoto, iDVD, etc. to access the iTunes library, for instance. Much of the additional work involved would be the documentation (which is, however, a &lt;em&gt;lot&lt;/em&gt; of work).



Using reverse-engineered file formats is sometimes necessary, but it&#039;s always risky. Apple should not be encouraging developers down this path; it&#039;s bad for the developer, bad for Apple, and bad for the platform.</description>
		<content:encoded><![CDATA[<p>Steven wrote:</p>
<blockquote><p>People have shown that this XML stuff _IS_ self documenting, because every tag has a name. Every one. Just in the way if you looked at a HTML page without knowing HTML, you can understand that the junk between the  tags is going to be the page title, you can read XML.</p>
</blockquote>
<p>Hmmm&hellip; somehow it's not intuitively obvious what this extract from my iTunes Music Library indicates:</p>
<p>&lt;key&gt;Smart Info&lt;/key&gt;</p>
<p>&lt;data&gt;</p>
<p>AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</p>
<p>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</p>
<p>AAAAAA==</p>
<p>&lt;/data&gt;</p>
<p>On the other hand, I tend to be slightly less enamoured of "open formats" than Matt's position in his column. I think there's a solution which is the best of both worlds: A documented file format, and a shared library to access it.</p>
<p>Documenting the file format means that it can be used on another platform, or after the original software has long since passed into oblivion.  This is (almost self-evidently) a good thing.</p>
<p>What's not so obvious is that documenting the file format can also lead to stagnation. If Apple documents exactly what "Smart Criteria" is, and third party developers begin to rely on that, then Apple can't change this key because it would break third-party applications.</p>
<p>This is where having a shared library (a framework, for Mac OS X) comes into play. Third parties can use a well-defined API to access files; if Apple updates the file format, they can simply update the API as well. Applications may require updates to take advantage of new features, but they won't break if the file format changes. (The keychain is an example of how this can work well in practice.)</p>
<p>Providing a shared library allows applications to access files in a supported way; providing file format documentation allows developers on other platforms (or other OS versions) to read and write those files as well.</p>
<p>Building and testing a shared library is much more work, but it's likely that Apple's doing much of this anyway with iLife; hopefully they're not actually writing separate code for iPhoto, iDVD, etc. to access the iTunes library, for instance. Much of the additional work involved would be the documentation (which is, however, a <em>lot</em> of work).</p>
<p>Using reverse-engineered file formats is sometimes necessary, but it's always risky. Apple should not be encouraging developers down this path; it's bad for the developer, bad for Apple, and bad for the platform.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik J. Barzeski</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1834</link>
		<dc:creator>Erik J. Barzeski</dc:creator>
		<pubDate>Sun, 18 May 2003 13:28:28 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1834</guid>
		<description>I&#039;ve been using Apple computers since before the Mac. So no, you couldn&#039;t be more off.



BTW, thanks for having the balls to leave a name and an email address or Web site.</description>
		<content:encoded><![CDATA[<p>I've been using Apple computers since before the Mac. So no, you couldn't be more off.</p>
<p>BTW, thanks for having the balls to leave a name and an email address or Web site.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1833</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Sun, 18 May 2003 08:08:08 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1833</guid>
		<description>You&#039;re new to the Mac, right? Mac developers expect APIs they can rely on. Documentation so their applications won&#039;t break with the next update of the OS. NeXT-developers seem to be happy if they can just find some way to do something.



Using XML doesn&#039;t make your file format open or readable. XML is a meta language. A file format based on XML isn&#039;t a priori any more open or readable than any other file format.</description>
		<content:encoded><![CDATA[<p>You're new to the Mac, right? Mac developers expect APIs they can rely on. Documentation so their applications won't break with the next update of the OS. NeXT-developers seem to be happy if they can just find some way to do something.</p>
<p>Using XML doesn't make your file format open or readable. XML is a meta language. A file format based on XML isn't a priori any more open or readable than any other file format.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Deatherage a Doozy? &#124; NSLog();</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1837</link>
		<dc:creator>Deatherage a Doozy? &#124; NSLog();</dc:creator>
		<pubDate>Thu, 10 Apr 2003 15:42:50 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1837</guid>
		<description>It seems Matt Deatherage&#039;s May1 article, the one following his error-laden April article, has also caused some debate, this time with Watson developer Dan Wood....</description>
		<content:encoded><![CDATA[<p>It seems Matt Deatherage's May1 article, the one following his error-laden April article, has also caused some debate, this time with Watson developer Dan Wood....</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik J. Barzeski</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1832</link>
		<dc:creator>Erik J. Barzeski</dc:creator>
		<pubDate>Thu, 10 Apr 2003 14:50:50 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1832</guid>
		<description>Matt, your continued inability to simply read what&#039;s written persists in amazing me. All of a sudden we&#039;re making the integration with iTunes the &quot;main feature&quot; of a program? Do yourself a favor and figure out where anyone said that. It&#039;s hardly the main feature in iMovie, let alone a third party app. It sure as hell ain&#039;t a main feature in Lightbox.



Potential employers? Get off your high horse man. You&#039;re wrong, you&#039;ve been proven to be wrong, and you&#039;re going onward anyway. Get over yourself.



You&#039;ve ignored nearly every point put forward, instead going back to assertions that your &quot;new&quot; definition of the word &quot;can&quot; is fine, that developers haven&#039;t done as I&#039;ve suggested, and all sorts of things. You&#039;re relying on stories about astronauts and mythological stupid developers who can&#039;t write toolbox code. Hearsay won&#039;t win you points. You&#039;re still sitting squarely in the negative.



P.S. WTF does Cocoa have with your inability to realize that the &lt;b&gt; tag works fine. Nothing. Zip, zilch. It &lt;b&gt;works fine, by the way&lt;/b&gt;.



P.P.S. Neener neener, now I have the last word. :-P</description>
		<content:encoded><![CDATA[<p>Matt, your continued inability to simply read what's written persists in amazing me. All of a sudden we're making the integration with iTunes the "main feature" of a program? Do yourself a favor and figure out where anyone said that. It's hardly the main feature in iMovie, let alone a third party app. It sure as hell ain't a main feature in Lightbox.</p>
<p>Potential employers? Get off your high horse man. You're wrong, you've been proven to be wrong, and you're going onward anyway. Get over yourself.</p>
<p>You've ignored nearly every point put forward, instead going back to assertions that your "new" definition of the word "can" is fine, that developers haven't done as I've suggested, and all sorts of things. You're relying on stories about astronauts and mythological stupid developers who can't write toolbox code. Hearsay won't win you points. You're still sitting squarely in the negative.</p>
<p>P.S. WTF does Cocoa have with your inability to realize that the &lt;b&gt; tag works fine. Nothing. Zip, zilch. It <b>works fine, by the way</b>.</p>
<p>P.P.S. Neener neener, now I have the last word. <img src='http://nslog.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Deatherage</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1831</link>
		<dc:creator>Matt Deatherage</dc:creator>
		<pubDate>Thu, 10 Apr 2003 06:51:33 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1831</guid>
		<description>Once upon a time, back in the olden days, a developer wrote in to our group complaining that his application didn&#039;t work properly. The toolbox was malfunctioning, and could we please figure out what the problem was.



Back in those days, toolbox dependencies were a bit tricky, and the tools had to be started in a certain order, not like today where the OS initializes everything for you (more RAM is a wonderful thing).  The required order was carefully documented, but these developers had almost completely ignored it.  By starting some tools before others they required were available, the entire system got confused.



One of our engineers spent some time on behalf of the developer and rewrote his toolbox initialization code, with all the calls and allocations in the right order.  He plugged it into the developer&#039;s program, and like magic, every problem the developer had complained about went away.  Every bug they had blamed on the toolbox just vanished when everything was done properly.  So the engineer sent the code back to the developer with the assurance that this would fix every problem they&#039;d reported.



The developer responded the next day:  &quot;Thanks, but we like the order we were starting the tools in.  Please tell us how to fix the problems without changing the tool initialization order.&quot;



The moral of the story: if a programmer is bound and determined to believe something, no amount of logic will convince him otherwise.  If you folks want to continue to believe that basing a product&#039;s main features on unsupported data structures is just fine because you are sure you understand every possible value and what it means, that&#039;s your choice.



It&#039;s also a red flag warning to anyone who&#039;s been involved in professional computing not to take your software seriously.  How do you know to check for a &quot;nil key&quot; if you don&#039;t know if NIL is a legal value?  How can you check against a DTD that doesn&#039;t exist?  I see the versioning in AlbumData.xml -- what does it mean? Do you &lt;strong&gt;know&lt;/strong&gt; that a change in the minor version means all the elements remain the same? What about a change in the application version?  In the build number?



No, you don&#039;t know. You&#039;re guessing, and you&#039;re betting your users&#039; productivity that it won&#039;t break.  If you want to laugh at that, be my guest. You should just hope potential employers don&#039;t read you advocating it before any job interviews.  I&#039;m obviously not going to convince you that using undocumented and unsupported data structures is a bad idea, so have all the fun you want doing it.  Just have the courtesy to tell your users what you&#039;re doing so they don&#039;t find out the hard way with iPhoto 3 or iTunes 4.



Steven: no one&#039;s saying that file formats don&#039;t change during development.  They even change between versions.  In fact, that&#039;s the entire point.



(By the way, although the comment system says the &quot;b&quot; tag is supported, it doesn&#039;t do anything; you have to type the much longer &quot;strong&quot; to get boldface.  Gotta love the Cocoa way.)</description>
		<content:encoded><![CDATA[<p>Once upon a time, back in the olden days, a developer wrote in to our group complaining that his application didn't work properly. The toolbox was malfunctioning, and could we please figure out what the problem was.</p>
<p>Back in those days, toolbox dependencies were a bit tricky, and the tools had to be started in a certain order, not like today where the OS initializes everything for you (more RAM is a wonderful thing).  The required order was carefully documented, but these developers had almost completely ignored it.  By starting some tools before others they required were available, the entire system got confused.</p>
<p>One of our engineers spent some time on behalf of the developer and rewrote his toolbox initialization code, with all the calls and allocations in the right order.  He plugged it into the developer's program, and like magic, every problem the developer had complained about went away.  Every bug they had blamed on the toolbox just vanished when everything was done properly.  So the engineer sent the code back to the developer with the assurance that this would fix every problem they'd reported.</p>
<p>The developer responded the next day:  "Thanks, but we like the order we were starting the tools in.  Please tell us how to fix the problems without changing the tool initialization order."</p>
<p>The moral of the story: if a programmer is bound and determined to believe something, no amount of logic will convince him otherwise.  If you folks want to continue to believe that basing a product's main features on unsupported data structures is just fine because you are sure you understand every possible value and what it means, that's your choice.</p>
<p>It's also a red flag warning to anyone who's been involved in professional computing not to take your software seriously.  How do you know to check for a "nil key" if you don't know if NIL is a legal value?  How can you check against a DTD that doesn't exist?  I see the versioning in AlbumData.xml -- what does it mean? Do you <strong>know</strong> that a change in the minor version means all the elements remain the same? What about a change in the application version?  In the build number?</p>
<p>No, you don't know. You're guessing, and you're betting your users' productivity that it won't break.  If you want to laugh at that, be my guest. You should just hope potential employers don't read you advocating it before any job interviews.  I'm obviously not going to convince you that using undocumented and unsupported data structures is a bad idea, so have all the fun you want doing it.  Just have the courtesy to tell your users what you're doing so they don't find out the hard way with iPhoto 3 or iTunes 4.</p>
<p>Steven: no one's saying that file formats don't change during development.  They even change between versions.  In fact, that's the entire point.</p>
<p>(By the way, although the comment system says the "b" tag is supported, it doesn't do anything; you have to type the much longer "strong" to get boldface.  Gotta love the Cocoa way.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Canfield</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1830</link>
		<dc:creator>Steven Canfield</dc:creator>
		<pubDate>Thu, 10 Apr 2003 05:27:08 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1830</guid>
		<description>Not to rob the grave here, but I have a question. NSStatusBars have been done, to death. People have proven they can access the iTunes XML file. People have proven they can access the iPhoto XML file. People have shown that this XML stuff _IS_ self documenting, because every tag has a name. Every one. Just in the way if you looked at a HTML page without knowing HTML, you can understand that the junk between the  tags is going to be the page title, you can read XML. If you can&#039;t, you&#039;re daft. Or, the programmer has gone out of his way to name his keys something odd, JUST to screw you up. Look at the iTunes XML: things like &quot;Name&quot;, &quot;Bit Rate&quot;, and &quot;Artist&quot;.

And so the point is this: Apple may not be officially supporting these things, but it&#039;s perfectly within your grasp to use them. If Toast wanted to read your playlist, they could. That they don&#039;t is either a knock against them for laziness or proof that they don&#039;t want to.



Matt, your comparisons make no sense. How often, in the development of a piece of software (perhaps a less well planned one) does the file format change? I&#039;d say fairly often. Developers can cope.</description>
		<content:encoded><![CDATA[<p>Not to rob the grave here, but I have a question. NSStatusBars have been done, to death. People have proven they can access the iTunes XML file. People have proven they can access the iPhoto XML file. People have shown that this XML stuff _IS_ self documenting, because every tag has a name. Every one. Just in the way if you looked at a HTML page without knowing HTML, you can understand that the junk between the  tags is going to be the page title, you can read XML. If you can't, you're daft. Or, the programmer has gone out of his way to name his keys something odd, JUST to screw you up. Look at the iTunes XML: things like "Name", "Bit Rate", and "Artist".</p>
<p>And so the point is this: Apple may not be officially supporting these things, but it's perfectly within your grasp to use them. If Toast wanted to read your playlist, they could. That they don't is either a knock against them for laziness or proof that they don't want to.</p>
<p>Matt, your comparisons make no sense. How often, in the development of a piece of software (perhaps a less well planned one) does the file format change? I'd say fairly often. Developers can cope.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik J. Barzeski</title>
		<link>http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats#comment-1829</link>
		<dc:creator>Erik J. Barzeski</dc:creator>
		<pubDate>Thu, 10 Apr 2003 04:52:27 +0000</pubDate>
		<guid isPermaLink="false">http://nslog.com/2003/04/08/deatherage_drivel_on_xs_open_formats/#comment-1829</guid>
		<description>From the Apple document you seem happy to quote so quickly: &quot;Last Updated June 2002&quot;. Gee, that would be&#8230; before Jaguar shipped, and before Apple created a supported method - NSStatusBar/Item - to do menu bar items.



You&#039;re wrong about the XML DTDs and whatnot. You&#039;re wrong in assuming that&#039;d &quot;break&quot; an app where any developer worth their salt would put in a check on a nil key or something. &lt;strong&gt;Have&lt;/strong&gt; developers done this? No. &lt;strong&gt;Can&lt;/strong&gt; they? You bet your ass they can. OmniGroup is. I have. Josh has. Others have too.



Part of my argument may be a semantic one, but your &quot;space suit&quot; argument really doesn&#039;t help your cause at all. It&#039;s a laughable analogy. And as for the insults, well, I&#039;ll continue to make mine blatant in favor of your backhanded &quot;good luck with your semantic degree&quot; variety.



Anyway, do yourself a favor and look at iPhoto&#039;s XML file. See the versioning? See the major/minor versions? I&#039;ll give you one thing: it&#039;s a bugger that this isn&#039;t &quot;official&quot; in some capacity, but guess what? Even if Apple published a spec there&#039;d be nothing to stop them from upgrading the format or improving it in the future. It&#039;s published in a DTD&#039;d XML format. That&#039;s as open as it needs to be to allow developers to work with it. Third-party developers have and will continue to do so.



You remain wrong, Matt. But hey, feel free to continue to delude yourself. :-) After all, it&#039;s a free country.</description>
		<content:encoded><![CDATA[<p>From the Apple document you seem happy to quote so quickly: "Last Updated June 2002". Gee, that would be&hellip; before Jaguar shipped, and before Apple created a supported method - NSStatusBar/Item - to do menu bar items.</p>
<p>You're wrong about the XML DTDs and whatnot. You're wrong in assuming that'd "break" an app where any developer worth their salt would put in a check on a nil key or something. <strong>Have</strong> developers done this? No. <strong>Can</strong> they? You bet your ass they can. OmniGroup is. I have. Josh has. Others have too.</p>
<p>Part of my argument may be a semantic one, but your "space suit" argument really doesn't help your cause at all. It's a laughable analogy. And as for the insults, well, I'll continue to make mine blatant in favor of your backhanded "good luck with your semantic degree" variety.</p>
<p>Anyway, do yourself a favor and look at iPhoto's XML file. See the versioning? See the major/minor versions? I'll give you one thing: it's a bugger that this isn't "official" in some capacity, but guess what? Even if Apple published a spec there'd be nothing to stop them from upgrading the format or improving it in the future. It's published in a DTD'd XML format. That's as open as it needs to be to allow developers to work with it. Third-party developers have and will continue to do so.</p>
<p>You remain wrong, Matt. But hey, feel free to continue to delude yourself. <img src='http://nslog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  After all, it's a free country.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

