<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for Michael Tsai</title>
	<atom:link href="http://mjtsai.com/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjtsai.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 22 May 2013 22:16:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on OmniPresence 1.0 by Chucky</title>
		<link>http://mjtsai.com/blog/2013/05/22/omnipresence-1-0/comment-page-1/#comment-919998</link>
		<dc:creator>Chucky</dc:creator>
		<pubDate>Wed, 22 May 2013 22:16:11 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7457#comment-919998</guid>
		<description>So, based on past performance, does Cupertino buy it or just copy &amp; steal it?</description>
		<content:encoded><![CDATA[<p>So, based on past performance, does Cupertino buy it or just copy &amp; steal it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to Know When Apple Finally Gets iCloud Right by Michael Tsai - Blog - OmniPresence 1.0</title>
		<link>http://mjtsai.com/blog/2013/05/20/when-apple-gets-icloud-right/comment-page-1/#comment-919976</link>
		<dc:creator>Michael Tsai - Blog - OmniPresence 1.0</dc:creator>
		<pubDate>Wed, 22 May 2013 21:49:40 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7442#comment-919976</guid>
		<description>[...] There&#8217;s folder syncing via the Finder with the status in the menubar (like Dropbox), an API for developers (better than Dropbox&#8217;s), support for multiple users (unlike iCloud), and the files can be stored on Mac OS X Server or a host that supports WebDAV. Since it&#8217;s open-source and the files are directly accessible on the server, it should be much more debuggable than iCloud. [...]</description>
		<content:encoded><![CDATA[<p>[...] There&rsquo;s folder syncing via the Finder with the status in the menubar (like Dropbox), an API for developers (better than Dropbox&rsquo;s), support for multiple users (unlike iCloud), and the files can be stored on Mac OS X Server or a host that supports WebDAV. Since it&rsquo;s open-source and the files are directly accessible on the server, it should be much more debuggable than iCloud. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New Flickr by Flickr price regression. &#124; Gordon&#039;s shares</title>
		<link>http://mjtsai.com/blog/2013/05/21/new-flickr/comment-page-1/#comment-918415</link>
		<dc:creator>Flickr price regression. &#124; Gordon&#039;s shares</dc:creator>
		<pubDate>Tue, 21 May 2013 18:19:31 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7448#comment-918415</guid>
		<description>[...] Link. &quot;$22/year for unlimited uploads and no ads. Now that the free account includes 1 TB of storage, removing the ads for $50/year doesn’t seem like a good deal.&quot;   This entry was posted in share and tagged pinboard by jgordon. Bookmark the permalink.          Proudly powered by WordPress [...]</description>
		<content:encoded><![CDATA[<p>[...] Link. &quot;$22/year for unlimited uploads and no ads. Now that the free account includes 1 TB of storage, removing the ads for $50/year doesn’t seem like a good deal.&quot;   This entry was posted in share and tagged pinboard by jgordon. Bookmark the permalink.          Proudly powered by WordPress [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to Know When Apple Finally Gets iCloud Right by Michael Tsai</title>
		<link>http://mjtsai.com/blog/2013/05/20/when-apple-gets-icloud-right/comment-page-1/#comment-917194</link>
		<dc:creator>Michael Tsai</dc:creator>
		<pubDate>Mon, 20 May 2013 21:41:48 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7442#comment-917194</guid>
		<description>@Chucky The flaw I see with #3 is that doc syncing isn’t really appropriate for most of Apple’s apps. And they may actually be using it with iWork now, but what does that prove?</description>
		<content:encoded><![CDATA[<p>@Chucky The flaw I see with #3 is that doc syncing isn’t really appropriate for most of Apple’s apps. And they may actually be using it with iWork now, but what does that prove?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to Know When Apple Finally Gets iCloud Right by Chucky</title>
		<link>http://mjtsai.com/blog/2013/05/20/when-apple-gets-icloud-right/comment-page-1/#comment-917186</link>
		<dc:creator>Chucky</dc:creator>
		<pubDate>Mon, 20 May 2013 21:35:44 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7442#comment-917186</guid>
		<description>Seems to me like answer #3 is the &lt;b&gt;real&lt;/b&gt; weathervane to know which way the wind blows...</description>
		<content:encoded><![CDATA[<p>Seems to me like answer #3 is the <b>real</b> weathervane to know which way the wind blows...</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on E-Book Price-Fixing Lawsuit by stephane</title>
		<link>http://mjtsai.com/blog/2013/05/15/e-book-price-fixing-lawsuit/comment-page-1/#comment-911302</link>
		<dc:creator>stephane</dc:creator>
		<pubDate>Thu, 16 May 2013 08:22:04 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7440#comment-911302</guid>
		<description>Antitrust case anytime soon?</description>
		<content:encoded><![CDATA[<p>Antitrust case anytime soon?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xcode Damages Nested Executables During Mac App Store Submission by Peter Maurer</title>
		<link>http://mjtsai.com/blog/2013/05/15/xcode-damages-nested-executables-during-mac-app-store-submission/comment-page-1/#comment-911174</link>
		<dc:creator>Peter Maurer</dc:creator>
		<pubDate>Thu, 16 May 2013 06:10:36 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7432#comment-911174</guid>
		<description>@Michael: Thanks for the link!

@Karsten: Oh, that&#039;s clever. I&#039;ve added your strategy to my workarounds stash. Peter Kamb pointed out yet another way to deal with the problem last night, by the way:

https://twitter.com/pkamb/status/334723713620656129

If you combine the info from all known workarounds, it&#039;s pretty obvious what/where the issue is. Now all we can do is vote for the bug to get fixed. You know, ROUYWF. (Radar or use your workaround forever.)</description>
		<content:encoded><![CDATA[<p>@Michael: Thanks for the link!</p>
<p>@Karsten: Oh, that's clever. I've added your strategy to my workarounds stash. Peter Kamb pointed out yet another way to deal with the problem last night, by the way:</p>
<p><a href="https://twitter.com/pkamb/status/334723713620656129" rel="nofollow">https://twitter.com/pkamb/status/334723713620656129</a></p>
<p>If you combine the info from all known workarounds, it's pretty obvious what/where the issue is. Now all we can do is vote for the bug to get fixed. You know, ROUYWF. (Radar or use your workaround forever.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Ted&#8217;s iPad Setup by Ted’s iPad Setup. &#124; Gordon&#039;s shares</title>
		<link>http://mjtsai.com/blog/2013/05/15/teds-ipad-setup/comment-page-1/#comment-910853</link>
		<dc:creator>Ted’s iPad Setup. &#124; Gordon&#039;s shares</dc:creator>
		<pubDate>Thu, 16 May 2013 00:19:26 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7434#comment-910853</guid>
		<description>[...] Link. &quot;app evaluation process is severely broken.&quot; Sigh.   This entry was posted in share and tagged pinboard by jgordon. Bookmark the permalink.          Proudly powered by WordPress [...]</description>
		<content:encoded><![CDATA[<p>[...] Link. &quot;app evaluation process is severely broken.&quot; Sigh.   This entry was posted in share and tagged pinboard by jgordon. Bookmark the permalink.          Proudly powered by WordPress [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Xcode Damages Nested Executables During Mac App Store Submission by Karsten</title>
		<link>http://mjtsai.com/blog/2013/05/15/xcode-damages-nested-executables-during-mac-app-store-submission/comment-page-1/#comment-910564</link>
		<dc:creator>Karsten</dc:creator>
		<pubDate>Wed, 15 May 2013 19:47:25 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7432#comment-910564</guid>
		<description>I had the same problem with Growl&#039;s XPC. Here&#039;s the solution that worked for me: https://gist.github.com/karstenBriksoft/5308470</description>
		<content:encoded><![CDATA[<p>I had the same problem with Growl's XPC. Here's the solution that worked for me: <a href="https://gist.github.com/karstenBriksoft/5308470" rel="nofollow">https://gist.github.com/karstenBriksoft/5308470</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Windows Kernel Performance by Windows Kernel Performance Relative to Other Operating Systems — MIPRO Unfiltered</title>
		<link>http://mjtsai.com/blog/2013/05/11/windows-kernel-performance/comment-page-1/#comment-908857</link>
		<dc:creator>Windows Kernel Performance Relative to Other Operating Systems — MIPRO Unfiltered</dc:creator>
		<pubDate>Tue, 14 May 2013 13:12:11 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7407#comment-908857</guid>
		<description>[...] mjtsai) Related Posts:Windows Phone Was a Response to Apple&#8217;s iPhoneCrowd-Sourcing Public Sector App [...]</description>
		<content:encoded><![CDATA[<p>[...] mjtsai) Related Posts:Windows Phone Was a Response to Apple&#8217;s iPhoneCrowd-Sourcing Public Sector App [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Video Decode Acceleration Framework by Mac OS X 10.6.3 consente di accelerare Flash via hardware - macitynet.it</title>
		<link>http://mjtsai.com/blog/2010/04/22/video-decode-acceleration-framework/comment-page-1/#comment-908176</link>
		<dc:creator>Mac OS X 10.6.3 consente di accelerare Flash via hardware - macitynet.it</dc:creator>
		<pubDate>Tue, 14 May 2013 00:47:06 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=2392#comment-908176</guid>
		<description>[...] il recente aggiornamento a Mac OS X 10.6.3, Apple ha per la prima volta integrato un framework per la codifica video che consente di accelerare la riproduzione di filmati Flash. Le API sono [...]</description>
		<content:encoded><![CDATA[<p>[...] il recente aggiornamento a Mac OS X 10.6.3, Apple ha per la prima volta integrato un framework per la codifica video che consente di accelerare la riproduzione di filmati Flash. Le API sono [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Windows Kernel Performance by Marcel</title>
		<link>http://mjtsai.com/blog/2013/05/11/windows-kernel-performance/comment-page-1/#comment-905418</link>
		<dc:creator>Marcel</dc:creator>
		<pubDate>Sat, 11 May 2013 21:29:31 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7407#comment-905418</guid>
		<description>Apple has a dedicated performance group...and although it&#039;s often an uphill battle, it does work.</description>
		<content:encoded><![CDATA[<p>Apple has a dedicated performance group...and although it's often an uphill battle, it does work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on More In-Store iProduct Repairs by Martin</title>
		<link>http://mjtsai.com/blog/2013/05/11/more-in-store-iproduct-repairs/comment-page-1/#comment-905314</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Sat, 11 May 2013 19:45:11 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7413#comment-905314</guid>
		<description>It is not only nice if you do not live near an Apple Store. Getting an immediate replacement is part of the premium I pay for my Apple experience. For Macs, a few days repair time is normal so that you need a backup Mac if you depend on your computer. I do not want to get a backup iPhone and iPad as well …</description>
		<content:encoded><![CDATA[<p>It is not only nice if you do not live near an Apple Store. Getting an immediate replacement is part of the premium I pay for my Apple experience. For Macs, a few days repair time is normal so that you need a backup Mac if you depend on your computer. I do not want to get a backup iPhone and iPad as well …</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Stuck iPhone Power Button by Michael Tsai - Blog - More In-Store iProduct Repairs</title>
		<link>http://mjtsai.com/blog/2013/04/11/stuck-iphone-power-button/comment-page-1/#comment-905233</link>
		<dc:creator>Michael Tsai - Blog - More In-Store iProduct Repairs</dc:creator>
		<pubDate>Sat, 11 May 2013 18:12:35 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7265#comment-905233</guid>
		<description>[...] of us who don&#8217;t live near an Apple Store, but perhaps actual repairs will make addressing common hardware problems more [...]</description>
		<content:encoded><![CDATA[<p>[...] of us who don&rsquo;t live near an Apple Store, but perhaps actual repairs will make addressing common hardware problems more [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apple and Photos by has</title>
		<link>http://mjtsai.com/blog/2013/05/08/apple-and-photos/comment-page-1/#comment-903497</link>
		<dc:creator>has</dc:creator>
		<pubDate>Fri, 10 May 2013 09:56:46 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7393#comment-903497</guid>
		<description>Yes, you&#039;re crazy. Canonical data stores *are* the problem, not the solution. 

Where Apple is repeatedly going wrong is in thinking it can solve the traditional data silo problem by slapping on just another band-aid. That quick-n-dirty lash-up approach worked well for them over the years when it was just as case of replacing one local desktop platform (classic Mac OS) with another local desktop platform (OS X), so naturally their instinct is to use the same successful technique again.

But now they are trying to replace a local desktop platform with a highly distributed computing platform, which is not something that can be achieved simply by evolving the existing local computing idioms to make them magically distributed. It requires a complete ground-up rethink of how personal computing works. Which is not the single-sentence happy message that directors and shareholders want to hear, and so they continue pushing their old strategy into Peter Principle territory and beyond.

In addition to wanting a fast, cheap, simple [fantasy] solution to what is an unavoidably long, expensive, difficult and very real problem, Apple have a further COI polluting all their decisions. As a shamelessly commercial venture, Apple want to monetize every part of the user experience, which means they want to proprietize and control every part of the system. While that philosophy may work well for some things (by which I mean &quot;puts lots of $$$ in vendor&#039;s pockets while keeping customers acceptably satisfied&quot;), I think it is doomed to fail for any system on this scale. 

Consider the Internet itself, which only succeeded once proprietary system vendors decided to set aside their own narrow controlling interests in order to achieve a broad common goal from which they would all subsequently reap some benefit (Game Theory 101). But Apple still want to control all their users&#039; data, which means &quot;their cloud, their way&quot;, rather than designing an open, flexible, forgiving system that provides everybody with the same freedoms. Look at the WWW, which has seen its original egalitarian principles (everyone can directly publish, everyone can directly share) eroded by commercial interests (only a small elite can directly publish, everyone else must either use their tollroads or just blindly consumer).

For cloud-based personal computing ever to work right, it has to be designed to be flexible and imperfect, trustworthy in its tolerance for faults, and respect the teeny tiny fact that user data should belong to the user, and it should be for them to define the rules by which it should be stored and shared. 

A crude comparison would be to non-distributed vs distributed source control systems (e.g. Subversion/CVS vs Git/Mercurial). The former try to maintain absolute central control because that is &#039;simple&#039; and &#039;foolproof&#039;, but all that happens is that users rebel: the system fails to meet their needs (e.g. see the horrors of resource locks and &quot;Merge Day&quot;), so they end up creating myriad ways to work around it, all bad. DVCSes share ownership and control across all users, and provide mechanisms for synchronizing differences and resolving disputes. Yes, it&#039;s an imperfect mechanism, but that&#039;s because it&#039;s designed to be. And, yes, martinets and OCD types will loathe it, but if you let those sorts run your lives then you deserve every ounce of misery they pour on you.

Obviously, there&#039;s still a considerable difference between how DVCS operates and what a full cloud system would need to do, like the difference between the world&#039;s first wheelbarrow and a modern Mack truck. But I think if you&#039;re going to look for inspiration then that is the place to start; whereas the old godlike mainframe data silo surrounded by myriad dumb terminals absolutely is not (and would be a disaster ready to happen).

Like I say, stuff is hard. And some things you can&#039;t pretend it&#039;s not.</description>
		<content:encoded><![CDATA[<p>Yes, you're crazy. Canonical data stores *are* the problem, not the solution. </p>
<p>Where Apple is repeatedly going wrong is in thinking it can solve the traditional data silo problem by slapping on just another band-aid. That quick-n-dirty lash-up approach worked well for them over the years when it was just as case of replacing one local desktop platform (classic Mac OS) with another local desktop platform (OS X), so naturally their instinct is to use the same successful technique again.</p>
<p>But now they are trying to replace a local desktop platform with a highly distributed computing platform, which is not something that can be achieved simply by evolving the existing local computing idioms to make them magically distributed. It requires a complete ground-up rethink of how personal computing works. Which is not the single-sentence happy message that directors and shareholders want to hear, and so they continue pushing their old strategy into Peter Principle territory and beyond.</p>
<p>In addition to wanting a fast, cheap, simple [fantasy] solution to what is an unavoidably long, expensive, difficult and very real problem, Apple have a further COI polluting all their decisions. As a shamelessly commercial venture, Apple want to monetize every part of the user experience, which means they want to proprietize and control every part of the system. While that philosophy may work well for some things (by which I mean "puts lots of $$$ in vendor's pockets while keeping customers acceptably satisfied"), I think it is doomed to fail for any system on this scale. </p>
<p>Consider the Internet itself, which only succeeded once proprietary system vendors decided to set aside their own narrow controlling interests in order to achieve a broad common goal from which they would all subsequently reap some benefit (Game Theory 101). But Apple still want to control all their users' data, which means "their cloud, their way", rather than designing an open, flexible, forgiving system that provides everybody with the same freedoms. Look at the WWW, which has seen its original egalitarian principles (everyone can directly publish, everyone can directly share) eroded by commercial interests (only a small elite can directly publish, everyone else must either use their tollroads or just blindly consumer).</p>
<p>For cloud-based personal computing ever to work right, it has to be designed to be flexible and imperfect, trustworthy in its tolerance for faults, and respect the teeny tiny fact that user data should belong to the user, and it should be for them to define the rules by which it should be stored and shared. </p>
<p>A crude comparison would be to non-distributed vs distributed source control systems (e.g. Subversion/CVS vs Git/Mercurial). The former try to maintain absolute central control because that is 'simple' and 'foolproof', but all that happens is that users rebel: the system fails to meet their needs (e.g. see the horrors of resource locks and "Merge Day"), so they end up creating myriad ways to work around it, all bad. DVCSes share ownership and control across all users, and provide mechanisms for synchronizing differences and resolving disputes. Yes, it's an imperfect mechanism, but that's because it's designed to be. And, yes, martinets and OCD types will loathe it, but if you let those sorts run your lives then you deserve every ounce of misery they pour on you.</p>
<p>Obviously, there's still a considerable difference between how DVCS operates and what a full cloud system would need to do, like the difference between the world's first wheelbarrow and a modern Mack truck. But I think if you're going to look for inspiration then that is the place to start; whereas the old godlike mainframe data silo surrounded by myriad dumb terminals absolutely is not (and would be a disaster ready to happen).</p>
<p>Like I say, stuff is hard. And some things you can't pretend it's not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apple and Photos by Chucky</title>
		<link>http://mjtsai.com/blog/2013/05/08/apple-and-photos/comment-page-1/#comment-902222</link>
		<dc:creator>Chucky</dc:creator>
		<pubDate>Thu, 09 May 2013 11:54:15 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7393#comment-902222</guid>
		<description>Am I crazy to think the &lt;b&gt;entire&lt;/b&gt; iCloudy with Meatballs thang is, and always will be, fundamentally flawed until they change it to be a &#039;canonical store in the cloud&#039; model?</description>
		<content:encoded><![CDATA[<p>Am I crazy to think the <b>entire</b> iCloudy with Meatballs thang is, and always will be, fundamentally flawed until they change it to be a 'canonical store in the cloud' model?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Check the Weather 1.1 by Michael Tsai - Blog - Yahoo Weather 1.0.2</title>
		<link>http://mjtsai.com/blog/2012/10/30/check-the-weather-1-1/comment-page-1/#comment-898822</link>
		<dc:creator>Michael Tsai - Blog - Yahoo Weather 1.0.2</dc:creator>
		<pubDate>Mon, 06 May 2013 14:41:55 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=6469#comment-898822</guid>
		<description>[...] app. It combines photos from Flickr with easy access to hourly and daily forecasts (more days than Check the Weather), plus a narrative forecast with information about precipitation and wind. Unfortunately, [...]</description>
		<content:encoded><![CDATA[<p>[...] app. It combines photos from Flickr with easy access to hourly and daily forecasts (more days than Check the Weather), plus a narrative forecast with information about precipitation and wind. Unfortunately, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Installing Xcode 3 on Mountain Lion by charles</title>
		<link>http://mjtsai.com/blog/2013/05/05/installing-xcode-3-on-mountain-lion/comment-page-1/#comment-898658</link>
		<dc:creator>charles</dc:creator>
		<pubDate>Mon, 06 May 2013 10:33:42 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7375#comment-898658</guid>
		<description>ah, but there is a happy ending.</description>
		<content:encoded><![CDATA[<p>ah, but there is a happy ending.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Auto Layout Shorthand by Michael Tsai</title>
		<link>http://mjtsai.com/blog/2013/04/30/auto-layout-shorthand/comment-page-1/#comment-897373</link>
		<dc:creator>Michael Tsai</dc:creator>
		<pubDate>Sat, 04 May 2013 17:56:32 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7357#comment-897373</guid>
		<description>@has Yes, certainly the current Xcode situation makes DSLs more expensive and unwieldy. Even the extensible editors would have trouble checking that the identifier names match up with the code. Given that, I think Rentzsch’s approach here is sensible.

As I recall, Lisp-style macros with M-expressions were an unsolved problem until the 90s (Dylan). It’s not at all clear to me that the syntax is what put people off Lisp.</description>
		<content:encoded><![CDATA[<p>@has Yes, certainly the current Xcode situation makes DSLs more expensive and unwieldy. Even the extensible editors would have trouble checking that the identifier names match up with the code. Given that, I think Rentzsch’s approach here is sensible.</p>
<p>As I recall, Lisp-style macros with M-expressions were an unsolved problem until the 90s (Dylan). It’s not at all clear to me that the syntax is what put people off Lisp.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Auto Layout Shorthand by has</title>
		<link>http://mjtsai.com/blog/2013/04/30/auto-layout-shorthand/comment-page-1/#comment-896989</link>
		<dc:creator>has</dc:creator>
		<pubDate>Sat, 04 May 2013 07:22:09 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7357#comment-896989</guid>
		<description>@Michael: If your IDE won&#039;t take custom language modules, that&#039;s a reason to improve your IDE[1], not to not improve everything else. Otherwise nothing will _ever_ improve worth a damn. 

As Larry Wall says: &#039;laziness is a virtue&#039;, but that must be qualified as &#039;correctly optimized laziness&#039;. Far too many programmers would rather hammer out a thousand lines of code than stop to learn a new and alien technique that&#039;d enable them to do it in a hundred. They&#039;re not lazy about writing code itself because they enjoy the code-writing activity for its own sake and would happily spend their whole lives doing it. They are often lazy about learning and disrupting the status quo though, because that isn&#039;t something they enjoy so much and distracts them from the coding which does.

As to my comparative example of Cocoa Bindings: it wasn&#039;t ahead when it came out 10 years ago, never mind now. It was _never_ designed with flexibility or scalability in mind, which is why it rapidly becomes hopelessly unwieldy and/or runs out of steam as soon as you start doing non-trivial stuff with it. Once again, it was optimized for the wrong results: ticking a marketing feature box and providing some quick shiny to customers who don&#039;t (yet) realize better. ObjC devs have been paying for this misdirected laziness ever since, and will eventually pay all over again when it finally gets thrown out and replaced with something completely different.

The whole C-derived cowboy hacker culture is like this: invest just enough time to whip together something that works (C language), then spend the next 40 years writing code that works around all its design deficiencies (shitty unhygenic macros; everything unsafe by default) rather than fixing those defects at source ASAP. The programming profession is often described as woefully ahistorical, which is true, but not only are they incredibly lazy about the past, they are also pathologically lazy about the future.

As someone who invests most of their meager brainpower finding ways to improve my base platform and toolchain precisely so as to minimize the amount of code I then have to produce (yuk), such a pervasively bass-ackwards culture is _very_ frustrating. 

(Tho&#039; ultimately I blame the Lispers, who were too lazy to slap a M-expression syntax on Lisp to make it palatable/attractive to the much larger Algol audience. Finest tool construction kit ever devised, totally ignored, unused and its lessons unlearnt - all for want of a cup o&#039; sugar...)


[1] I think my opinions on the tightly coupled clusterfuck that Xcode&#039;s been turning into are already recorded, so won&#039;t rehash here. But there are plenty 3rd-party editors that prove the value of being flexible and extensible.</description>
		<content:encoded><![CDATA[<p>@Michael: If your IDE won't take custom language modules, that's a reason to improve your IDE[1], not to not improve everything else. Otherwise nothing will _ever_ improve worth a damn. </p>
<p>As Larry Wall says: 'laziness is a virtue', but that must be qualified as 'correctly optimized laziness'. Far too many programmers would rather hammer out a thousand lines of code than stop to learn a new and alien technique that'd enable them to do it in a hundred. They're not lazy about writing code itself because they enjoy the code-writing activity for its own sake and would happily spend their whole lives doing it. They are often lazy about learning and disrupting the status quo though, because that isn't something they enjoy so much and distracts them from the coding which does.</p>
<p>As to my comparative example of Cocoa Bindings: it wasn't ahead when it came out 10 years ago, never mind now. It was _never_ designed with flexibility or scalability in mind, which is why it rapidly becomes hopelessly unwieldy and/or runs out of steam as soon as you start doing non-trivial stuff with it. Once again, it was optimized for the wrong results: ticking a marketing feature box and providing some quick shiny to customers who don't (yet) realize better. ObjC devs have been paying for this misdirected laziness ever since, and will eventually pay all over again when it finally gets thrown out and replaced with something completely different.</p>
<p>The whole C-derived cowboy hacker culture is like this: invest just enough time to whip together something that works (C language), then spend the next 40 years writing code that works around all its design deficiencies (shitty unhygenic macros; everything unsafe by default) rather than fixing those defects at source ASAP. The programming profession is often described as woefully ahistorical, which is true, but not only are they incredibly lazy about the past, they are also pathologically lazy about the future.</p>
<p>As someone who invests most of their meager brainpower finding ways to improve my base platform and toolchain precisely so as to minimize the amount of code I then have to produce (yuk), such a pervasively bass-ackwards culture is _very_ frustrating. </p>
<p>(Tho' ultimately I blame the Lispers, who were too lazy to slap a M-expression syntax on Lisp to make it palatable/attractive to the much larger Algol audience. Finest tool construction kit ever devised, totally ignored, unused and its lessons unlearnt - all for want of a cup o' sugar...)</p>
<p>[1] I think my opinions on the tightly coupled clusterfuck that Xcode's been turning into are already recorded, so won't rehash here. But there are plenty 3rd-party editors that prove the value of being flexible and extensible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on momdec: Core Data Model Decompiler by Michael Tsai - Blog - momcom: Experimental Core Data Model Compiler</title>
		<link>http://mjtsai.com/blog/2013/04/17/momdec-core-data-model-decompiler/comment-page-1/#comment-896429</link>
		<dc:creator>Michael Tsai - Blog - momcom: Experimental Core Data Model Compiler</dc:creator>
		<pubDate>Fri, 03 May 2013 20:22:29 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7319#comment-896429</guid>
		<description>[...] Harrington introduces momcom (the counterpart to momdec): After writing momdec I realized I could probably compile models as well as decompile them. So, I [...]</description>
		<content:encoded><![CDATA[<p>[...] Harrington introduces momcom (the counterpart to momdec): After writing momdec I realized I could probably compile models as well as decompile them. So, I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Auto Layout Shorthand by Michael Tsai</title>
		<link>http://mjtsai.com/blog/2013/04/30/auto-layout-shorthand/comment-page-1/#comment-896066</link>
		<dc:creator>Michael Tsai</dc:creator>
		<pubDate>Fri, 03 May 2013 14:32:54 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7357#comment-896066</guid>
		<description>@has In this case, it seems like integrating a DSL with the other tools would be much harder than creating the DSL itself. At least the dictionary approach lets you have autocompletion, IDE renaming, and some compile-time checking.

Cocoa Bindings is almost 10 years old now. Does Apple still think that its framework is ahead here?</description>
		<content:encoded><![CDATA[<p>@has In this case, it seems like integrating a DSL with the other tools would be much harder than creating the DSL itself. At least the dictionary approach lets you have autocompletion, IDE renaming, and some compile-time checking.</p>
<p>Cocoa Bindings is almost 10 years old now. Does Apple still think that its framework is ahead here?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Auto Layout Shorthand by has</title>
		<link>http://mjtsai.com/blog/2013/04/30/auto-layout-shorthand/comment-page-1/#comment-895846</link>
		<dc:creator>has</dc:creator>
		<pubDate>Fri, 03 May 2013 11:10:05 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7357#comment-895846</guid>
		<description>Rentzsch: &quot;a poor man’s DSL&quot;

Ugh. As a language ObjC has its place in Mac app development, but that should be limited to the Model, not the Controller or View. Why can&#039;t vendors like Apple and third-party devs just create some proper DSLs for the job? Or are modern developers so ossified in their &quot;Everything now looks like an OO nail&quot; mindset that they no longer possess such rudimentary tool-making and -using skills? Small task-specific languages are not hard to create, quick to learn, and much shorter and easier to read and write. I&#039;ve written my own Scheme/Bash-like semi-declarative languages, and I&#039;ve not had a CS lesson in my life. Proper talents like Rentzsch should be able to whack out something in a week and polish it to a lovely shine in a year or two.

I think there&#039;s an ongoing problem here regarding a lot of really interesting and potentially highly valuable idioms that mainstream OOP is starting to &#039;discover&#039; in the non-OO spheres. FRP, which ought to blow away Cocoa Bindings and all the other old-school controller junk, is another recent example.[1] (And don&#039;t even get me started on the mess that&#039;s been made by idiots trying to OO-ify the web.) By the time such idioms have been sawed and hammered down to fit the orthodox imperative OO mold, they&#039;ve shed all the conciseness and obfuscated most of the semantics or the original, and slapped reams of tedious boilerplate grunge onto what&#039;s left. Plus, of course, you lose all the other automatic benefits provided by the original declarative/functional platform, such as the ability to reason about behavior, give guarantees about side-effects, optimize repeated operations, etc. 

It&#039;s no surprise that new technologies like MS&#039;s Reactive Extensions invite a backlash from folk who can&#039;t see what they offer over established native idioms other than a crapload of extra learning and some shiny new CV buzzwords. By the time such &#039;OO transformations&#039; are done it is debatable that the remaining benefits significantly outweigh all the added costs. 

[1] e.g. see: http://mjtsai.com/blog/2013/02/16/reactivecocoa-explanation</description>
		<content:encoded><![CDATA[<p>Rentzsch: "a poor man’s DSL"</p>
<p>Ugh. As a language ObjC has its place in Mac app development, but that should be limited to the Model, not the Controller or View. Why can't vendors like Apple and third-party devs just create some proper DSLs for the job? Or are modern developers so ossified in their "Everything now looks like an OO nail" mindset that they no longer possess such rudimentary tool-making and -using skills? Small task-specific languages are not hard to create, quick to learn, and much shorter and easier to read and write. I've written my own Scheme/Bash-like semi-declarative languages, and I've not had a CS lesson in my life. Proper talents like Rentzsch should be able to whack out something in a week and polish it to a lovely shine in a year or two.</p>
<p>I think there's an ongoing problem here regarding a lot of really interesting and potentially highly valuable idioms that mainstream OOP is starting to 'discover' in the non-OO spheres. FRP, which ought to blow away Cocoa Bindings and all the other old-school controller junk, is another recent example.[1] (And don't even get me started on the mess that's been made by idiots trying to OO-ify the web.) By the time such idioms have been sawed and hammered down to fit the orthodox imperative OO mold, they've shed all the conciseness and obfuscated most of the semantics or the original, and slapped reams of tedious boilerplate grunge onto what's left. Plus, of course, you lose all the other automatic benefits provided by the original declarative/functional platform, such as the ability to reason about behavior, give guarantees about side-effects, optimize repeated operations, etc. </p>
<p>It's no surprise that new technologies like MS's Reactive Extensions invite a backlash from folk who can't see what they offer over established native idioms other than a crapload of extra learning and some shiny new CV buzzwords. By the time such 'OO transformations' are done it is debatable that the remaining benefits significantly outweigh all the added costs. </p>
<p>[1] e.g. see: <a href="http://mjtsai.com/blog/2013/02/16/reactivecocoa-explanation" rel="nofollow">http://mjtsai.com/blog/2013/02/16/reactivecocoa-explanation</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Auto Layout Shorthand by Nicholas Riley</title>
		<link>http://mjtsai.com/blog/2013/04/30/auto-layout-shorthand/comment-page-1/#comment-893794</link>
		<dc:creator>Nicholas Riley</dc:creator>
		<pubDate>Thu, 02 May 2013 03:35:45 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7357#comment-893794</guid>
		<description>Also, if there weren&#039;t so many weird connections in my brain between medical and computer acronyms, I wouldn&#039;t remember half the stuff I do. :-)  So ALS it is.</description>
		<content:encoded><![CDATA[<p>Also, if there weren't so many weird connections in my brain between medical and computer acronyms, I wouldn't remember half the stuff I do. :-)  So ALS it is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Auto Layout Shorthand by Nicholas Riley</title>
		<link>http://mjtsai.com/blog/2013/04/30/auto-layout-shorthand/comment-page-1/#comment-893773</link>
		<dc:creator>Nicholas Riley</dc:creator>
		<pubDate>Thu, 02 May 2013 03:21:43 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/?p=7357#comment-893773</guid>
		<description>Not much like the Tk system, really, which pretty much treats the controls as rectangles, and the layouts impose a structure on the controls.  In autolayout, you set up a bunch of constraints about individual controls or relationships between pairs of controls, and the overall layout gets calculated; it&#039;s more of a bottom-up rather than top-down approach.  So, for example, this object should be to the right of this other object, or stretch in this way.  In IB, it suggests a bunch of default constraints so your buttons have the HIG-complaint spacing and so forth, even if they resize to accommodate localized text.

The WWDC videos on Auto Layout are the best introduction I&#039;ve seen, though there are some books and third-party videos now I haven&#039;t looked at.

The only other system I&#039;ve used that was anything like Auto Layout (not to say others don&#039;t exist!) was the Danger hiptop OS resource format.  While there was a really horrible Java GUI editor for it, I usually edited it as text.  Here&#039;s an example of Pester for hiptop:

http://dev.sabi.net/trac/dev/browser/trunk/hiptop/pester/locale/en_US/Pester.rsrc

You can see things like &quot;alignWithParentTop&quot; (the numbers are spacing amounts), &quot;positionToRight&quot; (of another control) or &quot;alignBaseline&quot; (my personal favorite, since so few layout tools have the concept of aligning text baselines of controls) which set up relationships between individual controls.</description>
		<content:encoded><![CDATA[<p>Not much like the Tk system, really, which pretty much treats the controls as rectangles, and the layouts impose a structure on the controls.  In autolayout, you set up a bunch of constraints about individual controls or relationships between pairs of controls, and the overall layout gets calculated; it's more of a bottom-up rather than top-down approach.  So, for example, this object should be to the right of this other object, or stretch in this way.  In IB, it suggests a bunch of default constraints so your buttons have the HIG-complaint spacing and so forth, even if they resize to accommodate localized text.</p>
<p>The WWDC videos on Auto Layout are the best introduction I've seen, though there are some books and third-party videos now I haven't looked at.</p>
<p>The only other system I've used that was anything like Auto Layout (not to say others don't exist!) was the Danger hiptop OS resource format.  While there was a really horrible Java GUI editor for it, I usually edited it as text.  Here's an example of Pester for hiptop:</p>
<p><a href="http://dev.sabi.net/trac/dev/browser/trunk/hiptop/pester/locale/en_US/Pester.rsrc" rel="nofollow">http://dev.sabi.net/trac/dev/browser/trunk/hiptop/pester/locale/en_US/Pester.rsrc</a></p>
<p>You can see things like "alignWithParentTop" (the numbers are spacing amounts), "positionToRight" (of another control) or "alignBaseline" (my personal favorite, since so few layout tools have the concept of aligning text baselines of controls) which set up relationships between individual controls.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
