<?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>You Sexy Thing &#187; Cocoa</title>
	<atom:link href="http://krismarkel.com/yousexything/category/cocoa/feed/" rel="self" type="application/rss+xml" />
	<link>http://krismarkel.com/yousexything</link>
	<description>Hot Cocoa Programming</description>
	<pubDate>Fri, 21 Nov 2008 01:25:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Proof</title>
		<link>http://krismarkel.com/yousexything/2008/07/proof/</link>
		<comments>http://krismarkel.com/yousexything/2008/07/proof/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 06:36:06 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

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

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

		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://krismarkel.com/yousexything/?p=130</guid>
		<description><![CDATA[I now have concrete proof that I have written Objective-C code worthy of including in a product.
I&#8217;ve been using FMDB on a couple projects, and found a bug and made a couple improvements. I submitted the changes to Gus and he included them in the project.
Here&#8217;s the proof: http://code.google.com/p/flycode/source/diff?r=30&#38;format=side&#38;path=/trunk/fmdb/CHANGES_AND_TODO_LIST.txt
Actually, it was only about 4 lines of [...]]]></description>
			<content:encoded><![CDATA[<p>I now have concrete proof that I have written Objective-C code worthy of including in a product.</p>
<p>I&#8217;ve been using <a title="FMDB Home" href="http://gusmueller.com/blog/archives/2008/06/new_home_for_fmdb.html">FMDB</a> on a couple projects, and found a bug and made a couple improvements. I submitted the changes to <a title="Gus Mueller's blog" href="http://gusmueller.com/blog/">Gus</a> and he included them in the project.</p>
<p>Here&#8217;s the proof: <a title="Proof of my contributions to FMDB." href="http://code.google.com/p/flycode/source/diff?r=30&amp;format=side&amp;path=/trunk/fmdb/CHANGES_AND_TODO_LIST.txt">http://code.google.com/p/flycode/source/diff?r=30&amp;format=side&amp;path=/trunk/fmdb/CHANGES_AND_TODO_LIST.txt</a></p>
<p>Actually, it was only about 4 lines of code, so I shouldn&#8217;t play it up too much, but I&#8217;m extremely proud of myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2008/07/proof/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Carbon and 64-bit</title>
		<link>http://krismarkel.com/yousexything/2007/06/carbon-and-64-bit/</link>
		<comments>http://krismarkel.com/yousexything/2007/06/carbon-and-64-bit/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 01:34:53 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Carbon]]></category>

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

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

		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/06/carbon-and-64-bit/</guid>
		<description><![CDATA[This collection of responses from Apple engineers provides a lot of insight into what exactly constitutes &#8220;Carbon&#8221; and what APIs won&#8217;t be 64-bit in Leopard.
An interesting snippet:
&#8220;Q: Carbon isn&#8217;t just the UI stuff if I understand things correctly. Maybe I&#8217;m confused. Exactly what does Carbon encompass?&#8221;
That&#8217;s a darn good question (and practically the first question [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.carbondev.com/site/?page=64-bit+Carbon" title="64-bit Carbon on the Carbon Dev wiki">This</a> collection of responses from Apple engineers provides a lot of insight into what exactly constitutes &#8220;Carbon&#8221; and what APIs won&#8217;t be 64-bit in Leopard.</p>
<p>An interesting snippet:</p>
<blockquote><p><em>&#8220;Q: Carbon isn&#8217;t just the UI stuff if I understand things correctly. Maybe I&#8217;m confused. Exactly what does Carbon encompass?&#8221;</em></p>
<p>That&#8217;s a darn good question (and practically the first question we asked when we were informed of this change in plans).</p></blockquote>
<p>You would think that what functions make up an API would be pretty cut and dry, but things are rarely that simple. Plus it looks like some of the libraries that people think of a Carbon will actually be available in 64-bit.</p>
<p>(Via <a href="http://daringfireball.net/linked/2007/june#mon-18-64_bit_carbon" title="Daring Fireball Linked List post on 64-bit Carbon.">Daring Fireball Linked List</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/06/carbon-and-64-bit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>No 64-bit Carbon in Leopard</title>
		<link>http://krismarkel.com/yousexything/2007/06/no-64-bit-carbon-in-leopard/</link>
		<comments>http://krismarkel.com/yousexything/2007/06/no-64-bit-carbon-in-leopard/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 20:54:46 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

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

		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/06/no-64-bit-carbon-in-leopard/</guid>
		<description><![CDATA[http://arstechnica.com/journals/apple.ars/2007/06/13/64-bit-support-in-leopard-no-carbon-love
I really don&#8217;t know close to enough to understand the implications of this, but it sounds pretty serious, at least if you want to build 64-bit applications. From the Infinite Loop article:

Although we can still look forward to 64-bit Cocoa applications in Leopard, this development means that third-party developers, especially those with cross-platform products, will [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://arstechnica.com/journals/apple.ars/2007/06/13/64-bit-support-in-leopard-no-carbon-love" title="Infinite loop article on Carbon and 64-bit">http://arstechnica.com/journals/apple.ars/2007/06/13/64-bit-support-in-leopard-no-carbon-love</a></p>
<p>I really don&#8217;t know close to enough to understand the implications of this, but it sounds pretty serious, at least if you want to build 64-bit applications. From the <a href="http://arstechnica.com/journals/apple.ars" title="Apple news from Ars Technica">Infinite Loop</a> article:</p>
<blockquote>
<p align="left">Although we can still look forward to 64-bit Cocoa applications in Leopard, this development means that third-party developers, especially those with cross-platform products, will be less inclined to support 64-bit computing in their applications. Doing so would require removing all references to Carbon. People in the know tell us that this is is extremely hard—if not impossible—to do: in practice, applications that mostly use Cocoa also call on Carbon for things that can&#8217;t be done (easily) with Cocoa.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/06/no-64-bit-carbon-in-leopard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cocoa Frameworks in Safari for Windows</title>
		<link>http://krismarkel.com/yousexything/2007/06/cocoa-frameworks-in-safari-for-windows/</link>
		<comments>http://krismarkel.com/yousexything/2007/06/cocoa-frameworks-in-safari-for-windows/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 06:20:22 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

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

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/06/cocoa-frameworks-in-safari-for-windows/</guid>
		<description><![CDATA[Justin Williams finds some interestingly named dlls in Safari for Windows.
And for the geekier in the group, here&#8217;s a listing of all the files in the Safari directory. DLL hell anyone? Notice there&#8217;s a CoreFoundation, CoreGraphics and CFNetwork DLL.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.carpeaqua.com/" title="Justin William's blog">Justin Williams</a> <a href="http://maczealots.com/articles/safari-windows/" title="An exploration of Safari on Windows">finds</a> some interestingly named dlls in Safari for Windows.</p>
<blockquote><p>And for the geekier in the group, here&#8217;s a listing of all the files in the Safari directory. DLL hell anyone? Notice there&#8217;s a CoreFoundation, CoreGraphics and CFNetwork DLL.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/06/cocoa-frameworks-in-safari-for-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More on Safari for Windows</title>
		<link>http://krismarkel.com/yousexything/2007/06/more-on-safari-for-windows/</link>
		<comments>http://krismarkel.com/yousexything/2007/06/more-on-safari-for-windows/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 20:17:38 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

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

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

		<category><![CDATA[OS X]]></category>

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

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/06/more-on-safari-for-windows/</guid>
		<description><![CDATA[Just a quick follow up to my last post.The Apple-style form elements also appear in web pages, not just the application dialogs. This must have involved a significant development effort on Apple&#8217;s part. (I have some experience with web browser development.) I think Apple must really want pages to look identical in all versions of [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick follow up to my <a href="http://krismarkel.com/yousexything/2007/06/interface-builder-for-windows/" title="Safari for Windows speculation">last post</a>.The Apple-style form elements also appear in web pages, not just the application dialogs. This must have involved a significant development effort on Apple&#8217;s part. (I have <a href="http://krismarkel.com/yousexything/2007/05/how-i-spent-my-memorial-day-weekend-part-two/" title="My past with Internet Explorer">some experience</a> with web browser development.) I think Apple must really want pages to look identical in all versions of Safari (including the iPhone).</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/06/more-on-safari-for-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interface Builder for Windows?</title>
		<link>http://krismarkel.com/yousexything/2007/06/interface-builder-for-windows/</link>
		<comments>http://krismarkel.com/yousexything/2007/06/interface-builder-for-windows/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 07:16:56 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

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

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

		<category><![CDATA[OS X]]></category>

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

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/06/interface-builder-for-windows/</guid>
		<description><![CDATA[File this under: I know enough to make myself look stupid.
Look at the dialog labeled &#8220;General&#8221; in this blog post. This is the preferences dialog in Safari for Windows. There are very few clues that it&#8217;s a dialog for a Windows application. Really, the only clue is the &#8216;x&#8217; close button in the upper right [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://krismarkel.com/yousexything/wp-content/uploads/2007/06/ituneswindowsprefs.png" title="iTunes for Windows preferences dialog"><img src="http://krismarkel.com/yousexything/wp-content/uploads/2007/06/ituneswindowsprefs.png" alt="iTunes for Windows preferences dialog" width="253" /></a><a href="http://krismarkel.com/yousexything/wp-content/uploads/2007/06/safariwindowsprefs.png" title="Safari for Windows preferences"><img src="http://krismarkel.com/yousexything/wp-content/uploads/2007/06/safariwindowsprefs.png" alt="Safari for Windows preferences" width="253" /></a>File this under: I know enough to make myself look stupid.</p>
<p>Look at the dialog labeled &#8220;General&#8221; in this blog post. This is the preferences dialog in Safari for <em>Windows</em>. There are very few clues that it&#8217;s a dialog for a Windows application. Really, the only clue is the &#8216;x&#8217; close button in the upper right corner. Compare this to the other picture which is the preferences dialog for iTunes for Windows. It looks like a standard Windows dialog.</p>
<p>It sure looks like the Safari dialog was built using Interface Builder. The drop downs are Mac drop downs, not Windows.This seems rather unlikely, except that I now know (thanks to <a href="http://osxbook.com/" title="Mac OS X Internals home page">Amit Singh</a>) that Interface Builder used to run on Windows, as did OpenStep. Could Apple be reviving this long-dormant functionality?</p>
<p>If I get time, I may try and explore Safari for Windows further and see what I can dig up. I suspect someone with more time and experience will discover any secrets long before I do.</p>
<p>Another (not exclusive) possibility is that Apple hopes that Safari becomes yet another &#8220;gateway drug&#8221; to get Windows users to switch to the Mac. Making the UI as Mac-like as possible does a few things:</p>
<ul>
<li>First, it helps acclimate Windows users to Mac UI conventions.</li>
<li>Second, it lets Windows users know how much cooler looking Mac apps are.</li>
<li>Finally, it let&#8217;s Windows users know that using software on a Mac isn&#8217;t that hard.</li>
</ul>
<p>I actually have friends who are convinced that they are so acclimated to Windows, they wouldn&#8217;t ever be able to be productive on a Mac. To some extent I used to believe this about myself. Not that I couldn&#8217;t learn it, but that the learning curve was steep. Of course these days I also have friends who, like me, I wondering why they waited so long to make the switch.</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/06/interface-builder-for-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More on scripting Cocoa apps</title>
		<link>http://krismarkel.com/yousexything/2007/05/more-on-scripting-cocoa-apps/</link>
		<comments>http://krismarkel.com/yousexything/2007/05/more-on-scripting-cocoa-apps/#comments</comments>
		<pubDate>Wed, 23 May 2007 20:47:00 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/05/more-on-scripting-cocoa-apps/</guid>
		<description><![CDATA[Also from Daring Fireball Linked List.
http://trac.macosforge.org/projects/BridgeSupport
New open source project from Apple to provide a language-agnostic foundation for scripting language bridges to Cocoa; already used in PyObjC and RubyCocoa.
]]></description>
			<content:encoded><![CDATA[<p>Also from <a href="http://daringfireball.net/linked/2007/may#wed-23-bridgesupport" title="Daring Fireball Linked List entry for BridgeSupport">Daring Fireball Linked List</a>.</p>
<p class="ngpostlinks"><a href="http://trac.macosforge.org/projects/BridgeSupport">http://trac.macosforge.org/projects/BridgeSupport</a></p>
<blockquote><p>New open source project from Apple to provide a language-agnostic foundation for scripting language bridges to Cocoa; already used in PyObjC and RubyCocoa.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/05/more-on-scripting-cocoa-apps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RubyCocoa 0.11.0</title>
		<link>http://krismarkel.com/yousexything/2007/05/rubycocoa-0110/</link>
		<comments>http://krismarkel.com/yousexything/2007/05/rubycocoa-0110/#comments</comments>
		<pubDate>Wed, 23 May 2007 20:42:59 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/05/rubycocoa-0110/</guid>
		<description><![CDATA[Via Daring Fireball Linked List
http://chopine.be/lrz/diary/2007-05-22_RubyCocoa-0-11-0-is-finally-out.html
Laurent Sansonetti:
After 5 intensive months of development, RubyCocoa 0.11.0 is out. It’s a very big release, as you can see from the release notes. We also feature a completely new website (which is actually a Wiki, easy to maintain for us programmers).
I know you can also write Cocoa apps using Java, [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://daringfireball.net/linked/2007/may#wed-23-rubycocoa" title="Daring Fireball Linked List entry for RubyCocoa">Daring Fireball Linked List</a></p>
<p class="ngpostlinks"><a href="http://chopine.be/lrz/diary/2007-05-22_RubyCocoa-0-11-0-is-finally-out.html">http://chopine.be/lrz/diary/2007-05-22_RubyCocoa-0-11-0-is-finally-out.html</a></p>
<p>Laurent Sansonetti:</p>
<blockquote><p>After 5 intensive months of development, RubyCocoa 0.11.0 is out. It’s a very big release, as you can see from the <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/252571" title="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/252571">release notes</a>. We also feature a completely new <a href="http://rubycocoa.sourceforge.net/" title="http://rubycocoa.sourceforge.net/">website</a> (which is actually a Wiki, easy to maintain for us programmers).</p></blockquote>
<p>I know you can also write Cocoa apps using Java, but I&#8217;ve read that it&#8217;s probably a bad idea. I may comment further on this later.</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/05/rubycocoa-0110/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Choosing a book</title>
		<link>http://krismarkel.com/yousexything/2007/05/choosing-a-book/</link>
		<comments>http://krismarkel.com/yousexything/2007/05/choosing-a-book/#comments</comments>
		<pubDate>Wed, 23 May 2007 05:50:09 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

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

		<category><![CDATA[Objective-C]]></category>

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

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/05/choosing-a-book/</guid>
		<description><![CDATA[I&#8217;m the kind of person who puts in hours of research before buying a toothbrush*, so you can imagine the amount of thought that went into selecting a look for learning a new programming language and API.
First, I wanted to take into account the fact that I&#8217;m a Mac newbie. (I&#8217;ll have to tell the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m the kind of person who puts in hours of research before buying a toothbrush<a href="#footnote"><sup>*</sup></a>, so you can imagine the amount of thought that went into selecting a look for learning a new programming language and API.</p>
<p>First, I wanted to take into account the fact that I&#8217;m a Mac newbie. (I&#8217;ll have to tell the story of my switching in another post.) I&#8217;m also a Unix newbie. I&#8217;ve dabbled with a couple Linux distros, and at one point had managed to turn an old machine into a FreeBSD-based firewall, but I don&#8217;t really know any of the Unix tools beyond <a href="http://en.wikipedia.org/wiki/Man_pages" title="Wikipedia entry for Unix manual pages"><em>man</em></a> and <em>ls -af</em>. A note to other Mac newbies: I cannot recommend David Pogue&#8217;s <a href="http://www.oreilly.com/catalog/macxtigermm/" title="David Pogue's Missing Manual for Mac OS X">Mac OS X: The Missing Manual</a> highly enough. I still go back to it for keyboard shortcuts or to answer &#8220;How do I?&#8221; questions.</p>
<p>(Somewhat off topic: One of my primary motivations for purchasing a Mac was to become more comfortable and productive in front of a <a href="http://en.wikipedia.org/wiki/Bash" title="Wikipedia entry for Bash">Bash</a> prompt. I still don&#8217;t spend nearly as much time in Terminal as I&#8217;d like. I need to find a good Unix for Mac and Unix newbies book.)</p>
<p>Second, I learned pretty quickly that modern Mac programming is done using Objective-C and Cocoa. For a long time I couldn&#8217;t remember if Cocoa was the new API and <a href="http://en.wikipedia.org/wiki/Carbon_%28API%29" title="Wikipedia article on the Carbon API">Carbon</a> the old one or if it was the other way around. So I need to learn a new language in addition to an API.</p>
<p>Third, (and I really only recently realized this once I started doing some coding), I need to learn <a href="http://en.wikipedia.org/wiki/Xcode" title="Wikipedia article on Xcode">Xcode</a>. From what I can tell, <a href="http://en.wikipedia.org/wiki/Interface_Builder" title="Wikipedia article on Interface Builder">Interface Builder</a> is really the only way to create a Mac GUI for your application. I guess Interface Builder is technically a separate program, but the two seem to go hand in hand.</p>
<p>Okay, enough preface, what did I consider and how did I choose.</p>
<p>Well, as with most things these days, I started with Google. A search for [<a href="http://www.google.com/search?q=cocoa+tutorial&amp;hl=en" title="Google search for [Cocoa tutorial]&#8220;>Cocoa tutorial</a>] returned <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/chapter01/chapter_1_section_1.html" title="Cocoa tutorial from Apple">this</a> page. It was a enough to give me something to work on until I could find something more substantial. I&#8217;ll convey my thoughts on the article in another post. Executive summary: It&#8217;s a good introduction to Cocoa, Xcode, Interface Builder, and Objective-C, but it&#8217;s very, very brief.</p>
<p>My next stop was <a href="http://amazon.com" title="Amazon. They sell books and stuff.">Amazon</a>. A book search for [Objective C] and then sorting by rating and bestselling helped narrow the search. Note that if you do this, you&#8217;ll have to wade through lots on non-Objective-C books that float to the top of the list. <a href="http://www.samspublishing.com/bookstore/product.asp?isbn=0672325861&amp;redir=1&amp;rl=1" title="Programming in Objective-C by Stephen Kochan">Programming in Objective-C</a> by Stephen Kochan emerged as an early favorite. It&#8217;s highly rated, a best seller (among Objective-C books at any rate), and the reviews are largely positive. I came really, really close to buying this book.</p>
<p>However, being who I am (see the first paragraph of this post), I decided to do more research. I searched Amazon for [Learning Objective-C], [Cocoa] (that was a bust), [Cocoa programming], [Mac Cocoa Objective-C], [Learning Cocoa Objective-C], [Xcode Objective-C], and a ton of other terms. I also did tons of sorting and resorting and followed what seems like a million &#8220;customers also bought&#8221; and &#8220;customers ultimately bought&#8221; links. This brought out a few shortcomings of the Kochan book. First, it doesn&#8217;t talk about Cocoa at all. Not a lick. Second, a lot of the reviews had comments like, &#8220;This book is great if you&#8217;re new to object oriented coding!&#8221; Finally, like Cocoa, there was no Xcode. Everything was done via command line tools.</p>
<p>This led me away from my initial choice. First, I know OO coding pretty well. As it says on the <a href="http://krismarkel.com/yousexything/about/" title="About this blog">about page</a>, I&#8217;ve been doing OO coding for a while. Even when I was doing VBScript coding, I was <a href="http://msdn2.microsoft.com/en-us/library/23t9k18c.aspx" title="VBScript Class documentation">creating classes</a> for encapsulation. In JavaScript, I was creating <a href="http://mckoss.com/jscript/object.htm" title="Object Oriented Programming in JavaScript">prototypes</a> for the same reason. I&#8217;m not trying to boast here (okay, maybe a little), but I want to convey that I pretty much think in OO these days and I already know the principles like encapsulation, inheritance, and polymorphism. In terms of learning Objective-C, I really just needed a reference or &#8220;Rosetta Stone&#8221; to translate Objective-C syntax into the Java or C# equivalent and vice-versa.</p>
<p>Second, show me the Cocoa! Learning a new API is much harder than learning a language, at least for me. Most languages, especially C-based languages, are pretty concise and and have a small number of keywords. &#8220;Narrow but deep&#8221; is a good way to describe a good language. There are a small number of keywords, but lots of power. APIs, especially concerning operating systems, are broad and deep.  There&#8217;s  a ton of power, but there are many, many namespaces, classes, and methods. I don&#8217;t know how many times in C# I&#8217;ve used lines and lines of code to implement something only to later learn there was a framework call that would do it in a single line of code.</p>
<p>Finally, I knew from the <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/chapter01/chapter_1_section_1.html" title="Apple Cocoa tutorial">Apple tutorial</a> that I&#8217;d need some Xcode advice. I tried poking around the IDE on my own a few times (I used it to code some Java design pattern samples) and couldn&#8217;t really get the hang of it on my own. I have a fondness for command line tools and simple editors like emacs, but I know the power of really knowing your IDE from my experience with Visual Studio releases over the years.</p>
<p>So now I new I needed a book that included Objective-C, Cocoa, and Xcode. More searching, sorting, and following links led to <a href="http://bignerdranch.com/products/cocoa1.shtml" title="Cocoa Programming book by Aaron Hillegass">Cocoa Programming for Mac OS X</a> by Aaron Hillegass. The ability to read through the preface on Amazon (albeit of an earlier edition) and a <a href="http://books.slashdot.org/article.pl?sid=04/05/26/192224" title="Slashdot review of Cocoa Programming for Mac OS X">review on Slashdot</a> were the final selling points.</p>
<p>I&#8217;ll post my thought on each chapter as I go through them, but so far I like it. I have some issues that you&#8217;ll hear (err&#8230; read) about later, but I can easily recommend it to folks who want to learn to write Mac programs. It&#8217;s got a nice introduction to Objective-C and Xcode (and Interface Builder), and covers some important pieces of the Cocoa API.</p>
<p><a title="footnote" name="footnote"></a><sup>*</sup>This drives my wife crazy, and who can blame her.</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/05/choosing-a-book/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cocao</title>
		<link>http://krismarkel.com/yousexything/2007/05/cocao/</link>
		<comments>http://krismarkel.com/yousexything/2007/05/cocao/#comments</comments>
		<pubDate>Mon, 21 May 2007 05:10:09 +0000</pubDate>
		<dc:creator>Kris Markel</dc:creator>
		
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://krismarkel.com/yousexything/2007/05/cocao/</guid>
		<description><![CDATA[About half the time I type the word Cocoa, it comes our Cocao. Needless to say, cocao is related to cocoa, but not Cocoa. It doesn&#8217;t help that I&#8217;ve been staring at the word cocoa so much at this point, it automatically looks misspelled.
I apologize in advance for future misspellings and any confusion they cause.
]]></description>
			<content:encoded><![CDATA[<p>About half the time I type the word <em>Cocoa</em>, it comes our <em>Cocao</em>. Needless to say, <a href="http://www.answers.com/cacao" title="Definition of cacao">cocao</a> is related to cocoa, but not <a href="http://en.wikipedia.org/wiki/Cocoa_%28API%29" title="Wikipedia article on the Cocoa API">Cocoa</a>. It doesn&#8217;t help that I&#8217;ve been staring at the word <em>cocoa</em> so much at this point, it automatically looks misspelled.</p>
<p>I apologize in advance for future misspellings and any confusion they cause.</p>
]]></content:encoded>
			<wfw:commentRss>http://krismarkel.com/yousexything/2007/05/cocao/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 2.276 seconds -->
