<?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: Handling Dock Icon Drags From iTunes</title>
	<atom:link href="http://www.supermegaultragroovy.com/blog/2009/02/23/handling-dock-icon-drags-from-itunes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.supermegaultragroovy.com/blog/2009/02/23/handling-dock-icon-drags-from-itunes/</link>
	<description>Chris Liscio's Boo-urns Log</description>
	<lastBuildDate>Sun, 04 Jul 2010 15:10:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: jrk</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/02/23/handling-dock-icon-drags-from-itunes/comment-page-1/#comment-78456</link>
		<dc:creator>jrk</dc:creator>
		<pubDate>Sat, 05 Sep 2009 14:26:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=386#comment-78456</guid>
		<description>thanks man! i was sitting for days at that problem \o/</description>
		<content:encoded><![CDATA[<p>thanks man! i was sitting for days at that problem \o/</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: todd</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/02/23/handling-dock-icon-drags-from-itunes/comment-page-1/#comment-69252</link>
		<dc:creator>todd</dc:creator>
		<pubDate>Thu, 23 Apr 2009 15:39:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=386#comment-69252</guid>
		<description>My read of UTTypeCreatePreferredIdentifierForTag suggests that it&#039;ll use an algorithm to create a dynamic tag but that once the system defines a tag it&#039;ll return the system defined one.

some wild guessing suggests that: on application launch and quit you could update your info.plist with the result of this function and you&#039;d always be using the best one offered by the system.  So it might get off for one launch (they ran system update and your app wasn&#039;t running), but it&#039;d fix itself on launch or exit.   Be interesting to try it and see how it worked.  Might take care of the problem of someone else defining it because your app would always use the preferred tag and so always get invoked...?

thoughts?</description>
		<content:encoded><![CDATA[<p>My read of UTTypeCreatePreferredIdentifierForTag suggests that it&#8217;ll use an algorithm to create a dynamic tag but that once the system defines a tag it&#8217;ll return the system defined one.</p>
<p>some wild guessing suggests that: on application launch and quit you could update your info.plist with the result of this function and you&#8217;d always be using the best one offered by the system.  So it might get off for one launch (they ran system update and your app wasn&#8217;t running), but it&#8217;d fix itself on launch or exit.   Be interesting to try it and see how it worked.  Might take care of the problem of someone else defining it because your app would always use the preferred tag and so always get invoked&#8230;?</p>
<p>thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/02/23/handling-dock-icon-drags-from-itunes/comment-page-1/#comment-64570</link>
		<dc:creator>chris</dc:creator>
		<pubDate>Tue, 24 Feb 2009 12:40:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=386#comment-64570</guid>
		<description>I&#039;m not sure how UTTypeCreatePreferredIdentifierForTag will help. The UTI must exist in a way that it can be specified in a plist file, in the list of services exposed by an application. That way, dock drags to a non-running instance of your application will also work.

AFAIK, the above function returns a dynamic UTI, which you&#039;re not guaranteed to be the same between runs, correct?</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure how UTTypeCreatePreferredIdentifierForTag will help. The UTI must exist in a way that it can be specified in a plist file, in the list of services exposed by an application. That way, dock drags to a non-running instance of your application will also work.</p>
<p>AFAIK, the above function returns a dynamic UTI, which you&#8217;re not guaranteed to be the same between runs, correct?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: natevw</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/02/23/handling-dock-icon-drags-from-itunes/comment-page-1/#comment-64549</link>
		<dc:creator>natevw</dc:creator>
		<pubDate>Tue, 24 Feb 2009 03:08:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=386#comment-64549</guid>
		<description>Thanks for the tips, this will be helpful for us as we enable dragging to our app icons. However, I would still caution that this is a fragile solution, as most use of UTIs ends up being. (rdar://problem/6590416)

One of our applications was designed to use a UTI (we carefully crafted and posted it to an appropriate forum) for filtering files. Some users ended up not being able to open any files, because another app had grabbed the same extension and slapped a &quot;public.*&quot; type on it. So in a sense, it was a (completely unintentional, in this case) denial-of-service attack on our app, and we had to fall back to using file extensions.

You are obviously aware of this potential for conflict given your guidance concerning the use of the &quot;org.liscio.itun&quot; UTI. I wonder if in this instance using UTTypeCreatePreferredIdentifierForTag would be a less vulnerable solution, though?</description>
		<content:encoded><![CDATA[<p>Thanks for the tips, this will be helpful for us as we enable dragging to our app icons. However, I would still caution that this is a fragile solution, as most use of UTIs ends up being. (rdar://problem/6590416)</p>
<p>One of our applications was designed to use a UTI (we carefully crafted and posted it to an appropriate forum) for filtering files. Some users ended up not being able to open any files, because another app had grabbed the same extension and slapped a &#8220;public.*&#8221; type on it. So in a sense, it was a (completely unintentional, in this case) denial-of-service attack on our app, and we had to fall back to using file extensions.</p>
<p>You are obviously aware of this potential for conflict given your guidance concerning the use of the &#8220;org.liscio.itun&#8221; UTI. I wonder if in this instance using UTTypeCreatePreferredIdentifierForTag would be a less vulnerable solution, though?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
