<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C08ER3o8cCp7ImA9WhRaFUw.&quot;"><id>tag:blogger.com,1999:blog-7066219</id><updated>2012-02-17T15:50:06.478-05:00</updated><category term="Cars" /><category term="Visual Studio" /><category term="WWDC" /><category term="Mail.App" /><category term="Performance" /><category term="WarCraft" /><category term="HD" /><category term="Bug" /><category term="Misc" /><category term="UI" /><category term="RIAs" /><category term="Apple TV" /><category term="Windows" /><category term="SQLite" /><category term="SecureClient" /><category term="WebKit" /><category term="Apple" /><category term="RIA" /><category term="Halo" /><category term="Web" /><category term="ASP.NET" /><category term="Environment" /><category term="StarCraft" /><category term="Criticism" /><category term="Flash" /><category term="RSS" /><category term="FLAC" /><category term="Cocoa Touch" /><category term="iPod" /><category term="Delight" /><category term="SharpDevelop" /><category term="Beta" /><category term="Mac" /><category term="Safari" /><category term="Networking" /><category term="PC" /><category term="Marketing" /><category term="MMO" /><category term="App Store" /><category term="iPod touch" /><category term="Humor" /><category term="Mono" /><category term="MS Points" /><category term="Giants" /><category term="iOS" /><category term="ALAC" /><category term="iMac" /><category term=".NET to Cocoa" /><category term="Adobe" /><category term="HD-DVD" /><category term="Adobe Air" /><category term="Gaming" /><category term="TV" /><category term="Sony" /><category term="CSS" /><category term="Subversion" /><category term="WoW" /><category term="Images" /><category term="UX" /><category term="Xbox" /><category term="Wii" /><category term="Windows Server 2003 SP2" /><category term="XML" /><category term="Design" /><category term="Blogger" /><category term="Word" /><category term="Widgets" /><category term="Parallels" /><category term="SDK" /><category term="NT" /><category term="Development" /><category term="Tangerine Element" /><category term="Firefox" /><category term="iPhone" /><category term="MobileMe" /><category term="iTunes" /><category term="Tip" /><category term="HTML" /><category term="GarageBand" /><category term="Internet Explorer" /><category term="EVDO" /><category term="JavaScript" /><category term="Movies" /><category term="Handbrake" /><category term="Visual Studio .NET 2003" /><category term="Windows Server 2003" /><category term="Star Trek" /><category term="Interface Builder" /><category term="Windows Server 2003 SP1" /><category term=".NET" /><category term="Media" /><category term="iWork" /><category term="iTimeZone" /><category term="Reznor" /><category term="Vista" /><category term="Twitter" /><category term="Microsoft" /><category term="Blu-ray" /><category term="Robots" /><category term="PS3" /><category term="Xcode" /><category term="XP" /><category term="NIN" /><category term="SQL Server" /><category term="Visual Studio 2005" /><category term="Xbox 360" /><category term="AJAX" /><category term="PostMortem" /><category term="NDA" /><category term="GeoNames" /><category term="Annoyance" /><category term="Security" /><category term=".Mac" /><category term="Leopard" /><category term="OS X" /><category term="Politics" /><category term="VM" /><category term="Chrome" /><category term="NetNewsWire" /><category term="Mozilla" /><category term="Software Update" /><category term="Objective-C" /><category term="Nintendo" /><category term="Playstation 3" /><category term="Cloud" /><category term="HDTV" /><category term="Reviews" /><category term="Video Games" /><category term="Office" /><category term="Xbox Live" /><category term="Music" /><category term="SharePoint" /><category term="iPhone OS" /><category term="iChat" /><category term="Google" /><category term="Snow Leopard" /><category term="Blogging" /><category term="C#" /><category term="Camino" /><category term="Firebug" /><category term="Consumers" /><category term="iPhone 4" /><category term="Linux" /><category term="Cocoa" /><category term="Rentals" /><category term="iPad" /><category term="Sports" /><category term="Football" /><category term="Subscriptions" /><category term="Silverlight" /><title>Inner Exception</title><subtitle type="html">by Dave Murdock</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.innerexception.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.innerexception.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/05890407802752665754</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>498</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/InnerException" /><feedburner:info uri="innerexception" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FInnerException" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;CEMCQns_fyp7ImA9WhRaFE8.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-8937627888012594137</id><published>2012-02-16T15:01:00.000-05:00</published><updated>2012-02-16T15:01:03.547-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-16T15:01:03.547-05:00</app:edited><title>Dear Apple, Please Bring Free Updates from iOS "Back to the Mac" with OS X 10.8 Mountain Lion</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I'm not cheap. I pay for all my software. Suggesting to Apple that &lt;a href="http://www.apple.com/macosx/mountain-lion/" target="_blank"&gt;OS X 10.8 Mountain Lion&lt;/a&gt; be a free update isn't about saving $30 bucks. I've gladly paid for every OS X update and will continue to do so if that's the direction Apple takes.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;But I think the best idea from iOS, free updates, should come "Back to the Mac". This policy would allow developers to use the latest APIs as quickly as possible and help developers &amp;amp; Apple reduce support cost for older OS X versions more quickly.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Any kind of monetary transaction is going to slow down OS X update adoption. Any iOS developer with access to analytics can see how quickly iOS 5 adoption has taken off (I've seen 60-75% already). Lion has &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.bloomberg.com/news/2012-02-16/apple-speeds-mac-mountain-lion-operating-system-to-challenge-windows-8.html" target="_blank"&gt;sold 17 million copies&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;, Apple's best selling release ever. The &lt;a href="http://venturebeat.com/2011/10/04/osx-lion-has-been-downloaded-6m-times-mac-install-base-hits-58m/" target="_blank"&gt;last reported install base&lt;/a&gt; was 58M Macs. Lion is on roughly 29% of all Macs. Pretty good, not nearly free iOS 5 adoption good.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;17 million Lion copies is a $510M gross, no small stash of cash to throw away. Except Apple has nearly $100B (or more by now) in cash, and making up that revenue is only 398k Macs at an &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.tuaw.com/2012/01/25/lesser-known-facts-from-apples-earnings-statement/" target="_blank"&gt;average selling price of $1281&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Imagine the ad Apple could deliver promising free software updates for 2 years on all their devices! Contrast that with the &lt;a href="http://venturebeat.com/2011/10/04/osx-lion-has-been-downloaded-6m-times-mac-install-base-hits-58m/" target="_blank"&gt;Android 4.0 upgrade schedule from Motorola&lt;/a&gt;&amp;nbsp;or the &lt;a href="http://www.amazon.com/s/ref=nb_sb_ss_c_1_9?url=search-alias%3Dsoftware&amp;amp;field-keywords=windows+7&amp;amp;x=0&amp;amp;y=0&amp;amp;sprefix=windows+8%2Caps%2C130#/ref=nb_sb_noss?url=search-alias%3Dsoftware&amp;amp;field-keywords=windows+7&amp;amp;rh=n%3A229534%2Ck%3Awindows+7" target="_blank"&gt;confusing array of costly and confusing Windows upgrades&lt;/a&gt;, the comedy gold practically writes itself.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I think Apple replaces the revenue easy with a combination of Apple's cut of increased Mac App Store sales, decreased support costs, but more importantly new users. They could really amp up the expectation that when you buy a Mac, Apple "takes care of you" unlike with all those razor thin margin PCs. More importantly, it hits Microsoft where it really hurts, their wallet.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-8937627888012594137?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/5ADyofsHqzs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8937627888012594137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8937627888012594137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/5ADyofsHqzs/dear-apple-please-bring-free-updates.html" title="Dear Apple, Please Bring Free Updates from iOS &quot;Back to the Mac&quot; with OS X 10.8 Mountain Lion" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/02/dear-apple-please-bring-free-updates.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08MSHw7eCp7ImA9WhRbFk8.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-2955515604773674452</id><published>2012-02-07T09:44:00.000-05:00</published><updated>2012-02-07T09:44:49.200-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-07T09:44:49.200-05:00</app:edited><title>Easily Localize Custom NSDateFormatter Date Format Strings in iOS 4+</title><content type="html">&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Apple ships a lot of new APIs with every major iOS release. They claimed &lt;a href="http://en.wikipedia.org/wiki/IOS_version_history#iOS.C2.A04.x:_fourth_major_OS_release"&gt;iOS 4 had over 1,500 new APIs&lt;/a&gt;, and the&amp;nbsp;&lt;a href="http://developer.apple.com/technologies/ios5/"&gt;same claim is repeated for iOS 5!&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;span style="margin-left: auto; margin-right: auto;"&gt;&lt;a href="http://www.blogger.com/goog_535315840"&gt;&lt;img alt="" border="0" src="http://3.bp.blogspot.com/-T7B2nMLTF0Y/TyFvMIS_ZHI/AAAAAAAAAHA/fywYxjJRZtw/s1600/Screen+Shot+2012-01-26+at+10.18.01+AM.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Any way you slice it, a lot of new code&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;It's easy for a new API that is &lt;strong&gt;developer&lt;/strong&gt;&lt;strong&gt;life altering&lt;/strong&gt; to slip through a release undetected.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Which is exactly what happened to me for new in iOS 4 API&amp;nbsp;&lt;a href="https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40003643"&gt;[NSDateFormatter dateFormatFromTemplate:options:locale:]&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Why is this API such a big? It gives developers an easy way to generate a custom date or time string for display to the user. Cocoa Touch (and Cocoa before it) have had predefined &lt;a href="https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/doc/uid/20000447-SW2"&gt;NSDateFormatterStyle&lt;/a&gt; that correlated to specific date or time display representations. For example, NSDateFormatterShortStyle used for dates would be &lt;em&gt;11/23/37&lt;/em&gt; and for time &lt;em&gt;3:30pm&lt;/em&gt;. But the really big deal was that if you use these predefined styles they would get localized based on the NSLocale of the device. Meaning the short date format in the U.K. would output &lt;em&gt;23/11/37&lt;/em&gt; and &lt;em&gt;15:30&lt;/em&gt; respectively.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If you wanted a custom format and localization, like just month and day, you were out of luck without writing it yourself, which means you usually just used the pre-defined styles. Until iOS 4 that is!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Starting in iOS 4, you could not do stuff like this (straight from the &lt;a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW14"&gt;documentation&lt;/a&gt;):&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;table style="background-color: #f1f5f9; border-collapse: collapse; border: 1px solid #c7cfd5; padding-bottom: 4px; width: 650px;"&gt;&lt;tbody&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"EdMMM" options:0&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;locale:[NSLocale currentLocale]];&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;[dateFormatter setDateFormat:formatString];&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;NSString *todayString = [dateFormatter stringFromDate:[NSDate date]];&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="border-bottom-color: #ffffff; border-bottom-style: solid; border-bottom-width: 0px;"&gt;&lt;td scope="row" style="padding: 0.5em;"&gt;&lt;pre style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 12px; line-height: 13px; margin-bottom: 0px; margin-left: 0.5em; margin-right: 0.333em; margin-top: -0.083em; white-space: pre-wrap;"&gt;NSLog(@"todayString: %@", todayString);&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
Which results in this output formatted for the US like this:&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;2012-02-07 09:32:16.725 Untitled 2[1803:707] todayString: Tue, Feb 7&lt;/pre&gt;&lt;br /&gt;
And when the locale is, for example, Great Britain, the output is this &lt;strong&gt;with the same code&lt;/strong&gt;:&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;2012-02-07 09:36:32.439 Untitled 2[1839:707] todayString: Tue 7 Feb&lt;/pre&gt;&lt;br /&gt;
Notice this even puts a comma in or not as required by the locale!&lt;br /&gt;
&lt;br /&gt;
BTW, the excellent &lt;a href="http://itunes.apple.com/us/app/coderunner/id433335799?mt=12"&gt;CodeRunner&lt;/a&gt; (available on the Mac App Store) is perfect for quickly running these kinds of code snippets to see the output.&lt;br /&gt;
&lt;div&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-2955515604773674452?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/Rno0CSaeo-8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/2955515604773674452?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/2955515604773674452?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/Rno0CSaeo-8/easily-localize-custom-nsdateformatter.html" title="Easily Localize Custom NSDateFormatter Date Format Strings in iOS 4+" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-T7B2nMLTF0Y/TyFvMIS_ZHI/AAAAAAAAAHA/fywYxjJRZtw/s72-c/Screen+Shot+2012-01-26+at+10.18.01+AM.png" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2012/02/easily-localize-custom-nsdateformatter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUHR3czeSp7ImA9WhRaFEQ.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-4836164308984953984</id><published>2012-02-03T11:35:00.001-05:00</published><updated>2012-02-17T10:23:56.981-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-17T10:23:56.981-05:00</app:edited><title>A Lack of Sandboxing Leadership: Apple's AirPort Utility 6.0 for Mac OS X 10.7 Lion is NOT Sandboxed</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;a href="http://support.apple.com/kb/DL1483"&gt;AirPort Utility 6.0&lt;/a&gt;, the iOSified and Lion only update to Apple's excellent WiFi network and base station management app released on January 30, 2012, is &lt;strong&gt;not&lt;/strong&gt; sandboxed.&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-aK4I-CBUhP0/TywRGVMHNsI/AAAAAAAAAHQ/o_uEIUFukW0/s1600/Sandbox+Deadline.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-aK4I-CBUhP0/TywRGVMHNsI/AAAAAAAAAHQ/o_uEIUFukW0/s1600/Sandbox+Deadline.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;All Shall Sandbox&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Apple decreed all apps submitted for Mac App Store review &lt;a href="https://developer.apple.com/news/" target="_blank"&gt;on or after March 1, 2012 must be sandboxed&lt;/a&gt;&amp;nbsp;(there's no direct link, screenshot captures for posterity). The previous deadline was November 1, 2011.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;There has been a ton of debate on whether &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;a href="http://blog.wilshipley.com/2011/11/real-security-in-mac-os-x-requires.html" target="_blank"&gt;sandboxing as currently implemented actual solves the problem it sets out to&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;. I'm not going to re-litagate that here.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;a href="https://developer.apple.com/videos/wwdc/2011/?id=203" target="_blank"&gt;Introducing App Sandbox&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&amp;nbsp;(Apple developer account required) from WWDC 11 makes as persuasive a case as I've ever seen for sandboxing.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;There are problems with sandboxing in Lion that Apple needs to solve, and &lt;a href="https://devforums.apple.com/thread/138513?start=0&amp;amp;tstart=0" target="_blank"&gt;10.7.3 implements or fixes&lt;/a&gt;&amp;nbsp;(Apple dev forum) a number of sandbox issues.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Good arguments, &lt;a href="https://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html#//apple_ref/doc/uid/TP40011183"&gt;documentation&lt;/a&gt;, fixes, and mandated deadlines that have already been pushed back aren't going to conclusively prove to 3rd party app developers they must implement sandboxing now.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Leadership does. Look at a list of Apple apps, and you're just as likely to see them not sandboxed as sandboxed. A lot of Apple's high profile apps are &lt;b&gt;not&lt;/b&gt; sandboxed:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Safari 5.1.3 (&lt;a href="http://Apple.com/" x-apple-data-detectors-result="1" x-apple-data-detectors="true"&gt;Apple.com&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Some of the parts of the app like &lt;i&gt;Safari Web Content&lt;/i&gt;&amp;nbsp;are, but the main UI app isn't&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Pages 4.1 (Mac App Store)&lt;/span&gt;&lt;/li&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;iBooks Author 1.0 (Mac App Store)&lt;/span&gt;&lt;/li&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;AirPort Utility 6.0 (&lt;a href="http://Apple.com/" x-apple-data-detectors-result="5" x-apple-data-detectors="true"&gt;Apple.com&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;iPhoto 9.2.1 (Mac App Store)&lt;/span&gt;&lt;/li&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;iTunes 10.5.3 (&lt;a href="http://Apple.com/" x-apple-data-detectors-result="6" x-apple-data-detectors="true"&gt;Apple.com&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Xcode 4.3 (&lt;a href="http://itunes.apple.com/us/app/xcode/id497799835?mt=12" target="_blank"&gt;Mac App Store&lt;/a&gt; - Released February 16, 2012)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Maybe Apple's going to drop sandboxed versions of these apps any minute. But the closer we get to the submission deadline without even Apple's brand new apps (iBooks Author I'm looking at you) being sandboxed, the harder the deadline is to take seriously.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;I've already taken one shot at sandboxing &lt;a href="http://www.tangerineelement.com/main/sleepmute.html" target="_blank"&gt;SleepMute&lt;/a&gt;&amp;nbsp;in its current development cycle on Mac OS X 10.7.2. SleepMute has a UI app to write preferences and a helper that reads preferences and mutes or unmutes sound. Sandboxing completely broke the app. Both apps read/write preferences (with CF functions) to the same file preference file. This feature works perfectly without sandboxing, has to be completely rewritten for sandboxing. Also, simply launching the helper from the UI app wasn't working. That may have been fixed by 10.7.3, so I'll probably give it another shot, but not until Apple's apps start getting sandboxed.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-4836164308984953984?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/jd1q3bvfN4c" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/4836164308984953984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/4836164308984953984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/jd1q3bvfN4c/lack-of-sandboxing-leadership-apples.html" title="A Lack of Sandboxing Leadership: Apple&amp;#39;s AirPort Utility 6.0 for Mac OS X 10.7 Lion is NOT Sandboxed" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-aK4I-CBUhP0/TywRGVMHNsI/AAAAAAAAAHQ/o_uEIUFukW0/s72-c/Sandbox+Deadline.png" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2012/02/lack-of-sandboxing-leadership-apples.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YGQXc7eCp7ImA9WhRbEUQ.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-5176484440702870676</id><published>2012-02-02T11:12:00.000-05:00</published><updated>2012-02-02T11:12:00.900-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-02T11:12:00.900-05:00</app:edited><title>Netflix is my new HBO</title><content type="html">&lt;p&gt;&amp;nbsp;When I grew up in the 80s, a particularly life changing event was when my family subscribed to &lt;b&gt;HBO&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;There were no parental controls in those days. If you had parents like mine that put a TV in your room with HBO on it, you could watch &lt;b&gt;all sorts of stuff&lt;/b&gt;&amp;nbsp;that you had no business seeing. HBO's always had loads of cheap crappy movies to round out the expensive good stuff and original series. HBO would play those crappy movies over and over, I'd watch'em over and over again. The later at night the better, especially if it was some horror or mind fuck flick. Past midnight, I'd watch stuff that I'd never give time during the day. &lt;i&gt;Nightmare on Elm Street 4&lt;/i&gt;? Why not, I've got time. &lt;i&gt;Swamp Thing&lt;/i&gt;? I've only seen it 15 times, what's one more viewing.&lt;/p&gt;&lt;p&gt;It hit me tonight that Netflix is my new HBO. Insomnia at 3 AM? Why not &lt;i&gt;Don't Look Back&lt;/i&gt;, subtitled because it's French, starring &lt;i&gt;The Matrix Reloaded&lt;/i&gt;'s Monica Bellucci and &lt;i&gt;The World Is Not Enough&lt;/i&gt;'s Sophie Marceau? I've got nothing better to do.&lt;/p&gt;&lt;p&gt;The perfect kind of late night crappy movie is the one you:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Can fall asleep to if you get tired again&lt;/li&gt;&lt;li&gt;Don't mind turning off at any point because you really don't care about the story&lt;/li&gt;&lt;li&gt;Might show you a bit of skin, no matter how fleeting&lt;/li&gt;&lt;li&gt;Is unintentionally funny, so you laugh at it not with it&lt;/li&gt;&lt;li&gt;You can watch in the background while you do something else (like write this post)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Plus, Netflix has mostly crappy content and it's getting worse as movie studios refuse to cut deals for newer better streaming content in reasonable timeframes. Which makes Netflix kind of perversely perfect for my late night insomnia needs. I won't be turning it off again if it stays anywhere close to $8/month and keeps the obscure content and/or bad content. And to think, I haven't even entered the time wasteland of TV-MA rated Japanese anime yet!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-5176484440702870676?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/LUEIKlyPDLI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/5176484440702870676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/5176484440702870676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/LUEIKlyPDLI/netflix-is-my-new-hbo.html" title="Netflix is my new HBO" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/02/netflix-is-my-new-hbo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCQX87fSp7ImA9WhRbEU8.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-1357101087074240654</id><published>2012-02-01T13:36:00.000-05:00</published><updated>2012-02-01T13:36:00.105-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T13:36:00.105-05:00</app:edited><title>Exhibit A. On Why iOS 5 Newstand Apps Should Always Be Universal</title><content type="html">&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://flickr.com/photos/75666500@N04/6799621387" target="_blank" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img src="http://farm8.static.flickr.com/7165/6799621387_b58a86e076.jpg" id="blogsy-1328073759897.3467" class="alignleft" alt="" width="375" height="500"&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;I've had the New York Times app on my iPad since Newstand launched alongside iOS 5.&amp;nbsp;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "&gt;I don't read the content, it's just not part of my workflow. What I love however are the notifications of important events &lt;i&gt;just for having the app installed&lt;/i&gt;. The editorial selection is &lt;b&gt;perfect&lt;/b&gt;, so I downloaded the NY Times app to my iPhone to get the notifications there as well.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);"&gt;I didn't realize what I downloaded on the iPhone was not a universal app. Imagine my surprise when I got back to my iPad &amp; through the magic of App Store automatic downloads it appears I now have two NY Times!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);"&gt;When the iPad first came out, I would've agreed it was acceptable to ship separate apps for one actual app to pay for the cost of adding iPad features. No more. A universal app is really just table stakes at this point &amp;nbsp;There's no&amp;nbsp;user experience case to be made for shipping separate iPhone &amp; iPad apps. Multiple apps for the same app just creates user confusion on the App Store, and in cases like this, on the device as well.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469);"&gt;And it just looks really dumb in Newstand!&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-1357101087074240654?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/OpM0wtaBTuo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/1357101087074240654?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/1357101087074240654?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/OpM0wtaBTuo/exhibit-on-why-ios-5-newstand-apps.html" title="Exhibit A. On Why iOS 5 Newstand Apps Should Always Be Universal" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm8.static.flickr.com/7165/6799621387_b58a86e076_t.jpg" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2012/02/exhibit-on-why-ios-5-newstand-apps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQCRXo5cSp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-6256340566605803737</id><published>2012-02-01T12:39:00.001-05:00</published><updated>2012-02-01T12:46:04.429-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:46:04.429-05:00</app:edited><title>Why External Links Should Maybe Open in New Tabs</title><content type="html">&lt;p&gt;UX Movement posted&amp;nbsp;&lt;a href="http://uxmovement.com/navigation/why-external-links-should-open-in-new-tabs/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+uxmovement+%28ux+movement%29" target="_blank" title=""&gt;Why External Links Should Open in New Tabs&lt;/a&gt;. I've never quibbled with any of&amp;nbsp;Anthony Tseng's&amp;nbsp;advice before, but this time I think he misses the mark somewhat.&lt;/p&gt;&lt;p&gt;True, for the primarily audience of this blog, I think opening external links in a new tab makes sense. I just went back to my posts this year and changed all external links. That's the key though, this decision has to be made based on the audience of the site.&lt;/p&gt;&lt;p&gt;Ever watch an older user or even young but not to savy user get dumped into a new browser tab? This sentence from UX Movement completely applies:&lt;/p&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"&gt;&lt;p&gt;When a new window opens, it covers the user’s earlier window. The user is left confused and wondering how to get back.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Just replace window with tab and it still applies. All these users know is the back button.&lt;/p&gt;&lt;p&gt;So if your trying to appeal to browser savy users, go ahead and open external links in a new tab. If however you're trying to appeal to a broader audience with less browser know how, open external links in the current window or tab.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-6256340566605803737?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/fXq72RPsn1I" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/6256340566605803737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/6256340566605803737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/fXq72RPsn1I/why-external-links-should-maybe-open-in.html" title="Why External Links Should Maybe Open in New Tabs" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/02/why-external-links-should-maybe-open-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBRn88eCp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-2511955307093977917</id><published>2012-01-24T12:59:00.000-05:00</published><updated>2012-02-01T12:40:57.170-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:40:57.170-05:00</app:edited><title>Apple: This Hard to Find Evidence Suggests You Should Release iBooks for Mac OS X</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-fpL-e3T7xLw/Tx7tkVINysI/AAAAAAAAAG0/zEKytHGjjoM/s1600/Screen+Shot+2012-01-24+at+12.41.48+PM.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img src="http://3.bp.blogspot.com/-fpL-e3T7xLw/Tx7tkVINysI/AAAAAAAAAG0/zEKytHGjjoM/s1600/Screen+Shot+2012-01-24+at+12.41.48+PM.png" id="blogsy-1328118052746.4878" class="" alt="" width="203" height="483"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Top Free in the Mac App Store&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Look at the image on the left of the &lt;b&gt;Top Free&lt;/b&gt;&amp;nbsp;apps in&amp;nbsp;the Mac App Store. Notice anything?&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Number 1 with a bullet is &lt;b&gt;iBooks Author&lt;/b&gt;. Look further down. Number 5 is &lt;b&gt;Kindle&lt;/b&gt;. That's like oil and water. You know what would be nice to have as Number 1 or Number 2. &lt;b&gt;iBooks&lt;/b&gt;! &lt;b&gt;iBooks Author&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;iBooks&lt;/b&gt;&amp;nbsp;are two tastes that taste great together.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I can think of reasons why Apple might not release iBooks for Mac OS X, but none of them make much sense to me. If Apple wants to take on Amazon and Kindle for eBook supremacy, they have to broaden the reading platform off of just iOS.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I would have bet real money that iBooks for &lt;i&gt;at least&amp;nbsp;&lt;/i&gt;Mac OS X was going to be released at the &lt;a href="http://events.apple.com.edgesuite.net/1201oihbafvpihboijhpihbasdouhbasv/event/index.html" target="_blank" title=""&gt;Education event&lt;/a&gt;. Clearly I would have lost big.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I'd like to be able to read iBooks on Mac OS X, even if it's just for the occasional reference. Clearly the Mac App Store proves Kindle book readers aren't just reading on their Kindles.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-2511955307093977917?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/PpF5E46uRQ0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/2511955307093977917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/2511955307093977917?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/PpF5E46uRQ0/apple-this-hard-to-find-evidence.html" title="Apple: This Hard to Find Evidence Suggests You Should Release iBooks for Mac OS X" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-fpL-e3T7xLw/Tx7tkVINysI/AAAAAAAAAG0/zEKytHGjjoM/s72-c/Screen+Shot+2012-01-24+at+12.41.48+PM.png" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2012/01/apple-this-hard-to-find-evidence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcDQH4yeyp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-690180004157061458</id><published>2012-01-24T09:53:00.000-05:00</published><updated>2012-02-01T12:41:11.093-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:41:11.093-05:00</app:edited><title>This is What's Wrong with Hollywood: Where are the biggest box office movies (not) streaming?</title><content type="html">Take a look at this compilation of the Top 100 movies of 2011 and &lt;a href="http://flowingdata.com/2012/01/20/where-are-the-biggest-box-office-movies-streaming/" target="_blank" title=""&gt;where they are available (or not) to legally stream from online&lt;/a&gt;. This isn't even a complete list as the studios still frequently will only put the standard definition version of a movie up on iTunes when of course an HD copy is available. Also, support for iTunes Extras is nonexistent or weak.&lt;br&gt;&lt;br&gt;This is why Hollywood is losing money to piracy. There will always be people that just don't want to pay for content, but the big attraction of piracy to honest people is that it feels like&amp;nbsp;&lt;b&gt;everything&lt;/b&gt;&amp;nbsp;is available. It's a better service. Seems very analogous to Napster before Apple convinced the music labels to license a very high percentage of their catalogs at reasonable prices for download. Then you have the studios trying to launch their own streaming service, while continuing to cripple the established services out there.&lt;br&gt;&lt;br&gt;Hollywood has crippled the legal download sites with this quagmire of availability, SD vs. HD, and little to no price break over buying a manufactured physical disc. Clearly the studios are trying to preserve buying physical discs or make at the least make it more enticing than downloading, but it's just not going to happen anymore. The tide has turned. Add to that the complicated "windowing" that studios try to enforce on home viewing rights, and a lot of consumers just check out.&lt;br&gt;&lt;br&gt;This should be obvious, but don't the studios get that most people can't and won't keep track of the studios windowing schedule? Once you market a movie, if people want to watch that movie and they can't get it legally and at a fair price, at some point they are probably going to investigate pirating because it bypasses all the studio bullshit.&lt;br&gt;&lt;br&gt;I'm not supporting pirating, but it's not hard to understand the appeal beyond just not paying for stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-690180004157061458?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/etCTBQy4cEo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/690180004157061458?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/690180004157061458?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/etCTBQy4cEo/this-is-whats-wrong-with-hollywood.html" title="This is What&amp;#39;s Wrong with Hollywood: Where are the biggest box office movies (not) streaming?" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/01/this-is-whats-wrong-with-hollywood.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDQXk_fSp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-8577608287516524124</id><published>2012-01-13T23:49:00.003-05:00</published><updated>2012-02-01T12:44:30.745-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:44:30.745-05:00</app:edited><title>Thoughts on 44 days of uptime in Mac OS X 10.7 Lion</title><content type="html">Decided going into the Martin Luther King, Jr. Day weekend I would actually shutdown day job MacBook Pro&amp;nbsp;instead of sleeping it like I had every other day for who knows how long. I only thought of doing this to save a battery charge &amp;amp; discharge cycle.&lt;br&gt;&lt;br&gt;I wondered: "How long have I been running this instance of OS X 10.7 Lion?"&lt;br&gt;&lt;br&gt;&lt;strong&gt;44 days&lt;/strong&gt; was&amp;nbsp;the answer Terminal command&amp;nbsp;&lt;em&gt;uptime&lt;/em&gt; gave. The MacBook Pro hadn't booted since &lt;a href="x-apple-data-detectors://0" x-apple-data-detectors="true" x-apple-data-detectors-result="0"&gt;November 30, 2011&lt;/a&gt;, a whole other year ago! Probably the last time I had powered it off because of Thanksgiving break.&lt;br&gt;&lt;br&gt;I was kind of shocked for two reasons. I'm usually doing every 2 week beta OS updates or standard updates that require reboots. I skipped the current round because I really wanted to run stable after the OS X 10.7 Lion, Xcode 4.x, iOS 5 beta trifecta over the summer &amp;amp; fall. More surprising though, rebooting OS X has been completely deprecated in my mind as a useful activity unless forced to.&amp;nbsp;To be fair of course, I've quit cycled a few heavy use apps (here's looking at you Xcode) over this stretch. But the system has remained perfectly usable and stable. If not for the holiday, I would have just slept the Mac like I had done before.&lt;br&gt;&lt;br&gt;What a contrast to the issue I &lt;a href="https://twitter.com/#!/davemurdock/status/155846962799853568" target="_blank" title=""&gt;have with Windows 7&lt;/a&gt; on my iMac that would have necessitated some task killing after a few &lt;strong&gt;hours&lt;/strong&gt; if I was really using the OS day to day.&lt;br&gt;&lt;br&gt;What I'm really curios about is iOS device uptime. I don't &lt;a href="http://twitter.com/gedeon/status/158036503669374977" target="_blank" title=""&gt;ever turn off or reboot my iPhone or iPad&lt;/a&gt; except to install a software update.&lt;br&gt;&lt;br&gt;I marvel at the software engineering!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-8577608287516524124?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/0M86xXBFD64" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8577608287516524124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8577608287516524124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/0M86xXBFD64/thoughts-on-44-days-of-uptime-in-mac-os.html" title="Thoughts on 44 days of uptime in Mac OS X 10.7 Lion" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/01/thoughts-on-44-days-of-uptime-in-mac-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUESXk-eyp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-4858630029608089737</id><published>2012-01-11T10:38:00.000-05:00</published><updated>2012-02-01T12:43:28.753-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:43:28.753-05:00</app:edited><title>iOS 5 Dev Warning: UITableView's Multiple Select During Editing Doesn't Work with Swipe to Delete</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;I attended &lt;b&gt;Session 125 - UITableView Changes, Tips, Tricks&lt;/b&gt;&amp;nbsp;a&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;t WWDC 2011. I also downloaded the video &amp;amp; slides of that session from the&amp;nbsp;&lt;a href="http://developer.apple.com/videos/wwdc/2011/" target="_blank" title=""&gt;WWDC 2011 Session Videos&lt;/a&gt;&amp;nbsp;site&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&amp;nbsp;(Apple developer account required)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;You can here it in the video, and being in the room, one of the, if not the, favorite moment for developers at the talk was when &lt;b&gt;multiple select during editing&lt;/b&gt;&amp;nbsp;was announced. The announcement starts &lt;a href="http://x-apple-data-detectors://0" x-apple-data-detectors="true" x-apple-data-detectors-result="0" target="_blank" title=""&gt;at 16:51&lt;/a&gt; in the talk video.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Jason Beaver immediately shows Apple's Mail application in edit mode. Why? Because that's what every developer and user that has spent any time in Mail want in their apps when editing lists of user content.&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;You would expect, given the heavy references to the Mail app and how it works that what regular developers would now have in UITableView is exactly the functionality Mail supports.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;But You Would Be Wrong Because Swipe to Delete is Disabled!&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;If you do this in your code:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;pre&gt;self.tableView.allowsMultipleSelectionDuringEditing = YES;&lt;/pre&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;or change the UITableView property in the XIB for Editing to use &lt;i&gt;Multiple Selection During Editing &lt;/i&gt;you &lt;b&gt;don't get swipe to delete.&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;I have no idea if that functionality was planned at WWDC and got dropped during development. The only hint you get swipe to delete won't work in the iOS 5 release documentation is the following on the &lt;i&gt;allowsMultipleSelectionDuringEditing&lt;/i&gt;&amp;nbsp;property (emphasis mine):&lt;/span&gt;&lt;/p&gt;&lt;blockquote class="tr_bq"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;The default value of this property is NO. If you it to YES, check marks appear next to selected rows in editing mode. In addition, &lt;b&gt;UITableView does not query for editing styles when it goes into editing mode&lt;/b&gt;. If you call indexPathsForSelectedRows, you can get the index paths that identify the selected rows.&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;So if you don't see the docs, or it just doesn't click on first read that this means no swipe to delete, you might do a whole bunch of work for no reason because you need both multiple select during edit and swipe to delete, just...like...Mail.app. I'm only saying this for a friend, of course.&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Skeptical? I was too, went through all 7 stages of grief before conclusively proving it. I kept thinking: How could Apple play Lucy with the multiple select football to my Charlie Brown?&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Prove it to yourself. Go download Apple's &lt;a href="http://developer.apple.com/library/ios/#samplecode/TableMultiSelect/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011189" target="_blank" title=""&gt;TableMultiSelect&lt;/a&gt; sample (Apple developer account required). Open MyTableViewController.m and paste the following three lines in (I pasted after the tableView:cellForRowAtIndexPath: method just to be tidy):&lt;/span&gt;&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;p style="color: #008d12; font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;// Override to support conditional editing of the table view.&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;- (&lt;span style="color: #0044fc;"&gt;BOOL&lt;/span&gt;)tableView:(&lt;span style="color: #3696ae;"&gt;UITableView&lt;/span&gt; *)tableView canEditRowAtIndexPath:(&lt;span style="color: #3696ae;"&gt;NSIndexPath&lt;/span&gt; *)indexPath&lt;/span&gt;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="color: #0044fc; font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;YES&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;"&gt;&lt;br&gt;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #3696ae;"&gt;UITableViewCellEditingStyle&lt;/span&gt;)tableView:(&lt;span style="color: #3696ae;"&gt;UITableView&lt;/span&gt; *)tableView editingStyleForRowAtIndexPath:(&lt;span style="color: #3696ae;"&gt;NSIndexPath&lt;/span&gt; *)indexPath&amp;nbsp;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&amp;nbsp;&lt;/p&gt;&lt;p style="color: #3696ae; font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #0044fc;"&gt;return&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;UITableViewCellEditingStyleDelete&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;"&gt;&lt;br&gt;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #0044fc;"&gt;void&lt;/span&gt;)tableView:(&lt;span style="color: #3696ae;"&gt;UITableView&lt;/span&gt; *)tableView commitEditingStyle:(&lt;span style="color: #3696ae;"&gt;UITableViewCellEditingStyle&lt;/span&gt;)editingStyle forRowAtIndexPath:(&lt;span style="color: #3696ae;"&gt;NSIndexPath&lt;/span&gt; *)indexPath&amp;nbsp;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/p&gt;&lt;p style="color: #b3251e; font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #3696ae;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Commit Editing Style"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/p&gt;&lt;p style="font: 13.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br&gt;&lt;/p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Run your app in the simulator and true to swipe to delete. It won't work.&lt;/span&gt;&lt;br&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;Now go to line 74 and comment&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;self.tableView.allowsMultipleSelectionDuringEditing = YES;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;BOOM, you got swipe to delete!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;I know, file a &lt;a href="http://cl.ly/B31f" target="_blank" title=""&gt;radar or GTFO&lt;/a&gt;&amp;nbsp;and I will, eventually. I say this not to deride Apple. UITableView is a great piece of UI programming. Whenever designing something of my own, I always ask:&lt;/span&gt;&lt;/p&gt;&lt;blockquote class="tr_bq"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;What Would UITableView Do?&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Helvetica, Helvetica, sans-serif;"&gt;I wrote this to warn developers using UITableView's multiple selection functionality at the time of this writing (Xcode 4.2.1 &amp;amp; iOS 5.0.1) is an either or choice with swipe to delete that user's are most likely not going to be happy with. Better to stick with custom implementations unless/until Apple changes the functionality.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-4858630029608089737?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/i9x89LQ_ExA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/4858630029608089737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/4858630029608089737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/i9x89LQ_ExA/ios-5-dev-warning-uitableviews-multiple.html" title="iOS 5 Dev Warning: UITableView&amp;#39;s Multiple Select During Editing Doesn&amp;#39;t Work with Swipe to Delete" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/01/ios-5-dev-warning-uitableviews-multiple.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUARXY6eyp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-5934408856544456939</id><published>2012-01-09T13:30:00.000-05:00</published><updated>2012-02-01T12:44:04.813-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:44:04.813-05:00</app:edited><title>Integrating SharePoint with Twitter on a Corporate Intranet</title><content type="html">Thankfully I don't have to know how to integrate SharePoint with anything right now, but if I did, I'd know who to turn to for insight.&lt;p&gt;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "&gt;&amp;nbsp;&lt;/span&gt;&lt;p&gt;John DeGiglio is one of the smartest people I know, and one of the most relentless developers I've ever seen. If you give him a problem, he &lt;b&gt;will solve it&lt;/b&gt;. John and I used to write .Net apps together, and he specialized in &amp;nbsp;SharePoint. He's become an expert over the last 5 or so years.&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "&gt;John's recently published his first public blog articles and CodePlex projects on integrating Twitter with SharePoint.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spsdisplaytweets.codeplex.com/" target="_blank" title=""&gt;Twitter Displays Tweets WebPart&lt;/a&gt;&lt;/p&gt;&lt;p&gt;How this WebPart came together is documented in two blog posts hosted by Synergy Online:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.synergyonline.com/Blog/Lists/Posts/Post.aspx?ID=173" target="_blank" title="Displaying Tweets on your Corparate Intranet - Part 1"&gt;Displaying Tweets on your Corparate Intranet - Part 1&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.synergyonline.com/Blog/Lists/Posts/Post.aspx?ID=174" target="_blank" title="Displaying Tweets on your Corparate Intranet - Part 2"&gt;Displaying Tweets on your Corparate Intranet - Part 2&lt;/a&gt;&lt;/p&gt;&lt;p&gt;John's also restarted his blog &lt;a href="http://degiglio.biz/" target="_blank" title=""&gt;Backhand Volley at DeGiglio.biz&lt;/a&gt;. Unfortunately some good content was lost when Microsoft shutdown MSN/Windows Live Spaces. He didn't get the notification from MS to download his content before it was deleted.&lt;/p&gt;&lt;p&gt;John's also &lt;a href="https://twitter.com/#!/jdegiglio" target="_blank" title=""&gt;on Twitter @jdegiglio&lt;/a&gt;&amp;nbsp;and his Tweets just went public! I expect more SharePoint or tennis focused tweets, John's a huge tennis fan.&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-5934408856544456939?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/Bc_eTkgN8sU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/5934408856544456939?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/5934408856544456939?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/Bc_eTkgN8sU/integrating-sharepoint-with-twitter-on.html" title="Integrating SharePoint with Twitter on a Corporate Intranet" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2012/01/integrating-sharepoint-with-twitter-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIHQX05eSp7ImA9WhRWE0k.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-3414211695604403629</id><published>2011-12-31T11:05:00.001-05:00</published><updated>2011-12-31T11:05:30.321-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T11:05:30.321-05:00</app:edited><title>Retro Review: Mass Effect 2. Why Can't I Play Like Captain Kirk?</title><content type="html">I finished Mass Effect 2 around June 2011. I played the game from the start with several pieces of DLC installed on the Xbox 360. I didn't have "Lair of the Shadow Broker" installed, nor did I ever get it. Overall, this was a very good game. I look forward to playing Mass Effect 3 in early 2012.&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The good parts of Mass Effect 2 were great. Voice acting is fantastic. Combat was streamlined from Mass Effect 1 making it excellent. The RPG part was also streamlined, eliminating a lot of the busywork from ME1 without losing the customizability.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I expect from the Mass Effect series is an adult science fiction game. Why then&amp;nbsp;is Commander Shepard limited to such puritanical sexual relationships? I want to play my Commander Shepard like Captain Kirk, sleeping with every available crew member or mission encountered alien that I can! Instead, what I get in Mass Effect is a very linear and monogamous relationship system only on ship were all the potential romantic participants are apparently talking to each other. It's just like High School. Downloadable character Kasumi's only ship function appears to be relationship gossip. The main characters all never appear to leave their assigned ship rooms, yet everyone knows everybody's business! Other than Kelly, all other characters are prudes. If I had to hear Jacob Taylor say "Let's not push it, we got a good thing going here Shepard" one more time, I would've thrown my controller at the Xbox. The system is to on rails.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I would do if I were designing the game is to leave all sexual relationship options available at all times, just make those decisions tie to paragon/renegade points. If Shepard has already started sleeping with a character, and then tried to pick up another lover, that choice could feed into the complexity of your character more completely. Play with the highest honor on the battlefield, but be a total dog with your crew, or vice versa. I even have a problem assigning renegade points to a Shepard that sleeps around, but within the design of the game doing that would be the cleanest "fix". Also each character could have different relationship needs to achieve their highest morale. In ME2, all potential romantic characters appear to have the same end need, a monogamous relationship with Shepard. Again, Kelly excepted, but even she won't continue or start a relationship with Shepard if Shepard has already started something with another character, and she's the "slut" of the ship.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I look forward to the day when I can play as a character in a game that was as open as Captain Kirk over 40 years ago.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-3414211695604403629?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/ghhsqjHobyA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/3414211695604403629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/3414211695604403629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/ghhsqjHobyA/retro-review-mass-effect-2-why-can-i.html" title="Retro Review: Mass Effect 2. Why Can&amp;#39;t I Play Like Captain Kirk?" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/12/retro-review-mass-effect-2-why-can-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YAQXo5eSp7ImA9WhRXFkg.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-8672082523382173086</id><published>2011-12-23T09:39:00.000-05:00</published><updated>2011-12-23T09:39:00.421-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T09:39:00.421-05:00</app:edited><title>How I Came to Loathe the Nintendo Wii, and it's Microsoft's Fault!</title><content type="html">&lt;p&gt;I loved the &lt;a href="http://www.innerexception.com/2007/06/review-nintendo-wii.html"&gt;Nintendo Wii&lt;/a&gt; when I got it back in 2007. When I looked up my review, I couldn't believe it had been over 4 years already. LIke pretty much everyone, I played &lt;a href="http://www.innerexception.com/2008/02/review-super-mario-galaxy.html"&gt;Super Mario Galaxy&lt;/a&gt; &amp; thought that was great too. My family had a lot of fun with Wii Sports and Wii Sports Resort over the years. Slowly but surely, my initial love for Nintendo's console grew to dislike, then outright loathing. There wasn't a moment of clarity when I realized I never wanted to use the Wii again. It was a gradual process and it was Microsoft's fault!&lt;/p&gt;&lt;p&gt;After a few years with thr Wii, I was completely over the four part Wii controllers: remote, nun-chuck, rubber bumper, and motion plus. The batteries for the remotes were &lt;b&gt;never&lt;/b&gt;&amp;nbsp;charged. The nun-chuck wire always got tangled. The rubber bumpers to make sure you didn't kill someone flailing around we're never in the configuration you needed to play what you wanted to. Worse, no one but me, not the kids and not the wife, could untangle the whole mess. The fact that Nintendo didn't ship the controllers as rechargeable became a deal breaker, even though I was using rechargeable batteries.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I couldn't pin down what i didnt like about thr Wii until I first heard about the Kinect. A bit flipped in my head right then that I was done with the Wii if Microsoft didn't mess it up. I didnt want to use a controller for motion controls ever again. Amazingly, Microsoft got it right, not perfect, but good enough from all the stuff I read. I didn't rush out to buy Kinect. I waited for a while to get some more life out of the replacement Xbox 360 I got from the Red Ring of Death fiasco. That I even considered giving Microsoft more money was amazing, they were all but dead to me before Kinect was announced. Going back to Microsoft was also given a boost by Sony announcing their Wii competitor, Move, packing its own fleet or wand/remote controllers.&amp;nbsp;&lt;br&gt;&lt;/p&gt;&lt;p&gt;The announcement of the Nintendo Wii U and Sony's PlayStation Network security breach happened within a few weeks of each other in May/June 2011. Those events were the tipping point to Kinect for me. Wii U looks ridiculous. I normally hold out on judging a product until release, but I couldn't suppress an immediate reaction of disappointment. Wii U looks like an iPad and Apple TV using AirPlay, but without a good digital download store. Sony's ridiculous lack of network penetration testing and basic security controls were inexcusable.&amp;nbsp;&lt;/p&gt;&lt;p&gt;By August I had sold my Wii and replacement Xbox 360 at a yard sale to finance the purchase of a new Xbox with Kinect. I was going to sell the PlayStation 3 as well, but Uncharted 3 and a few unripped Blu-rays have caused a delay.&lt;/p&gt;&lt;p&gt;As for the Kinect itself, pretty awesome. Demonstrably better than the Wii for exercise games, which I've used but my wife really enjoys. And in extended Kinect Adventures sessions, no Wii remote like cramping or fatigue, just normal exercise pains. Having the ability to video chat is nice too, though it is odd that it isn't in HD. With Christmas days away, a bunch more Kinect titles are coming home, I'm sure the whole family is going to be having a lot of fun.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-8672082523382173086?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/VM2i9NpZ8Xs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8672082523382173086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8672082523382173086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/VM2i9NpZ8Xs/how-i-came-to-loathe-nintendo-wii-and.html" title="How I Came to Loathe the Nintendo Wii, and it&amp;#39;s Microsoft&amp;#39;s Fault!" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/12/how-i-came-to-loathe-nintendo-wii-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMEQXw9fCp7ImA9WhRTGEs.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-1412508049948070490</id><published>2011-11-09T13:30:00.000-05:00</published><updated>2011-11-09T13:30:00.264-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T13:30:00.264-05:00</app:edited><title>There Must Be A Glitch In The Matrix Because I Just Perfectly Experienced Programming Serendipity</title><content type="html">&lt;p&gt;Sunk a lot of time researching and then trying to implement Mac OS X application sandboxing today, only to strike out. While watching one of the WWDC 2011 sandboxing videos for the third time, I saw &lt;b&gt;Apple Events&lt;/b&gt; mentioned in the presentation. Slowly realized I was looking at &lt;b&gt;the clue&lt;/b&gt; I needed to unravel a feature for &lt;a href="http://www.tangerineelement.com/main/sleepmute.html"&gt;SleepMute&lt;/a&gt; that I've poured many man-days of research into. With that clue, the rough version of this new feature was done in &lt;i&gt;40 minutes!&lt;/i&gt;&lt;/p&gt;&lt;p&gt;If that's not programming serendipity, I don't know what it is.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-1412508049948070490?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/byfc07J98Us" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/1412508049948070490?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/1412508049948070490?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/byfc07J98Us/there-must-be-glitch-in-matrix-because.html" title="There Must Be A Glitch In The Matrix Because I Just Perfectly Experienced Programming Serendipity" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/11/there-must-be-glitch-in-matrix-because.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAHRX0-fCp7ImA9WhdbGUw.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-362076501540690822</id><published>2011-10-18T00:55:00.000-04:00</published><updated>2011-10-18T00:55:34.354-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T00:55:34.354-04:00</app:edited><title>Implementing Objective-C Protocol Inheritance, Usually For Delegates</title><content type="html">&lt;p&gt;In a previous post, I explained &lt;a href="http://www.innerexception.com/2011/07/reason-why-objective-c-protocol-doesn.html"&gt;why an Objective-C protocol might not implement respondToSelector:&lt;/a&gt;. Prior to Xcode 4.x, Apple's protocol template code didn't include the &lt;strong&gt;&amp;lt;NSObject&amp;gt;&lt;/strong&gt; protocol in custom protocol definitions. This let to believe that you couldn't setup inheritance chains for protocols, but &lt;em&gt;but you can&lt;/em&gt;!&lt;/p&gt;&lt;p&gt;This is usually important where you have a UIView subclass that's the base class for a bunch of subclasses. All instances must support the same message back to a delegate pattern, but subclasses might need to add more delegate callbacks than the base class should define.&lt;/p&gt;&lt;p&gt;Consider this class &amp; protocol definition &amp; class implementation:&lt;br/&gt;&lt;pre&gt;
@class VehicleView;

@protocol VehicleViewDelegate &amp;lt;NSObject&amp;gt;
- (void)vehicleView:(VehicleView *)vehicleView didTapToStartEngine:(Engine *)engine;

@optional
- (void)vehicleView:(VehicleView *)vehicleView didTapToOpenWindow:(VehicleWindow *)vehicleWindow;

@end

@interface VehicleView : NSObject {
 id&amp;lt;VehicleViewDelegate&amp;gt; _delegate;
 NSArray *_engines;
 NSArray *_vehicleWindows;
}

@property (non atomic, assign) id&amp;lt;VehicleViewDelegate&amp;gt; delegate;
@property (nonatomic, retain) NSArray *engines;
@property (nonatomic, retain) NSArray *vehiclesWindows;

@end
&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Now the implementation&lt;br/&gt;&lt;pre&gt;
@implementation VehicleView

@synthesize delegate = _delegate, engines = _engines, vehicleWindows = _vehicleWindows;

//Lots of other stuff to implement!

@end
&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;
What you can see there is a pretty typical class implementing a protocol then declaring a delegate instance variable and property pattern. But what does this look like when we want to subclass?&lt;br/&gt;&lt;pre&gt;
@class TruckView;

@protocol TruckViewDelegate &amp;lt;VehicleViewDelegate&amp;gt;

@optional
- (void)trunkView:(TruckView *)truckView didTapUseFourByFourMode;

@end

@interface TruckView: VehicleVIew {
}

//Subclass specific implementation

@end
&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Notice there's no delegate definition, what gives? That's true, but we are going to reuse our base class' instance variable for this:&lt;br/&gt;&lt;pre&gt;
@implementation TruckView

#pragma mark - Properties

- (id&amp;lt;TruckViewDelegate&amp;gt;)delegate
{
 return _delegate;
}

- (void)setDelegate:(id&amp;lt;TruckViewDelegate&amp;gt;)delegate
{
 if(_delegate != delegate) {
  _delegate = delegate;
 }
}

@end
&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;So what's going on? The &lt;em&gt;TruckView&lt;/em&gt; subclass overrode &lt;em&gt;VehicleView&lt;/em&gt;'s syntactic sugar property method declarations for &lt;strong&gt;delegate&lt;/strong&gt; with the protocol definition that it wanted, but &lt;em&gt;reused the base class instance variable&lt;/em&gt;. This allows &lt;em&gt;TruckView&lt;/em&gt; to verify it has a pointer which implements the protocol, eliminates any dual-protocol declarations and management in &lt;em&gt;TruckView&lt;/em&gt;, and maximizes protocol definition reuse.&lt;/p&gt;&lt;p&gt;Next time, I'll show how to optimize detection of @optional protocol methods so setting up @protocol inheritance hierarchies don't slow down performance.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-362076501540690822?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/K4zp-Kuy-_8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/362076501540690822?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/362076501540690822?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/K4zp-Kuy-_8/implementing-objective-c-protocol.html" title="Implementing Objective-C Protocol Inheritance, Usually For Delegates" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/10/implementing-objective-c-protocol.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQAQX4_fyp7ImA9WhdbEkg.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-7528689814912299300</id><published>2011-10-10T09:29:00.000-04:00</published><updated>2011-10-10T09:29:00.047-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T09:29:00.047-04:00</app:edited><title>A Tale of Computing Misery: How To Fix Seagate GoFlex External Drives Randomly Ejecting in Mac OS X 10.7 Lion</title><content type="html">&lt;p&gt;I don't know if I'll ever buy another Seagate drive. This is a tale of 3 months of computing misery.&lt;/p&gt;&lt;h3&gt;Rewind&lt;/h3&gt;&lt;p&gt;When I saw the news back in early July that &lt;a href="http://thenextweb.com/apple/2011/07/01/mac-os-x-lion-gold-master-seeded-to-developers/"&gt;Mac OS X 10.7 Lion had hit Gold Master (GM)&lt;/a&gt;, the expected release to paying customers, I immediately downloaded and installed on my main machine, an iMac.&lt;/p&gt;&lt;p&gt;A few days later, I filed &lt;a href="http://openradar.appspot.com/radar?id=1327414"&gt;Radar 9727925&lt;/a&gt; (OpenRadar link). Lion was randomly automatically ejecting my external Seagate HD. This had never happened under any version of OS X 10.6 Snow Leopard. I had all my code on this drive, the iMac's internal drive was near full, as well as a ton of media files I keep the Apple TV feed with. Also, all my photos were on this drive. I figured it was an obvious bug, some bizarre oversight, and should definitely get fixed. I thought it was bad enough that 10.7.0 would get the dubious distinction of needing GM2.&lt;/p&gt;&lt;p&gt;That didn't happen. 10.7.0 shipped as expected, and my external disk keep ejecting with a scary modal error dialog like clockwork. I was frustrated. My excitement for Lion was high coming back from WWDC 2011, but I had staid my hand on the primary machine until the OS reached GM. Of course, I had installed to a different external drive to do testing, and it was great on my iMac, I thought I was home free.&lt;/p&gt;&lt;p&gt;But I couldn't have been more wrong about Lion, or at least I thought for three months…&lt;/p&gt;&lt;h3&gt;The Long Wait&lt;/h3&gt;&lt;p&gt;After filing my bug, Apple responded before 10.7.0 shipping asking me to run a disk-debug command and capture the trace of what happened during the random ejection. I collected the information and supplied it to Apple. I eagerly awaited a response, but none came.&lt;/p&gt;&lt;p&gt;I installed 10.7.1 as soon as it came out, hopeful my bug would be stealth resolved. It wasn't and I grew despondent. How could Apple leave this bug unfixed? I searched the &lt;a href="https://discussions.apple.com/search.jspa?resultTypes=&amp;dateRange=all&amp;peopleEnabled=true&amp;q=lion+%22disk+was+not+ejected+properly%22&amp;containerType=&amp;container=&amp;containerName=&amp;username=&amp;rankBy=relevance&amp;newq=lion+%22disk+not+ejected+properly%22*&amp;numResults=15"&gt;Apple Support Communities&lt;/a&gt;. Clearly other people were affected by this. This was &lt;em&gt;the worst Mac OS X bug I had experienced since I started using it with 10.3.x&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;As soon as the first 10.7.2 builds started arriving in the Mac developer center, I deployed it. The iMac I am putting this on is the whole house iTunes media server, I was risking wife and kid wrath making this move. They &lt;em&gt;do not tolerate beta&lt;/em&gt;. Early 10.7.2 betas didn't resolve the bug. I started to panic. Could 10.7.2 make it through development without this issue getting fixed?&lt;/p&gt;&lt;h3&gt;Desperation&lt;/h3&gt;&lt;p&gt;If you've ever been to an Apple developer event, you know they say if you have any questions just email them. I've always admired that, and wouldn't know if I would feel comfortable if I were in those shoes encouraging public emails for help.&lt;/p&gt;&lt;p&gt;On August 30, 2011, I emailed &lt;a href="https://twitter.com/#!/jury"&gt;Michael Jurewitz&lt;/a&gt; out of desperation:&lt;br/&gt;&lt;div style="margin-left:20px"&gt;&lt;pre&gt;
Hi Mike,

Can you figure out what the real status is of Radar 9727925? In short, the external drive where I keep a huge chunk of my files, including my code, keeps randomly ejecting a dozen or more times a day. Never happened in Snow Leopard.

I &lt;strong&gt;hated&lt;/strong&gt; to even think to ask you, but I filed this bug close to 3 months ago and it's driving me crazy. 

If anything it's gotten worse in the latest 10.7.2 seed. Yes I am on the bleeding edge hoping this one bug gets fixed.

Thanks so much, Dave
&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I couldn't stand sending that email. I just about cried when I got the automated &lt;em&gt;Out of Office&lt;/em&gt; reply. What was I going to do now? I remembered that I could email Apple and ask for a status update on the bug. I did that and hoped for the best, but I couldn't take it anymore, time to start deep debugging to prove whether it was anything specific to my environment.&lt;/p&gt;&lt;h3&gt;Taking Matters Into My Own Hands&lt;/h3&gt;&lt;p&gt;Deep Debugging OS X is really not that complicated. Here's the rough outline:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Verify your System disk for any corruption&lt;/li&gt;&lt;li&gt;Repair Disk Permissions&lt;/li&gt;&lt;li&gt;Create a new user account and see if you can reproduce the bug&lt;/li&gt;&lt;li&gt;Install a new copy of the current OS on an internal disk partition and see if you can reproduce the bug&lt;/li&gt;&lt;li&gt;Remove anything 3rd party that starts up with the OS one at a time until the bug stops such as:
&lt;ul&gt;&lt;li&gt;StartupItems&lt;/li&gt;&lt;li&gt;LoginItems&lt;/li&gt;&lt;li&gt;LaunchAgents&lt;/li&gt;&lt;li&gt;LaunchDaemons&lt;/li&gt;&lt;li&gt;Kernel Extensions (.kexts)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;File a Radar or GTFO&lt;/li&gt;&lt;/ol&gt;
I had started with number 6 because the bug seemed real clear. I installed Lion, external disk started randomly ejecting, case closed it's an OS bug!&lt;/p&gt;&lt;p&gt;But I started going through the whole debugging sequence just to be extra double sure this wasn't specific to my environment. I executed steps 1-4 and reproduced the bug. I was even more certain this had to be a Lion bug. With a bare OS X install, the external disk was randomly ejecting. This is the smoking gun right? Wrong!&lt;/p&gt;&lt;p&gt;I went through all the 3rd party code in step 5 that was loading on my system. Something interesting caught my eye. Lion wasn't loading some &lt;strong&gt;Seagate kernel extensions&lt;/strong&gt; since they didn't include 64-bit versions. I went out to Seagate's site, and found &lt;a href="http://www.seagate.com/ww/v/index.jsp?locale=en-US&amp;name=goflex-mac-install-software&amp;vgnextoid=77002aaf8cc5d210VgnVCM1000001a48090aRCRD"&gt;GoFlex for Mac 1.1.2&lt;/a&gt;, but I &lt;em&gt;didn't install it&lt;/em&gt;. Normally when debugging something, you try and remove 3rd party stuff to fix a problem, you don't add it back in. Besides, when I skimmed the description of this software, the usefulness of the package seemed limited to &lt;strong&gt;Drive Settings&lt;/strong&gt; and &lt;strong&gt;Diagnostics&lt;/strong&gt;, the only capitalized words in the summary that weren't MacOS or GoFlex. I'm sure I was trying to figure this out one night bleary eyed well past midnight, so I was probably in a hurry due to exhaustion and didn't feel like reading the paragraph, my mistake! I put the problem on hold for a few more days.&lt;/p&gt;&lt;h3&gt;The Workaround&lt;/h3&gt;&lt;p&gt;A few days go by, I install the latest 10.7.2 beta without it resolving the bug, I brainstorm on what it could be. During one of these sessions, it dawned on me that it looks like the drive is getting ejected if it's not being used. There is some kind of &lt;em&gt;sleep timer&lt;/em&gt; being fired! I check the &lt;em&gt;Energy Saver&lt;/em&gt; System Preference, but &lt;em&gt;Put the hard disk(s) to sleep when possible&lt;/em&gt; is unchecked. This must be where the bug is, Lion is always sleeping the drive when possible but there is some incompatibility, thus the modal error dialog I reasoned.&lt;/p&gt;&lt;p&gt;I hadn't really done much with Automator, but I figured this was the kind of thing it might be good at. I whipped up a quick workflow app that did a search for a string in file names on the external drive, and had it open as a LoginItem. Voila! The external drive stopped ejecting! It was a sleep timer. The relief was immediate, it was like I just scored a touchdown, or for the non-sports inclined, like I had just solved an incredibly difficult puzzle. I could wait as long as it took for Apple to fix this Lion bug now, I wasn't really impacted anymore and I stopped thinking about it. Only it wasn't a Lion bug at all, not really.&lt;/p&gt;&lt;h3&gt;Finally, The Solution&lt;/h3&gt;&lt;p&gt;On October 3, 2011, Apple responds to my request for more information on the bug. I don't know if Michael Jurewitz was the invisible hand that got this moving, or it was just my place in the request for info queue, but I was excited when I received the mail. I paraphrase because of NDA restrictions. The message thanks me for my patience and told me that to fix the issue I must install &lt;a href="http://www.seagate.com/ww/v/index.jsp?locale=en-US&amp;name=goflex-mac-install-software&amp;vgnextoid=77002aaf8cc5d210VgnVCM1000001a48090aRCRD"&gt;GoFlex for Mac 1.1.2&lt;/a&gt;!  How is it possible that to use a USB or FireWire (the GoFlex does both, reason I bought it) in OS X Lion you need 3rd party software? I then went back to the Seagate site and read the description of this software again, and it hit me like a shot of vodka:&lt;br/&gt;&lt;div style="margin-left:20px"&gt;&lt;pre&gt;drivers to disable the built-in sleep timer on the drive&lt;/pre&gt;&lt;/div&gt;
I was &lt;em&gt;floored&lt;/em&gt;, and both right and oh so wrong. It was a sleep timer, but I was digging in the wrong place! I'm sorry Lion and Apple, you weren't at fault. Why would Seagate build something like this into the drive? I can understand building in a lower power mode, but not one that causes the second more popular consumer operating system in the world to flat out not work without an otherwise useless driver. Worse, there are at least three pieces of code launching in OS X at startup that are from Seagate, but none are any kind of &lt;em&gt;automatic update&lt;/em&gt;. I bought this drive in 2010, it's not a holdover from the Windows 95 era! Automatic update is table stakes for anyone shipping software, even more so on Apple products. Either you ship your apps through the App Store which gives you automatic update for free, you roll your own, or GTFO! All I wanted was external storage that just worked with OS X, instead I've acquired another piece of crap recurring task like I had to poll the Dell site in '95 for updated drivers. Greeaattt!, I've added an event to iCal and made this a WebClip in Dashboard, my first!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-7528689814912299300?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/2nPufka8ikg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/7528689814912299300?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/7528689814912299300?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/2nPufka8ikg/tale-of-computing-misery-how-to-fix.html" title="A Tale of Computing Misery: How To Fix Seagate GoFlex External Drives Randomly Ejecting in Mac OS X 10.7 Lion" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/10/tale-of-computing-misery-how-to-fix.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEEQn49fSp7ImA9WhdUE0Q.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-591882945326079881</id><published>2011-09-30T11:30:00.000-04:00</published><updated>2011-09-30T11:30:03.065-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-30T11:30:03.065-04:00</app:edited><title>SPOILER ALERT: Astoundingly, I got a bit choked up by Gears of War 3</title><content type="html">&lt;p&gt;I haven't finished what a lot of people are calling a big &amp; dumb shooter, the Transformers movie franchise of video game series, but I just got past a moment I think Gears of War 3 deserves some recognition as…artistic. Sure the games' loaded with ridiculous one liners among other sins, but the following single moment means this game and the whole series has more emotional depth and artistic merit than the &lt;em&gt;Shia Labeouf Running and Shouting Optimus&lt;/em&gt; series.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Spoiler Alert&lt;/strong&gt;&lt;br/&gt;
At the end of Act III, lead character Dom sacrifices himself to save lead character, his brother to the end, Marcus Fenix. This follows soon after Dom has said his peace to his dead wife and kids, so you think Dom's OK, he's going to be there to the end. But when you see what's going to happen, when it's clear Dom is going to sacrifice himself, the sequence &lt;strong&gt;really&lt;/strong&gt; catches your attention because it's atypical for this kind of thing, and it's all because of the music. The game pulls the usual cacophony to barely audible levels and plays this:&lt;/p&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/lD85rA3iux8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;You might remember that (with lyrics) from this Gears of War 2 ad which was mighty attention getting for being atypical for video game ads&lt;/p&gt;&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/ccWrbGEFgI8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Maybe I'm just a sucker for anyone willingly giving up their life to save their buddies, but I couldn't help but get a bit choked up playing to and then watched the cutscene where Dom sacrifices himself.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-591882945326079881?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/UXBF4OINk4k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/591882945326079881?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/591882945326079881?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/UXBF4OINk4k/spoiler-alert-astoundingly-i-got-bit.html" title="SPOILER ALERT: Astoundingly, I got a bit choked up by Gears of War 3" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/lD85rA3iux8/default.jpg" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2011/09/spoiler-alert-astoundingly-i-got-bit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08HQHc9eCp7ImA9WhdUE0w.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-72613977264203499</id><published>2011-09-29T14:10:00.000-04:00</published><updated>2011-09-29T14:10:31.960-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T14:10:31.960-04:00</app:edited><title>A Personal Note About Why I'm Excited To Teach At CodeLesson.com</title><content type="html">&lt;p&gt;My younger brother used to call me Doctor Murdock or "Doc" Murdock. Seems like another life know, but I was a baseball pitcher until the end of high school. I always had a pretty mean fastball and wicked curve ball. I struck out a lot of batters. Dwight "Doc" Gooden was the NY Mets ace when I was in little league and he struck a lot of people out. Since I was a huge fan, my brother liked using Gooden's nickname for me and it stuck. That wasn't the only reason he coined that nickname for me. Since I was always trying to teach people around me the stuff I was learning, the name fit both ways. To be fair, my brother also in his best Han Solo impersonation yelling at C-3PO called me "The Professor" too. I loved both nick names.&lt;/p&gt;&lt;p&gt;I liked the sound of "Doc" Murdock so much in and out of baseball that I seriously considered becoming a medical doctor. I enrolled in AP Biology in high school but couldn't make it past frog dissection!&lt;/p&gt;&lt;p&gt;I still thought about becoming Doctor Murdock for real. Since I was heavily into computers through high school, I started thinking about becoming an actual professor. When I got to college for my bachelor's degree in computer science, I enrolled in the Honors program to try and position myself for moving on to higher education. I graduated with honors in comp sci, but I never went back to school for a masters degree. Building apps and life were just to much fun to go back into the ivory tower! I thought the door to becoming Doctor Murdock was closed forever.&lt;/p&gt;&lt;p&gt;When &lt;a href="http://www.codelesson.com/"&gt;CodeLesson&lt;/a&gt; founder &lt;a href="http://blog.jeffreymcmanus.com/"&gt;Jeffrey McManus&lt;/a&gt; asked me who would be good to teach iOS development, I really wanted to do it, but didn't have time in my schedule. Once my schedule freed up, I consider myself lucky that Jeff hadn't found an instructor yet. Sorry Jeff! He graciously accepted my offer to teach &lt;a href="http://codelesson.com/courses/view/introduction-to-ios-programming"&gt;Introduction to iOS Programming&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The door to becoming "Doc" Murdock feels like it just cracked open, and it feels great to finally pursue this dream, even a little bit.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-72613977264203499?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/ynCQ3JTIz5o" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/72613977264203499?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/72613977264203499?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/ynCQ3JTIz5o/personal-note-about-why-i-excited-to.html" title="A Personal Note About Why I&amp;#39;m Excited To Teach At CodeLesson.com" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/09/personal-note-about-why-i-excited-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8EQHc4eip7ImA9WhdUE00.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-5965566507495743478</id><published>2011-09-29T10:00:00.000-04:00</published><updated>2011-09-29T10:00:01.932-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T10:00:01.932-04:00</app:edited><title>I'm Teaching Introduction to iOS Programming at CodeLesson.com Starting Monday October 3rd</title><content type="html">&lt;p&gt;If you or someone you know is interested in learning iOS programming, then head on over to &lt;a href="http://codelesson.com/courses/view/introduction-to-ios-programming"&gt;Introduction to iOS Programming at CodeLesson.com&lt;/a&gt; to sign up. I'll be teaching this course starting Monday October 3rd, 2011. What's CodeLesson?&lt;/p&gt;&lt;blockquote&gt;CodeLesson provides hands-on, practical, online instruction. Our instructors are real people with real-world experience.

Because our courses are given online, you have flexibility. You can access your course 24 hours a day while your course is in session. This means that you can participate fully even if you've got a busy daytime schedule or if you're located in another time zone.&lt;/blockquote&gt;&lt;p&gt;You can read the course description, prerequisites, and outline &lt;a href="http://codelesson.com/courses/view/introduction-to-ios-programming"&gt;at CodeLesson&lt;/a&gt; to see if the course is for. I'm using &lt;a href="http://www.amazon.com/iOS-Programming-Ranch-Guides-ebook/dp/B004Z2NQJQ/ref=tmm_kin_title_0?ie=UTF8&amp;m=AG56TWVU5XWC2&amp;qid=1317097956&amp;sr=8-1"&gt;iOS Programming: The Big Nerd Ranch Guide&lt;/a&gt; as the textbook for the course. The week to week work goes like this:
&lt;ul&gt;&lt;li&gt;I assign unit(s)s to complete for each week. Units contain reading chapters or articles on the web, typing code into Xcode, or environment setup&lt;/li&gt;&lt;li&gt;Students complete each unit and turn in their work for grading&lt;/a&gt;&lt;li&gt;There are occasionally quizzes&lt;/li&gt;&lt;li&gt;Repeat!&lt;/li&gt;&lt;/ul&gt;
If students have questions, I answer them in a timely fashion through CodeLesson.
&lt;/p&gt;&lt;p&gt;I've always enjoyed teaching, and now I get to do it in a structured format using my favorite development tool stack ever! I'm really looking forward to it&lt;/p&gt;
 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-5965566507495743478?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/G4Ur7Ch-z8Q" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/5965566507495743478?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/5965566507495743478?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/G4Ur7Ch-z8Q/i-teaching-introduction-to-ios.html" title="I&amp;#39;m Teaching Introduction to iOS Programming at CodeLesson.com Starting Monday October 3rd" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/09/i-teaching-introduction-to-ios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQGQXg9eSp7ImA9WhdVEUU.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-282887707469660766</id><published>2011-09-16T10:12:00.000-04:00</published><updated>2011-09-16T10:12:00.661-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-16T10:12:00.661-04:00</app:edited><title>5 Reasons Why Windows 8 Tablets Are Going To Have a Tough Time Competing Against iPad</title><content type="html">This post won't be about what I think of the Windows 8 Metro UI, I haven't spent enough time with it to think through Microsoft's choices.
This post won't be a feature comparison of previous versions of Windows to Windows 8 Developer Preview, that would be somewhat ridiculous with Windows 8 not shipping for a year
This post is about how Windows 8 tablets are going to have a hard time competing with the simplicity of buying an iPad for these simple reasons:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Users have to choose between two completely incompatible CPU architectures to buy a Windows 8 tablet&lt;/strong&gt;.&lt;br/&gt;
I can think of no examples where a consumer facing device had two incompatible CPU formats for normal people to choose from that did well. Even when Windows NT was shipping for Intel, DEC Alpha, and a few others for enterprise customers, getting supported apps was a challenge. I remember because I was trying to run an Exchange Server on Windows NT for Alpha, it was always like punching yourself in the face.
&lt;br/&gt;&lt;br/&gt;
Consumers will have to understand that "Metro style apps" (is that final marketing?) will work across CPU architectures, but &lt;a href="http://informationweek.com/news/windows/operatingsystems/231601473"&gt;all existing Windows apps do not&lt;/a&gt;. That's a terrible choice for regular people to have to make. By contrast, you get an iPad and you can run iPhone and iPad apps.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If Windows is in the final tablet product name, then where have the fraking Windows gone?&lt;/strong&gt;&lt;br/&gt;
Windows tablets have been around for close to 10 years and never sold well. I had one of the early Compaq tablets, it ran hot with poor battery life using an Intel CPU. The name of the OS used to be &lt;a href="http://en.wikipedia.org/wiki/Windows_XP_editions#Tablet_PC_Edition"&gt;Windows XP Tablet PC Edition&lt;/a&gt;. Since Windows 8 is going to run on notebooks, desktops, servers, and tablets just like Windows XP and its various editions, how are Windows 8 tablets going to be easily distinguished from other Windows 8 based computers? Dell Tablet 2012 with Microsoft Windows 8 for ARM Tablets? HP QZY12 with Windows 8 Intel? Compare again to iPad, iPad 2 with iOS 5, and the sure to come iPad 3 with iOS 5.2 (numbers just a guess, but a pretty good one). Obviously Metro on Windows 8 looks &lt;em&gt;nothing&lt;/em&gt; like previous versions of Windows, except when it inevitably will, but when it doesn't it won't have any Windows on something named Windows.
&lt;br/&gt;&lt;br/&gt;
You can just imagine the commercials where Apple or even Google if their still shipping tablets shows a Dell Streak 2012 with Windows 8 for ARM CPUs and the Desktop environment.
&lt;br/&gt;&lt;br/&gt;
Hindsight is as they say 20/20, but I'd take your bet that Windows Phones would have sold better without Windows in the name. For a lot of people, when people sit down daily to work and see Windows XP, &lt;em&gt;that's what they think of as Windows.&lt;/em&gt; They don't want that on their tablet!
&lt;br/&gt;&lt;br/&gt;
Even Apple has had this problem to a small degree with a simple two word name! How many times have you heard the iPod touch called &lt;em&gt;iTouch&lt;/em&gt;? If Microsoft can't simplify the naming, they're going to lose sales because complexity is not a winning formula.
&lt;br/&gt;&lt;br/&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;There will be very few "Metro style apps" for Windows 8 for a long time.&lt;/strong&gt;&lt;br/&gt;
There are 0 Metro apps in existence. Windows 8 won't ship for a year. Make no mistake though, WinRT, the Metro app runtime is Microsoft once again trying to build an entirely new platform. The closest developers are right now to shipping Metro style apps, not even using WinRT, just the Metro visual design, are on Windows Phone 7.x, and &lt;a href="http://www.pcmag.com/article2/0,2817,2393027,00.asp"&gt;the phones aren't selling well&lt;/a&gt;. Where's the evidence that consumers will actually buy Metro style apps?
&lt;br/&gt;&lt;br/&gt;
Developers have 1 year to build Metro apps for Windows 8. There will certainly be Metro apps when Windows 8 ships because hundreds of millions of copies will be sold. How many copies are going to be on tablet devices instead of Microsoft's traditional PCs? No one knows. The only data currently available on consumers preference for the Metro UI are Zune and Windows Phone sales, both doing poorly. There isn't going to be a halo effect for Metro apps for a long time if ever. There are going to be a lot of developers on the sidelines until Microsoft can actually sell, not ship, sell tablets in volume.
&lt;br/&gt;&lt;br/&gt;
Microsoft has previewed Windows features early for years from a position of strength because they were the only game in town. But the game has changed. They have &lt;em&gt;zero&lt;/em&gt; tablet apps and must get as many developers on board now or the Windows 8 launch or the game is over.  
&lt;br/&gt;&lt;br/&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows 8 and PC tablets aren't competing against iPad 2 and iOS 5, there competing against iPad 3 and iOS 6&lt;/strong&gt;&lt;br/&gt;
iOS 5 ships in weeks for all existing iPads and 2-3 years worth of iPhones. Very few people outside of Apple know what iPad 3 will be. Most likely only Apple knows what's going to be in iOS 6. Sure, it may not be iOS 6 that ships around the same time as Windows 8, could be a 5.x, but I bet it will be iOS 6. Will Windows 8 with Metro look fresh against iOS 6? Google will ship a bunch of new Android releases between now and then too. The ship in Redmond is too big to seriously change course and still ship Windows 8 in time for Fall 2012.
&lt;br/&gt;&lt;br/&gt;
Fall 2012 will be one of those historical inflection points, like the launch of Windows 95 and iPhone, that technologist will remember as long as they live. Microsoft is either going to flame out or curtail Apple's incredible tablet growth. I seriously believe this is Microsoft's last chance to remain relevant. The mobile train has left the station and is accelerating, but Microsoft hasn't even finished their travel plans!
&lt;br/&gt;&lt;br/&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apple could have an App wildcard up it's sleeve&lt;/strong&gt;&lt;br/&gt;
I believe iOS and OS X will stay merged at the lowest layers, but at the UI layer they stay separated. There are certainly ways Apple could make OS X post-Lion even more like iOS without them truly merging. One thing I think Apple could do is merge the iOS and OS X apps stores and make iPhone, iPad, and Mac binaries in one app package the new Universal format. Forget legacy vs. Metro style apps in Windows 8, with &lt;em&gt;the&lt;/em&gt; App Store, you could buy an app for use on all your Apple devices. Apple's put multiple binary images in one app bundle for years and OS X apps are getting more structured like iOS apps &lt;a href="http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/9"&gt;with sandboxing this year&lt;/a&gt;. I've actually been surprised this hasn't happened all ready. This would be fairly easy to do and makes whether an app runs an on any Apple device an implementation detail user's don't have to worry about. Or Apple could allow Cooca Touch apps to run directly on OS X by consumers since they already do in the iOS Simulator, but I think this is the wrong thing to do since iOS apps usually can't handle the multitude of screen sizes on Macs.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;/ol&gt;
To be clear though, I hope Microsoft eliminates more of this complexity and can avoid unforced errors to compete effectively with Apple. One technology company with monopoly power is not a recipe for moving technology forward as seen during Microsoft's long reign as king of PCs. Apple products are what I use and develop for today and for the foreseeable future, but if the conditions are right, switches have to be made. After all, I was developing on Microsoft platforms for 10 years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-282887707469660766?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/0-fJSP8fAnU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/282887707469660766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/282887707469660766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/0-fJSP8fAnU/5-reasons-why-windows-8-tablets-are.html" title="5 Reasons Why Windows 8 Tablets Are Going To Have a Tough Time Competing Against iPad" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/09/5-reasons-why-windows-8-tablets-are.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEEQXo_fyp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-4811378878457383337</id><published>2011-09-06T07:30:00.000-04:00</published><updated>2011-09-06T07:30:00.447-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T07:30:00.447-04:00</app:edited><title>QuickTime X on OS X Lion 10.7 Been Acting Like It's Possessed By A Mischievous Spirit? Here's The Fix.</title><content type="html">&lt;p&gt;Have:&lt;/p&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;QuickTime Player window titles been unclickable?&lt;/li&gt;
&lt;li&gt;Control HUD unmovable?&lt;/li&gt;
&lt;li&gt;Creating screen recordings all but impossible?&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Then call the QuickTime X Busters! We're ready to believe you!&lt;/p&gt;&lt;p&gt;The ectoplasmic residue that's been haunting your Lion install is the &lt;a href="http://megabytecomp.com/apps.aspx"&gt;QuickTime Player X Preference Pane&lt;/a&gt; and the preferences it created. Back in the OS X 10.6 Snow Leopard days, this handy utility gave you the ability to configure certain hidden preferences that you might like, such as automatically playing a video once the file is opened.&lt;/p&gt;&lt;p&gt;This utility, as developer &lt;a href="http://megabytecomp.com/default.aspx"&gt;Megabyte Computing Solutions&lt;/a&gt; says is 10.6 only, but that doesn't help when doing an inlace upgrade. To fix QuickTime Player in Lion then, you need to trash the preference pane and any old preference files in ~/Library/Preferences. Quit and open QuickTime Player if it was running and BOOM, no more busted QuickTime Player.&lt;/p&gt;&lt;p&gt;I'd chalked up this behavior to simple beta and then 10.7.0 bugs. But it finally occurred to me today that there is no way  ships QuickTime Player in Lion that busted, then I figured this out.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-4811378878457383337?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/r-4VnIbUqh8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/4811378878457383337?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/4811378878457383337?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/r-4VnIbUqh8/quicktime-x-on-os-x-lion-107-been.html" title="QuickTime X on OS X Lion 10.7 Been Acting Like It&amp;#39;s Possessed By A Mischievous Spirit? Here&amp;#39;s The Fix." /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/09/quicktime-x-on-os-x-lion-107-been.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkACQXk6fip7ImA9WhdXF0w.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-8372609808811521567</id><published>2011-08-30T09:26:00.002-04:00</published><updated>2011-08-30T09:26:00.716-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-30T09:26:00.716-04:00</app:edited><title>Feature Requests For All Twitter Clients: Automatically Block &amp; Report Obvious Spammers</title><content type="html">&lt;p&gt;Twitter itself seems unable or unwilling to stop obvious spammers.&lt;/p&gt;&lt;p&gt;Everyone using Twitter has seen this, mention a hot product like the iPad or iPhone, and BOOM your timeline fills up with spam from bots that have zero followers and follow zero accounts.&lt;/p&gt;&lt;p&gt;Tonight it hit me, why not have the Twitter client filter out and automatically report spammers? Even if Twitter eventually starts catching spam at the server where it should be caught, no reason why clients can't iterate quickly to stomp out this scourge now.&lt;/p&gt;&lt;p&gt;I envision this feature being like a muting feature, but instead of muting on keywords, muting happens based on account metrics. Then the client could delete obvious spam tweets out of the main timeline or put them into a spam timeline.&lt;/p&gt;&lt;p&gt;The user should be able to take it one step further and set the client to automatically report as spam the obvious 0/0 accounts.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-8372609808811521567?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/QNCtYevK5IA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8372609808811521567?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8372609808811521567?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/QNCtYevK5IA/feature-requests-for-all-twitter.html" title="Feature Requests For All Twitter Clients: Automatically Block &amp;amp; Report Obvious Spammers" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/08/feature-requests-for-all-twitter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGQXs6eCp7ImA9WhdXFk8.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-989140887174076576</id><published>2011-08-29T10:17:00.002-04:00</published><updated>2011-08-29T10:17:00.510-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-29T10:17:00.510-04:00</app:edited><title>Blog Update: Why I'm Pulling Ads</title><content type="html">&lt;p&gt;I can't believe I've been writing this blog for 7 years! I had no intention when I started writing of showing ads. Most ads are crap &amp; I hate crap ads. But I figured I would give it a try and see what kind of revenue I brought in. I wrote about my first results in this piece &lt;a href="http://www.innerexception.com/2008/03/10039-in-only-1307-days.html"&gt;$100.39 in only 1,307 Days&lt;/a&gt;. That was on March 28, 2008. I've been writing less on the blog since Twitter came out, like a lot of people, and I've been slowly climbing back to the magic $100 USD payment threshold. I'm currently inching up $89 USD.
&lt;/p&gt;&lt;p&gt;I've been thinking about it for a while, but Dave Winers' post &lt;a href="http://scripting.com/stories/2011/08/23/indirectBusinessModelsFtw.html"&gt;Indirect business models FTW&lt;/a&gt; really got me moving on doing it with this quote:&lt;br/&gt;&lt;blockquote&gt;
I say don't put ads on your blog, they just pull attention away from the ideas you're writing about.
&lt;/blockquote&gt;&lt;/p&gt;&lt;p&gt;As soon as I read that, I knew I had to pull the ads soon. It just rings true for my kind of blog. But I held back, I wanted to replace Google Adsense ads with banners for my company &lt;a href="http://www.tangerineelement.com/main/home.html"&gt;Tangerine Element&lt;/a&gt; and my apps &lt;a href="http://www.tangerineelement.com/main/itimezone.html"&gt;iTimeZone&lt;/a&gt; for iOS &amp; &lt;a href="http://www.tangerineelement.com/main/sleepmute.html"&gt;SleepMute&lt;/a&gt; for Mac OS X. I figured if anyone wants to say "thanks" for something they read, just click through to an app &amp; buy it.&lt;/p&gt;&lt;p&gt;Then while re-reading some of my older posts to write something new, I saw this:&lt;/br&gt;&lt;img src="http://lh4.ggpht.com/-4LI4c2VaEPw/Tlh0yJoTSHI/AAAAAAAAAFM/bavFYmB2R4Q/Screen%252520Shot%2525202011-08-27%252520at%25252012.17.06%252520AM.png?imgmax=800" alt="Not Ads From Dell" border="0" width="600" height="508" style="float:left;" /&gt;&lt;p style="padding-top:5px;clear:both"&gt;
Of course I knew this was going to happen, but I'm not advertising for Dell! WTF!?! I in no way endorse using Dell computers any more than I would endorse getting a hammer and banging on your skull to cure a headache.
&lt;/p&gt;&lt;p&gt;I'm done, the ads are gone. When I get some time, I'll put up my own banners, but better to stop the damage first.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-989140887174076576?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/Oa5YJJE9C8g" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/989140887174076576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/989140887174076576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/Oa5YJJE9C8g/blog-update-why-i-pulling-ads.html" title="Blog Update: Why I&amp;#39;m Pulling Ads" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-4LI4c2VaEPw/Tlh0yJoTSHI/AAAAAAAAAFM/bavFYmB2R4Q/s72-c/Screen%252520Shot%2525202011-08-27%252520at%25252012.17.06%252520AM.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2011/08/blog-update-why-i-pulling-ads.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIEQXc8cSp7ImA9WhZaGUo.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-1787496171128257153</id><published>2011-07-06T13:15:00.004-04:00</published><updated>2011-07-06T13:15:00.979-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-06T13:15:00.979-04:00</app:edited><title>Easier Screen Shots In OS X: Make the keyboard shortcuts F5 &amp; F6</title><content type="html">&lt;p style="clear:left"&gt;I don't know why I didn't think of this sooner.&lt;/p&gt;&lt;p&gt;It's kind of an open secret that taking screenshots by default in OS X Snow Leopard and now OS X Lion is not as obvious as it should be. All iOS devices have an easier screenshot gesture (tap the home + lock button for a second) than OS X does. Take a look at the screenshot below:&lt;/p&gt;&lt;img src="http://lh3.ggpht.com/-2AADYEkPqys/Tg6OYn4q1NI/AAAAAAAAAE8/0HjU1BH5G3k/osxliondefaultscreenshotshortcut.png?imgmax=800" alt="OS X Lion Default Screen Shots Keyboard Shortcuts" border="0" width="600" height="546" style="float:left;padding-right:5px" /&gt;&lt;p style="clear:left"&gt;3 or 4 keys to trigger a screenshot! It's always been a tricky combination to remember for experienced OS X users, and when you tell Windows converts that their precious &lt;strong&gt;Print Screen&lt;/strong&gt; key has been replaced by 3 &amp; 4 button combos, they almost always say &lt;em&gt;how is this easier&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The answer of course is that it's not and never has been. It's more powerful, in OS X you get to draw a box around the part of the screen you want, but it's a hard sell. I usually just tell somehow to launch &lt;strong&gt;Grab&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;After I installed the OS X Lion GM tonight, I was looking through System Preferences to see what had changed, and I was disappointed to see the default keyboard shortcuts for screen shots hadn't changed. So I started wondering what keys I could map screenshots to, and then it hit me:&lt;/p&gt;&lt;img src="http://lh6.ggpht.com/-uQ5j-EuTlCc/Tg6OYNqrNXI/AAAAAAAAAE4/ZcxVpTNAnnM/IMG_0720.jpg?imgmax=800" alt="Apple Bluetooth Keyboard" border="0" width="600" height="448" style="float:left;padding-right:5px;padding-bottom:10px;clear:left" /&gt;&lt;p style="clear:left"&gt;F5 and F6 are unmapped to critical operating system functionally, they're blank guys on my Apple Wireless Keyboad!!!&lt;/p&gt;&lt;p&gt;I couldn't believe I hadn't thought of this before, or that Apple hadn't already done it. Maybe they just don't think taking screenshots is a common user activity in OS X, but it seems like everybody needs to take screenshots at some point, why not make it easy? So I changed my keyboard shortcuts to this:&lt;/p&gt;&lt;img src="http://lh3.ggpht.com/-GzCaUyWTgag/Tg6OZGDs-JI/AAAAAAAAAFA/i2PSd9AgO4Y/osxlionnewscreenshotkeyboard.png?imgmax=800" alt="OS X Lion New Screen Shots Keyboard Shortcuts" border="0" width="600" height="546" style="float:left;padding-right:5px;clear:left" /&gt;&lt;p style="clear:left"&gt;One caveat, F5 was already mapped to VoiceOver, so I put that on ⌥⌘F5 since I never use it.&lt;/p&gt;&lt;p&gt;I'll file a bug with Apple to propose getting these made the default keyboard shortcuts for screenshots, and put some kind of icon on the actual keyboard keys.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-1787496171128257153?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/-q2zLjUvN2I" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/1787496171128257153?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/1787496171128257153?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/-q2zLjUvN2I/easier-screen-shots-in-os-x-make.html" title="Easier Screen Shots In OS X: Make the keyboard shortcuts F5 &amp;amp; F6" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-2AADYEkPqys/Tg6OYn4q1NI/AAAAAAAAAE8/0HjU1BH5G3k/s72-c/osxliondefaultscreenshotshortcut.png?imgmax=800" height="72" width="72" /><feedburner:origLink>http://www.innerexception.com/2011/07/easier-screen-shots-in-os-x-make.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYEQXw_eCp7ImA9WhZaGEU.&quot;"><id>tag:blogger.com,1999:blog-7066219.post-8670126729615704131</id><published>2011-07-05T13:15:00.001-04:00</published><updated>2011-07-05T13:15:00.240-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-05T13:15:00.240-04:00</app:edited><title>The Reason Why an Objective-C Protocol Doesn't Implement respondsToSelector:</title><content type="html">I've been having a lot of &lt;a href="http://www.innerexception.com/2011/06/adopting-objective-c-protocol-privately.html"&gt;fun with Objective-C protocols lately&lt;/a&gt;. In one of the projects I'm on, I've been working to eliminate warnings from the compiler.
One of those warnings is that &lt;strong&gt;respondsToSelector:&lt;/strong&gt; isn't found in your delegate or data source. When working with a delegate or data source, two different naming conventions for Objective-C protocols, a typical pattern your code follows is to see if your delegate or data source actually implements a method defined in your protocol, like this:
&lt;blockquote&gt;
- (void)notifyDelegateOfButtonTap&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (self.delegate &amp;amp;&amp;amp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[self.delegate respondsToSelector:@selector(protocolSampleViewController:didTapButton:)])&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[self.delegate protocolSampleViewController:self didTapButton:self.button];&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;}&lt;br/&gt;&lt;/blockquote&gt;
The protocol definition would typically look like this when implementing this pattern:

&lt;blockquote&gt;
@protocol ProtocolSampleViewControllerDelegate&lt;br/&gt;
@optional&lt;br/&gt;
- (void)protocolSampleViewController:(ProtocolSampleViewController *)protocolSampleViewController didTapButton:(UIButton *)button;&lt;/br&gt;
@end&lt;br/&gt;&lt;/blockquote&gt;
This is a typical protocol definition as code completed in Xcode 3.x, with the addition of @optional just to maintain pattern correctness for the example.  
In Xcode 4.x, the code completed @protocol definition template looks like this:

&lt;blockquote&gt;
@protocol &lt;i&gt;protocol name&lt;/i&gt; &amp;lt;NSObject&amp;gt;&lt;br/&gt;
&lt;i&gt;methods&lt;/i&gt;&lt;br/&gt;
@end&lt;br/&gt;
&lt;/blockquote&gt;
As you might have guessed by now, the &amp;lt;NSObject&amp;gt; added behind the protocol name is the key. That's because it's actually the &lt;a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html"&gt;NSObject protocol&lt;/a&gt; that defines most of the core methods that the NSObject class implements, including &lt;strong&gt;respondsToSelector:&lt;/strong&gt;
&lt;br/&gt;&lt;br/&gt;
Once you make sure all your protocol definitions adopt the &amp;ltNSObject&amp;gt; protocol, then calling &lt;strong&gt;respondsToSelector:&lt;/strong&gt; on your delegate or datasource variables won't result in compiler warnings.
&lt;br/&gt;&lt;br/&gt;
One more thing...you could cast your delegate or data source variable to &lt;strong&gt;id&lt;/strong&gt; like this:
&lt;blockquote&gt;
...&lt;br/&gt;
[(id)self.delegate respondsToSelector:@selector(protocolSampleViewController:didTapButton:)]&lt;br/&gt;
...&lt;br/&gt;
&lt;/blockquote&gt;

That is an ugly solution and doesn't help you understand another key feature of protocols, inheritance, which I plan to cover in an upcoming post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7066219-8670126729615704131?l=www.innerexception.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/InnerException/~4/q98u6idQ9Sk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8670126729615704131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7066219/posts/default/8670126729615704131?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/InnerException/~3/q98u6idQ9Sk/reason-why-objective-c-protocol-doesn.html" title="The Reason Why an Objective-C Protocol Doesn&amp;#39;t Implement respondsToSelector:" /><author><name>Dave Murdock</name><uri>http://www.blogger.com/profile/16150203206863414230</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-aKaLkV65BFA/TVP4m41PD0I/AAAAAAAAADk/Gr76oPFQJxU/s220/dave.murdock.jpg" /></author><feedburner:origLink>http://www.innerexception.com/2011/07/reason-why-objective-c-protocol-doesn.html</feedburner:origLink></entry></feed>

