<?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>Tewha &#187; Articles</title>
	<atom:link href="http://tewha.net/category/articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://tewha.net</link>
	<description>Links and writings on software development, mostly for iPhone and Mac OS X.</description>
	<lastBuildDate>Thu, 26 Aug 2010 00:00:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Sorry, but accepting Flash is potentially devastating to me</title>
		<link>http://tewha.net/2010/03/sorry-but-accepting-flash-is-potentially-devastating-to-me/</link>
		<comments>http://tewha.net/2010/03/sorry-but-accepting-flash-is-potentially-devastating-to-me/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 09:53:41 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[Ars Technica]]></category>
		<category><![CDATA[bad ideas]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1103</guid>
		<description><![CDATA[Ars Technica Why Ad Blocking is devastating to the sites you love: If you read a site and care about its well being, then you should not block ads or you subscribe to sites like Ars that offer ads-free versions of the site. &#8230; <a href="http://tewha.net/2010/03/sorry-but-accepting-flash-is-potentially-devastating-to-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ars Technica <a href="http://arstechnica.com/business/news/2010/03/why-ad-blocking-is-devastating-to-the-sites-you-love.ars">Why Ad Blocking is devastating to the sites you love</a>:</p>
<blockquote><p>If you read a site and care about its well being, then you should not block ads or you subscribe to sites like Ars that offer ads-free versions of the site. If a site has advertising you dont agree with, dont go there. I think it is far better to vote with page views than to show up and consume resources without giving anything in return.</p></blockquote>
<p>Let&#8217;s be clear here: I don&#8217;t run an ad blocker. I do run a <a href="http://www.adobe.com/products/flashplayer/">Flash</a> blocker, because <em>Flash</em> is unstable and insecure. And no, I will not white-list you to let you load Flash automatically.</p>
<p>And before you ask, you can&#8217;t have my root password either.</p>
<p>I also don&#8217;t keep a list of sites I&#8217;m not welcomed at. For the half dozen times a year I read a story on Ars (at most), I&#8217;m not going to feel guilty either.</p>
<p>Look, in the comments you have admitted you don&#8217;t control the content of the Flash:</p>
<blockquote><p>We don&#8217;t allow ads with non-user initiated sound. So unless you interact with the ad you shouldn&#8217;t hear a thing. If you ever do then let us know so we can fix it/nuke it.</p></blockquote>
<p>If ads make sound uninvited, <em>tell you</em>?!? <strong>Are you serious?</strong> What if they use some new Flash exploit to root around and steal my private key, or otherwise execute <a href="http://www.adobe.com/support/security/bulletins/apsb09-01.html">arbitrary code</a> on my computer?</p>
<p>Should I tell you then, too?</p>
<p>The first step to getting on my white list is to write your own Flash, not just serve someone else&#8217;s. Taking people&#8217;s security that cavalierly probably should be criminal.</p>
<p>You can&#8217;t just say &#8220;Oh, that&#8217;s on Adobe.&#8221; By now you know <a href="http://secunia.com/advisories/product/20166/?task=statistics">what an insecure mess Flash is</a>.</p>
<p>If you serve me HTML ads, I&#8217;ll be happy to view them. I&#8217;m not sure if you&#8217;ve heard, but it turns out that you can do <a href="http://html5demos.com/">a lot of cool things with HTML</a>.</p>
<p>Also I just checked, and Javascript <a href="http://www.adobe.com/products/flashplayer/download/detection_kit/">can (indirectly) detect my Flash blocker</a>. There&#8217;s no reason you should try to blame users like me rather than take the responsibility on yourself. The difference between my Mac and an iPhone is that you&#8217;re able to detect the latter without much effort, but the former would take a little more effort on your part.</p>
<p>Look, I&#8217;m sorry I cost you a fraction of a penny. But the potential pain for me in choosing to run Flash is far, far greater. And if you really cared about your users, you&#8217;d know that and have moved on from Flash already. Don&#8217;t try to lay a guilt trip <em>on me</em>!</p>
<p>I&#8217;ll see you in six months. Not intentionally, that&#8217;ll just be the next time I have reason to visit Ars. Maybe you&#8217;ll have this sorted out by then.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2010/03/sorry-but-accepting-flash-is-potentially-devastating-to-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes to come</title>
		<link>http://tewha.net/2010/02/changes-to-come/</link>
		<comments>http://tewha.net/2010/02/changes-to-come/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 08:19:22 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1101</guid>
		<description><![CDATA[What to expect around here: Presentation Helvetica Neue. Because no other font comes close. A streamlined and less boxy design. Removal of side bar. Most of its functionality will be merged into the footer, and the search into the header. &#8230; <a href="http://tewha.net/2010/02/changes-to-come/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>What to expect around here:</p>
<ul>
<li>Presentation
<ul>
<li>Helvetica Neue. Because no other font comes close.</li>
<li>A streamlined and less boxy design.</li>
<li>Removal of side bar. Most of its functionality will be merged into the footer, and the search into the header.</li>
</ul>
</li>
<li>Content:
<ul>
<li>More frequent posts, as I attempt to kill my fear of sucking by doing so more often.</li>
<li>More focus on iPhone and Mac development.</li>
<li>Less focus on Windows development, since I don&#8217;t have to do it anymore.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2010/02/changes-to-come/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A one day project</title>
		<link>http://tewha.net/2010/02/a-one-day-project/</link>
		<comments>http://tewha.net/2010/02/a-one-day-project/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 07:39:35 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[do it]]></category>
		<category><![CDATA[iPhone Development]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1097</guid>
		<description><![CDATA[I started work today on an iPhone project with a friend. I figured it would take only a day to get to a reasonable 1.0. I&#8217;ve only put in about a half day on it so far, but at this &#8230; <a href="http://tewha.net/2010/02/a-one-day-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I started work today on an iPhone project with a friend. I figured it would take only a day to get to a reasonable 1.0. I&#8217;ve only put in about a half day on it so far, but at this point I&#8217;m pretty sure it&#8217;s actually a two day project.</p>
<p>Looked at one way, that&#8217;s a 200% estimation overflow. But more realistically, it means it was pretty small and I tackled it in the wrong way. I had to refactor some code early that I left alone for too long. I should&#8217;ve written in the right way to begin with, and I should have realized it was wrong sooner, and I should have stopped trying to make it work.</p>
<p>More pragmatically, maybe I should have known better. But, of course, I didn&#8217;t. And that&#8217;s okay! I know better now.</p>
<p>What&#8217;s my point in posting this?</p>
<p>Mostly, it&#8217;s this: <strong>iPhone development isn&#8217;t nearly as hard as I&#8217;ve made it out to be</strong>. Useful applications can actually be quite small and still be useful. Simple things are simple. When they&#8217;re not simple, it&#8217;s time to fix something.</p>
<p>I&#8217;ll post a link here when I finish the project. It&#8217;ll be a bit before I can devote another day to it. But I&#8217;m excited by its usefulness, its simplicity, and the idea of having an app in the App Store of my own.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2010/02/a-one-day-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning a new programming language</title>
		<link>http://tewha.net/2009/10/learning-a-new-programming-language/</link>
		<comments>http://tewha.net/2009/10/learning-a-new-programming-language/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 17:05:21 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1077</guid>
		<description><![CDATA[It took me a while to learn Objective-C. I started at the most basic level, wondering at the language. What are these brackets? What&#8217;s with the @ signs? What&#8217;s the difference between a &#8211; and a +? These aren&#8217;t hard &#8230; <a href="http://tewha.net/2009/10/learning-a-new-programming-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It took me a while to learn Objective-C.</p>
<p>I started at the most basic level, wondering at the language. What are these brackets? What&#8217;s with the @ signs? What&#8217;s the difference between a &#8211; and a +? These aren&#8217;t hard things to learn, but understanding the reasoning behind them helps. And then there&#8217;s a point where it suddenly makes sense.</p>
<p>But the framework was confusing. How do I do this? Though I was less confused, this one isn&#8217;t solved directly. I became competent. And I started to ask the best question: &#8220;Why?&#8221;</p>
<p>The patterns were still confusing. Why does this work this way? What&#8217;s the purpose of this? Why is this done, but not this other thing?</p>
<p>And then there was a point where the patterns became obvious. More, the pattern in the patterns became obvious to me. And now, I look to find more examples of patterns, and patterns of patterns, to better build my knowledge.</p>
<p>It took me a while to get here, and it&#8217;s the same for every language. I&#8217;m feeling pretty confident about Objective-C now.</p>
<p>Back on the first day, I was confused and lost.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/10/learning-a-new-programming-language/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The secret to enjoying Xcode</title>
		<link>http://tewha.net/2009/10/the-secret-to-enjoying-xcode/</link>
		<comments>http://tewha.net/2009/10/the-secret-to-enjoying-xcode/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 16:22:09 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Pain reduction]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1071</guid>
		<description><![CDATA[One of the things that made me like Xcode more and become more efficient with it is realizing that while all coders are insane, me and Xcode&#8217;s designers are insane in different ways. By that, I mean that aside from &#8230; <a href="http://tewha.net/2009/10/the-secret-to-enjoying-xcode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the things that made me like Xcode more and become more efficient with it is realizing that while all coders are insane, me and Xcode&#8217;s designers are <em>insane in different ways</em>.</p>
<p>By that, I mean that aside from the standard keyboard shortcuts (Save, Copy&#8230; that sort of thing), none of the keyboard shortcuts made sense to me.</p>
<p>So I duplicated one of the keyboard shortcut profiles and deleted most of the keyboard bindings. I was brutal with it — if the combination didn&#8217;t make sense to me OR it was something I&#8217;d rarely use it was removed. Then I added keyboard shortcuts that I needed. By using about an hour to customize these settings, I ended up having keyboard shortcuts that I fully understood and rolled off my fingertips.</p>
<p>At this point — and this is where it became a useful exercise — I added my <code>~/Library/Application Support/Xcode</code> to version control so I could easily sync it between computers.  So when I find something that isn&#8217;t quite working out for me, I make a change and propagate it to my other system.</p>
<p>Am I going to share what I ended up with? No, because that&#8217;s not the point of this. Rather, I want to point out a simple fact of Xcode: <strong>Xcode will adapt to how you want to use it, and if you feel like you&#8217;re suffering at all with it you should spend the time it to takes to make it enjoyable to use.</strong></p>
<p>And when someone tells me I can do something with a particular keyboard shortcut, I switch back to the defaults and see what it&#8217;s bound to.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/10/the-secret-to-enjoying-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes zoom behavior</title>
		<link>http://tewha.net/2009/09/itunes-zoom-behavior/</link>
		<comments>http://tewha.net/2009/09/itunes-zoom-behavior/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 17:46:26 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[User interface]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1067</guid>
		<description><![CDATA[iTunes prior to 9.0 used a click on the zoom widget to convert to the mini player, leaving people like me who actually like to zoom a window option-clicking it. iTunes 9.0 finally fixed this. A click on the zoom &#8230; <a href="http://tewha.net/2009/09/itunes-zoom-behavior/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>iTunes prior to 9.0 used a click on the zoom widget to convert to the mini player, leaving people like me who actually like to zoom a window option-clicking it.</p>
<p>iTunes 9.0 finally fixed this. A click on the zoom widget actually zoomed the window!</p>
<p>iTunes 9.0.1 changed it back to the old behavior. Many people were happy, I imagine. But people who wanted to zoom iTunes windows (or, I imagine, valued standard behavior) were left sad.</p>
<p>It turns out you can get the click-to-zoom behavior back:</p>
<p><code>defaults write com.apple.iTunes zoom-to-window -bool true</code></p>
<p>Tip of the hat to <a href="http://twitter.com/zadr ">zadr</a> on Twitter for <a href="http://twitter.com/zadr/status/4300874028">this tweet</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/09/itunes-zoom-behavior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minimized iTunes player</title>
		<link>http://tewha.net/2009/09/minimized-itunes-player/</link>
		<comments>http://tewha.net/2009/09/minimized-itunes-player/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 18:26:26 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[itunes]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1064</guid>
		<description><![CDATA[Paste this into AppleScript Editor: tell application "iTunes" repeat with b in browser windows set the minimized of b to true end repeat end tell Save it in ~/Library/Scripts. And while you&#8217;re in AppleScript Editor, turn on Show Script menu &#8230; <a href="http://tewha.net/2009/09/minimized-itunes-player/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Paste this into AppleScript Editor:</p>
<p><code>
<pre>tell application "iTunes"

	repeat with b in browser windows

		set the minimized of b to true

	end repeat

end tell</pre>
<p></code></p>
<p>Save it in ~/Library/Scripts. And while you&#8217;re in AppleScript Editor, turn on <strong>Show Script menu in menu bar</strong> and <strong>Show Computer scripts</strong>. Now you have a command to show iTunes&#8217;s mini player at any time.</p>
<p>If you&#8217;ve got a good way to launch AppleScripts, you can install it there, too.</p>
<p><strong>Update:</strong> Apple has changed this back in iTunes 9.0.1. See <a href="http://tewha.net/2009/09/itunes-zoom-behavior/">iTunes zoom behavior</a> if you liked the iTunes 9.0 way.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/09/minimized-itunes-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On skins and plugins</title>
		<link>http://tewha.net/2009/08/on-skins-and-plugins/</link>
		<comments>http://tewha.net/2009/08/on-skins-and-plugins/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 07:38:10 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[skins]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=820</guid>
		<description><![CDATA[I started this post over six months ago, but never quite got around to finishing it. It might never be finished. But this is a thorn to me, so I&#8217;m just going to post it as is. Should your new &#8230; <a href="http://tewha.net/2009/08/on-skins-and-plugins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I started this post over six months ago, but never quite got around to finishing it. It might never be finished. But this is a thorn to me, so I&#8217;m just going to post it as is.</p>
<p>Should your new application support skins?</p>
<p>Probably not. Skins are often a programmer&#8217;s way of saying &#8220;Oh, I don&#8217;t do UI. We&#8217;ll let someone else get it right.&#8221; Only nobody ever does, at least not in your product. Your UI just isn&#8217;t as compelling <a href="http://www.codinghorror.com/blog/archives/000789.html">as the one it&#8217;s replacing</a>.</p>
<p>The corollary to this is that if lots of people are demanding skins, it means your UI sucks. Once you add skins, you&#8217;ll never be rid of those skins, and you won&#8217;t have fixed your application either.</p>
<p><em>You&#8217;d probably do better to fix your application&#8217;s appearance and behavior.</em></p>
<p>Now, should you do a custom appearance?</p>
<p>If you&#8217;re planning a completely custom appearance for your applications, odds are it will suck. Unless you have artists that are beyond simply competent, but brilliant, you&#8217;ll probably fail.</p>
<p>First, you need a UI that looks and feels good. Secondly, it probably needs to fit in with the native platform. If you&#8217;re planning a full screen game, it&#8217;s fine to not fit in. But if you&#8217;re building a Windows-based BIOS updater, that custom UI that you think looks so amazing? The truth is, it <a href="http://support.asus.com/technicaldocuments/technicaldocuments_content.aspx?no=714">looks like complete shit</a>.</p>
<p><em>You&#8217;re better off fitting custom UI into the OS rather than changing your whole application to fit them.</em></p>
<p>Now, finally: What about plugins?</p>
<p>This one is a little less clear. There&#8217;s great reasons to do plugins. Integration with another system (whether technical such as a web site or social such as particular requirements for reporting) is a good one.</p>
<p>But you know what isn&#8217;t a great reason? Making your product a <em>platform</em>. Do you want to be a product people use, or a platform people struggle with?</p>
<p>Firefox&#8217;s plugins make me flinch. They&#8217;re usually poor quality, craptacular tools that lunge for a particular nugget of a good idea and fall flat on their faces a few yards away from it. There are a few that are interesting, but they&#8217;d <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">benefit from being rolled in</a>, or being a <a href="https://addons.mozilla.org/en-US/firefox/addon/5817">separate stand-along product</a> on their own.</p>
<p>Pick your features carefully. 37signals didn&#8217;t become popular by picking an extensive list of features or allowing people to write their own features. Instead, they built something they wanted to use. And they&#8217;re not alone. There are a few things I&#8217;d love to see (<a href="http://daringfireball.net/projects/markdown/">MarkDown</a> instead of <a href="http://textile.thresholdstate.com/">Textile</a>, for instance), but even if a hypothetical plugin system could add these things, they&#8217;d be overwhelmed by the layer of suck.</p>
<p><em>Before you build a plugin architecture, put the effort into your application.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/08/on-skins-and-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode and iPhone OS 3.0.1</title>
		<link>http://tewha.net/2009/07/xcode-and-iphone-os-3-0-1/</link>
		<comments>http://tewha.net/2009/07/xcode-and-iphone-os-3-0-1/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 18:52:18 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=1009</guid>
		<description><![CDATA[To get Xcode 3.1.3 working with iPhone OS 3.0.1, you&#8217;ll need to teach Xcode how to target iPhone OS 3.0.1. Xcode will automatically recognize iPhone OS 3.0.1 and look for a new SDK at a set path. The problem is &#8230; <a href="http://tewha.net/2009/07/xcode-and-iphone-os-3-0-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>To get Xcode 3.1.3 working with iPhone OS 3.0.1, you&#8217;ll need to teach Xcode how to target iPhone OS 3.0.1.</p>
<p>Xcode will automatically recognize iPhone OS 3.0.1 and look for a new SDK at a set path. The problem is that SDK doesn&#8217;t exist. The good part is that the iPhone OS 3.0 SDK works perfectly for developing 3.0.1. The only apparent change is the SMS fix.</p>
<p>Assuming you&#8217;ve installed to /Developer, the iPhone OS 3.0 SDK is here:</p>
<p><code>/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0 (7A341)</code></p>
<p>When using Xcode with iPhone OS 3.0.1, Xcode looks for the iPhone OS 3.0.1 SDK here:</p>
<p><code>/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0.1</code></p>
<p>The trick, then, is to build a symbolic link that connects what Xcode is looking for with what it needs to find.</p>
<p>So what do you do? Assuming you&#8217;ve installed Xcode in the standard location, this is a Terminal command to fix the problem:</p>
<p><code>ln -s /Developer/Platforms/iPhoneOS.platform/DeviceSupport\</p>
<p>/3.0\ \(7A341\) /Developer/Platforms/iPhoneOS.platform/\</p>
<p>DeviceSupport/3.0.1</code></p>
<p>(I&#8217;ve split this into three lines to make it easier to copy and paste with the \ line continuation character.)</p>
<p>This will not add a SDK to Xcode&#8217;s list, it will just teach Xcode to map your device to the 3.0 SDK.</p>
<p>A few other tips:</p>
<ul>
<li>If you still can&#8217;t debug restarting your iPhone may help. Most of the iPhones I&#8217;ve tried to debug on, I&#8217;ve had to restart first.</li>
<li>If you get an error regarding code signing, try downloading your provisioning profile again and re-installing it. Also, select it again in your build settings.</li>
</ul>
<p>Based on information from <a href="http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk_3.0__final/iphone_os_3.0.1_advisory.pdf">iPhone OS 3.0.1 Advisory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/07/xcode-and-iphone-os-3-0-1/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Three20</title>
		<link>http://tewha.net/2009/07/three20/</link>
		<comments>http://tewha.net/2009/07/three20/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 06:12:42 +0000</pubDate>
		<dc:creator>Steven Fisher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[iPhone Development]]></category>
		<category><![CDATA[User interface]]></category>

		<guid isPermaLink="false">http://tewha.net/?p=953</guid>
		<description><![CDATA[I downloaded the latest version of Three20 today by Joe Hewitt. I read through some of the code and ran through the included &#8220;catalog&#8221; demo. If you&#8217;ve used the Facebook application, you&#8217;ve seen early versions of a lot of these &#8230; <a href="http://tewha.net/2009/07/three20/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I downloaded the latest version of <a href="http://github.com/joehewitt/three20/tree/master">Three20</a> today by <a href="http://joehewitt.com/">Joe Hewitt</a>. I read through some of the code and ran through the included &#8220;catalog&#8221; demo. If you&#8217;ve used the Facebook application, you&#8217;ve seen early versions of a lot of these controls.</p>
<p>I haven&#8217;t written any code against it yet and I&#8217;m not up to reviewing it, but I will say this: The controls seem to fully work. They&#8217;re pretty, and the code is clean.</p>
<p>Possibly the piece that will save me the most time going forward is the photo browser. I&#8217;m not sure yet when I&#8217;ll need this, but doing it myself would be a lot of effort at my current knowledge of Cocoa Touch:</p>
<p><img class="aligncenter size-full wp-image-955" title="Three20photos" src="http://tewha.net/wp-content/uploads/2009/07/Three20photos.png" alt="Three20photos" width="414" height="770" />Less visually impressive, maybe, are the buttons:</p>
<p><img class="aligncenter size-full wp-image-954" title="Three20buttons" src="http://tewha.net/wp-content/uploads/2009/07/Three20buttons.png" alt="Three20buttons" width="414" height="770" />But it&#8217;s worth pointing out that in addition to having more varied styling, these are built on <code>UIView</code> not <code>UIBarItem</code>. These are going to be very useful. I&#8217;m not exaggerating when I say they&#8217;ll make it possible to write better applications.</p>
<p>Three20 also has some tab controls. The top one in particular has a great sideways scroll to it, and I think look and behavior adds up to great UI device, which I can use immediately:</p>
<p><img class="aligncenter size-full wp-image-956" title="Three20tabs" src="http://tewha.net/wp-content/uploads/2009/07/Three20tabs.png" alt="Three20tabs" width="414" height="770" />Next, some styled views:</p>
<p><img class="aligncenter size-full wp-image-957" title="Three20views" src="http://tewha.net/wp-content/uploads/2009/07/Three20views.png" alt="Three20views" width="414" height="770" />Not pictured:</p>
<ul>
<li>Three20 includes &#8220;disk&#8221; based caching for network images.</li>
<li>Three20 provides easy tools for building a text representation of the application state. This will make restoring state between runs much easier.</li>
</ul>
<p>Some of what&#8217;s in the library has been rendered unnecessary by iPhone OS 3.0, but there is enough added to make it very compelling. I plan on putting it to use soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://tewha.net/2009/07/three20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
