<?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>blog &#124; coding.curious</title>
	<atom:link href="http://codingcurious.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://codingcurious.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 19 Aug 2010 01:30:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>2.1 &#8211; Customizing TV Presets</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D171&amp;seed_title=2.1+%26%238211%3B+Customizing+TV+Presets</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D171&amp;seed_title=2.1+%26%238211%3B+Customizing+TV+Presets#comments</comments>
		<pubDate>Thu, 19 Aug 2010 01:30:55 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[2.1]]></category>
		<category><![CDATA[improvements]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=171</guid>
		<description><![CDATA[So far, the most frequent feature request for Automatic 2 has been the ability to customize the TV Show subscriptions in some way (alternate feeds, download folders, etc). The presets have been so popular that many previous users of Automatic used them to replace their own subscriptions, but then realized they wanted to tweak them. [...]]]></description>
			<content:encoded><![CDATA[<p>So far, the most frequent feature request for Automatic 2 has been the ability to customize the TV Show subscriptions in some way (alternate feeds, download folders, etc). The presets have been so popular that many previous users of Automatic used them to replace their own subscriptions, but then realized they wanted to tweak them.  </p>
<p>In all honesty, a lazy solution was easy: the flip of a switch in the code could allow any TV subscription to be edited in the Custom interface. But that solution didn&#8217;t really address the question: &#8220;Why did users so strongly prefer the presets, even over their own, already configured Custom subscriptions?&#8221;.</p>
<p>Apparently, the answer lies in the TV data. Every preset has information attached about the show, such as the banner and episode list, and is presented in various areas. So in 2.1, it will be possible to attach show data to Custom subscriptions as well. Not only for shows that Automatic already knows about, but for any show. Also, episode data will be presented in the Subscription pane as well: you&#8217;ll be able to toggle between the subscription history or the episode list.</p>
<p>In light of the improvements to presenting show data with Custom subscriptions, converting a TV Show subscription to a Custom one now makes sense. Presenting a special interface for customizing TV Show subscriptions would be a bad idea, considering there is already a very powerful and robust rule creation interface in place. So in 2.1 you will have the ability to convert a TV Show subscription and tweak it to your heart&#8217;s content. The only difference between a TV Show subscription and a Custom one with show data attached will be the section they appear in (TV Shows vs. Custom).</p>
<p>This solution covers all the bases: it leaves the TV Show interface intact, allows users to customize TV Show subscriptions without losing the show data, and even enables subscriptions with show data that was not previously available in Automatic.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=171</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing NSPreferencePane</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D148&amp;seed_title=Replacing+NSPreferencePane</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D148&amp;seed_title=Replacing+NSPreferencePane#comments</comments>
		<pubDate>Tue, 11 May 2010 22:16:13 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[nspreferencepane]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=148</guid>
		<description><![CDATA[While System Preferences.app generally makes it very easy for users to install and update prefPanes, it has some idiosyncrasies. Foremost is the fact that when it comes to comparing two prefPanes, apparently only the names are compared: make a copy of an already installed prefPane, rename it and double-click; you&#8217;ll be offered to install it, [...]]]></description>
			<content:encoded><![CDATA[<p>While System Preferences.app generally makes it very easy for users to install and update prefPanes, it has some idiosyncrasies. Foremost is the fact that when it comes to comparing two prefPanes, apparently only the names are compared: make a copy of an already installed prefPane, rename it and double-click; you&#8217;ll be offered to install it, rather than replace the existing one.</p>
<p>The second weirdness is a bit more complex, and can present problems when replacing a prefPane with one that is significantly different: on the one hand there is the installed prefPane, and on the other the new one, with the same name but a different bundle identifier. As mentioned above, System Preferences.app considers these two to be the same, based on their shared name.</p>
<p>When installing the new prefPane, System Preferences.app presumably calls <code>unload</code> on the old bundle and then <code>load</code> on the new one. This causes the new bundle&#8217;s executable to be launched, but for some reason the bundle is still set to the old one. So for example, <code>initWithBundle</code> is called with the old bundle. Also, any resources fail to load, since they presumably didn&#8217;t exist in the old bundle.</p>
<p>The best-case scenario in this case is that the prefPane will load, but no images will be displayed. Image loading is non-fatal, so System Preferences.app will complain in the log about not finding the image resources, but otherwise continue normally. However, if there are any vital resources that need to be loaded, such as Core Data models, the prefPane will probably crash.</p>
<p>This scenario only affects the first launch, when the new prefPane replaces the old one. Afterwards, everything loads and works properly. But it&#8217;s hardly the best first impression to give to a user who&#8217;s upgrading.</p>
<p>So how to fix it? Since there&#8217;s no way to modify the way the prefPane is loaded, one viable solution is to skip that first load, quit System Preferences.app and launch it again. For the user, the process is seamless: after accepting the prefPane update, System Preferences.app will briefly disappear and reappear in the dock and the prePane will load. Apart from the dock icon, the rest of the process is unaffected in the eyes of the user.</p>
<p>Quitting and relaunching the prefPane has to be done with a small tool, which is located in the Resources folder of the new bundle. This is the code that does the magic, somewhere in <code>initWithBundle</code> (preferably the first item of business):</p>
<pre>
if ([[bundle bundleIdentifier] isEqual:OLD_BUNDLE_IDENTIFIER]) {	

	NSString *reloadPath = [[bundle bundlePath]
		stringByAppendingPathComponent:@"Contents/Resources/reload"];
	NSTask* task = [[NSTask alloc] init];
	[task setLaunchPath:reloadPath];
	[task setArguments:[NSArray arrayWithObject:
		[[NSBundle bundleForClass:[self class]] bundlePath]]];
	[task setStandardInput:[NSPipe pipe]];
	[task launch];
	[NSApp terminate:nil];
	[task release];
}
</pre>
<p>The path of the reload tool has to be manually set, rather than via NSBundle&#8217;s convenience methods, since they will give the wrong Resource folder. The reload tool takes one argument, which is the path of the new prefPane to launch. So essentially the prefPane sets up a task to launch itself, and then terminates.</p>
<p>The tool is very simple, all it does is launch the prefPane:</p>
<pre>
int main(int argc, char **argv) {

	char dummy;
	read(STDIN_FILENO, &#038;dummy, 1);
	CFURLRef url = CFURLCreateFromFileSystemRepresentation(
		kCFAllocatorDefault, (UInt8*)argv[1], strlen(argv[1]), FALSE);
	CFArrayRef url = CFArrayCreate(kCFAllocatorDefault, (const void**)&#038;url,
		 1, NULL);
	FSRef ref;
	OSStatus status = LSFindApplicationForInfo(0,
		CFSTR("com.apple.systempreferences"), NULL, &#038;ref, NULL)
	if ( status  == noErr) {
		LSApplicationParameters parms = {0, kLSLaunchDefaults, &#038;ref,
			 NULL, NULL, NULL, NULL};
		LSOpenURLsWithRole(url, kLSRolesAll, NULL, &#038;parms, NULL, 0);
	}
	CFRelease(url);
}
</pre>
<p>In Xcode, the target that builds the prefPane should have a dependency on the tool so that it is also built, and also copy the build result into the Resources folder.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=148</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handling URL Schemes with NSPreferencePane</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D142&amp;seed_title=Handling+URL+Schemes+with+NSPreferencePane</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D142&amp;seed_title=Handling+URL+Schemes+with+NSPreferencePane#comments</comments>
		<pubDate>Thu, 22 Apr 2010 02:05:01 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[nspreferencepane]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=142</guid>
		<description><![CDATA[There was a feature I wanted to implement in Automatic 2.0 that required registering the prefPane to handle a specific (custom) URL scheme to pass data into the app. After a lot of digging, I came to the inevitable conclusion: it can&#8217;t be done. This post describes both my findings regarding URL schemes in prefPanes [...]]]></description>
			<content:encoded><![CDATA[<p><em>There was a feature I wanted to implement in Automatic 2.0 that required registering the prefPane to handle a specific (custom) URL scheme to pass data into the app. After a lot of digging, I came to the inevitable conclusion: <strong>it can&#8217;t be done</strong>. This post describes both my findings regarding URL schemes in prefPanes and the workaround I used.</em></p>
<p>Normally, an app can register specific URL schemes with LaunchServices, telling the system that if a user clicks on a URL, it should be forwarded to that app. The information about the URL schemes is stored in the app&#8217;s Info.plist, under the <code>CFBundleURLTypes</code> key.</p>
<p>Unfortunately, that doesn&#8217;t work with prefPanes (as usual: the prefPane&#8217;s bundle is not the app&#8217;s bundle). What&#8217;s very interesting however, is that apparently Apple&#8217;s Accounts prefPane <strong>can</strong> handle URLs with the <code>macosxserverinvite</code> scheme. </p>
<p>So how does it do it? Looking at the Info.plist file for System Preferences.app, it normally registers the <code>macosxserverinvite</code> scheme, but <strong>also</strong> adds the key <code>preference pane identifier</code>, with a value of <code>com.apple.preferences.users</code> which is the bundle identifier for the Accounts prefPane. It seems that when System Preferences.app intercepts a registered URL, it forwards it to the prefPane whose bundle matches the <code>preference pane identifier</code> key-value. The big problem here is that this set up is not extensible: as is the norm for Apple apps, System Preferences.app is signed, which means no touching the Info.plist file to add additional URL schemes and redirects (and even without the signing, editing another app&#8217;s bundle is very naughty).</p>
<p>That&#8217;s where the trail ends. There doesn&#8217;t appear to be any way to register a URL scheme for a prefPane inside System Preferences.app. However, there is a workaround: use a helper app.</p>
<p>The process goes like this: register a background helper app to handle the URL, and when the helper intercepts a URL, either process the information itself, or store the data and then launch the prefPane. Of course, because the helper can only launch the prefPane, but not provide it with any other information, it is the prefPane&#8217;s responsibility to check every time it launches if there is any URL data stored that hasn&#8217;t been handled.</p>
<p>It&#8217;s quite a hassle, but the end result for the user is seamless: click on the URL, the prefPane launches and takes appropriate action.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=142</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2.0 &#8211; Episodic Content</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D136&amp;seed_title=2.0+%26%238211%3B+Episodic+Content</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D136&amp;seed_title=2.0+%26%238211%3B+Episodic+Content#comments</comments>
		<pubDate>Sat, 17 Apr 2010 21:57:36 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[improvements]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=136</guid>
		<description><![CDATA[In Automatic 1.x, there was an option called &#8220;Download every episode once&#8221;. If enabled, it would make sure that each episode in a series of episodic content would be downloaded only once, regardless of how many times it (re)appeared in the feed. There was a catch, however: it only worked if the subscription was set [...]]]></description>
			<content:encoded><![CDATA[<p>In Automatic 1.x, there was an option called &#8220;Download every episode once&#8221;. If enabled, it would make sure that each episode in a series of episodic content would be downloaded only once, regardless of how many times it (re)appeared in the feed.</p>
<p>There was a catch, however: it only worked if the subscription was set up to match a single series. If the subscription was matching multiple series, and the episode numbers overlapped, there were false negatives. This was a one of the most common issues users had with subscriptions.</p>
<p>With 2.0, this feature can still be found for Custom subscriptions under the name &#8220;Try to download every episode once&#8221;. But it&#8217;s been upgraded to be a little smarter: it can now differentiate between episode numbers that belong to different series. So if a Custom subscription is grabbing multiple series, this option can now safely be enabled.</p>
<p>As an aside, the &#8220;Unless tagged as &#8216;proper&#8217; or &#8216;repack&#8217;&#8221; option has been removed, and these tags are now universally respected for all subscriptions.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=136</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding a Help Book to NSPreferencePane</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D126&amp;seed_title=Adding+a+Help+Book+to+NSPreferencePane</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D126&amp;seed_title=Adding+a+Help+Book+to+NSPreferencePane#comments</comments>
		<pubDate>Wed, 14 Apr 2010 22:22:53 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[help book]]></category>
		<category><![CDATA[nspreferencepane]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=126</guid>
		<description><![CDATA[After spending the better part of a day trying to figure why the help book wouldn&#8217;t open in Help Viewer, I finally discovered the reason. Hopefully anyone else trying to dig through Apple&#8217;s surprisingly verbose, yet conflicting and confusing documentation will stumble across this. In general, there are quite a few hoops to jump through [...]]]></description>
			<content:encoded><![CDATA[<p><em>After spending the better part of a day trying to figure why the help book wouldn&#8217;t open in Help Viewer, I finally discovered the reason. Hopefully anyone else trying to dig through Apple&#8217;s surprisingly verbose, yet conflicting and confusing documentation will stumble across this.</em></p>
<p>In general, there are quite a few hoops to jump through to get a help book up and running. And some additional ones to get it in a preference pane. But even if you follow Apple&#8217;s instructions, you&#8217;ll just get the annoyingly non-specific error &#8220;Help Viewer cannot open this content&#8221;.</p>
<p>The problem is, as usual for preference panes, that the bundle is not the app&#8217;s bundle, but rather a guest bundle to System Preferences.app. When Apple says that a help book is automatically registered, they mean the main bundle&#8217;s help book. For a preference pane, you have to manually register it.</p>
<p>In Snow Leopard, that&#8217;s just a couple lines of code using NSHelpManager, which you can drop somewhere like <code>awakeFromNib</code>:</p>
<pre>NSBundle *myBundle = [NSBundle bundleForClass:[self class]];
[[NSHelpManager sharedHelpManager] registerBooksInBundle: myBundle];</pre>
<p>In earlier versions of Mac OS X, you&#8217;ll have to use <code>AHRegisterHelpBook()</code> from Carbon&#8217;s Help framework (it&#8217;s quite annoying to have to link an otherwise 100% Cocoa app to Carbon just for this). It requires a few more lines of code, but the effect is the same:</p>
<pre>FSRef fsref;
NSBundle *myBundle = [NSBundle bundleForClass:[self class]];
NSString *path = [myBundle bundlePath];
NSURL *url = [NSURL fileURLWithPath:path];
if (CFURLGetFSRef((CFURLRef)url, &#038;fsref)) {
	OSStatus err = AHRegisterHelpBook(&#038;fsref);
	if (err) // Do error stuff
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=126</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;The End Is Nigh&#8217;</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D122&amp;seed_title=%26%238216%3BThe+End+Is+Nigh%26%238217%3B</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D122&amp;seed_title=%26%238216%3BThe+End+Is+Nigh%26%238217%3B#comments</comments>
		<pubDate>Sat, 10 Apr 2010 00:56:53 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=122</guid>
		<description><![CDATA[I&#8217;m extremely pleased to announce that Automatic 2.0 will be released on April 19th! Development is rapidly wrapping up, with the help of some really amazing beta testers. In regard to pricing, a single personal license (*) for Automatic 2.0 will cost $19.95, or the equivalent in local currency. Also, as a thank you to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m <em>extremely</em> pleased to announce that Automatic 2.0 will be released on April 19th! Development is rapidly wrapping up, with the help of some really amazing beta testers.</p>
<p>In regard to pricing, a single personal license (*) for Automatic 2.0 will cost $19.95, or the equivalent in local currency.</p>
<p>Also, as a thank you to everyone who supported Automatic over the years, all past donors will receive complimentary licenses for 2.0. So check your mail around April 19th!</p>
<p style="font-size: 9px;">(*) Personal means you can use a single license on as many computers as you want, provided they are owned and used primarily by you.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=122</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stating the Obvious</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D114&amp;seed_title=Stating+the+Obvious</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D114&amp;seed_title=Stating+the+Obvious#comments</comments>
		<pubDate>Wed, 07 Apr 2010 23:03:52 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[die Flash die]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=114</guid>
		<description><![CDATA[On the left, CPU usage while Jilion&#8217;s gorgeous SublimeVideo player was running full-window in HTML5 mode. On the right, the same video was playing in Flash mode. To say that I look forward to the death of Flash would be a gross understatement.]]></description>
			<content:encoded><![CDATA[<p>On the left, CPU usage while Jilion&#8217;s gorgeous <a href="http://jilion.com/sublime/video">SublimeVideo</a> player was running full-window in HTML5 mode. On the right, the same video was playing in Flash mode.</p>
<div style="float:left; margin-left:70px;"><a id="single_image" href="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/SublimeVideoHTML5.jpg"><img class="thumb" src="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/SublimeVideoHTML5-Thumb.jpg" alt=""/></a></div>
<div style="text-align:right; margin-right:70px;"><a id="single_image"  href="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/SublimeVideoFlash.jpg"><img class="thumb" src="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/SublimeVideoFlash-Thumb.jpg" alt=""/></a></div>
<p>To say that I look forward to the death of Flash would be a gross understatement.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=114</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2.0 &#8211; Hinted for Spotlight Indexing</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D86&amp;seed_title=2.0+%26%238211%3B+Hinted+for+Spotlight+Indexing</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D86&amp;seed_title=2.0+%26%238211%3B+Hinted+for+Spotlight+Indexing#comments</comments>
		<pubDate>Wed, 07 Apr 2010 01:10:51 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[improvements]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=86</guid>
		<description><![CDATA[For those that use Spotlight as an app launcher, Automatic 2.0 is hinted for indexing. What does that mean? You can type things like &#8216;rss&#8217; or &#8216;tv&#8217; in Spotlight or the System Preferences search field and Automatic will be recommended: Rejoice!]]></description>
			<content:encoded><![CDATA[<p>For those that use Spotlight as an app launcher, Automatic 2.0 is hinted for indexing. What does that mean? You can type things like &#8216;rss&#8217; or &#8216;tv&#8217; in Spotlight or the System Preferences search field and Automatic will be recommended:</p>
<div style="text-align:center;"><a id="single_image" href="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/SpotlightIndexHint.jpg"><img class="thumb" src="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/SpotlightIndexHint-Thumb.jpg" alt=""/></a></div>
<p>Rejoice!</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=86</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2.0 &#8211;  Refresh Schedule</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D74&amp;seed_title=2.0+%26%238211%3B++Refresh+Schedule</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D74&amp;seed_title=2.0+%26%238211%3B++Refresh+Schedule#comments</comments>
		<pubDate>Mon, 05 Apr 2010 23:44:39 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[improvements]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=74</guid>
		<description><![CDATA[I spent the 3-day Easter weekend off the grid with my family, and although I didn&#8217;t get any work done, I did manage to draft some posts about Automatic 2.0 (bonus: I missed the worst of the iPad-craze storm). They&#8217;re mostly low-key improvements that don&#8217;t warrant any trumpeting, but long-time users will probably appreciate them. [...]]]></description>
			<content:encoded><![CDATA[<p><em>I spent the 3-day Easter weekend off the grid with my family, and although I didn&#8217;t get any work done, I did manage to draft some posts about Automatic 2.0 (bonus: I missed the worst of the iPad-craze storm). They&#8217;re mostly low-key improvements that don&#8217;t warrant any trumpeting, but long-time users will probably appreciate them.</em></p>
<p>One of the things that always annoyed me in 1.x was the refresh schedule. While most users probably didn&#8217;t notice it, there was a flaw in the way Automatic launched in the background: essentially, any computer downtime would also &#8220;pause&#8221; the refresh timer.</p>
<div style="text-align:center;"><img src="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/RefreshGraph-11.png" alt="RefreshGraph-1.png" border="0" width="472" height="95" /></div>
<p>As shown by the pretty graph (thanks, <a href="http://www.omnigroup.com/products/OmniGraffle/">OmniGraffle</a>!) computer sleep would mess up the timer, so that the refreshes would no longer happen at the expected time.</p>
<p>In 2.0, the behavior is much more consistent: any missed refreshes during downtime will be coalesced into a single refresh right after the computer wakes, and then they will continue as expected. Another pretty graph to illustrate:</p>
<div style="text-align:center;"><img src="http://codingcurious.com/wordpress/wp-content/uploads/2010/04/RefreshGraph-21.png" alt="RefreshGraph-2.png" border="0" width="463" height="116" /></div>
<p>So you get a single refresh to make up for any missed ones, but otherwise the schedule remains unaffected. Sanity ensues.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=74</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Automatic 2.0</title>
		<link>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D65&amp;seed_title=Announcing+Automatic+2.0</link>
		<comments>http://codingcurious.com/feeder/?FeederAction=clicked&amp;feed=Articles+%28rss2%29&amp;seed=http%3A%2F%2Fcodingcurious.com%2Fblog%2F%3Fp%3D65&amp;seed_title=Announcing+Automatic+2.0#comments</comments>
		<pubDate>Fri, 02 Apr 2010 12:58:49 +0000</pubDate>
		<dc:creator>dimitris</dc:creator>
				<category><![CDATA[Automatic]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[2.0]]></category>

		<guid isPermaLink="false">http://codingcurious.com/blog/?p=65</guid>
		<description><![CDATA[It&#8217;s been a long time coming, but Automatic 2.0 is almost here! Version 2.0 may share the same name with its predecessor, but the similarities end there. Automatic 2.0 is a complete rewrite, from the ground up: it is no exaggeration to say that there is not a single line of shared code between the [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time coming, but Automatic 2.0 is almost here! Version 2.0 may share the same name with its predecessor, but the similarities end there. Automatic 2.0 is a <em>complete rewrite</em>, from the ground up: it is no exaggeration to say that there is not a single line of shared code between the two versions. So what does 2.0 bring?</p>
<ul>
<li>New UI &#8211; pretty much a no-brainer, given the code rewrite. While the basic layout remains the same, there are improvements in practically every corner.</li>
<li>Probably the biggest feature, preset subscriptions for TV shows: 2.0 sports a listing of over 230 shows, complete with show and episode information. Just browse or search, press &#8216;Add&#8217; and done!</li>
<li>The initial &#8220;raison d&#8217;être&#8221; of 2.0, iTunes-style rules. No more weird regular expressions &#8211; the new rule editor allows for very complex subscriptions, with a minimum of fuss.</li>
<li>More transparency. That includes notifications, better logging and the ability to monitor downloads in progress.</li>
</ul>
<p>These are just some of the big-picture features in 2.0. Improvements have been made in practically every area, from the ability to specify what linked files are matched to the more mundane performance improvements. And most importantly, 2.0 provides a great foundation on which to build many exciting features.</p>
<p>As far as availability goes, a release date will be announced very soon. Automatic 2.0 will be a paid upgrade from Automatic 1.x &#8211; the price will be revealed closer to release. The current version (1.1.4) will continue to be available for free.</p>
<p>Finally, if you want to stay updated on the upcoming 2nd phase beta, follow <a href="http://twitter.com/automaticapp">@automaticapp</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingcurious.com/blog/?feed=rss2&amp;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
