<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Creative Workflow Hacks &#187; OSX</title>
	<atom:link href="http://www.creative-workflow-hacks.com/category/osx/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.creative-workflow-hacks.com</link>
	<description>Sharing tips, scripts and hacks for your creative workflow.</description>
	<lastBuildDate>Mon, 10 May 2010 17:40:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Saving a download in Safari stuck at &#8220;Displaying the software license agreement&#8221;</title>
		<link>http://www.creative-workflow-hacks.com/2009/04/01/saving-a-download-in-safari-stuck-at-displaying-the-software-license-agreementsaving-a-download-in-safari-stuck-at-displaying-the-software-license-agreement/</link>
		<comments>http://www.creative-workflow-hacks.com/2009/04/01/saving-a-download-in-safari-stuck-at-displaying-the-software-license-agreementsaving-a-download-in-safari-stuck-at-displaying-the-software-license-agreement/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 15:15:27 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/?p=93</guid>
		<description><![CDATA[I was stuck on a fairly large .dmg download via Safari today with the Download window reading, &#8220;Displaying the software license agreement&#8221;, like so.

I&#8217;m not sure what was up, but I knew I didn&#8217;t want to take the time to re-download it. Turns out a quick right-click, and &#8220;Show Package Contents&#8221; gave me access to [...]]]></description>
			<content:encoded><![CDATA[<p>I was stuck on a fairly large .dmg download via Safari today with the Download window reading, <strong>&#8220;Displaying the software license agreement&#8221;</strong>, like so.<br />
<a href="http://www.creative-workflow-hacks.com/wp-content/uploads/2009/04/picture-1.png"><img src="http://www.creative-workflow-hacks.com/wp-content/uploads/2009/04/picture-1-300x126.png" alt="" title="Downloads Window" width="300" height="126" class="alignnone size-medium wp-image-92" /></a><br />
I&#8217;m not sure what was up, but I knew I didn&#8217;t want to take the time to re-download it. Turns out a quick right-click, and <strong>&#8220;Show Package Contents&#8221;</strong> gave me access to the .dmg and it mounted and verified just fine. I don&#8217;t think this would work with a .download that was actually hosed, but maybe a web search to this post will save somebody a bit of download time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2009/04/01/saving-a-download-in-safari-stuck-at-displaying-the-software-license-agreementsaving-a-download-in-safari-stuck-at-displaying-the-software-license-agreement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Apple Motion with Adobe After Effects</title>
		<link>http://www.creative-workflow-hacks.com/2007/03/05/using-apple-motion-with-adobe-after-effects/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/03/05/using-apple-motion-with-adobe-after-effects/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 16:32:46 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[After Effects ]]></category>
		<category><![CDATA[Final Cut Pro]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/03/05/using-apple-motion-with-adobe-after-effects/</guid>
		<description><![CDATA[Looks like Apple&#8217;s chocolate is in Adobe&#8217;s peanut butter, or is it the other way around? Import Motion Files Into Adobe After Effects is an Apple tutorial on how to bring Motion files into After Effects.
The cool thing about Motion files is that the project format is a well formed XML file  that Quicktime [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like <strong>Apple&#8217;s</strong> chocolate is in <strong>Adobe&#8217;s</strong> peanut butter, or is it the other way around? <a href="http://www.apple.com/pro/techniques/motionaftereffects/">Import Motion Files Into Adobe After Effects</a> is an <strong>Apple tutorial</strong> on how to bring <strong>Motion</strong> files into <strong>After Effects</strong>.</p>
<p>The cool thing about <strong>Motion files</strong> is that the project format is a <strong>well formed XML file</strong>  that <strong>Quicktime</strong> understands how to render. That&#8217;s how you get cool products like <a href="http://www.digital-heaven.co.uk/automotion/">Digital Heaven&#8217;s Automotion</a>. If you&#8217;ve got more of a DIY bent, that also opens up a lot of possibilities for creating cool projects via <strong>XML transforms and scripting</strong>. More to come as I explore some of the possibilities.</p>
<p><strong>Update 03.08.2007</strong></p>
<p>While I was researching, it looks likes the folks at <a href="http://www.motionsmarts.com/downloads.html">motionsmarts</a> have already been hard at work with cool scripts for <strong>Motion</strong>. <a href="http://www.motionsmarts.com/downloads/AE2Motion.zip">After Effects Position to Motion Position script</a> looks particularly useful for the kind of stuff I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/03/05/using-apple-motion-with-adobe-after-effects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the Spotlight Importer to Extract Text from a PDF</title>
		<link>http://www.creative-workflow-hacks.com/2007/02/23/using-the-spotlight-importer-to-extract-text-from-a-pdf/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/02/23/using-the-spotlight-importer-to-extract-text-from-a-pdf/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 15:05:00 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[OSX]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/02/23/using-the-spotlight-importer-to-extract-text-from-a-pdf/</guid>
		<description><![CDATA[Ever have a PDF that you need to grab a bunch of text from and don&#8217;t want to spend a lot of time selecting and copy/pasting? You can use the Spotlight Importer command-line utility to extract the text on OS X.

/usr/bin/mdimport -d2 /path/to/pdf/file.pdf >&#038; pdf.txt

It&#8217;s the raw text that Spotlight is using to index the [...]]]></description>
			<content:encoded><![CDATA[<p>Ever have a PDF that you need to grab a bunch of text from and don&#8217;t want to spend a lot of time selecting and copy/pasting? You can use the <strong>Spotlight Importer</strong> command-line utility to extract the text on <strong>OS X</strong>.</p>
<pre>
/usr/bin/mdimport -d2 /path/to/pdf/file.pdf >&#038; pdf.txt
</pre>
<p>It&#8217;s the raw text that <strong>Spotlight</strong> is using to index the file, so you&#8217;ll need to do some clean up, but your mouse hand will thank you.</p>
<p>(via <a href="http://www.borkware.com/quickies/">Borkware Quickies</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/02/23/using-the-spotlight-importer-to-extract-text-from-a-pdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading Quicktime Timecode in After Effects Redux: A Solution</title>
		<link>http://www.creative-workflow-hacks.com/2006/08/29/reading-quicktime-timecode-in-after-effects-redux-a-solution/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/08/29/reading-quicktime-timecode-in-after-effects-redux-a-solution/#comments</comments>
		<pubDate>Wed, 30 Aug 2006 02:07:28 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[After Effects ]]></category>
		<category><![CDATA[Final Cut Pro]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Quicktime]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/08/30/reading-quicktime-timecode-in-after-effects-redux-a-solution/</guid>
		<description><![CDATA[When we were last talking about reading timecode from FCP sourced Quicktime&#8217;s I followed a tangent into Spotlight and other OS X technologies. Well, recently I revisited this problem for another project I&#8217;m working on and I think I&#8217;ve got a working solution for reading embedded timecode in After Effects on OS X.

timecodereader is a [...]]]></description>
			<content:encoded><![CDATA[<p>When we were last talking about <a href="http://www.creative-workflow-hacks.com/2006/05/09/moving-toward-reading-fcp-source-timecode-from-imported-quicktimes-in-after-effects/">reading timecode from FCP sourced Quicktime&#8217;s</a> I followed a tangent into <strong>Spotlight</strong> and other <strong>OS X</strong> technologies. Well, recently I revisited this problem for another project I&#8217;m working on and I think I&#8217;ve got a working solution for reading embedded timecode in <strong>After Effects</strong> on <strong>OS X</strong>.
</p>
<p><strong>timecodereader</strong> is a command-line utility that takes a path from <strong>After Effects</strong> via <strong>system.callSystem()</strong> and returns either the embedded timecode or the string <strong><unknown timecode></strong>. Right now the included <strong>.JSX script</strong> just writes that information to the console, but there are a lot of cool uses for <strong>Quicktime timecode</strong> in productivity scripts.
</p>
<h2>How to Use timecodereader</h2>
<p>
Download the zip archive, and either compile a new binary from the included <strong>XCode</strong> project or move the already compiled binary from <strong>build/release</strong> to a local binary directory. Since this is a command line tool you will want to move it to a location in your <strong>Path</strong> statement so you can use <strong>system.callSystem(&#8220;timecodereader &#8221; + String(thisItem.mainSource.file))&#8221;</strong> instead of <strong>system.callSystem(&#8220;/path/to/timecodereader &#8221; + String(thisItem.mainSource.file))</strong> .
</p>
<p>Update 09-09-2006: Lloyd Alvarez points out at <a href="http://www.aenhancers.com/viewtopic.php?t=430&#038;start=0">aenhancers</a> that <strong>AE</strong> preferers <strong>~/bin/timecodereader</strong> when we set up as below. I&#8217;ve adjusted the enclosed script.</p>
<p>
In the default <strong>Bash</strong> shell<br />
<code></p>
<pre>
export PATH="$PATH:~/bin"
echo 'PATH="$PATH:~/bin"' >> .profile
</pre>
<p></code><br />
will setup a path to <strong>bin</strong> in your <strong>User</strong> directory. Move the enclosed script to your <strong>Scripts</strong> folder, select a <strong>Quicktime file</strong> in the <strong>Project window</strong> and we&#8217;re done.
</p>
<p>
When I run the script, I get these results (The 1:00:00:00 timecode is due to the fact that I&#8217;m using <strong>writeln</strong> to write to the console so the previous lines scroll up until they are out of view).
</p>
<div style="height:175px">
<img src="http://www.creative-workflow-hacks.com/images/timecodeProjectWindow.jpg" alt="After Effects Project Window with Quicktime selected">
</div>
<div style="height:210px">
<img src="http://www.creative-workflow-hacks.com/images/timecodeInfoWindow.jpg" alt="After Effects Info Window with timecode displayed">
</div>
<p>I&#8217;ve tried <strong>timecodereader</strong> with quite a few <strong>Quicktime&#8217;s</strong> but obviously there might be a few that aren&#8217;t handled well, so consider this a beta release. The compiled binary is a universal binary so it should work on both <strong>PowerPC</strong> and <strong>Intel</strong> platforms. One gotcha, is that if you have a <strong>codec</strong> that is not compiled for the supported platform you might get a <strong>dyld returns 2</strong> log message that might futz with your script. You can either work around it via string handling or remove the <strong>codec</strong> since it won&#8217;t work anyway. You’ll need to turn on <strong>Allow Scripts to Write Files and Access Network</strong> and turn off <strong>Enable JavaSript Debugger</strong> so we can eat the errors.
</p>
<h2>timecodereader requires <strong>After Effects 7</strong>,  and <strong>OS X 10.4+</strong></h2>
<p>Updated file: 09.09.2006</p>
<p>Fixed a problem with external Hard Drives and Mounted Volumes. <strong>After Effects</strong> does not add <strong>/Volumes/</strong> to drive paths like <strong>OS X</strong>, so <strong>/Volumes/MyHardDriveName</strong> is reported as <strong>/MyHardDriveName</strong>I&#8217;m basically checking all mount points and adding /Volumes when appropriate, unfortunately the response is a bit slower if you have disk images or a lot of volumes mounted. If anybody knows anything faster send it my way.
</p>
<p>
Also. I&#8217;m using metadata checks for <strong>com.apple.quicktime-movie</strong> to check whether the file is a quicktime file. This only works on volumes that are indexed, so it might not work on mounted server volumes. I can add alternative QT detection if anybody finds it useful or necessary.
</p>
<p><a href="http://www.creative-workflow-hacks.com/downloads/timecodereader.zip">Zip Archive of Binary, Script and XCode Project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/08/29/reading-quicktime-timecode-in-after-effects-redux-a-solution/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Kona 10bit RGB/Trillions+ with Endian Option producing black frames?</title>
		<link>http://www.creative-workflow-hacks.com/2006/08/19/kona-10bit-rgbtrillions-with-endian-option-producing-black-frames/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/08/19/kona-10bit-rgbtrillions-with-endian-option-producing-black-frames/#comments</comments>
		<pubDate>Sat, 19 Aug 2006 17:52:29 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[After Effects ]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Quicktime]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/08/19/kona-10bit-rgbtrillions-with-endian-option-producing-black-frames/</guid>
		<description><![CDATA[Update 9/11/2006 6:20PMI said I&#8217;d update this post when updated drivers were available, and it looks like the 8/29/2006 drivers from AJA have addressed this issue. Download them here.

Update 8/19/2006 2:50PM OK. It appears that downgrading the codec to version 1.2 fixes the issue. Run the uninstaller, and grab the 1.2 codecs at Aja&#8217;s site. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update 9/11/2006 6:20PM</strong>I said I&#8217;d update this post when updated drivers were available, and it looks like the 8/29/2006 drivers from AJA have addressed this issue.<a href="http://www.aja.com/html/support_kona3_swd.html"> Download them here</a>.
</p>
<p><strong>Update 8/19/2006 2:50PM</strong> OK. It appears that downgrading the codec to version 1.2 fixes the issue. Run the uninstaller, and grab the 1.2 codecs at <a href="http://www.aja.com/html/support_kona3_swd.html">Aja&#8217;s site</a>. I&#8217;m going to leave this up for any future Google searches and I&#8217;ll update it when there is an upgraded codec. Thanks to Evan on this one.</p>
<p>I&#8217;m running into a problem with <strong>Kona 10bit RGB</strong> output with trillions+ that I&#8217;m hoping somebody might be able to help with since I&#8217;m on a really tight deadline. I&#8217;ve been happily producing <strong>10 bit RGB quicktimes</strong> with trillions + option for weeks now. I bought several new machines that have introduced a new <strong>endian option</strong> in the compressor options like so&#8230;</p>
<div style="height: 175px;">
<img src="http://www.creative-workflow-hacks.com/images/end.jpg" alt="big endian option">
</div>
<p>This is what all of our older machines with the same version of <strong>OSX, Quicktime and Kona drivers</strong> look like&#8230;
</p>
<div style="height: 165px">
<img src="http://www.creative-workflow-hacks.com/images/noEnd.jpg" alt="no big endian option">
</div>
<p>All of the <strong>Quicktimes</strong> we produce from the computers with the <strong>endian option</strong> produce <strong>black frames</strong> no matter what combination we use when <strong>trillions+</strong> is selected. I&#8217;m aware of <strong>endian issues</strong> with the new <strong>Intel Macs vs G5 Macs</strong>, but I can&#8217;t seem to produce a working combination and like I said all software is up to date on all machines. I&#8217;m guessing a firmware issue or something. I&#8217;m hoping somebody has a working workaround and can send a comment or email to dale(at)creative-workflow-hacks(dot)com. Normally, I&#8217;d just go through tech support options, but my deadline is pressing. Thanks folks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/08/19/kona-10bit-rgbtrillions-with-endian-option-producing-black-frames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interface Gripes: Is your After Effects document dirty?</title>
		<link>http://www.creative-workflow-hacks.com/2006/08/06/interface-gripes-is-your-after-effects-document-dirty/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/08/06/interface-gripes-is-your-after-effects-document-dirty/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 19:56:12 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[After Effects ]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/08/06/interface-gripes-is-your-after-effects-document-dirty/</guid>
		<description><![CDATA[After Effects 7 has debuted to decidedly mixed reviews at work. While most folks are excited about the new features, there is a general unease with the new interface. It&#8217;s as if we&#8217;re dealing with a new Adobe OS. I think as we get a few projects under our belt the unease will dissipate a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>After Effects 7</strong> has debuted to decidedly mixed reviews at <a href="http://www.primalscreen.com">work</a>. While most folks are excited about the new features, there is a general unease with the new interface. It&#8217;s as if we&#8217;re dealing with a new <strong>Adobe OS</strong>. I think as we get a few projects under our belt the unease will dissipate a bit especially since we have such a history with the application and it is strong in features and implementation. My personal opinion is that user feedback will moderate the interface in future versions and I want to point out one example of a <strong>platform specific UI cue</strong> that is an example of why you might want to not make an application <strong>too uni-platform</strong>.
</p>
<p> A <a href="http://tuvix.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGText/chapter_13_section_3.html">dirty document</a> in <strong>OS X</strong> is a document with unsaved changes. There is a clear way to indicate this. Here are a few examples in some <strong>Adobe</strong> apps.
</p>
<p>In <strong>Photoshop</strong>, a document before making a change</p>
<div style="height: 50px">
<img src="http://www.creative-workflow-hacks.com/images/photoshopCleanDoc.jpg" alt="A clean document in Adobe Photoshop">
</div>
<p>In <strong>Photoshop</strong>, after making a change</p>
<div style="height: 50px">
<img src="http://www.creative-workflow-hacks.com/images/photoshopDirtyDoc.jpg" alt="A dirty document in Adobe Photoshop">
</div>
<p>In <strong>Illustrator</strong>, a document before making a change</p>
<div style="height: 85px">
<img src="http://www.creative-workflow-hacks.com/images/illustratorCleanDoc.jpg" alt="A clean document in Adobe Illustrator">
</div>
<p>In <strong>Illustrator</strong>, after making a change</p>
<div style="height: 85px">
<img src="http://www.creative-workflow-hacks.com/images/illustratorDirtyDocument.jpg" alt="A dirty document in Adobe Illustrator">
</div>
<p>Notice the filled in bubble on the left? Now let&#8217;s do the same thing in <strong>After Effects</strong>.</p>
<p>In <strong>After Effects</strong>, a document before making a change</p>
<div style="height: 110px">
<img src="http://www.creative-workflow-hacks.com/images/afterEffectsCleanDoc.jpg" alt="A clean document in Adobe After Effects">
</div>
<p>In <strong>After Effects</strong>, after, umm,  making a change</p>
<div style="height: 110px">
<img src="http://www.creative-workflow-hacks.com/images/afterEffectsDirtyDoc.jpg" alt="A dirty document in Adobe After Effects">
</div>
<p>In <strong>After Effects</strong> we lose an <strong>OS X</strong> interface cue. My guess, is this is an oversight from creating the interface with non-standard GUI widgets and that&#8217;ll get fixed in a later verson. But it is a great example of what happens when you try to <strong>go it alone</strong> in interface land, especially with <strong>Mac users</strong> who are a notoriously finicky lot. So, when I talk to <strong>Adobe</strong> developers, I&#8217;ll be sure to put in my voice for letting each platform retain its own individual personality.
</p>
<p>btw&#8230;I <strong>am</strong> aware of the <strong>asterisk next to the file name</strong> cue, but this isn&#8217;t an <strong>either/or</strong> situation, so many interface cues are practically subliminal, and if a quick glance to the left corner doesn&#8217;t give me what I&#8217;m looking for, I&#8217;ll just think that it isn&#8217;t <strong>Mac like</strong> without really knowing why.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/08/06/interface-gripes-is-your-after-effects-document-dirty/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A small command-line utility to convert paths and pathurls  for OSX</title>
		<link>http://www.creative-workflow-hacks.com/2006/07/20/a-small-command-line-utility-for-osx-to-convert-paths-and-pathurls/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/07/20/a-small-command-line-utility-for-osx-to-convert-paths-and-pathurls/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 13:15:02 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[OSX]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/07/20/a-small-command-line-utility-for-osx-to-convert-paths-and-pathurls/</guid>
		<description><![CDATA[One of the notable short comings of the workflow I outlined for converting Final Cut Pro elements into After Effects projects via scripting was the limited path support. That was mainly due to the fact that Final Cut Pro uses a fully qualified path url of the form file://path/to/file and After Effects has an Absolute [...]]]></description>
			<content:encoded><![CDATA[<p>One of the notable short comings of the <a href="http://www.creative-workflow-hacks.com/2006/03/09/moving-between-final-cut-pro-and-after-effects-the-scripting-option/">workflow I outlined</a> for converting <strong>Final Cut Pro</strong> elements into <strong>After Effects</strong> projects via scripting was the limited path support. That was mainly due to the fact that <strong>Final Cut Pro</strong> uses a fully qualified path url of the form <strong>file://path/to/file</strong> and <strong>After Effects</strong> has an <strong>Absolute URI</strong> that uses the tilde as a shortcut for the  current user&#8217;s home directory. So, <strong>file://Volumes/MyHD/Users/Dale/Stuff</strong> becomes <strong>~/Stuff</strong>. Trying to munge all of the contingencies in Javascript is not a pleasant task, and <strong>Cocoa</strong> has a nice set of methods for dealing with just this situation, including <strong>stringByAbbreviatingWithTildeInPath</strong> and <strong>stringByExpandingTildeInPath</strong>.</p>
<p>What I&#8217;ve done is written a small <strong>Cocoa foundation tool</strong> that works on the command line to move between the formats of interest. The tool takes the following switches.</p>
<dl>
<dt>pathconvert -u  pathurl</dt>
<dd>Takes a <strong>pathurl</strong> of the form <strong>file://localhost/Volumes/Storage/Users/Dale/test</strong> used by <strong>Final Cut XML</strong> and converts it to an <strong>AbsoluteURI</strong> that <strong>After Effects</strong> will be happy with, including using <strong>stringByAbbreviatingWithTildeInPath</strong> to resolve directories in the <strong>User Home</strong> folder, such that the <strong>pathurl</strong> above becomes <strong>~/test</strong>. </dd>
<dt>pathconvert -f  fullpath</dt>
<dd>Takes a fullpath of the form <strong>/Volumes/MyHD/Users/Dale/Test</strong> and returns a short cut tilde path when appropriate. The string above would become <strong>~/Test</strong>. </dd>
<dt>pathconvert -t  abbreviatedPath</dt>
<dd>Takes a short cut path of the form <strong>~/Test</strong> and returns a full path when appropriate. The string above would become <strong>/Volumes/MyHD/Users/Dale/Test</strong>. </dd>
</dl>
<p>This utility, combined with <strong>system.callSystem()</strong> in After Effects 7 will make our work with <strong>Final Cut Pro XML</strong> a lot more friendly in a scripting environment. Next up is an updated tutorial on working with <strong>Final Cut XML</strong> and <strong>After Effects scripting</strong> and more detailed instructions on how to install and use this utility. I wanted to post this now to get feedback from power users and developers on potential problems and gotchas. I&#8217;m not much of a c hacker, so I&#8217;m enclosing both the <strong>XCode project files and a compiled binary</strong>. Please send any improvements or ideas to me and I&#8217;ll share them here. As always, feedback and improvements to <strong>dale(at)creative-workflow-hacks(dot)com. </strong></p>
<p><a href="http://www.creative-workflow-hacks.com/downloads/pathconvert.zip">Compiled Binary and XCode Project files available here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/07/20/a-small-command-line-utility-for-osx-to-convert-paths-and-pathurls/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Stupid Scripting Tricks: Import every Quicktime available</title>
		<link>http://www.creative-workflow-hacks.com/2006/05/04/stupid-scripting-tricks-import-every-quicktime-available/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/05/04/stupid-scripting-tricks-import-every-quicktime-available/#comments</comments>
		<pubDate>Thu, 04 May 2006 14:15:11 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[After Effects ]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Quicktime]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/05/04/stupid-scripting-tricks-import-every-quicktime-available/</guid>
		<description><![CDATA[Here&#8217;s a fun one. Run this script and it will import every Quicktime on your hard drive or mounted server that After Effects understands. Stupidest hack ever, right? Well yeah, but there is some real gold in this line of the script


mdfind 'kMDItemKind == "QuickTime Movie"'


mdfind is the command line version of Apple&#8217;s spotlight technology. [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a fun one. Run this script and it will import every Quicktime on your hard drive or mounted server that After Effects understands. Stupidest hack ever, right? Well yeah, but there is some real gold in this line of the script</p>
<p><code></p>
<pre>
mdfind 'kMDItemKind == "QuickTime Movie"'
</pre>
<p></code></p>
<p><strong>mdfind</strong> is the command line version of Apple&#8217;s <strong>spotlight</strong> technology. Combined with the new <a href="http://developer.apple.com/documentation/QuickTime/APIREF/WorkingWithQuickTimeMetadata.htm">Quicktime metadata API</a> and <strong>system.callSystem()</strong> there&#8217;s a lot for a hungry developer to chew on.
</p>
<p>The script, osX 10.4(Tiger) and After Effects 7 only (I know, I know)</p>
<p><code></p>
<pre>
var myProject = app.project;

var osString = "mdfind 'kMDItemKind == \"QuickTime Movie\"' | wc -l" ;
var numberOfQTs = system.callSystem(osString);
//After Effects seems to choke when I feed it more than 41 items at a time, so let's use sed to give it 40 to chew on at a time
for(x=1; x < numberOfQTs; x = x + 40){
	var osString = "mdfind 'kMDItemKind == \"QuickTime Movie\"' | sed -n '" + x + ", " + ( x + 40) + "p'";
	//alert(osString);
	var systemCall = system.callSystem(osString);

	var movArray= systemCall.split("\\n");

	for(y=0; y < movArray.length; y++){
			try{
				var my_io = new ImportOptions(new File( movArray[y]));
				var myItem = myProject.importFile(my_io);
			}catch(e){
				//eat errors
			}
	}
}
</pre>
<p></code></p>
<p>And the downloadable version</p>
<p><a href="http://creative-workflow-hacks.com/downloads/importEveryQuicktime.jsx.zip">importEveryQuicktime.jsx.zip</a></p>
<h2>followup 5/4/2006 2:30P EST:</h2>
<p>So, most folks working in motion graphics have a <strong>lot</strong> of quicktimes on their system and don't necessarily want to take a long time to import all of them into an After Effects project as a proof of concept ( I told you this was a Stupid Scripting Trick). Therefore, here's a version that imports the first 20 of them with <strong>head -n 20</strong> to act as a proof of concept for you busy people <grin>.</p>
<p><p>Here ya go:</p>
<p><a href="http://creative-workflow-hacks.com/downloads/import20Quicktimes.jsx.zip">import20Quicktimes.jsx.zip</a></p>
<p>You'll need to turn on <strong>Allow Scripts to Write Files and Access Network</strong> and turn off <strong>Enable JavaSript Debugger</strong> so we can eat the errors. As in anything that allows write access to your file system, be careful in experimenting with this script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/05/04/stupid-scripting-tricks-import-every-quicktime-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems with multi-column output from system.callSystem() in After Effects 7?</title>
		<link>http://www.creative-workflow-hacks.com/2006/05/03/problems-with-multi-column-output-from-systemcallsystem-in-after-effects-7/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/05/03/problems-with-multi-column-output-from-systemcallsystem-in-after-effects-7/#comments</comments>
		<pubDate>Wed, 03 May 2006 21:42:47 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[After Effects ]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/05/03/problems-with-multi-column-output-from-systemcallsystem-in-after-effects-7/</guid>
		<description><![CDATA[
I&#8217;ve been experimenting with system.callSystem() in After Effects 7. It&#8217;s a way to call commands and applications like you would from the command line but from within the After Effects scripting environment and get the output returned to the javascript variable. Works pretty great, but I&#8217;ve run into what seems like a bug and offer [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve been experimenting with <strong>system.callSystem()</strong> in After Effects 7. It&#8217;s a way to call commands and applications like you would from the command line but from within the After Effects scripting environment and get the output returned to the javascript variable. Works pretty great, but I&#8217;ve run into what seems like a bug and offer a small work around
</p>
<p>
If I call
</p>
<p><code></p>
<pre>
var systemCall = system.callSystem('ls');
alert(systemCall);
</pre>
<p></code></p>
<p>
I get a nice alert box with my local directory. If I call
</p>
<p><code></p>
<pre>
var systemCall = system.callSystem('ls -a');
alert(systemCall);
</pre>
<p></code></p>
<p>
I get a nice alert box including . entries (which is really just to test using the <strong>-a</strong> command switch to make sure I can send parameters through system.callSystem()). If i call
</p>
<p><code></p>
<pre>
var systemCall = system.callSystem('ls -la');
alert(systemCall);
</pre>
<p></code></p>
<p>
I lock up AE7. I&#8217;m guessing it doesn&#8217;t like the multi-column output? Because if I pipe the  <strong>ls -la</strong> to <strong>awk</strong> like so
</p>
<p><code></p>
<pre>
var systemCall = system.callSystem('ls -la | awk '{print $1}');
alert(systemCall);
</pre>
<p></code></p>
<p>
I get a nice listing of my directory permissions which is the first column of the <strong>ls -la</strong> standard output.
</p>
<p>
So, it looks like the workaround if you freeze After Effects 7 with a system.callSystem() command that ouputs multi column output is to grab each column of interest with something like <strong>awk&#8217;{print $1}&#8217;</strong> where $1 etc. is the column to grab. Not sure if this is a bug or a limitation of the standard output to After Effects. Would love some feedback from anybody that knows for sure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/05/03/problems-with-multi-column-output-from-systemcallsystem-in-after-effects-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Diagnosing an OSX slowdown</title>
		<link>http://www.creative-workflow-hacks.com/2006/03/30/diagnosing-an-osx-slowdown/</link>
		<comments>http://www.creative-workflow-hacks.com/2006/03/30/diagnosing-an-osx-slowdown/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 21:44:08 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2006/03/30/debugging-an-osx-slowdown/</guid>
		<description><![CDATA[
Most of the hacks I post here are about getting things done. Today I&#8217;m going to write about avoiding obstacles that might stop you from getting things done. Namely, I&#8217;m going to case-study debugging a sluggish OSX machine.


THE SCENARIO


My boss approached me about a weird slowdown he was having where his machine was slowing to [...]]]></description>
			<content:encoded><![CDATA[<p>
Most of the hacks I post here are about getting things done. Today I&#8217;m going to write about avoiding obstacles that might stop you from getting things done. Namely, I&#8217;m going to case-study debugging a sluggish OSX machine.
</p>
<h3>
THE SCENARIO<br />
</h3>
<p>
My <a href="http://www.recharge06.com/speakers/doug-grimmett.php">boss</a> approached me about a weird slowdown he was having where his machine was slowing to a crawl. Trying to move the cursor was taking a lifetime to move a couple of inches. There wasn&#8217;t a beachball cursor indicating an application was sucking up resources and I was able to launch programs, just very S L O W L Y.
</p>
<p>
So, what did we do?
</p>
<p><span id="more-5"></span></p>
<p>
I&#8217;ve done this stuff for a while and you start to get a sense of what seems like the usual suspects when you&#8217;re debugging an OSX problem. I&#8217;m going to run through the process I use and tell you about what we found out.
</p>
<h3>
THE PROCESS<br />
</h3>
<p>
Step One.
</p>
<p>
We back up a <em>lot</em> of data at <a href="http://www.primalscreen.com">Primal Screen</a>. We do both SD and HD video and have about 10 Terabytes of online storage and 5 Terabytes for near-line archive storage, combine that with individual client machine backups, and we, unfortunately, end up backing up during business hours.  So when I hear about a mid-day slowdown, the first thing my &#8220;spidey-sense&#8221; goes off about is back-up. We use Retrospect from a central server so I did a quick check to see if it was running the client backup on Doug&#8217;s machine. Nope.
</p>
<p>
On to step two.
</p>
<p>
I also knew that Doug had recently installed Tiger(OSX 10.4) on his laptop. We are relatively late adopters on software for production machines and we&#8217;ve had enough problems with Tiger that it still isn&#8217;t universally adopted. One of the &#8220;features&#8221; we struggle with is <a href="http://www.apple.com/support/mac101/work/22/">Spotlight</a>. Spotlight is a great idea. It indexes your data and allows for quick context sensitive searches, but it&#8217;s definitely a version 1.0 technology. The interface is a bit wonky and you can sometimes run into the next problem I suspected, Spotlight indexing. Spotlight needs to &#8220;index&#8221; your computer to gather all of the information that it uses. Indexing means that spotlight goes through the folders on drives that are searched by Spotlight and gathers the metadata from your files so that you can search it. While this is happening your machine can slow down and become unresponsive. So that&#8217;s the next place we look.
</p>
<p>
If you open <strong>Applications/Utilities/Activity Monitor</strong> (or for the geeky who like the command line, via <strong>Applications/Utilities/terminal top -o cpu</strong>), the process <strong>mds</strong> is active when Spotlight is either indexing or searching. The <strong>mdimport</strong> process is also active during indexing. If we were having Spotlight problems, those processes would be active and using excess CPU cycles. Nope, in this case.
</p>
<p>
If this turns out to be your problem, a great resource is available at <a href="http://www.thexlab.com/faqs/stopspotlightindex.html">thexlab.com</a> on various ways of stopping and altering Spotlight indexing.
</p>
<p>
This is also the step where we would look for other programs taking too many CPU cycles. Sometimes you&#8217;ll have a spinning beachball cursor and not be sure of the source. Here&#8217;s where you&#8217;d check that.
</p>
<p>
On to step three.
</p>
<h3>
THE SOLUTION<br />
</h3>
<p>
We now take a stop at <strong>Applications/Utilities/Console</strong>. The console is where applications send data about their current state. You&#8217;ll find errors, status and crash information here. The GUI hides a lot of interesting information from you. Some of it is a bit geeky and extraneous but you can pick up a lot of info and understanding about your computer by checking out the console.
</p>
<p>
So, we open it and I notice these entries&#8230;.
</p>
<pre>
SoundGrinderCMPlugInFactory-I-Debug
AllocCMPlugInType-I-Debug
SoundGrinderCMPlugInQueryInterface-I-Debug
SoundGrinderCMPlugInAddRef-I-Debug
SoundGrinderCMPlugInRelease-I-Debug
SoundGrinderCMPlugInExamineContext-I-Debug
SoundGrinderCMPlugInPostMenuCleanup-I-Debug
</pre>
<p>
This looks promising&#8230;
</p>
<p>
hmmm, a CMPlugin is throwing debug info. A CM Plugin is a Contextual Menu plugin. Contextual Menus appear when you Control-click or Right-click (yeah, even macs work with two button mice these days) in a &#8220;context&#8221; that allows their use. Ok, but what is Sound Grinder?
</p>
<p>
Ahh, yes. <a href="http://www.monkey-tools.com/pages/products/sgmain.htm">Sound Grinder</a> is an audio conversion utility we were checking out to convert some audio clips. Doug had removed the program when he decided to use a different app. But why was I still getting debug info? Sure enough, in <strong>/Library/Contextual Menu Items/</strong> a <strong>SoundGrinderCMPlugIn.plugin</strong> file.
</p>
<p>
So, we&#8217;re definitely suspicious of this file. Let&#8217;s remove it. Another quick search for <a href="http://monkey-tools.com/phpBB/viewtopic.php?t=22">&#8220;uninstalling Sound Grinder&#8221;</a> revealed:
</p>
<pre>
To uninstall Sound Grinder you can simply drag the Sound Grinder folder to
the trash, and trash the plugin located at: <hard
drive>/Library/Contextual Menu Items/SoundGrinderCMPlugIn.plugin. If you
wish to delete the preferences, look in the preference folder for a file
called "com.monkeytools.soundgrinder.plist", and drag to the trash.
</pre>
<p></p>
<p>
We removed the plugin and that cleared up the problem. BTW, Sound Grinder seems like a very nice program and I&#8217;m not sure exactly why I was having the slowdown problems that we found related to the CMPlugin, although it probably didn&#8217;t help that we had yanked most of the rest of the program from the expected location.
</p>
<p>
I do think a nice universal OSX uninstall utility for programs that install things outside of the application bundle would be a good thing. I&#8217;ve got bits and pieces of no longer used detritus all over the place.
</p>
<h3>
REFERENCE<br />
</h3>
<p>
So, in this case we caught our problem in the triage stage. Sometimes, you don&#8217;t find your problem here though. Where to next? I&#8217;ve had great success with Jaguar, Panther and Tiger <a href="http://www.northernsoftworks.com/tigercachecleaner.html">Cache Cleaner</a> from Northern Softworks. It runs a bunch of standard maintenance and utility scripts that tend to ferret out corrupt caches and permissions problems. For disk problems, I recommend <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&#038;tag=creativeworkf-20&#038;camp=1789&#038;creative=9325&#038;path=tg%2Fdetail%2F-%2FB000095YXH%2Fsr%3D8-1%2Fqid%3D1143759946%2Fref%3Dpd_bbs_1%3F%255Fencoding%3DUTF8%26v%3Dglance">DiskWarrior</a><img src="http://www.assoc-amazon.com/e/ir?t=creativeworkf-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important;margin:0px !important;" /> and avoid <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&#038;tag=creativeworkf-20&#038;camp=1789&#038;creative=9325&#038;path=tg%2Fdetail%2F-%2FB0001CJEHC%2Fsr%3D8-1%2Fqid%3D1143760009%2Fref%3Dpd_bbs_1%3F%255Fencoding%3DUTF8%26v%3Dglance">Norton</a><img src="http://www.assoc-amazon.com/e/ir?t=creativeworkf-20&#038;l=ur2&#038;o=1"width="1" height="1" border="0" alt="" style="border:none !important;margin:0px !important;" /> (mainly for it&#8217;s insistence in leaving bits and pieces of itself everywhere, go figure). I&#8217;ve also been greatly assisted by John Gruber and his <a href="http://daringfireball.net">Daring Fireball</a> site. His rundown of the <a href="http://daringfireball.net/2004/12/software_update">Software Update</a> process is a great piece of info and his <a href="http://daringfireball.net/2005/03/font_caches#fn3-2005-03-21"> font cache</a> problem exposé is at least vaguely the inspiration for this post. </p>
<p><p>
Hope you&#8217;ve find this helpful, and here&#8217;s hoping your avoiding these gotcha problems in your workflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2006/03/30/diagnosing-an-osx-slowdown/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
