<?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"
	>

<channel>
	<title>Tristan O'Tierney</title>
	<atom:link href="http://www.otierney.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.otierney.net</link>
	<description>Mac Geek</description>
	<pubDate>Sat, 19 Jul 2008 19:47:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Tapulous + Twinkle</title>
		<link>http://www.otierney.net/articles/2008/07/19/tapulous-twinkle/</link>
		<comments>http://www.otierney.net/articles/2008/07/19/tapulous-twinkle/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 19:29:10 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[tapulous]]></category>

		<category><![CDATA[twinkle]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=338</guid>
		<description><![CDATA[It&#8217;s been a long while since I last updated my blog, but for good reason.  I&#8217;ve been hard at work on the next generation of software, also known as iPhone.  My first project that I get to show all of you is Twinkle, available on the app store.  The launch has been [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long while since I last updated my blog, but for good reason.  I&#8217;ve been hard at work on the next generation of software, also known as iPhone.  My first project that I get to show all of you is Twinkle, available on the <a href="http://tinyurl.com/gettwinkle">app store</a>.  The launch has been delayed for awhile, but it has gone pretty well overall.  We have an amazing amount of users for only 2 or 3 days of being available, but the ride isn&#8217;t quite over yet.  There are some hiccups, a few in particular, so I&#8217;d like to talk about them.</p>

<blockquote>Why do you need a Tapulous account to use Twinkle, and what exactly is it.?</blockquote>

<p>Well, the reason is we&#8217;re building a network, and using Twitter as the first of many gateways.  Many people have heard of or know this concept as &#8220;friendfeed.&#8221;  We&#8217;re shooting for nothing less, and are planning for the future by supporting multiple accounts.  We want to do certain things that friendfeed isn&#8217;t capable of, like hosting pictures for our Twinkle Shots, or embedding location information into tweets like we do for our Nearby tab.  Neither of these features would be possible or anywhere near as seamless had we not made the decision to build our own network, with Twitter as the first service.</p>

<p>What we <strong>don&#8217;t</strong> want to do however is pick favorites.  This means that even if some other service (if one exists) supported image attachments AND locationing, it still doesn&#8217;t have the number and activity of users from Twitter.  So, we went where the users are with Twitter as our first network.</p>

<p>What many people want is just a Twitter client, and I&#8217;m sorry to say as a basic design decision, that&#8217;s just not what Twinkle is or is meant to be.  You&#8217;re welcome to use it as a dedicated Twitter client and we&#8217;re trying really hard to make it a first class client for nothing but.  We aren&#8217;t there yet, and I&#8217;m happy to see all the suggestions and feedback pour in.  I&#8217;d like to address a rather common one which is: Why can&#8217;t you disable the Tapulous &#8220;stuff&#8221;?  Well, we didn&#8217;t get time to do that!  It&#8217;s definitely a popular request, and we need to consider how that will impact the application for one very important reason: Twinkle&#8217;s Nearby view depends on Tapulous network integration.  If everyone just decided to turn off the &#8220;Tapulous account&#8221; features, no one would see a thing in Nearby!  I think what a better solution might be is to simply have all twitter information (avatars, user names, pretty names, etc) take priority over the Tapulous network information, should you choose to do so.  We believe this is an ideal solution but one that takes time unfortunately.  Consider now we&#8217;ve heard everyone&#8217;s complaints, and we will address them in due time.</p>

<blockquote>What do you do with my messages after you send them? Are they on your servers too?</blockquote> 

<p>The answer is yes, they are.  In order to host nearby messages, and for features like our automatic tweet queuing while Twitter is down, we need to store your messages on our server too.  The caveat to this is we need to support Twitter&#8217;s private profiles, which we do not yet.  This is a known and unfortunately overlooked issue.</p>

<blockquote>What about feature X, Y, Z?</blockquote>

<p>We&#8217;ve taken a look at the most requested features, and we&#8217;ve already planned on implementing of few of them.  <strong>Built in web browser</strong>.  This one&#8217;s a highly requested, and particularly useful feature on a mobile app where bouncing between two applications is a painful process.  <strong>Clickable @replies</strong>.  This feature was actually in the client for awhile, but just didn&#8217;t make the cut due to time so we had to take it out. <strong>The notification sounds are too jarring/loud</strong>.  This was a large complaint, which we&#8217;ll remedy.  </p>

<p>Not all of this may make it into the next release, but this is just a few of the things we&#8217;re working on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/07/19/tapulous-twinkle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Missing Objective-C 2.0 Feature(s)</title>
		<link>http://www.otierney.net/articles/2008/05/13/missing-objective-c-20-features/</link>
		<comments>http://www.otierney.net/articles/2008/05/13/missing-objective-c-20-features/#comments</comments>
		<pubDate>Wed, 14 May 2008 06:21:32 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[cocoa]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[objc]]></category>

		<category><![CDATA[objc2]]></category>

		<category><![CDATA[objective-c]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=336</guid>
		<description><![CDATA[This post was inspired by a recent twitter that I thought I might elaborate on a bit more.  One of the nice new features of Objective-C 2.0 is dot-syntax for read/write proprerties.  For example:



Person *person = [[Person alloc] init];
person.mobileNumber = @"1-555-123-1234";


This is uber nifty, and can save you a load of time and [...]]]></description>
			<content:encoded><![CDATA[<p>This post was inspired by a recent <a href="http://twitter.com/omnivector/statuses/810821171">twitter</a> that I thought I might elaborate on a bit more.  One of the nice new features of Objective-C 2.0 is dot-syntax for read/write proprerties.  For example:
<br/></p>

<pre class="code">
Person *person = [[Person alloc] init];
person.mobileNumber = @"1-555-123-1234";
</pre>

<p>This is uber nifty, and can save you a load of time and redundant code.  However it&#8217;s often the case that I want to hide access to certain private member variables, but still expose accessors/mutators to attributes on those private variables.  Let&#8217;s say mobileNumber is actually an accessor/mutator on a sub-object, let&#8217;s call it <em>PhoneBook</em>.  Under the hood, this is implemented like so:
<br/></p>

<pre class="code">
@interface Person {
    PhoneBook *phoneBook;
}

@property (nonatomic, rertain) NSString *mobileNumber;
@end

@implementation Person
- (void)setMobileNumber:(NSString *)number {
    phoneBook.mobileNumber = number;
}

- (NSString *)mobileNumber {
    return phoneBook.mobileNumber;
}
@end
</pre>

<p>This seems far from ideal, when really I just want to pass through the implementation of this accessor/mutator to one of my instance variables.  A more clean and hypothetical implementation could look like this:
<br/></p>

<pre class="code">
@interface Person {
    PhoneBook *phoneBook;
}

@property (nonatomic, retain) NSString *mobileNumber;
@end

@implementation Person
@synthesize mobileNumber=phoneNumber.mobileNumber;
@end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/05/13/missing-objective-c-20-features/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flickr Video</title>
		<link>http://www.otierney.net/articles/2008/04/09/flickr-video/</link>
		<comments>http://www.otierney.net/articles/2008/04/09/flickr-video/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 17:16:07 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[donate]]></category>

		<category><![CDATA[flickr]]></category>

		<category><![CDATA[flickrbooth]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=335</guid>
		<description><![CDATA[Well, something I had suspected and maybe secretly known for awhile was in the works landed yesterday! Flickr Video!  This is a natural feature addition to FlickrBooth that I&#8217;ll eventually be supporting.  I don&#8217;t have much time these days and lets face it, FlickrBooth being free isn&#8217;t much of a cashcow.  Is [...]]]></description>
			<content:encoded><![CDATA[<p>Well, something I had suspected and maybe secretly known for awhile was in the works landed yesterday! <a href="http://blog.flickr.net/en/2008/04/08/video-on-flickr/">Flickr Video</a>!  This is a natural feature addition to FlickrBooth that I&#8217;ll eventually be supporting.  I don&#8217;t have much time these days and lets face it, FlickrBooth being free isn&#8217;t much of a cashcow.  Is this feature something people really want?  Put your money where your mouth is and donate!  I&#8217;m not saying I won&#8217;t do this without donations or that I&#8217;m holding my FlickrBooth users hostage, but I certainly up the priority of work based on the interest of my users.  I&#8217;d be interested to hear what sort of feature(s) surrounding the new addition you guys would like.  Should uploading videos allow going to YouTube and Flickr at the same time? What if the video is over 90 seconds, should I clip at 90 seconds or split it into X number of videos? (The latter might actually be pretty tricky&#8230;).  As an aside, I&#8217;ve also tossed around the idea of FlickrBooth for the iPhone, especially with some <a href="http://www.pcworld.com/printable/article/id,143058/printable.html">big names</a> asking for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/04/09/flickr-video/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Photo Booth + YouTube Together At Last</title>
		<link>http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/</link>
		<comments>http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 07:25:03 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[flickr]]></category>

		<category><![CDATA[flickrbooth]]></category>

		<category><![CDATA[objectiveyoutube]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/</guid>
		<description><![CDATA[Hot on the heels of my recent ObjectiveYouTube release, I bring you two for one! ObjectiveYouTube 0.2 for developers and FlickrBooth 2.0 for users.  As you can probably guess, the big new feature for this release is YouTube uploading of videos.  YouTube videos are big, and take awhile to upload? No problem! I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of my recent ObjectiveYouTube release, I bring you two for one! ObjectiveYouTube 0.2 for developers and FlickrBooth 2.0 for users.  As you can probably guess, the big new feature for this release is YouTube uploading of videos.  YouTube videos are big, and take awhile to upload? No problem! I&#8217;ve also added a handy little upload progress window to view the status of your YouTube uploads as well as the ability to cancel them should you change your mind :).  To top it all off, FlickrBooth now automatically checks for updates.  Head on over to <a href="/flickrbooth">the download page</a> and give it a spin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ObjectiveYouTube 0.1 Released</title>
		<link>http://www.otierney.net/articles/2008/03/18/objectiveyoutube-01-released/</link>
		<comments>http://www.otierney.net/articles/2008/03/18/objectiveyoutube-01-released/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 05:24:25 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[cocoa]]></category>

		<category><![CDATA[objective-c]]></category>

		<category><![CDATA[objectiveyoutube]]></category>

		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/03/18/objectiveyoutube-01-released/</guid>
		<description><![CDATA[So I had time tonight to package what I&#8217;ve got working, and would like to get some more eyeballs looking at it.
Please check it out!  Download available at Google Code.
]]></description>
			<content:encoded><![CDATA[<p>So I had time tonight to package what I&#8217;ve got working, and would like to get some more eyeballs looking at it.
Please check it out!  Download available at <a href="http://code.google.com/p/objectiveyoutube/">Google Code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/03/18/objectiveyoutube-01-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ObjectiveYouTube mostly done</title>
		<link>http://www.otierney.net/articles/2008/03/18/objectiveyoutube-mostly-done/</link>
		<comments>http://www.otierney.net/articles/2008/03/18/objectiveyoutube-mostly-done/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 18:49:12 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[cocoa]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[objectiveyoutube]]></category>

		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/03/18/objectiveyoutube-mostly-done/</guid>
		<description><![CDATA[So after going through all the trouble of writing a generic multipart form generator, and screen scraping youtube, etc I&#8217;ve completely rewritten it to use the new spiffy YouTube write apis that came out literally a day after I completed all that prior work.  Oh well, the good news is this library will be [...]]]></description>
			<content:encoded><![CDATA[<p>So after going through all the trouble of writing a generic multipart form generator, and screen scraping youtube, etc I&#8217;ve completely rewritten it to use the new spiffy <a href="http://code.google.com/apis/youtube/developers_guide_protocol.html">YouTube write apis</a> that came out literally a day after I completed all that prior work.  Oh well, the good news is this library will be shielded from things like YouTube updating their website since I no longer have to screen scrape.  So the downsides are the lib will only handle authentication and uploading, mostly because those are all I need right now.  I may let the community fix that problem if anyone else needs that functionality.  Look out for a post in the next couple days while I finish up the readme/licensing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/03/18/objectiveyoutube-mostly-done/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Customer service that doesn&#8217;t suck</title>
		<link>http://www.otierney.net/articles/2008/03/08/customer-service-that-doesnt-suck/</link>
		<comments>http://www.otierney.net/articles/2008/03/08/customer-service-that-doesnt-suck/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 06:04:23 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[broken]]></category>

		<category><![CDATA[ikea]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/03/08/customer-service-that-doesnt-suck/</guid>
		<description><![CDATA[ 
 
 
  Broken iPhone  
  
  Originally uploaded by tristanotierney
 


So awhile back (just after macworld) Quynh&#8217;s iPhone mysteriously cracked.  We didn&#8217;t drop it, we didn&#8217;t step on it, it just spiderwebbed in the corner for no apparent reason.  Needless to say we were hesitant to take [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
 <a href="http://www.flickr.com/photos/tristanotierney/2233551991/" title="photo sharing"><img src="http://farm3.static.flickr.com/2352/2233551991_961bd1d38d_m.jpg" alt="" style="border: solid 2px #000000;" /></a>
 <br />
 <span style="font-size: 0.9em; margin-top: 0px;">
  <a href="http://www.flickr.com/photos/tristanotierney/2233551991/">Broken iPhone <img src='http://www.otierney.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </a>
  <br />
  Originally uploaded by <a href="http://www.flickr.com/people/tristanotierney/">tristanotierney</a>
 </span>
</div>

<p>So awhile back (just after macworld) Quynh&#8217;s iPhone mysteriously cracked.  We didn&#8217;t drop it, we didn&#8217;t step on it, it just spiderwebbed in the corner for no apparent reason.  Needless to say we were hesitant to take it to an Apple genius because anything involving what appears to be user-inflicted-damage is shrugged off.  Well, we were browsing the mall today and said screw it lets give it a try.  20 minutes later we were blessed with a brand spanking new phone!  I had a similar experience with Ikea, in which we actually brought in an photo of a broken drawer shelf (on our iPhones of course) and they didn&#8217;t even ask questions! They just went into the back room and gave us the new board we needed to repair the drawer.  Not to go off into too much of a tangent, but I think these two companies share a lot in common.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/03/08/customer-service-that-doesnt-suck/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thoughts on iPhone SDK</title>
		<link>http://www.otierney.net/articles/2008/03/07/thoughts-on-iphone-sdk/</link>
		<comments>http://www.otierney.net/articles/2008/03/07/thoughts-on-iphone-sdk/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 22:30:27 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[ifund]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[sdk]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/03/07/thoughts-on-iphone-sdk/</guid>
		<description><![CDATA[(Most) everyone knows about the iPhone SDK, so I&#8217;ll try not to be redundant.  In short, I think what was delivered was awesome. It&#8217;s a pretty good compromise on almost all levels.  If you want to distribute software on the app store for free, you can.  If you want to charge, they [...]]]></description>
			<content:encoded><![CDATA[<p>(Most) everyone knows about the iPhone SDK, so I&#8217;ll try not to be redundant.  In short, I think what was delivered was awesome. It&#8217;s a pretty good compromise on almost all levels.  If you want to distribute software on the app store for free, you can.  If you want to charge, they take a pretty fair percentage.  The enterprise additions were all icing on the cake to me.  Normally I wouldn&#8217;t care, but I&#8217;ll directly benefit from Exchange support since VMware is an Exchange company (ugh).  It&#8217;s increasingly depressing that no one seems to be giving Microsoft Exchange competition, still, and it&#8217;s the year 2008 but that&#8217;s another blog post all together.  Another thing that has me pleased and amazed is the $100 million <a href="http://www.kpcb.com/initiatives/ifund/index.html">iFund</a>.  This is a <strong>drop in the bucket</strong> for Apple, with nearly $18 billion in the bank.  Yet that&#8217;s a lot of money.  I&#8217;m frightened, in a good way, to think what can come out of this initiative.  </p>

<p>Frankly I wasn&#8217;t quite surprised that they chose not to make a Windows compatible SDK.  The entire iPhone development suite, from building tools (gcc, xcode, ib) to debug tools (instruments, which depends on dtrace) are just entirely incompatible with Windows.  Even if Apple did keep <a href="http://www.cocoadev.com/index.pl?YellowBox">Yellow Box</a> alive in secret, it would be a monumental effort to port all those tools.  So I guess that&#8217;s that &#8212; in order to code for <strong>the</strong> most popular mobile device within the next few years, you&#8217;re going to need a Mac.  If that doesn&#8217;t pull in a whole new class of switchers, I don&#8217;t know what will.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/03/07/thoughts-on-iphone-sdk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Blog Theme!</title>
		<link>http://www.otierney.net/articles/2008/02/26/new-blog-theme/</link>
		<comments>http://www.otierney.net/articles/2008/02/26/new-blog-theme/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 07:38:09 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[blog]]></category>

		<category><![CDATA[brett]]></category>

		<category><![CDATA[lazy]]></category>

		<category><![CDATA[new]]></category>

		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/02/26/new-blog-theme/</guid>
		<description><![CDATA[After many many months of putting it off, I finally integrated my new spiffy blog theme!  HUGE thanks to my friend Brett Lavalla who made it for me, sorry it took me so long to install it  
]]></description>
			<content:encoded><![CDATA[<p>After many many months of putting it off, I finally integrated my new spiffy blog theme!  HUGE thanks to my friend Brett Lavalla who made it for me, sorry it took me so long to install it <img src='http://www.otierney.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/02/26/new-blog-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NSURL, I loath thee</title>
		<link>http://www.otierney.net/articles/2008/01/25/nsurl-i-loath-thee/</link>
		<comments>http://www.otierney.net/articles/2008/01/25/nsurl-i-loath-thee/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 00:29:12 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[cocoa]]></category>

		<category><![CDATA[flickrbooth]]></category>

		<category><![CDATA[nsurl]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/01/25/nsurl-i-loath-thee/</guid>
		<description><![CDATA[So I know I shouldn&#8217;t complain too much, coming from Safari not too long ago, but I felt I must rant about something.  In my quest to bring YouTube support to FlickrBooth (is that app name even going to make sense after such a feature?) I&#8217;ve come to the sad realization that NSURL sucks. [...]]]></description>
			<content:encoded><![CDATA[<p>So I know I shouldn&#8217;t complain too much, coming from Safari not too long ago, but I felt I must rant about something.  In my quest to bring YouTube support to FlickrBooth (is that app name even going to make sense after such a feature?) I&#8217;ve come to the sad realization that NSURL sucks.  It doesn&#8217;t have a feature-rich enough API, making you have to break down to CF functions.  It makes you use important to forget string functions like [NSString stringByAddingPercentEscapes] which have fun ways of creating bugs you didn&#8217;t anticipate.  It lacks any sort of GET/POST automatic query generation.  It has no helper functions for cookies, which are this entirely separate-but-shared entity.  I feel like Apple ported (or did they write it from scratch?) it on top of WebKit for Panther and basically let it wither without any substantial feature additions since.   I suppose on one hand you could argue that it means the API will remain stable, making it easier for future development but Apple does seem to have a hit and run policy of releasing a new awesome library, then basically never touching it again except for bug fixes.  WebKit in particular I would not account such harsh words to.  The API adapts quite rapidly, despite many additional functions winding up on the &#8220;Unofficial but available&#8221; headers.  But this is by virtue of it&#8217;s OpenSource facing policy.  AppKit/Foundation doesn&#8217;t exactly have the same liberal policy.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/01/25/nsurl-i-loath-thee/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
