<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael Tsai</title>
	<atom:link href="http://mjtsai.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjtsai.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 16 May 2012 22:53:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Perian to Cease Development</title>
		<link>http://mjtsai.com/blog/2012/05/16/perian-to-cease-development/</link>
		<comments>http://mjtsai.com/blog/2012/05/16/perian-to-cease-development/#comments</comments>
		<pubDate>Wed, 16 May 2012 22:18:59 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4835</guid>
		<description><![CDATA[Steve McCabe: The developers of Perian, the free and extremely popular video format extender for QuickTime, have announced that they are ceasing work on the project. In a statement on the project&#8217;s Web site, the developers have said that it&#8217;s time to move on, their goal of making video content playback easier on the Mac [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tidbits.com/article/13007">Steve McCabe</a>:</p>
<blockquote cite="http://tidbits.com/article/13007"><p>The developers of <a href="http://perian.org/">Perian</a>, the free and extremely popular video format extender for QuickTime, have announced that they are ceasing work on the project. In a statement on the project&rsquo;s Web site, the developers have said that it&rsquo;s time to move on, their goal of making video content playback easier on the Mac having been met.</p></blockquote>
<p>There are plenty of standalone Mac video players. Perian is interesting because it enables <em>any</em> application that supports QuickTime or Quick Look to play additional formats. QuickTime once had built-in support for playing Flash videos. These days, Apple would rather promote its preferred video formats than ensure that applications on its platform can play files that users encounter in the wild. (Imagine if there were popular image formats that Safari and Preview couldn&rsquo;t display.) I haven&rsquo;t been following the QuickTime API very closely, but my impression is that ever since QuickTime X in Snow Leopard, the entire plug-in system has been deprecated, with no replacement.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/16/perian-to-cease-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Under the Sheets With iCloud and Core Data</title>
		<link>http://mjtsai.com/blog/2012/05/16/under-the-sheets-with-icloud-and-core-data/</link>
		<comments>http://mjtsai.com/blog/2012/05/16/under-the-sheets-with-icloud-and-core-data/#comments</comments>
		<pubDate>Wed, 16 May 2012 19:22:48 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4832</guid>
		<description><![CDATA[Drew McCormack: I&#8217;ve spent the last 3-4 months integrating Core Data syncing over iCloud into Mental Case for Mac. It is not in the wild yet, but we have started beta testing with a limited audience. To say it has been a challenge would be an understatement &#8212; it has probably been one of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mentalfaculty.tumblr.com/post/23163747823/under-the-sheets-with-icloud-and-core-data-the-basics">Drew McCormack</a>:</p>
<blockquote cite="http://mentalfaculty.tumblr.com/post/23163747823/under-the-sheets-with-icloud-and-core-data-the-basics"><p>I&rsquo;ve spent the last 3-4 months integrating Core Data syncing over iCloud into Mental Case for Mac. It is not in the wild yet, but we have started beta testing with a limited audience.</p>
<p>To say it has been a challenge would be an understatement &mdash; it has probably been one of the hardest tasks I have ever undertaken for a Mac or iOS app. </p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/16/under-the-sheets-with-icloud-and-core-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATPM 18.05</title>
		<link>http://mjtsai.com/blog/2012/05/15/atpm-18-05/</link>
		<comments>http://mjtsai.com/blog/2012/05/15/atpm-18-05/#comments</comments>
		<pubDate>Tue, 15 May 2012 15:12:43 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4829</guid>
		<description><![CDATA[The May issue of ATPM is out: Cover Sponsors Welcome (and Goodbye) E-Mail Publisher&#8217;s Letter Apple Cider: Random Squeezings From a Mac User: Look How Far We&#8217;ve Come Bloggable: One Last Time, With Feeling On a Clear Day, You Can See the Hollywood Sign: First and Last Mac About Town: What a Ride! And It [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.atpm.com/18.05/">May issue of ATPM</a> is out:</p>
<UL>
  <LI><A href="http://www.atpm.com/18.05/index.shtml"><b>Cover</b></A></LI>
  <LI><A href="http://www.atpm.com/18.05/sponsors.shtml"><b>Sponsors</b></A></LI>
  <LI><A href="http://www.atpm.com/18.05/welcome.shtml"><b>Welcome (and Goodbye)</b></A></LI>
  <LI><A href="http://www.atpm.com/18.05/e-mail.shtml"><b>E-Mail</b></A></LI>
  <LI><A href="http://www.atpm.com/18.05/publishers-letter.shtml"><b>Publisher&rsquo;s Letter</b></A></LI>
  <LI><A href="http://www.atpm.com/18.05/cider.shtml"><b>Apple Cider: Random Squeezings From a Mac User:</b> Look How Far We&rsquo;ve Come</A></LI>
  <LI><A href="http://www.atpm.com/18.05/bloggable.shtml"><b>Bloggable:</b> One Last Time, With Feeling</A></LI>
  <LI><A href="http://www.atpm.com/18.05/hollywood.shtml"><b>On a Clear Day, You Can See the Hollywood Sign:</b> First and Last</A></LI>
  <LI><A href="http://www.atpm.com/18.05/mac-about-town.shtml"><b>Mac About Town:</b> What a Ride! And It Ain&rsquo;t Over Yet!</A></LI>
  <LI><A href="http://www.atpm.com/18.05/macmuser.shtml"><b>MacMuser:</b> What Trick, What Device, What Starting-Hole&#8230;</A></LI>
  <LI><A href="http://www.atpm.com/18.05/next-actions.shtml"><b>Next Actions:</b> The Last Action</A></LI>
  <LI><A href="http://www.atpm.com/18.05/pebkac.shtml"><b>PEBKAC:</b> Finales, Friendships, and the Future</A></LI>
  <LI><A href="http://www.atpm.com/18.05/paradigm.shtml"><b>The Personal Computing Paradigm:</b> How Cool Is Your Mac?</A></LI>
  <LI><A href="http://www.atpm.com/18.05/segments-about.shtml"><b>Segments: Slices from the Macintosh Life:</b> About My Particular Macintoshes</A></LI>
  <LI><A href="http://www.atpm.com/18.05/segments-darkest.shtml"><b>Segments: Slices from the Macintosh Life:</b> From the Darkest Hour</A></LI>
  <LI><A href="http://www.atpm.com/18.05/segments-growing-up.shtml"><b>Segments: Slices from the Macintosh Life:</b> Growing Up With Apple</A></LI>
  <LI><A href="http://www.atpm.com/18.05/segments-recollections.shtml"><b>Segments: Slices from the Macintosh Life:</b> Recollections of ATPM by the Plucky Comic Relief</A></LI>
  <LI><A href="http://www.atpm.com/18.05/segments-shrinking.shtml"><b>Segments: Slices from the Macintosh Life:</b> Shrinking Into an Expanding World</A></LI>
  <LI><A href="http://www.atpm.com/18.05/desktop-pictures.shtml"><b>Desktop Pictures:</b> Parting Shots</A></LI>
  <LI><A href="http://www.atpm.com/18.05/qaptain-qwerty.shtml"><b>Qaptain Qwerty:</b> Touch&eacute;</A></LI>
  <LI><A href="http://www.atpm.com/18.05/spinning-beachball.shtml"><b>The Spinning Beachball</b></A></LI>
  <LI><A href="http://www.atpm.com/18.05/camera-i-o.shtml"><b>Accessory Review:</b> Camera I-O</A></LI>
  <LI><A href="http://www.atpm.com/18.05/draw-something.shtml"><b>Software Review:</b> Draw Something 1.5.14</A></LI>
  <LI><A href="http://www.atpm.com/18.05/privacy-big-data.shtml"><b>Book Review:</b> Privacy and Big Data: The Players, Regulators, and Stakeholders</A></LI>
  <LI><A href="http://www.atpm.com/18.05/touchstream-lp.shtml"><b>Hardware Review:</b> TouchStream LP</A></LI>
  <LI><A href="http://www.atpm.com/18.05/faq.shtml"><b>FAQ: Frequently Asked Questions</b></A></LI></UL>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/15/atpm-18-05/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Old People Icons</title>
		<link>http://mjtsai.com/blog/2012/05/11/old-people-icons/</link>
		<comments>http://mjtsai.com/blog/2012/05/11/old-people-icons/#comments</comments>
		<pubDate>Fri, 11 May 2012 20:31:56 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4824</guid>
		<description><![CDATA[Scott Hanselman (via Paul Kafasis): The world&#8217;s most advanced phones include an icon that looks like a phone handset that you haven&#8217;t touched in 20 years, unless you&#8217;ve used a pay phone recently. Also: At some time in the past the magnifying glass became the &#8220;search everywhere&#8221; icon, but for some reason binoculars are for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hanselman.com/blog/TheFloppyDiskMeansSaveAnd14OtherOldPeopleIconsThatDontMakeSenseAnymore.aspx">Scott Hanselman</a> (via <a href="http://www.onefoottsunami.com/2012/05/11/old-people-icons/">Paul Kafasis</a>):</p>
<blockquote cite="http://www.hanselman.com/blog/TheFloppyDiskMeansSaveAnd14OtherOldPeopleIconsThatDontMakeSenseAnymore.aspx"><p>The world&rsquo;s most advanced phones include an icon that looks like a phone handset that you haven&rsquo;t touched in 20 years, unless you&rsquo;ve used a pay phone recently.</p></blockquote>
<p>Also:</p>
<blockquote cite="http://www.hanselman.com/blog/TheFloppyDiskMeansSaveAnd14OtherOldPeopleIconsThatDontMakeSenseAnymore.aspx"><p>At some time in the past the magnifying glass became the &ldquo;search everywhere&rdquo; icon, but for some reason binoculars are for searching within a document. This makes no sense as magnifying glasses are for searching things that are near and binoculars imply breadth of search and distance. These two commands should have had their icons reversed!</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/11/old-people-icons/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lightroom 4 Now Available on the Mac App Store</title>
		<link>http://mjtsai.com/blog/2012/05/10/lightroom-4-now-available-on-the-mac-app-store/</link>
		<comments>http://mjtsai.com/blog/2012/05/10/lightroom-4-now-available-on-the-mac-app-store/#comments</comments>
		<pubDate>Thu, 10 May 2012 20:28:29 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4821</guid>
		<description><![CDATA[Adobe has the expected list of caveats: Updates will take place through the Mac App Store, not via Adobe.com for this version of Lightroom. When we update Lightroom for new camera support (about 4 times per year), the Mac App Store version may be released at a different time than the update on Adobe.com There [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.adobe.com/lightroomjournal/2012/05/lightroom-4-now-available-on-the-mac-app-store.html">Adobe</a> has the expected list of caveats:</p>
<blockquote cite="http://blogs.adobe.com/lightroomjournal/2012/05/lightroom-4-now-available-on-the-mac-app-store.html">
<ul>
<li>Updates will take place through the Mac App Store, not via <a href="http://www.adobe.com/products/photoshop-lightroom.html">Adobe.com</a> for this version of Lightroom.  When we update Lightroom for new camera support (about 4 times per year), the Mac App Store version may be released at a different time than the update on <a href="http://Adobe.com/">Adobe.com</a></li>
<li>There is no upgrade pricing available on the Mac App Store for Lightroom customers who own Lightroom 1, 2 or 3.</li>
<li>Because there is no upgrade pricing or upgrade validation currently available on the Mac App Store, there is no guarantee that upgrade pricing will be available to Mac App Store Lightroom 4 customers when Lightroom 5 and future versions of Lightroom are released.</li>
</ul>
</blockquote>
<p>I&rsquo;m more interested in what will happen to Lightroom 4 purchases when version 5 becomes available. If there&rsquo;s still no upgrade functionality, Adobe will have to remove version 4 from the store when it adds version 5. My understanding is that apps that are removed <a href="http://ipod.about.com/od/ipodmanual/f/Redownload-Apps-Purchased-From-App-Store.htm">cannot be redownloaded</a>. You can make your own backup, but the Mac App Store receipt will be tied to your Mac&rsquo;s unique ID. So it seems as though if Lightroom 5 comes out and you get a new Mac, you will not be able to continue using Lightroom 4 at all. To be clear, this situation is not unique to Adobe. It is just one of the  higher profile companies that is <a href="http://mjtsai.com/blog/2011/12/30/state-of-the-meat-2011-edition/">working around</a> Apple&rsquo;s lack of support for multiple versions of a product.</p>
<p>Secondly, this is bad for scripting and for other applications that integrate with the product. A new product in the Mac App Store must have a new bundle identifier. So any code that was using the old bundle identifier to, well, <em>identify</em> the application will break.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/10/lightroom-4-now-available-on-the-mac-app-store/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Moom</title>
		<link>http://mjtsai.com/blog/2012/05/08/moom/</link>
		<comments>http://mjtsai.com/blog/2012/05/08/moom/#comments</comments>
		<pubDate>Tue, 08 May 2012 18:02:19 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4812</guid>
		<description><![CDATA[I&#8217;d long pigeonholed Moom as a utility for moving and zooming windows, for people who didn&#8217;t want to do so by clicking and dragging. It sounded cool enough, but not particularly useful for me. I tend to keep my windows in fixed locations and don&#8217;t need or want to reshape them into different grids. Then [...]]]></description>
			<content:encoded><![CDATA[<p>I&rsquo;d long pigeonholed <a href="http://manytricks.com/moom/">Moom</a> as a utility for moving and zooming windows, for people who didn&rsquo;t want to do so by clicking and dragging. It sounded cool enough, but not particularly useful for me. I tend to keep my windows in fixed locations and don&rsquo;t need or want to reshape them into different grids.</p>
<p>Then I happened to see a full-page ad in the paper edition of <em>Macworld</em> highlighting the &ldquo;Save Window Layout Snapshot&rdquo; feature, which I didn&rsquo;t know about. I&rsquo;d tried a couple <a href="http://mjtsai.com/blog/2010/08/09/stay-1-0/">utilities</a> to do this years ago, but was never that happy with them. And during the <a href="http://mjtsai.com/blog/2009/03/06/macbook-pro-mini-displayport-dual-link-dvi/">Mini DisplayPort adapter fiasco</a> I&rsquo;d written an AppleScript to restore my hard-coded window positions. However, Moom is easier and better, so I&rsquo;ve switched. Whenever my windows get messed up&mdash;from resetting the display adapter, a <a href="http://mjtsai.com/blog/2012/05/02/kernel-panics-and-omnifocus-syncing/">kernel panic</a>, or switching from one display to two (or vice-versa)&mdash;it quickly fixes the positions of all my windows.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/08/moom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BOOL&#8217;s Sharp Corners</title>
		<link>http://mjtsai.com/blog/2012/05/07/bools-sharp-corners/</link>
		<comments>http://mjtsai.com/blog/2012/05/07/bools-sharp-corners/#comments</comments>
		<pubDate>Mon, 07 May 2012 20:49:13 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4809</guid>
		<description><![CDATA[Mark Dalrymple: If g_name is non-nil, it&#8217;s a true value, so this function will be returning a true value. It might not be YES, but truth is truth in C, isn&#8217;t it? If this function returned bool, it would return the correct value. Unfortunately, with BOOL, it doesn&#8217;t. If the address happens to have a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://weblog.bignerdranch.com/564-bools-sharp-corners/">Mark Dalrymple</a>:</p>
<blockquote cite="http://weblog.bignerdranch.com/564-bools-sharp-corners/"><p>If <code>g_name</code> is non-<code>nil</code>, it&#8217;s a true value, so this function will be returning a true value.  It might not be <code>YES</code>, but truth is truth in C, isn&#8217;t it?  If this function returned <code>bool</code>, it would return the correct value.</p>
<p>Unfortunately, with <code>BOOL</code>, it doesn&#8217;t.  If the address happens to have a zero lower byte, this function will return zero due to the same slicing behavior.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/07/bools-sharp-corners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 8 DVD Playback</title>
		<link>http://mjtsai.com/blog/2012/05/07/windows-8-dvd-playback/</link>
		<comments>http://mjtsai.com/blog/2012/05/07/windows-8-dvd-playback/#comments</comments>
		<pubDate>Mon, 07 May 2012 19:41:23 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4806</guid>
		<description><![CDATA[Ed Bott (via John Gruber): Microsoft&#8217;s decision to remove support for playing DVD movies in Windows 8 has caused some confusion. If the VLC media player can provide DVD support for free, why can&#8217;t Microsoft? For starters, Microsoft isn&#8217;t French.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zdnet.com/blog/bott/if-vlc-can-ship-a-free-dvd-player-why-cant-microsoft/4962">Ed Bott</a> (via <a href="http://daringfireball.net/linked/2012/05/07/windows-dvd">John Gruber</a>):</p>
<blockquote cite="http://www.zdnet.com/blog/bott/if-vlc-can-ship-a-free-dvd-player-why-cant-microsoft/4962"><p>Microsoft&rsquo;s decision to remove support for playing DVD movies in Windows 8 has caused some confusion. If the VLC media player can provide DVD support for free, why can&rsquo;t Microsoft? For starters, Microsoft isn&rsquo;t French.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/07/windows-8-dvd-playback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Drive and Mac Metadata</title>
		<link>http://mjtsai.com/blog/2012/05/07/google-drive-and-mac-metadata/</link>
		<comments>http://mjtsai.com/blog/2012/05/07/google-drive-and-mac-metadata/#comments</comments>
		<pubDate>Mon, 07 May 2012 19:16:29 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4803</guid>
		<description><![CDATA[I did some preliminary testing with version 1.0.2960.1377 of Google Drive. At first glance, it seems to be a lot like Dropbox except that it&#8217;s slow and doesn&#8217;t work very well. At launch, it fills the Console with errors like: 5/7/12 2:22:58.497 PM [0x0-0x70070].com.google.GoogleDrive: objc[1082]: Object 0x2f1a8d0 of class OC_PythonString autoreleased with no pool in [...]]]></description>
			<content:encoded><![CDATA[<p>I did some preliminary testing with version 1.0.2960.1377 of <a href="https://drive.google.com/">Google Drive</a>. At first glance, it seems to be a lot like Dropbox except that it&rsquo;s slow and doesn&rsquo;t work very well. At launch, it fills the Console with errors like:</p>
<pre>5/7/12 2:22:58.497 PM [0x0-0x70070].com.google.GoogleDrive: objc[1082]: Object 0x2f1a8d0 of class OC_PythonString autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug
5/7/12 2:22:58.497 PM [0x0-0x70070].com.google.GoogleDrive: objc[1082]: Object 0x2f10af0 of class NSPathStore2 autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug
5/7/12 2:22:58.497 PM [0x0-0x70070].com.google.GoogleDrive: objc[1082]: Object 0x2f0f5f0 of class __NSCFData autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug</pre>
<p>This makes it appear as if the developers weren&rsquo;t very experienced with Objective-C and also didn&rsquo;t test it.</p>
<p>Uploading took around 20 minutes for a folder with under 100 files and 100K. (I never thought I&rsquo;d write the phrase &ldquo;slower than iDisk.&rdquo;) It reported numerous &ldquo;unknown&rdquo; upload errors. They kept occurring when I clicked &ldquo;Retry&rdquo; but did not recur after restarting the Mac.</p>
<p>I waited 40 minutes for it to download 17 files totaling 60 KB, after which it seemed to have stopped making progress, and I gave up. Of the files that it completely downloaded, it did not transfer the following metadata: label, creation date, extended attributes, locked flag, invisible flag. Dropbox <a href="http://mjtsai.com/blog/2008/11/26/dropbox/">initially</a> had problems with these as well, but as of <a href="http://mjtsai.com/blog/2010/12/17/dropbox-1-0/">version 1.0</a> it handles them properly. (The test file with the resource fork was one of the ones that didn&rsquo;t download before I gave up.)</p>
<p>I assume that my experience is not typical, or I would have read about more people reporting problems. But from what I&rsquo;ve seen, this is one Google product that should have stayed in beta.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/07/google-drive-and-mac-metadata/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lion Login Passwords in Clear Text</title>
		<link>http://mjtsai.com/blog/2012/05/06/lion-login-passwords-in-clear-text/</link>
		<comments>http://mjtsai.com/blog/2012/05/06/lion-login-passwords-in-clear-text/#comments</comments>
		<pubDate>Mon, 07 May 2012 01:58:25 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4796</guid>
		<description><![CDATA[Emil Protalinski (via Slashdot): An Apple programmer, apparently by accident, left a debug flag in the most recent version of the Mac OS X operating system. In specific configurations, applying OS X Lion update 10.7.3 turns on a system-wide debug log file that contains the login passwords of every user who has logged in since [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zdnet.com/blog/security/apple-security-blunder-exposes-lion-login-passwords-in-clear-text/11963">Emil Protalinski</a> (via <a href="http://apple.slashdot.org/story/12/05/06/1621216/apple-security-blunder-exposes-lion-login-passwords-in-clear-text">Slashdot</a>):</p>
<blockquote cite="http://www.zdnet.com/blog/security/apple-security-blunder-exposes-lion-login-passwords-in-clear-text/11963"><p>An Apple programmer, apparently by accident, left a debug flag in the most recent version of the Mac OS X operating system. In specific configurations, applying OS X Lion update 10.7.3 turns on a system-wide debug log file that contains the login passwords of every user who has logged in since the update was applied. The passwords are stored in clear text.</p>
<p>Anyone who used FileVault encryption on their Mac prior to Lion, upgraded to Lion, but kept the folders encrypted using the legacy version of FileVault is vulnerable. FileVault 2 (whole disk encryption) is unaffected.</p>
</blockquote>
<p>User <a href="https://discussions.apple.com/thread/3715366">tarwinator</a> posted about this in Apple&rsquo;s support forum three months ago but didn&rsquo;t get a response.</p>
<p>Update (2012-05-09): It&rsquo;s <a href="http://www.theverge.com/2012/5/9/3010155/os-x-lion-10-7-4-fixes-filevault-password-bug">fixed</a> in Mac OS X 10.7.4.</p>
<p>Update (2012-05-10): Apple has posted a <a href="http://support.apple.com/kb/TS4272?viewlocale=en_US&#038;locale=en_US">support article</a> about the problem.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/06/lion-login-passwords-in-clear-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FaceSpan 5 (Mark&#8217;s Misadventure)</title>
		<link>http://mjtsai.com/blog/2012/05/06/facespan-5-marks-misadventure/</link>
		<comments>http://mjtsai.com/blog/2012/05/06/facespan-5-marks-misadventure/#comments</comments>
		<pubDate>Mon, 07 May 2012 01:53:56 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4793</guid>
		<description><![CDATA[Mark Alldritt: I am a self-funded Indie (lone) developer. I made a number of classic business blunders on the FaceSpan 5 project. I broke the golden rule: never (never!) rewrite a software product. I massively underestimated the effort required to complete the product. I set off without having sufficient resources to complete the project. Because [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.latenightsw.com/?p=637">Mark Alldritt</a>:</p>
<blockquote cite="http://blog.latenightsw.com/?p=637"><p>I am a self-funded Indie (lone) developer.  I made a number of classic business blunders on the FaceSpan 5 project.  I broke the golden rule: <strong>never (never!) rewrite a software product</strong>.  I massively underestimated the effort required to complete the product.  I set off without having sufficient resources to complete the project.  Because I took so long to complete my work, the market moved on &#8212; AppleScript&#8217;s importance to the customers I intended to target declined.  Some may argue that the market was never really there to provide a return for a product of this complexity.  Finally, I didn&#8217;t pull the plug soon enough.</p></blockquote>
<p>I never got into FaceSpan, but I&rsquo;m a big fan of Alldritt&rsquo;s main product, <a href="http://www.latenightsw.com/sd4/index.html">Script Debugger</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/06/facespan-5-marks-misadventure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ReactiveCocoa</title>
		<link>http://mjtsai.com/blog/2012/05/06/reactivecocoa/</link>
		<comments>http://mjtsai.com/blog/2012/05/06/reactivecocoa/#comments</comments>
		<pubDate>Mon, 07 May 2012 01:48:56 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4790</guid>
		<description><![CDATA[Josh Abernathy (via Jesper): ReactiveCocoa gives us a lot of cool stuff: The ability to compose operations on future data. An approach to minimize state and mutability. A declarative way to define behaviors and the relationships between properties. A unified, high-level interface for asynchronous operations. A lovely API on top of KVO. Those all might [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://github.com/blog/1107-reactivecocoa-for-a-better-world">Josh Abernathy</a> (via <a href="http://stmts.net/2012/05/06/reactivecocoa/">Jesper</a>):</p>
<blockquote cite="https://github.com/blog/1107-reactivecocoa-for-a-better-world"><p>ReactiveCocoa gives us a lot of cool stuff:</p>
<ol>
<li>The ability to compose operations on future data.</li>
<li>An approach to minimize state and mutability.</li>
<li>A declarative way to define behaviors and the relationships between properties.</li>
<li>A unified, high-level interface for asynchronous operations.</li>
<li>A lovely API on top of KVO.</li>
</ol><p>Those all might seem a little random until you realize that RAC is all about handling these cases where we&rsquo;re waiting for some new value and then reacting.</p></blockquote>
<p>Lots of fun with blocks, based on .NET&rsquo;s <a href="http://msdn.microsoft.com/en-us/data/gg577609">Reactive Extensions</a> (Rx).</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/06/reactivecocoa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Think Like (a) Git</title>
		<link>http://mjtsai.com/blog/2012/05/05/think-like-a-git/</link>
		<comments>http://mjtsai.com/blog/2012/05/05/think-like-a-git/#comments</comments>
		<pubDate>Sat, 05 May 2012 22:05:43 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4779</guid>
		<description><![CDATA[Sam Livingston-Gray (via Jonathan Rentzsch): Once people achieve some level of Git enlightenment, they tend to make statements of the form &#8216;Git gets a lot easier once you realize X&#8217;&#8212;but that doesn&#8217;t do much for people staring up Git&#8217;s steep learning curve. My goal with this site is to help you, Dear Reader, understand what [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://think-like-a-git.net">Sam Livingston-Gray</a> (via <a href="http://www.delicious.com/rentzsch">Jonathan Rentzsch</a>):</p>
<blockquote cite="http://think-like-a-git.net"><p>Once people achieve some level of Git enlightenment, they tend to make statements of the form &lsquo;Git gets a lot easier once you realize X&rsquo;&mdash;but that doesn&rsquo;t do much for people staring up Git&rsquo;s steep learning curve.</p>
<p>My goal with this site is to help you, Dear Reader, understand what those smug bastards are talking about.</p></blockquote>
<p>Not that Git is easy to use, exactly, but I think it&rsquo;s somewhat unfairly singled out for criticism. The repository model is very logical.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/05/think-like-a-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad Keyboard Prototype</title>
		<link>http://mjtsai.com/blog/2012/05/05/ipad-keyboard-prototype/</link>
		<comments>http://mjtsai.com/blog/2012/05/05/ipad-keyboard-prototype/#comments</comments>
		<pubDate>Sat, 05 May 2012 21:59:42 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4776</guid>
		<description><![CDATA[When I first started using iOS&#8217;s on-screen keyboard, it was a revelation just how much I missed the arrow keys and modifiers (for moving by word or by line and changing the selection). Apple eventually added support for text selection and cut/copy/paste, with an interface that&#8217;s intuitive but very slow. Text entry and editing remain [...]]]></description>
			<content:encoded><![CDATA[<p>When I first started using iOS&rsquo;s on-screen keyboard, it was a revelation just how much I missed the arrow keys and modifiers (for moving by word or by line and changing the selection). Apple eventually added support for text selection and cut/copy/paste, with an interface that&rsquo;s intuitive but very slow. Text entry and editing remain so unpleasant that I do them as little as possible, waiting until I&rsquo;m back at the Mac and its real keyboard. <a href="http://www.youtube.com/watch?v=RGQTaHGQ04Q">Daniel Hooper</a> created a demo showing how the iPad&rsquo;s keyboard could be improved (via <a href="http://5by5.tv/hypercritical/66">John Siracusa</a>). His idea is to use the keyboard as a gesture area, swiping left and right to move the cursor or change the selection. This looks like a promising approach.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/05/ipad-keyboard-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel Panics and OmniFocus Syncing</title>
		<link>http://mjtsai.com/blog/2012/05/02/kernel-panics-and-omnifocus-syncing/</link>
		<comments>http://mjtsai.com/blog/2012/05/02/kernel-panics-and-omnifocus-syncing/#comments</comments>
		<pubDate>Wed, 02 May 2012 16:15:12 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4771</guid>
		<description><![CDATA[I&#8217;ve encountered a raft of kernel panics recently (eight in the past two weeks). The backtrace is always related to com.apple.NVDAResman, which seems to be the driver for my MacBook Pro&#8217;s NVIDIA GeForce graphics card. Strangely, this has only happened with Mac OS X 10.7.3, but the panics did not begin until two months after [...]]]></description>
			<content:encoded><![CDATA[<p>I&rsquo;ve encountered a raft of <a href="https://discussions.apple.com/thread/3114550">kernel</a> <a href="http://support.apple.com/kb/TS4088?viewlocale=en_US">panics</a> recently (eight in the past two weeks). The backtrace is always related to com.apple.NVDAResman, which seems to be the driver for my MacBook Pro&rsquo;s NVIDIA GeForce graphics card. Strangely, this has only happened with Mac OS X 10.7.3, but the panics did not begin until two months after updating to 10.7.3. Perhaps there was another update to those drivers that I don&rsquo;t remember.</p>
<p>Aside from being annoying, the kernel panics indirectly caused a more serious problem: I repeatedly left the house with stale <a href="http://www.omnigroup.com/products/omnifocus/">OmniFocus</a> data synced to my iPhone. I&rsquo;ve used OmniFocus for years, and nothing like this had ever happened, so I had gotten to the point where I didn&rsquo;t think much about syncing, assuming it would just work. Furthermore, when I tried to manually initiate a sync from the iPhone, the progress indicator would just spin and spin.</p>
<p>I looked in the Console log and found many entries like this:</p>
<pre>4/26/12 5:12:03.161 PM Firewall: Deny  connecting from fe80:5::62c5:47ff:fe37:29aa:58959 to port 49212 proto=6
4/26/12 5:12:06.868 PM Firewall: Deny  connecting from 192.168.1.105:58960 to port 49212 proto=6</pre>
<p>The iPhone had found my Mac, but the firewall was preventing it from connecting.</p>
<p>I don&rsquo;t understand <em>why</em> this happens, because I verified in the &ldquo;Security &#038; Privacy&rdquo; preferences pane that httpd (the Apache Web server, which OmniFocus uses when set to sync via Bonjour) was set to &ldquo;Allow incoming connections.&rdquo; The problem only occurs when Lion&rsquo;s auto-restore feature has automatically relaunched OmniFocus (e.g. after a kernel panic). In that situation, the firewall will continue to block connections for <em>days</em>.</p>
<p>I&rsquo;m not sure whether this is due to a bug in the OS or whether OmniFocus should be doing something differently on auto-restore. However, there is a workaround: if I manually quit and relaunch OmniFocus on the Mac, the firewall suddenly opens up and allows the iPhone to connect.</p>
<p>The other thing I&rsquo;ve learned from these panics is that two of my favorite applications, <a href="http://netnewswireapp.com">NetNewsWire</a> and <a href="http://hibariapp.com">Hibari</a>, save certain state only when they quit cleanly. After the panic, old news items appear as unread, and the Twitter timeline is scrolled to the wrong place.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/02/kernel-panics-and-omnifocus-syncing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple Rejecting Applications Which Use Dropbox</title>
		<link>http://mjtsai.com/blog/2012/05/01/apple-rejecting-applications-which-use-dropbox/</link>
		<comments>http://mjtsai.com/blog/2012/05/01/apple-rejecting-applications-which-use-dropbox/#comments</comments>
		<pubDate>Tue, 01 May 2012 23:48:31 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4766</guid>
		<description><![CDATA[Goran Daemon P (via Justin Williams): Reason for rejection is the fact that if the user does not have Dropbox application installed then the linking authorization is done through Safari (as per latest SDK). Once the user is in Safari it is possible for the user to click &#8220;Desktop version&#8221; and navigate to a place [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://forums.dropbox.com/topic.php?id=59350&#038;replies=15">Goran Daemon P</a> (via <a href="https://twitter.com/#!/justin/status/197457810538250240">Justin Williams</a>):</p>
<blockquote cite="http://forums.dropbox.com/topic.php?id=59350&#038;replies=15">
<p>Reason for rejection is the fact that if the user does not have Dropbox application installed then the linking authorization is done through Safari (as per latest SDK).</p>
<p>Once the user is in Safari it is possible for the user to click &ldquo;Desktop version&rdquo; and navigate to a place on Dropbox site where it is possible to purchase additional space.</p>
<p>Apple views this as &ldquo;sending user to an additional purchase&rdquo; which is against rules.</p>
</blockquote>
<p>I&rsquo;m surprised it took <a href="http://mjtsai.com/blog/2011/02/21/readability-ios-app-rejected/">this long</a> for Apple to enforce its own insane rule.</p>
<p>Update (2012-05-02): <a href="http://www.theverge.com/2012/5/2/2993027/dropbox-confirms-apple-rejecting-apps-use-sdk">Bryan Bishop</a>:</p>
<blockquote cite="http://www.theverge.com/2012/5/2/2993027/dropbox-confirms-apple-rejecting-apps-use-sdk"><p>Dropbox initially tried removing a link to the desktop version of the site as a possible workaround, but the review team continued to reject apps. Earlier this evening, the company posted a <a href="https://www.dropbox.com/s/36domfjo6pz1ulf/dropbox-ios-sdk-1.2.2-b2.tar.gz">version of its SDK</a> that removed the ability to create a new account altogether. While Dropbox believes this should resolve the issue, it&rsquo;s hardly a convenient solution for iOS users looking to add functionality, and should only further stoke the flames of controversy over some of Apple&rsquo;s review guidelines.</p></blockquote>
<p>Update (2012-05-13): Dropbox complied with Apple&rsquo;s guidelines by <a href="http://forums.dropbox.com/topic.php?id=59350&#038;page=4&#038;replies=125#post-431784">removing the option to create an account</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/05/01/apple-rejecting-applications-which-use-dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Navigating a Tightrope With Amazon</title>
		<link>http://mjtsai.com/blog/2012/04/30/navigating-a-tightrope-with-amazon/</link>
		<comments>http://mjtsai.com/blog/2012/04/30/navigating-a-tightrope-with-amazon/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 23:13:16 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4761</guid>
		<description><![CDATA[David Carr (via MacNN): But the plan hit a pothole after Apple, which had been looking to get into shorter works in a digital format, decided to include e-books in a promotion that it does with Starbucks. It selected Mr. Bissinger&#8217;s digital sequel as a Pick of the Week, giving customers a code they could [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nytimes.com/2012/04/30/business/media/byliner-takes-buzz-bissingers-e-book-off-amazon.html?_r=2&#038;pagewanted=print">David Carr</a> (via <a href="http://www.electronista.com/articles/12/04/30/bissinger.hurt.by.apple.amazon.no.lower.price.war/">MacNN</a>):</p>
<blockquote cite="http://www.nytimes.com/2012/04/30/business/media/byliner-takes-buzz-bissingers-e-book-off-amazon.html?_r=2&#038;pagewanted=print"><p>But the plan hit a pothole after Apple, which had been looking to get into shorter works in a digital format, decided to include e-books in a promotion that it does with Starbucks. It selected Mr. Bissinger&rsquo;s digital sequel as a Pick of the Week, giving customers a code they could redeem online for the book. (Mr. Bissinger said he still received a royalty of $1.50 for each copy sold.)</p>
<p>Amazon interpreted the promotion as a price drop and lowered its price for &ldquo;After Friday Night Lights&rdquo; to exactly zero. Byliner withdrew the book from Amazon&rsquo;s shelves, saying it did so to &ldquo;protect our authors&rsquo; interest.&rdquo;</p></blockquote>
<p>The automatic price drop was because Amazon requires that publishers let them sell e-books for the lowest available price.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/30/navigating-a-tightrope-with-amazon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sort -h</title>
		<link>http://mjtsai.com/blog/2012/04/30/sort-h/</link>
		<comments>http://mjtsai.com/blog/2012/04/30/sort-h/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 21:45:55 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4758</guid>
		<description><![CDATA[Aristotle Pagaltzis: I recently discovered the -h switch of GNU sort, added in the coreutils 7.5 release from Aug 20, 2009. With this switch, sort will do a numeric sort of human-readable size numbers, i.e. it will accept &#8220;42M&#8221; and &#8220;1.3G&#8221; as numbers and put them in the right order. Alas, Mac OS X ships [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://plasmasturm.org/log/binduh/">Aristotle Pagaltzis</a>:</p>
<blockquote cite="http://plasmasturm.org/log/binduh/"><p>I recently discovered the <code>-h</code> switch of <abbr title="GNU&rsquo;s Not Unix">GNU</abbr> <tt>sort</tt>, added in the coreutils 7.5 release from Aug 20, 2009. With this switch, <code>sort</code> will do a numeric sort of human-readable size numbers, <abbr title="that is,">i.e.</abbr> it will accept &ldquo;42M&rdquo; and &ldquo;1.3G&rdquo; as numbers and put them in the right order.</p></blockquote>
<p>Alas, Mac OS X ships with the 5.93 version of <tt>sort</tt> from 2005.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/30/sort-h/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter&#8217;s URL Changes</title>
		<link>http://mjtsai.com/blog/2012/04/30/twitters-url-changes/</link>
		<comments>http://mjtsai.com/blog/2012/04/30/twitters-url-changes/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 21:40:53 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4755</guid>
		<description><![CDATA[Dave Winer: Now they display my stories with the full URLs, even though they still route through my URL shortener, so I get the click counts. But I can see them changing that again, and replacing my URL-shortener with theirs. They now use theirs and mine. So there are three URLs in the mix: 1. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://scripting.com/stories/2012/04/30/twittersChangeIsUnfortunat.html">Dave Winer</a>:</p>
<blockquote cite="http://scripting.com/stories/2012/04/30/twittersChangeIsUnfortunat.html"><p>Now they <a href="http://scripting.com/images/2012/04/30/howTwitterShowsMyTweets.gif">display my stories</a> with the full URLs, even though they still route through my URL shortener, so I get the <a href="http://static.scripting.com/myReallySimple/topLinks.html">click counts</a>. But I can see them changing that again, and replacing my URL-shortener with theirs. They now use theirs and mine. So there are three URLs in the mix: 1. The original URL. 2. My shortened URL. 3. Their shortened URL. What a contortion of TBL&rsquo;s invention. And I&rsquo;m sure there are more twists and turns coming.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/30/twitters-url-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Make Xcode&#8217;s UI Work for You</title>
		<link>http://mjtsai.com/blog/2012/04/30/how-to-make-xcodes-ui-work-for-you/</link>
		<comments>http://mjtsai.com/blog/2012/04/30/how-to-make-xcodes-ui-work-for-you/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 21:29:36 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4748</guid>
		<description><![CDATA[Brian Webster: Now, with most applications that support a tabbed interface, each tab is typically used to hold a single document, so that you can switch easily between them. I tried this with Xcode 4, but quickly found that the set of files I&#8217;m working with at any given time is usually too large for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://brian-webster.tumblr.com/post/22060296528/how-to-make-xcode-4s-ui-work-for-you-maybe">Brian Webster</a>:</p>
<blockquote cite="http://brian-webster.tumblr.com/post/22060296528/how-to-make-xcode-4s-ui-work-for-you-maybe"><p>Now, with most applications that support a tabbed interface, each tab is typically used to hold a single document, so that you can switch easily between them. I tried this with Xcode 4, but quickly found that the set of files I&#8217;m working with at any given time is usually too large for tabs to really be an effective way of managing them. The number of tabs would quickly grow to where I couldn&#8217;t find anything, and didn&#8217;t end up saving me any time. The key realization I had was that, rather than having one tab per <em>file</em>, I should instead have one tab for each <em>type of task</em>, such as editing, building, debugging, and so forth.</p></blockquote>
<p>I liked certain aspects of Xcode 3&rsquo;s user interface better, and there are some surprising omissions, but overall I don&rsquo;t have a problem with the changes in Xcode 4. In many ways, it&rsquo;s an improvement. Rather, the problem with Xcode 4 is that it&rsquo;s been shipping as a non-beta version for over a year now, and yet it still has the reliability of beta software. Aside from later versions of Xcode 3, Xcode was pretty much always more crashy and error-prone than Apple&rsquo;s non-developer apps. So was Project Builder. (The older ProjectBuilder, sans space, seemed solid to me, and it had some nice features that <em>still</em> haven&rsquo;t made it into Xcode.) And on the classic Mac OS, Metrowerks CodeWarrior suffered from similar problems at times. (As I recall, THINK C was stable, but I didn&rsquo;t do much Mac development in those days.)</p>
<p>Developers are people, too. If the quality isn&rsquo;t good enough for iTunes or Safari, it shouldn&rsquo;t be acceptable for the tools used to developer those applications. Or, for that matter, the third-party applications that we rely on.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/30/how-to-make-xcodes-ui-work-for-you/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Great NBA Playoffs RSS Feed</title>
		<link>http://mjtsai.com/blog/2012/04/30/great-nba-playoffs-rss-feed/</link>
		<comments>http://mjtsai.com/blog/2012/04/30/great-nba-playoffs-rss-feed/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 21:07:38 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4745</guid>
		<description><![CDATA[Andrew Hanelly (on Dave Winer&#8217;s site): I think you just sparked the idea for a hell of a service that could be applied to any topic, especially event-based ones where you don&#8217;t want stale content from search engines, and too-thin, real-time content from Twitter. A curated feed that grabs essentials from all sources&#8212;sort of like [...]]]></description>
			<content:encoded><![CDATA[<a href="http://threads.scripting.com/42912ByDw/greatNbaPlayoffsRssFeed#comment-513864624">Andrew Hanelly</a> (on <a href="http://threads.scripting.com/42912ByDw/greatNbaPlayoffsRssFeed">Dave Winer&rsquo;s site</a>):
<blockquote cite="http://threads.scripting.com/42912ByDw/greatNbaPlayoffsRssFeed"><p>I think you just sparked the idea for a hell of a service that could be applied to any topic, especially event-based ones where you don&rsquo;t want stale content from search engines, and too-thin, real-time content from Twitter. A curated feed that grabs essentials from all sources&mdash;sort of like a concierge for a timely topic.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/30/great-nba-playoffs-rss-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UTF-8 Everywhere</title>
		<link>http://mjtsai.com/blog/2012/04/30/utf-8-everywhere/</link>
		<comments>http://mjtsai.com/blog/2012/04/30/utf-8-everywhere/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 21:04:17 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4742</guid>
		<description><![CDATA[Pavel Radzivilovsky, Yakov Galka, and Slava Novgorodov (via Hacker News): UTF-16 is the worst of both worlds&#8212;variable length and too wide. It exists for historical reasons, adds a lot of confusion and will hopefully die out. Portability, cross-platform interoperability and simplicity are more important than interoperability with existing platform APIs. So, the best approach is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.utf8everywhere.org">Pavel Radzivilovsky, Yakov Galka, and Slava Novgorodov</a> (via <a href="http://news.ycombinator.com/item?id=3906253">Hacker News</a>):</p>
<blockquote cite="http://www.utf8everywhere.org"><p>UTF-16 is the worst of both worlds&mdash;variable length and too wide. It exists for historical reasons, adds a lot of confusion and will hopefully die out.</p>
<p>Portability, cross-platform interoperability and simplicity are more important than interoperability with existing platform APIs. So, the best approach is to use UTF-8 narrow strings everywhere and convert them back and forth on Windows before calling APIs that accept strings.</p></blockquote>
<p>If you&rsquo;re a Cocoa programmer, be sure you&rsquo;re familiar with <code>-[NSString rangeOfComposedCharacterSequenceAtIndex:]</code>.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/30/utf-8-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Functional Programming in C++</title>
		<link>http://mjtsai.com/blog/2012/04/27/functional-programming-in-c/</link>
		<comments>http://mjtsai.com/blog/2012/04/27/functional-programming-in-c/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 19:54:06 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4735</guid>
		<description><![CDATA[John Carmack: No matter what language you work in, programming in a functional style provides benefits. You should do it whenever it is convenient, and you should think hard about the decision when it isn&#8217;t convenient. I love this tweet from Michael Feathers (author of the excellent Working Effectively with Legacy Code): OO makes code [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/">John Carmack</a>:</p>
<blockquote cite="http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/"><p>No matter what language you work in, programming in a functional style provides benefits. You should do it whenever it is convenient, and you should think hard about the decision when it isn&rsquo;t convenient.</p></blockquote>
<p>I love this <a href="https://twitter.com/#!/mfeathers/statuses/29581296216">tweet</a> from Michael Feathers (author of the excellent <a href="http://www.amazon.com/dp/0131177052/?tag=michaeltsai-20">Working Effectively with Legacy Code</a>):</p>
<blockquote cite="https://twitter.com/#!/mfeathers/statuses/29581296216"><p>OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/27/functional-programming-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud Terms of Service</title>
		<link>http://mjtsai.com/blog/2012/04/26/cloud-terms-of-service/</link>
		<comments>http://mjtsai.com/blog/2012/04/26/cloud-terms-of-service/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 19:46:04 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4732</guid>
		<description><![CDATA[Nilay Patel: In the end, though, the actual wording of these documents doesn&#8217;t reveal much&#8212;they all set out to do the same thing, and they all accomplish their goals. What&#8217;s most important is how much trust you&#8217;re willing to give companies like Google, Microsoft, Apple, and Dropbox as more and more of your data moves [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.theverge.com/2012/4/25/2973849/google-drive-terms-privacy-data-skydrive-dropbox-icloud">Nilay Patel</a>:</p>
<blockquote cite="http://www.theverge.com/2012/4/25/2973849/google-drive-terms-privacy-data-skydrive-dropbox-icloud"><p>In the end, though, the actual wording of these documents doesn&rsquo;t reveal much&mdash;they all set out to do the same thing, and they all accomplish their goals. What&rsquo;s most important is how much trust you&rsquo;re willing to give companies like Google, Microsoft, Apple, and Dropbox as more and more of your data moves to the cloud. Contracts are meaningful and important, but even the most noble promises can easily be broken. It&rsquo;s actions and history that have consequences, and companies that deal with user data on the Web need to start building a history of squeaky-clean behavior before any of us can feel totally comfortable living in the cloud.
</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/26/cloud-terms-of-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Are 30&#8243; LCD Monitors Still So Expensive?</title>
		<link>http://mjtsai.com/blog/2012/04/24/why-are-30-lcd-monitors-still-so-expensive/</link>
		<comments>http://mjtsai.com/blog/2012/04/24/why-are-30-lcd-monitors-still-so-expensive/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 21:48:38 +0000</pubDate>
		<dc:creator>Michael Tsai</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mjtsai.com/blog/?p=4727</guid>
		<description><![CDATA[Philip Greenspun: Five and a half years ago, I wrote a posting marveling that the Dell 30&#8243; LCD monitor was selling for $1279. My HP-brand 30&#8243; monitor seems to be flaking out, so I was considering replacing it with another Dell (my six year-old Dell monitor is still going strong). What&#8217;s the latest price from [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.law.harvard.edu/philg/2012/04/23/why-are-30-lcd-monitors-still-so-expensive/">Philip Greenspun</a>:</p>
<blockquote cite="http://blogs.law.harvard.edu/philg/2012/04/23/why-are-30-lcd-monitors-still-so-expensive/"><p>Five and a half years ago, I wrote <a href="http://blogs.law.harvard.edu/philg/2006/10/20/dell-30-monitor-down-to-1279-the-perfect-swim-goggles/">a posting </a>marveling that the Dell 30&#8243; LCD monitor was selling for $1279. My HP-brand 30&#8243; monitor seems to be flaking out, so I was considering replacing it with another Dell (my six year-old Dell monitor is still going strong). What&#8217;s the latest price from Dell? <a href="http://accessories.us.dell.com/sna/productdetail.aspx?c=us&amp;l=en&amp;s=dhs&amp;cs=19&amp;sku=224-9949&amp;~ck=baynoteSearch&amp;baynote_bnrank=3&amp;baynote_irrank=0">$1299</a>! With LCD TV prices on a constant downward trend, how is it possible that the 30&#8243; computer monitor remains stuck at over $1000? It is just that nobody wants this size?&nbsp;<a href="http://Newegg.com">Newegg.com</a> sells 27&#8243; name-brand monitors (e.g., Samsung) for $300, but it would be hard to give up the extra size and resolution to which I have become accustomed.</p></blockquote>
<p>Granted the current models are much better IPS displays, but I still find this surprising. I&rsquo;m using a 5-year-old Dell display that also seems to be flaking out. I keep thinking some new product or price change will signal that it&rsquo;s time to replace it, but that hasn&rsquo;t happened yet. You&rsquo;d think that, with Xcode 4 and Aperture, Apple would have some interest in producing displays larger than 27 inches. Now I think we may see a TV first.</p>]]></content:encoded>
			<wfw:commentRss>http://mjtsai.com/blog/2012/04/24/why-are-30-lcd-monitors-still-so-expensive/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.711 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-16 18:10:58 -->

