<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Fat Cat Software</title>
	
	<link>http://www.fatcatsoftware.com/blog</link>
	<description>Brian Webster's blog, focusing on his Fat Cat Software products and OS X development</description>
	<pubDate>Sat, 16 May 2009 15:34:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<geo:lat>42.449454</geo:lat><geo:long>-76.496854</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/fatcatsoft" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Purchase iPhoto Library Manager and get 25% off Duplicate Annihilator</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/5-r1JioqM4k/purchase-iphoto-library-manager-and-get-10-off-duplicate-annihilator</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/purchase-iphoto-library-manager-and-get-10-off-duplicate-annihilator#comments</comments>
		<pubDate>Fri, 15 May 2009 23:29:30 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<category><![CDATA[duplicates]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=95</guid>
		<description><![CDATA[I&#8217;d like to announce a promotion that I&#8217;m running along with Brattoo Propaganda Software, makers of Duplicate Annihilator.  Duplicate Annihilator is a program designed to track down duplicate photos in your iPhoto library.  It has several different algorithms for finding duplicates, and also several different options for what to do with duplicates that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to announce a promotion that I&#8217;m running along with <a href="http://brattoo.com/propaganda/">Brattoo Propaganda Software</a>, makers of Duplicate Annihilator.  Duplicate Annihilator is a program designed to track down duplicate photos in your iPhoto library.  It has several different algorithms for finding duplicates, and also several different options for what to do with duplicates that have been found (delete, move to the trash, mark with a keyword, etc.), and is very useful for trimming down your iPhoto library.</p>
<p>For a limited time, if you purchase a copy of iPhoto Library Manager, you will receive a coupon code for 25% off a purchase of Duplicate Annihilator.  You can download <a href="http://brattoo.com/propaganda/">Duplicate Annihilator</a> for a free trial to try it out, and if you like it, you can use the coupon code you receive on the receipt page after purchasing iPhoto Library Manager to receive your 25% discount.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/5-r1JioqM4k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/purchase-iphoto-library-manager-and-get-10-off-duplicate-annihilator/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/purchase-iphoto-library-manager-and-get-10-off-duplicate-annihilator</feedburner:origLink></item>
		<item>
		<title>iPhoto Library Manager 3.5 released</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/B_jZULu1Qp4/iphoto-library-manager-35-released</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-35-released#comments</comments>
		<pubDate>Tue, 05 May 2009 17:12:57 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=93</guid>
		<description><![CDATA[At long last, iPhoto Library Manager 3.5 is now available!  The main focus of this update is providing support for transferring the new Faces and Places data introduced in iPhoto &#8216;09.  If you use the new version to copy photos from one library to another, and you have tagged faces in those photos, [...]]]></description>
			<content:encoded><![CDATA[<p>At long last, iPhoto Library Manager 3.5 is now available!  The main focus of this update is providing support for transferring the new Faces and Places data introduced in iPhoto &#8216;09.  If you use the new version to copy photos from one library to another, and you have tagged faces in those photos, those face records will be recreated in the destination library.  Similarly, if you have assigned places to photos or events that you&#8217;re copying, that data will now also be copied over along with the photos.  This was probably the most complex new addition to iPhoto in quite some time, so updating iPhoto Library Manager has taken a good while longer than usual.  However, with the help of some intrepid beta testers, the new version is now ready for general use.</p>
<p>You can use the &#8220;Check For Updates&#8221; menu item within the program to update to the new version, or you can <a href="http://www.fatcatsoftware.com/iplm/iPhotoLibraryManager.dmg">download it here as well.</a>  This is a free update for anyone who&#8217;s already a registered user, so no additional purchase is necessary to update to the new version.</p>
<p>For those interested, here are the complete release notes for the new version:</p>
<p><strong>iPhoto Library Manager 3.5 release notes</strong></p>
<ul class="ul1">
<li>Tagged faces are now transferred along with photos that are copied/merged between libraries in iPhoto &#8216;09</li>
<li>Places data is now copied along with photos when performing a copy or a merge in iPhoto &#8216;09</li>
<li>iPhoto Library Manager now creates its own log files and logs progress and error information as it copies photos (accessible from the Window menu)</li>
<li>When using the &#8220;Import Photos&#8221; menu command, if the user selects an iPhoto library to import, we now perform a merge instead of treating the library like a plain folder</li>
<li>Fixed a crash that could occur when copying photos on a PPC machine</li>
<li>Fixed a bug where copying photos that were imported as aliases could result in an unneeded &#8220;modified&#8221; copy of the photo being created in the destination library</li>
<li>A printable version of the help is now available at http://www.fatcatsoftware.com/iplm/Help/print/index.html</li>
<li>Removed the preference setting for double clicking a library - double click now always opens the library in iPhoto, and a single click edits the library&#8217;s name</li>
<li>When the user clicks the Cancel button, we now present a dialog to verify that they do in fact want to cancel the operation</li>
<li>Removed the preference for relaunching iPhoto during a merge. This pref was for working around a bug in iPhoto 6, so we now just relaunch automatically when merging with iPhoto 6.</li>
<li>Photos that were published to a MobileMe gallery are now always included in the main library during a merge, and not just in the gallery itself</li>
<li>Fixed a problem where movies and original versions of photos would not be copied for some users</li>
<li>Added a &#8220;selection&#8221; property to the Applescript dictionary so scripters can access the currently selected library</li>
</ul>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/B_jZULu1Qp4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-35-released/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-35-released</feedburner:origLink></item>
		<item>
		<title>The last iPLM 3.5 beta (hopefully)</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/1KOTW6a1IS0/the-last-iplm-35-beta-hopefully</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/the-last-iplm-35-beta-hopefully#comments</comments>
		<pubDate>Fri, 01 May 2009 17:34:38 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=91</guid>
		<description><![CDATA[After finally tracking down and squishing the last couple major bugs this week, there are now no known bugs left for iPhoto Library Manager 3.5.  I&#8217;m going to put up one last beta version, which you can download here, for people to try out over the weekend.  I&#8217;ll be tying up a few [...]]]></description>
			<content:encoded><![CDATA[<p>After finally tracking down and squishing the last couple major bugs this week, there are now no known bugs left for iPhoto Library Manager 3.5.  I&#8217;m going to put up one last beta version, which you can <a href="http://www.fatcatsoftware.com/iplm/iPhotoLibraryManager_350b14.dmg">download here</a>, for people to try out over the weekend.  I&#8217;ll be tying up a few loose ends over the weekend, and assuming nothing else major comes up, I&#8217;ll be aiming to do a final release early next week.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/1KOTW6a1IS0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/the-last-iplm-35-beta-hopefully/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/the-last-iplm-35-beta-hopefully</feedburner:origLink></item>
		<item>
		<title>iPLM 3.5 getting close to release</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/ZRPUFC2Vlpw/iplm-35-getting-close-to-release</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iplm-35-getting-close-to-release#comments</comments>
		<pubDate>Tue, 14 Apr 2009 00:30:22 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=83</guid>
		<description><![CDATA[The beta testing for iPhoto Library Manager 3.5 has been going well, although it&#8217;s taken a bit longer than I would have ideally liked it to, both due to issues in the program and &#8220;real life&#8221; delays.  However, those who&#8217;ve tried it out have helped uncover a number of different bugs, and the number [...]]]></description>
			<content:encoded><![CDATA[<p>The beta testing for iPhoto Library Manager 3.5 has been going well, although it&#8217;s taken a bit longer than I would have ideally liked it to, both due to issues in the program and &#8220;real life&#8221; delays.  However, those who&#8217;ve tried it out have helped uncover a number of different bugs, and the number of bug reports has been steadily dwindling.  Thanks to all who&#8217;ve provided reports on your experiences with the beta!</p>
<p>I&#8217;ve posted several new builds since the initial beta went out, and we&#8217;re now up to beta 12, <a href="http://www.fatcatsoftware.com/iplm/iPhotoLibraryManager_350b12.dmg">which can be downloaded here</a>.  This fixes a couple persistent crashers from beta 5 onwards, along with several improvements in the photo copying process.  If you&#8217;ve been running a previous beta and have encountered problems, I highly recommend downloading the new one.</p>
<p>There are still several minor items to be done before 3.5 can go final, but there are no more major changes to make, and currently no known issues.  Of course, we&#8217;ll see if anything crops up this week as people have a chance to test things out, but I&#8217;m hopeful that the final release will be ready sometime next week.  But, as always, nothing is written in stone, and I won&#8217;t be finalizing the release until I&#8217;m confident things have been sufficiently tested.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/ZRPUFC2Vlpw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iplm-35-getting-close-to-release/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iplm-35-getting-close-to-release</feedburner:origLink></item>
		<item>
		<title>iPhoto Library Manager 3.5 public beta</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/bhR_GEY3hQg/iphoto-library-manager-35-public-beta</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-35-public-beta#comments</comments>
		<pubDate>Wed, 11 Mar 2009 23:04:35 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=75</guid>
		<description><![CDATA[Work on iPhoto Library Manager 3.5 has been progressing well, and things are now to the point where the major new features are up and running.  However, given the relative complexity of the new features (especially transferring faces data between libraries), I&#8217;ve decided to do a (hopefully brief) public beta of iPLM 3.5, so [...]]]></description>
			<content:encoded><![CDATA[<p>Work on iPhoto Library Manager 3.5 has been progressing well, and things are now to the point where the major new features are up and running.  However, given the relative complexity of the new features (especially transferring faces data between libraries), I&#8217;ve decided to do a (hopefully brief) public beta of iPLM 3.5, so I can get it tested out on a wide variety of setups and make sure to get all the kinks worked out.</p>
<p>The main additions are, of course, the ability to copy Places and Faces data from one library to another when copying photos under iPhoto &#8216;09.  This includes both copying individual albums/events and merging libraries.  There are also several other changes and bug fixes included in the release (full release notes are at the bottom of this post).</p>
<p>This is pre-release software - I&#8217;ve tested things as thoroughly as possible, and there are no known bugs in the beta, but there is still the possibility of issues popping up, especially when dealing with library setups I haven&#8217;t been able to test myself.  I strongly recommend backing up your iPhoto libraries before doing any major photo copying.</p>
<p>So, if you have iPhoto &#8216;09 and want to try out copying photos between your libraries while keeping your Places and Faces intact, <a href="http://www.fatcatsoftware.com/iplm/iPhotoLibraryManager_350b5.dmg">you can download the public beta here</a>.  Note that I haven&#8217;t yet done my full suite of tests on earlier versions of iPhoto, and there isn&#8217;t really much in the way of new features for those earlier versions, so if you haven&#8217;t upgraded to iPhoto &#8216;09, there&#8217;s probably not much point in downloading the beta.</p>
<p> The system requirements are the same as 3.4.5, and you still need a registered copy in order to perform advanced features such as photo copying and merging. I will be posting updates as bugs get reported and things get fixed - you can use the &#8220;Check For Updates&#8221; menu item from within the program to check for and install any new updates.  If any issues arise, please contact <a href="mailto:support@fatcatsoftware.com?subject=iPhoto%20Library%20Manager%203.5%20beta">support@fatcatsoftware.com</a>.</p>
<p><strong>Update 4/3/09:</strong> Things have been progressing well, and iPLM 3.5 is getting close to completion.  There are still a couple issues that need working out, but nothing major at the moment.  I&#8217;ve just posted a new beta, 3.5b5, that is now available for download.  Due to a mistake in 3.5b4, the &#8220;Check For Updates&#8221; menu item will not detect this new version if you have 3.5b4 currently installed, so you will have to download it manually instead from the link above.</p>
<p><strong>Changes in iPhoto Library Manager 3.5 public beta</strong></p>
<ul>
<li>When the user clicks the Cancel button, we now present a dialog to verify that they do in fact want to cancel the operation</li>
<li>Removed the preference for relaunching iPhoto during a merge. This pref was for working around a bug in iPhoto 6, so we now just relaunch automatically when merging with iPhoto 6.</li>
<li>Removed the preference setting for double clicking a library - double click now always opens the library in iPhoto, and a single click renames the library</li>
<li>iPhoto Library Manager now creates its own log file and logs progress and error information as it copies photos (accessible from the Window menu)</li>
<li>Photos that were published to a MobileMe gallery are now always included in the main library during a merge, and not just in the gallery itself</li>
<li>Fixed a problem where movies and original versions of photos would not be copied for some users</li>
<li>Tagged faces are now transferred along with photos that are copied/merged between libraries in iPhoto &#8216;09</li>
<li>Places data is now copied along with photos when performing a copy or a merge in iPhoto &#8216;09</li>
<li>Added a &#8220;selection&#8221; property to the Applescript dictionary so scripters can access the currently selected library</li>
</ul>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/bhR_GEY3hQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-35-public-beta/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-35-public-beta</feedburner:origLink></item>
		<item>
		<title>iPhoto ‘09 + Safari 4 beta + geotags = crash</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/yc4FiIQ6Gl8/iphoto-09-safari-4-beta-geotags-crash</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iphoto-09-safari-4-beta-geotags-crash#comments</comments>
		<pubDate>Wed, 04 Mar 2009 04:44:57 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[iPhoto]]></category>

		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=73</guid>
		<description><![CDATA[Update 3/20/09: it appears that this crasher has been resolved as of iPhoto 8.0.1, so if you&#8217;re encountering this problem, make sure to update to the latest version of iPhoto using Software Update.
Just as a public service announcement, I thought I&#8217;d post about a conflict between iPhoto &#8216;09 and the Safari 4 beta that could [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update 3/20/09:</strong> it appears that this crasher has been resolved as of iPhoto 8.0.1, so if you&#8217;re encountering this problem, make sure to update to the latest version of iPhoto using Software Update.</p>
<p>Just as a public service announcement, I thought I&#8217;d post about a conflict between iPhoto &#8216;09 and the Safari 4 beta that could cause some rather mysterious looking crashes, regardless of whether you use iPhoto Library Manager.  The crash occurs when importing photos into iPhoto, but only under certain, somewhat odd conditions.  The crash occurs when:</p>
<ul>
<li>You have both iPhoto &#8216;09 (version 8.0) and the Safari 4 beta installed on your machine</li>
<li>You&#8217;re importing a batch of photos into iPhoto, at least one of which has embedded geotagging data</li>
<li>This is the first import that you have done since launching iPhoto. If you first import a batch of photos with no geotags, then do a second import that does include geotags, it will not cause a crash</li>
</ul>
<p>If you&#8217;ve been experiencing weird crashes when importing photos and have this affecting you, the easy solution is to uninstall Safari 4 and go back to using Safari 3.  If you really don&#8217;t want to uninstall, you can also always remember to import a non geotagged photo before doing your geotagged photos (good luck with remembering that <img src='http://www.fatcatsoftware.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/yc4FiIQ6Gl8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iphoto-09-safari-4-beta-geotags-crash/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iphoto-09-safari-4-beta-geotags-crash</feedburner:origLink></item>
		<item>
		<title>iPLM 3.5 progress update</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/7kFwIdhAW1k/iplm-35-progress-update</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iplm-35-progress-update#comments</comments>
		<pubDate>Mon, 23 Feb 2009 17:45:51 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=71</guid>
		<description><![CDATA[Just thought I&#8217;d make a quick post to give a progress update on iPhoto Library Manager 3.5.  The update is going well, although it&#8217;s been slowed a bit by &#8220;real life&#8221; events such as moving into a new apartment last weekend, etc.  At this point, support for Places is basically working, and I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Just thought I&#8217;d make a quick post to give a progress update on iPhoto Library Manager 3.5.  The update is going well, although it&#8217;s been slowed a bit by &#8220;real life&#8221; events such as moving into a new apartment last weekend, etc.  At this point, support for Places is basically working, and I&#8217;m probably about halfway through getting Faces copying to work.  I&#8217;m also going to be taking this opportunity to make a few other miscellaneous improvements and some rewriting of the help docs to fix some out of date information and such.  So, the end of February goal probably isn&#8217;t going to happen, but hopefully it shouldn&#8217;t take too much longer than that.</p>
<p>My thanks in advance for everyone&#8217;s patience, I&#8217;d like to take my time and be thorough in testing to make sure the release is worth the wait.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/7kFwIdhAW1k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iplm-35-progress-update/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iplm-35-progress-update</feedburner:origLink></item>
		<item>
		<title>iPhoto Library Manager 3.4.4 released</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/KJmCb_pGvW8/iphoto-library-manager-344-released</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-344-released#comments</comments>
		<pubDate>Thu, 05 Feb 2009 18:23:46 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=67</guid>
		<description><![CDATA[iPhoto Library Manager 3.4.4 is now available for download!  This is the first of two updates for iPhoto &#8216;09 compatibility.  This update allows you to copy albums between libraries and merge libraries together under iPhoto &#8216;09 just like with previous versions of iPhoto.  3.4.4 also contains some other miscellaneous bug fixes and [...]]]></description>
			<content:encoded><![CDATA[<p>iPhoto Library Manager 3.4.4 is now <a href="http://www.fatcatsoftware.com/iplm">available for download</a>!  This is the first of two updates for <a href="http://www.apple.com/iphoto">iPhoto &#8216;09</a> compatibility.  This update allows you to copy albums between libraries and merge libraries together under iPhoto &#8216;09 just like with previous versions of iPhoto.  3.4.4 also contains some other miscellaneous bug fixes and improvements.  What this update does not provide is support for some of the new types of data that have been introduced in iPhoto &#8216;09.  These include:</p>
<ul>
<li>Places: Copying photos between libraries will not yet transfer any place tags that you&#8217;ve assigned to your photos using iPhoto &#8216;09.  If the photos you imported were already geotagged before importing them into iPhoto, then that same data will be imported by iPhoto in the new library, but if you added the place data yourself using iPhoto, then that data will not be copied.  This will be addressed in iPhoto Library Manager 3.5.</li>
<li>Faces: Similarly, any faces you&#8217;ve tagged in iPhoto will also not be transferred when you copy/merge using iPLM.  This will also be addressed in iPLM 3.5, though it&#8217;s not clear yet to what extent.  From what I can tell, copying the actual face tags over to another library shouldn&#8217;t be too difficult.  What I don&#8217;t know yet is whether iPhoto&#8217;s &#8220;learning&#8221; data can be transferred as well.  For example, if you&#8217;ve tagged a whole bunch of faces in one library and iPhoto has learned how to recognize various people, I&#8217;m not sure if that training will be transferrable to another library, so any further faces added to a merged library wouldn&#8217;t benefit from the training in the original library.  I&#8217;ll certainly be looking into doing this if possible, but it may prove to be too complicated to do.</li>
<li>Facebook/Flickr: Right now, albums/photosets that have been created on Flickr or Facebook using iPhoto are basically ignored by iPLM.  I&#8217;ll be looking into adding the ability to copy that information between libraries so that you don&#8217;t have to republish albums after copying them to another library.</li>
</ul>
<p>You can download the 3.4.4 updates either by going to the <a href="http://www.fatcatsoftware.com/iplm">iPLM home page</a> or by opening iPLM on your machine and selecting the &#8220;Check For Updates&#8221; menu item.  This is a free update for all users, so you can just replace your existing copy of iPLM with the new one with no additional purchase necessary.</p>
<p><b>Update: 2/12/09</b> An additional 3.4.5 update has now been released to address two issues introduced in 3.4.4.  Updating as outlined above will now update you to version 3.4.5.</p>
<p>Now I&#8217;ll be starting work on iPLM 3.5, I can&#8217;t specify a hard timeline for when it will be done, but I&#8217;m hoping to be able to finish up by the end of February at the latest (and hopefully earlier).</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/KJmCb_pGvW8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-344-released/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-344-released</feedburner:origLink></item>
		<item>
		<title>iPhoto ‘09 initial compatibility report</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/CNkHfLdK4QI/iphoto-09-initial-compatibility-report</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iphoto-09-initial-compatibility-report#comments</comments>
		<pubDate>Tue, 27 Jan 2009 20:40:07 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[iPhoto]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=63</guid>
		<description><![CDATA[Well, I&#8217;ve had a chance to try out iPhoto &#8216;09 for a couple hours now, and here are the notes I have so far regarding compatibility with iPhoto Library Manager:

Viewing and switching between existing libraries works fine.  iPhoto will prompt you to upgrade your library to the new version when you first open a [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve had a chance to try out iPhoto &#8216;09 for a couple hours now, and here are the notes I have so far regarding compatibility with iPhoto Library Manager:</p>
<ul>
<li>Viewing and switching between existing libraries works fine.  iPhoto will prompt you to upgrade your library to the new version when you first open a particular library.  Note that after you upgrade a library, you will no longer be able to open it in earlier versions of iPhoto.</li>
<li>New libraries created using the current version of iPhoto Library Manager won&#8217;t work the first time you open them in iPhoto.  For now, hold down the option key while opening iPhoto and use its interface to create a new library if you need to create one.  You can then use the &#8220;Add Library&#8221; button in iPhoto Library Manager to add the library to iPLM&#8217;s library list, after which you can use the library normally.  This will be fixed in the upcoming iPLM update.</li>
<li>As expected, advanced functions such as copying albums between libraries and merging do not work and will produce an error message.  Rebuilding a library will also not work, although the &#8220;Extract Photos&#8221; function should still work OK.  Trying to use these features won&#8217;t result in any harm, they just won&#8217;t work.  Again, these issues will be fixed in the upcoming iPLM update.</li>
<li>iPod Folders appear to work with no problems with iPhoto &#8216;09</li>
</ul>
<p>So, that&#8217;s what I have for now, I&#8217;ll be continuing to test things out and will post any updates on this page.  I&#8217;ll then be starting work on updating iPLM to fix any of the issues that come up with iPhoto &#8216;09.  That will be a free update for all users, so if you have purchased or plan on purchasing a copy of iPLM, you will be able to update for free when it is available.</p>
<p><strong>Update 1/30/09:</strong> I&#8217;ve had a chance to work with iPhoto &#8216;09 for a couple days now, and here&#8217;s what I&#8217;m planning on doing.  Two of the big new additions to iPhoto &#8216;09 are the new Faces and Places features. These features attach new types of metadata to your photos to identify people in the photos and where the photos were taken. It would obviously be very nice to be able to transfer from library to library when copying albums or performing merges.  It looks like this is feasible, but it also looks like it will take a fair bit of work and time to accomplish.</p>
<p>So, what I think I&#8217;m going to do is to get out a quick 3.4.4 update for iPLM that gets things running under iPhoto &#8216;09 with the same capabilities as the current version.  So, you&#8217;ll be able to copy albums, merge libraries, etc. but this first update will <em>not</em> handle any of the new Faces/Places data.  The update will basically be to get people back up and running so they can use iPLM with iPhoto &#8216;09, fixing various issues such as the library creation bug mentioned above, etc. and should hopefully be available sometime next week.</p>
<p>Then, after that&#8217;s out, I&#8217;ll start in on getting Faces/Places integration working, and once that&#8217;s done, there will be a separate 3.5 update that will include that new, iPhoto &#8216;09 specific functionality.  That will probably take a little longer, but it should be doable.  If you have photo copying or merging you want to do but want to upgrade to iPhoto &#8216;09 right away, I would recommend doing any photo copying/merging you want before doing the iPhoto upgrade.  That way, you can get your libraries straightened out, and then go ahead and assign faces/places in the upgraded library.  If you assign faces/places and then do your copying/merging, you won&#8217;t be able to do so while retaining the face/place data until iPLM 3.5 comes out.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/CNkHfLdK4QI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iphoto-09-initial-compatibility-report/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iphoto-09-initial-compatibility-report</feedburner:origLink></item>
		<item>
		<title>iPhoto Library Manager and iPhoto ‘09</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/gB7OmIfpudk/iphoto-library-manager-and-iphoto-09</link>
		<comments>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-and-iphoto-09#comments</comments>
		<pubDate>Tue, 06 Jan 2009 17:34:00 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Updates]]></category>

		<category><![CDATA[iPhoto]]></category>

		<category><![CDATA[iPhoto Library Manager]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/?p=59</guid>
		<description><![CDATA[As many of you know, today Apple announced a new update to their iLife suite, iLife &#8216;09, which includes an update to iPhoto.  iPhoto &#8216;09 won&#8217;t be available until the end of January, but I&#8217;d like to fill you in on the status of iPhoto Library Manager compatibility with this new version of iPhoto.
I [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you know, today Apple announced a new update to their iLife suite, iLife &#8216;09, which includes an update to iPhoto.  iPhoto &#8216;09 won&#8217;t be available until the end of January, but I&#8217;d like to fill you in on the status of iPhoto Library Manager compatibility with this new version of iPhoto.</p>
<p>I don&#8217;t get special early releases of iPhoto or anything like that, so I&#8217;ll be working with it for the first time once I can pick up a copy from Apple.  In the past, major iPhoto updates have required updating iPhoto Library manager to provide full compatibility for all its features, and I suspect things will be the same this time around.  The basic functionality of iPLM (creating new libraries and switching back and forth between them) has never broken in any previous iPhoto update, so I&#8217;m pretty sure that stuff will be the same this time around.  The more advanced features, such as copying albums between libraries and merging libraries together, however, require a bit more work to make sure they work properly.  For iPhoto &#8216;07 and iPhoto &#8216;06, it has taken me about two weeks each time to issue an iPLM update for the new version of iPhoto, so it will hopefully take approximately the same amount of time this time around.</p>
<p>What I can tell you is that the update will be a free update for any existing users of iPhoto Library Manager, so if you buy a copy now, rest assured you will be able to use it with iPhoto &#8216;09 once the update is released.  For those of you wondering whether to upgrade to iPhoto &#8216;09, you should still be able to switch between your libraries fine after updating, but you almost certainly won&#8217;t be able to do any photo copying or merging until the iPLM update is ready.  If you really need to be able to use iPLM to do photo transfers, I would recommend holding off upgrading iPhoto until the update to iPhoto Library Manager is ready.</p>
<p>My thanks in advance for your patience, I will be posting further updates on how things are going as I learn more about what needs to be done for the update.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/gB7OmIfpudk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-and-iphoto-09/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2009/iphoto-library-manager-and-iphoto-09</feedburner:origLink></item>
		<item>
		<title>PowerTunes 1.0.2 released</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/ObvNjEqfCe8/powertunes-102-released</link>
		<comments>http://www.fatcatsoftware.com/blog/2008/powertunes-102-released#comments</comments>
		<pubDate>Tue, 09 Dec 2008 19:35:31 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[PowerTunes]]></category>

		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/2008/powertunes-102-released</guid>
		<description><![CDATA[A new update to PowerTunes is finally ready today, PowerTunes 1.0.2.  I&#8217;ve been wanting to get this out for a while, but Stuff™ (such as preparing to move across the country in about a month) has kept getting in the way.  It&#8217;s mainly a bug fix release, with several updates for working more [...]]]></description>
			<content:encoded><![CDATA[<p>A new update to PowerTunes is finally ready today, <a href="http://www.fatcatsoftware.com/powertunes/">PowerTunes 1.0.2</a>.  I&#8217;ve been wanting to get this out for a while, but Stuff™ (such as preparing to move across the country in about a month) has kept getting in the way.  It&#8217;s mainly a bug fix release, with several updates for working more smoothly with iTunes 8.  There were no major bugs with iTunes 8, just a few things that were either cosmetically wrong, or obscure bugs that cropped up with just the right combination of settings (mostly having to do with the new Genius playlist).  You can check out the <a href="http://www.fatcatsoftware.com/powertunes/Help/release%20notes.html">release notes</a> for the full list of changes.</p>
<p>One thing that is not in the update, which a few people have asked about, is support for managing iPhone applications using PowerTunes.  Unfortunately, this is not a simple matter, because as of iTunes 8.0.2, Apple does not provide any mechanism for accessing the list of iPhone applications that are in a given iTunes library.  I&#8217;ve even filed enhancement requests for this, but suffice it to say, I&#8217;m not confident that Apple will be adding this functionality anytime in the near future.  So for now, managing iPhone applications will have to be done manually, I&#8217;m afraid.  I will be looking into other ways of assisting with this in upcoming releases though.  And feel free to (politely) bug Apple for this functionality for me if you feel like it. <img src='http://www.fatcatsoftware.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/ObvNjEqfCe8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2008/powertunes-102-released/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2008/powertunes-102-released</feedburner:origLink></item>
		<item>
		<title>How to create a fake digital camera for Image Capture</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/Pg5i1knJOxw/how-to-create-a-fake-digital-camera-for-image-capture</link>
		<comments>http://www.fatcatsoftware.com/blog/2008/how-to-create-a-fake-digital-camera-for-image-capture#comments</comments>
		<pubDate>Fri, 05 Dec 2008 18:39:13 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[iPhoto]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/2008/how-to-create-a-fake-digital-camera-for-image-capture</guid>
		<description><![CDATA[I&#8217;ve been fooling around with some Image Capture APIs lately, but the only convenient camera device I have to work with is my iPhone, which doesn&#8217;t really have any way to put specific images onto it if I want to test things out like different formats, movies, etc.  After digging around with the Image [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been fooling around with some <a href="http://developer.apple.com/documentation/Carbon/Conceptual/ImageCaptureServicesProgrammingGuide/01Introduction/chapter_1_section_1.html">Image Capture APIs</a> lately, but the only convenient camera device I have to work with is my iPhone, which doesn&#8217;t really have any way to put specific images onto it if I want to test things out like different formats, movies, etc.  After digging around with the Image Capture SDK a bit, though, I&#8217;ve found a simple way to make a fake &#8220;camera&#8221; that Image Capture will recognize, but doesn&#8217;t require plugging in a physical device.</p>
<p>The trick is to create a disk image that, when mounted, Image Capture believes to be a digital memory card, and treats as a digital camera, so it shows up in iPhoto, Image Capture.app, and so forth.  There appear to be a bunch of different ways to do this, but here&#8217;s the method I used that worked for me:</p>
<ol>
<li>Open Disk Utility and click the &#8220;New Image&#8221; button in the toolbar. In the configuration sheet, choose &#8220;MS-DOS (FAT)&#8221; for the Volume Format, and &#8220;Single Partition - Master Boot Record Partition Map&#8221; for the Partitions setting.  You can enter whatever name and volume size you like, then click &#8220;Create&#8221;.</li>
<p><img src="http://www.fatcatsoftware.com/blog/wp-content/uploads/2008/12/camera-image-setup.png" alt="camera-image-setup.png" border="0" width="360" height="260" align="center" /></li>
<div style="clear:both;"></div>
<li>Once the image is created and mounted, open it up in the Finder.  Create a new folder at the root level of the mounted disk image and name it &#8220;CAMERA&#8221;.  Then, go ahead and copy whatever pictures or other items you want to test with inside the CAMERA folder.  This appears to be one particular camera&#8217;s way of storing photos on its memory card - there are a whole bunch of others (&#8221;DCIM&#8221;, &#8220;Photos&#8221;, &#8220;Videos&#8221;, etc.) that would work equally well.</li>
<li>Click the eject button in the Finder, then double click the image file to mount the image again.  If everything is set up correctly, the act of mounting the image should cause Image Capture to fire up whatever application you have set to handle your digital cameras (e.g. iPhoto), and the images you put in the CAMERA folder should appear in the list of photos for the device.</li>
</ol>
<p>Not only does this save having to plug and unplug a device whenever you&#8217;re doing testing with Image Capture, but it&#8217;s also really nice for test suites, since you can just include the disk image as data for your tests, and then mount the image to simulate plugging in a camera.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/Pg5i1knJOxw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2008/how-to-create-a-fake-digital-camera-for-image-capture/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2008/how-to-create-a-fake-digital-camera-for-image-capture</feedburner:origLink></item>
		<item>
		<title>Why I’m not developing iPhone applications</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/Ao3_n0QnWhc/why-im-not-developing-iphone-applications</link>
		<comments>http://www.fatcatsoftware.com/blog/2008/why-im-not-developing-iphone-applications#comments</comments>
		<pubDate>Fri, 12 Sep 2008 21:00:45 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/2008/why-im-not-developing-iphone-applications</guid>
		<description><![CDATA[When the iPhone SDK was announced earlier this year, I downloaded it right away and was very excited to see all the potential stuff that could be done.  That initial excitement has slowly given way to the full realization of the terms dictated by Apple for distributing apps.
The first restriction is, of course, that [...]]]></description>
			<content:encoded><![CDATA[<p>When the iPhone SDK was announced earlier this year, I downloaded it right away and was very excited to see all the potential stuff that could be done.  That initial excitement has slowly given way to the full realization of the terms dictated by Apple for distributing apps.</p>
<p>The first restriction is, of course, that you must distribute your application through Apple&#8217;s App Store and iTunes, and Apple gets a 30% cut for their efforts.  That part actually isn&#8217;t totally bad, since you do get a lot of benefit for being listed on the store without having to deal with any of the setup or maintenance.  Sole distribution through iTunes helps with the integration that gives the iPhone such a good user experience, and 30% isn&#8217;t an unreasonable cut for Apple to earn on each sale.</p>
<p>The real problem though is the fact that Apple is the sole arbiter of what applications get accepted and rejected from being listed on the App Store.  This would be somewhat bad if there were a concrete set of guidelines that said what was and wasn&#8217;t acceptable for inclusion.  There are some rules outlined in the SDK agreement, but there are apparently also a lot of other &#8220;unwritten&#8221; rules that are governing Apple&#8217;s decision on whether to accept a specific application.  Apps have been denied/pulled for UI compliance reasons, for resource usage, for &#8220;taste&#8221; (e.g. the &#8220;<a href="http://blog.wired.com/gadgets/2008/09/rejected-pull-m.html">Pull My Finger</a>&#8221; app), and for no particular reason other than some vague assertion of &#8220;usefulness&#8221; (e.g. the &#8220;<a href="http://www.latimes.com/business/la-fi-techblog8-2008aug08,0,2837557.story">I Am Rich</a>&#8221; app which cost $999 and did nothing).</p>
<p>The latest app to be rejected takes things over the top, though.  Podcaster, an iPhone app designed by Almerica, was <a href="http://almerica.blogspot.com/2008/09/podcaster-rejeceted-because-it.html">rejected by Apple</a> because it &#8220;duplicates the functionality of the Podcast section of iTunes&#8221;.  Forget the fact that this isn&#8217;t even functionality that&#8217;s only on the <em>desktop</em> application, iTunes.  What Apple&#8217;s saying here is that they can <b>claim exclusive rights to ship applications for certain domains of functionality, and reject any third party application that tries to compete in that area.</b></p>
<p>Want to make an e-mail application for the iPhone?  Too bad!  Apple&#8217;s already got one, so you can&#8217;t duplicate that functionality.  Music player?  Nope, sorry, can&#8217;t do that either.  Or what if, for example, you already have an application selling on the App Store, and then in a software update, Apple decides they want to offer similar functionality.  Can they then boot your app from the store, since it&#8217;s duplicating what Apple&#8217;s done?  And what does this do for the power of competition among iPhone applications?  It&#8217;s a very chilling effect.</p>
<p>Now, it&#8217;s perfectly possible that this was a one-time screw up by one Apple reviewer.  I really really hope it is, and that Apple clears this up as soon as possible.  But regardless of what happens in this specific instance, the real problem here is that there is no clear and definitive list of rules for what will and won&#8217;t be accepted to the App Store.  Even internally, Apple doesn&#8217;t seem to have one, since some apps are rejected for a particular reason, while other apps are accepted that could have just as easily been rejected for the same &#8220;offense&#8221;.</p>
<p>Before I even <em>think</em> of sinking time into developing an iPhone application, Apple needs to come out with a published (at least to developers who agreed to the SDK terms, if not fully public), detailed description of what criteria an application has to meet to be included in the App Store.  Then, of course, they need to apply those guidelines <em>consistently</em> across all applications submitted for approval.  Neither of these things is even close to being done now, and I for one am not going to invest time in developing an application without knowing beforehand whether I&#8217;ll even be able to sell the damn thing.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/Ao3_n0QnWhc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2008/why-im-not-developing-iphone-applications/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2008/why-im-not-developing-iphone-applications</feedburner:origLink></item>
		<item>
		<title>Per-object ordered relationships using Core Data</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/UZ0mvD_huxI/per-object-ordered-relationships-using-core-data</link>
		<comments>http://www.fatcatsoftware.com/blog/2008/per-object-ordered-relationships-using-core-data#comments</comments>
		<pubDate>Fri, 08 Aug 2008 20:33:15 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/2008/per-object-ordered-relationships-using-core-data</guid>
		<description><![CDATA[Core Data is a great technology to allow easy creation of complex data models, saving you from writing a lot of boilerplate code.  One of the limitations of Core Data, however, is that when one entity has a to-many relationship with another entity, the objects in that relationship are unordered.  The only order [...]]]></description>
			<content:encoded><![CDATA[<p>Core Data is a great technology to allow easy creation of complex data models, saving you from writing a lot of boilerplate code.  One of the limitations of Core Data, however, is that when one entity has a to-many relationship with another entity, the objects in that relationship are unordered.  The only order that can be imposed on such a relationship is by sorting based on one or more attributes of the child objects, and there is no &#8220;inherent&#8221; ordering to the objects otherwise.</p>
<p>Several different solutions <a href="http://www.timisted.net/blog/archive/core-data-drag-drop/">(one example here)</a> have been created for this problem, most of which use some variation of adding an &#8220;index&#8221; attribute to the child objects which specifies what order the objects come in (i.e. the first object has an index of 0, the next and index of 1, and so on).  The tricky part come in keeping the index attributes up to date, but there are several solutions for that which all work pretty well.</p>
<p>The major disadvantage to this approach comes when you have child objects which can be contained by more than one parent object.  The classic example of this is a program like iTunes, where you can have multiple playlists, each of which can contain multiple tracks, and the user can arrange the tracks in any order they wish in each playlist.  The problem is that there is only one &#8220;index&#8221; attribute for each track, but each track will have a different index depending on what playlist we&#8217;re looking at.</p>
<p>I decided to take a stab at this problem using a new approach, which stores the ordering information for each container object in the container itself, and not in the children.  I also wanted this solution to be generic and reusable, so you don&#8217;t have to reimplement everything for each relatonship you want to give a custom ordering to.</p>
<p>The solution I came up with is a custom subclass of NSManagedObject called BWOrderedManagedObject, which provides support for imposing an ordering on any to-many relationship the object has.  At the end of this post, you&#8217;ll find a download link containing the source code for this class, as well as a corresponding BWOrderedArrayController class which provides support for sorting a table view by this custom ordering, and a simple demo showing how to hook everything up.</p>
<h2>BWOrderedManagedObject</h2>
<p>In order to keep track of what order the objects in a particular relationship are in, we need to store a separate piece of data that provides that ordering.  The way BWOrderedManagedObject handles this is to store the ordering in a separate attribute.  By default, the key used for this attribute is simply the relationship key with the string &#8220;Ordering&#8221; appended to it, so for example, if you have a &#8220;tracks&#8221; relationship, the ordering info for your tracks will be stored under the &#8220;tracksOrdering&#8221; key.</p>
<p>The ordering attribute should be defined in your Core Data model as a transformable property attribute with the appropriate name.  The attribute will actually consist of an NSArray holding NSURL objects, with each URL object containing the URIRepresentation of the NSManagedObject it represents.  The URIRepresentation is obtained from the NSManagedObjectID for a given object, and is a simple, persistent identifier that can be used to identify the object and won&#8217;t change even when saved to disk and read back again (with one important exception - see below).  The order of the URLs in the array is what defines the order of the objects themselves in the relationship.</p>
<p>To actually specify an ordering for your objects, NSManagedObject provides a set of methods that allow you to access, insert, delete, and move objects within the array (<code>objectInOrderedValueForKey:</code>, <code>insertObject:inOrderedValueForKey:atIndex:</code>, etc.).  It also provides a <code>mutableOrderedValueForKey:</code> method (similar to Cocoa&#8217;s <code>mutableArrayValueForKey:</code> method) which returns an NSMutableArray proxy object which you can use to rearrange objects in the relationship as though it were a plain array. To actually access the ordered values, just use the <code>orderedValueForKey:</code> method, which returns an NSArray containing the objects in the correct order.</p>
<h2>BWOrderedArrayController</h2>
<p>In a typical NSTableView + NSArrayController setup, sorting is accomplished when the user clicks one of the table view&#8217;s column headers.  Each column has an NSSortDescriptor assigned to it, which are then passed to NSArrayController, which sorts its contents based on the sort descriptors.  However, since sort descriptors function by comparing attributes of the objects themselves, this method of sorting won&#8217;t work for BWOrderedManagedObject, because the sort order is stored in the container object, and not the objects being sorted</p>
<p>BWOrderedArrayController fills this gap by handling the case where the user has clicked a column which represents the &#8220;natural&#8221; ordering of the table&#8217;s content.  To use BWOrderedArrayController, first bind its &#8220;contentSet&#8221; binding to your object&#8217;s content just like you would with a normal array controller.  Then, in your table view, select the column you want the user to be able to click to sort the content by their custom ordering.</p>
<p>Instead of binding this column&#8217;s &#8220;value&#8221; binding like your other table columns, instead switch to the attributes inspector pane and enter the name of the ordering key that your content&#8217;s ordering is stored under in the &#8220;Sort Key&#8221; field.  For example, if you&#8217;re displaying a list of tracks that&#8217;s stored in the &#8220;tracks&#8221; key of the selected playlist, you would enter &#8220;tracksOrdering&#8221; in the Sort Key field.</p>
<p>If everything is hooked up correctly, clicking that table column will sort the content of the table based on the ordering specified by the user.  Performing actual rearrangement of items via drag and drop is not implemented in BWOrderedArrayController itself, but in the project download, an example of how to implement reordering is given in the MusicLibraryDocument class</p>
<h2>Inner workings</h2>
<p>Most of the nitty gritty of how the code works is documented in comments in the code itself.  The tricky parts were:</p>
<ul>
<li>Making sure that objects added via both the normal Core Data KVC methods and BWOrderedManagedObject&#8217;s methods are both handled properly</li>
<li>Supporting saving and loading of data, which is made tricky by the fact that newly created objects are assigned temporary IDs which need to be swapped out for permanent IDs when the data store is saved to disk.</li>
<li>Working out the array controller bindings so that everything would &#8220;just work&#8221; when binding the contentSet of the controller.</li>
</ul>
<h2>Using the code</h2>
<p>The code is freely available under the MIT license and can be downloaded from <a href="http://www.fatcatsoftware.com/code/OrderedCoreDataDemo.zip">this link.</a>  The download consists of an example project which demonstrates a very very basic data model with two entities: Playlist, and Track.  The Playlist entity has a to-many &#8220;tracks&#8221; relationship and a &#8220;tracksOrdering&#8221; property to contain the ordering information.  The demo is a document based app that lets you create new playlists, drag files from the Finder into the track list to add them, sort the tracks in order, and rearrange the tracks in the list via drag and drop.  The idea is loosely modeled after iTunes, but the demo doesn&#8217;t actually filter out non-music files, or play music, or anything else useful.  It is a demo, after all. <img src='http://www.fatcatsoftware.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The BWManagedObject class can be used as-is and has no dependencies, and BWOrderedArrayController only depends on BWManagedObject, so you should be able to just add them to your project and compile them (do make sure to link to CoreData.framework, of course).</p>
<p>I have not yet tested this code extensively, so use at your own risk.  In particular, I have no idea yet how it performs with larger data sets or other variations in configuration.  I welcome all feedback and bug reports at <a href="mailto:bwebster@fatcatsoftware.com?subject=Ordered%20Core%20Data">bwebster@fatcatsoftware.com</a>.  If I get enough interest, I may even put the code up in a public VCS of some sort, for now I&#8217;ll stick with the zip file.</p>
<p>The code will only work on OS X 10.5 and later, the primary reason being that transformable attributes are only supported on Leopard, which is what the ordering attribute must be defined as.  This is possible to do under Tiger as well, but requires a lot more code, which I didn&#8217;t feel was worth the time to write.  Apple outlines what needs to be done in <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html">their documentation</a> though, so it should be possible to backport if you need it to work under Tiger.  Most of the other code should be mostly Tiger compatible (it doesn&#8217;t use new ObjC 2.0 features, for example), but may contain other Leopard gotchas.</p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/UZ0mvD_huxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2008/per-object-ordered-relationships-using-core-data/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2008/per-object-ordered-relationships-using-core-data</feedburner:origLink></item>
		<item>
		<title>PowerTunes 1.0 is out!</title>
		<link>http://feedproxy.google.com/~r/fatcatsoft/~3/DfQjuUZgdr8/powertunes-10-is-out</link>
		<comments>http://www.fatcatsoftware.com/blog/2008/powertunes-10-is-out#comments</comments>
		<pubDate>Wed, 09 Jul 2008 13:21:07 +0000</pubDate>
		<dc:creator>Brian Webster</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[PowerTunes]]></category>

		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://www.fatcatsoftware.com/blog/2008/powertunes-10-is-out</guid>
		<description><![CDATA[I&#8217;m proud to announce that today I&#8217;m releasing a brand new application, PowerTunes! PowerTunes is to iTunes what iPhoto Library Manager is to iPhoto - it will let you:

Create multiple iTunes libraries and switch between them easily
Keep track of a separate music folder for each one of your libraries
Let you copy playlists and tracks between [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m proud to announce that today I&#8217;m releasing a brand new application, <a href="http://www.fatcatsoftware.com/powertunes">PowerTunes</a>! PowerTunes is to iTunes what iPhoto Library Manager is to iPhoto - it will let you:</p>
<ul>
<li>Create multiple iTunes libraries and switch between them easily</li>
<li>Keep track of a separate music folder for each one of your libraries</li>
<li>Let you copy playlists and tracks between libraries without losing iTunes data such as play counts, ratings, etc.</li>
<li>Merge multiple iTunes libraries together into one</li>
<li>Easily share libraries and music folders among multiple users on your machine</li>
<li>Find dead tracks in your library whose files have gone missing and hook them back up or delete them</li>
<li>Clean up your music folder, finding orphaned music and video files that aren&#8217;t in your library</li>
</ul>
<p>It&#8217;s very satisfying to finally ship, especially after having worked on PowerTunes in one form or another for about a year and a half now.  It&#8217;s been my number one request from existing users of <a href="http://www.fatcatsoftware.com/iplm">iPhoto Library Manager</a> and it&#8217;s been something I&#8217;ve wanted to do for quite a while.</p>
<p>As is always the case, I had way more feature ideas than I could possibly hope to implement in a 1.0 release (otherwise it would never ship!).  In deciding the feature set for the program, I tried to concentrate on things relating to file management.  There are plenty of things I could have done involving messing around with editing tags and such, which is a very common need, but is also already covered by a lot of other apps out there.  My hope is that PowerTunes&#8217; feature set is unique enough to be useful to many iTunes users, even if they already have one or more other iTunes helper programs.</p>
<p>The development process was, as always, enlightening, and I definitely plan to write up a couple blog posts exploring some aspects of developing this program.  The most interesting thing overall is the program&#8217;s similarity in function to iPhoto Library Manager.  This allowed me to reuse a bunch of code from iPLM, but it also gave me the opportunity to look back at the way I did some things in iPLM and reimplement them in new, better ways.  The result of that is now giving me an overwhelming urge to tear up iPLM&#8217;s internals and redo it to match the way things work in PowerTunes. <img src='http://www.fatcatsoftware.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, go ahead and <a href="http://www.fatcatsoftware.com/powertunes">give PowerTunes a try</a>!  The program has a 30 day trial period during which all features of the application are fully accessible.  After that, you&#8217;ll still be able to do the most basic things like open up your existing libraries, but most of the advanced functionality will be turned off until you get a license for the software.</p>
<p>And in case you&#8217;re wondering why I chose the name &#8220;PowerTunes&#8221; instead of, say, &#8220;iTunes Library Manager&#8221;, the answer is a) there is already a product with that name, and b) I learned my lesson with iPhoto Library Manager, whose name is really way too long.  I mean come on - 9 syllables? What was I thinking? <img src='http://www.fatcatsoftware.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/fatcatsoft/~4/DfQjuUZgdr8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.fatcatsoftware.com/blog/2008/powertunes-10-is-out/feed</wfw:commentRss>
		<feedburner:origLink>http://www.fatcatsoftware.com/blog/2008/powertunes-10-is-out</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.668 seconds -->
