<?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>bytesizecreations &#187; mac osx</title>
	<atom:link href="http://www.bytesizecreations.com/category/mac-osx/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bytesizecreations.com</link>
	<description>Musings from a busy mind</description>
	<lastBuildDate>Sun, 14 Jun 2009 17:44:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Helper Objects</title>
		<link>http://www.bytesizecreations.com/2008/09/helper-objects/</link>
		<comments>http://www.bytesizecreations.com/2008/09/helper-objects/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 07:44:00 +0000</pubDate>
		<dc:creator>Michael Gaylord</dc:creator>
				<category><![CDATA[coding style]]></category>
		<category><![CDATA[mac osx]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.42restaurants.com/byte/?p=41</guid>
		<description><![CDATA[I think this is a brilliant comparison between using Helper Objects and Sub-Classing:

Once upon a time (before Baywatch), there was a man with no name. Knight Industries decided that if this man were given guns and wheels and booster rockets, he would be the perfect crime-fighting tool. First, they thought, &#8220;Let&#8217;s subclass him and override [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_eTNQ8DJPMbw/SN833LTUEkI/AAAAAAAAATI/Wod99opjKsw/s1600-h/Knight+Rider+and+Arnold+Jackson-785551-thumb.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_eTNQ8DJPMbw/SN833LTUEkI/AAAAAAAAATI/Wod99opjKsw/s320/Knight+Rider+and+Arnold+Jackson-785551-thumb.jpg" alt="" border="0" name="BLOGGER_PHOTO_ID_5250977111603417666" id="BLOGGER_PHOTO_ID_5250977111603417666" /></a>I think this is a brilliant comparison between using Helper Objects and Sub-Classing:</p>
<blockquote>
<p><i>Once upon a time (before Baywatch), there was a man with no name. Knight Industries decided that if this man were given guns and wheels and booster rockets, he would be the perfect crime-fighting tool. First, they thought, &#8220;Let&#8217;s subclass him and override everything we need to add the guns and wheels and booster rockets.&#8221; The problem was that to subclass Michael Knight, you would need to know an awful lot about his guts so that you could wire them to guns and booster rockets. So instead, they created a helper object, the Knight Industries 2000, or &#8220;KITT the super car.&#8221;<br /></i></p>
<p><i>Note how this is different from the RoboCop approach. RoboCop was a man subclassed and extended. The whole RoboCop project involved dozens of surgeons who extended the man&#8217;s brain into a fighting machine. This is the approach taken with many object-oriented frameworks.</i></p>
<p><i>While approaching the perimeter of an arms dealer&#8217;s compound, Michael Knight would speak to KITT over his watch-radio. &#8220;KITT,&#8221; he would say, &#8220;I need to get to the other side of that wall.&#8221; KITT would then blast a big hole in the wall with a small rocket. After destroying the wall, Kitt would return control to Michael, who would stroll through the rubble.<br /></i></p>
</blockquote>
<div style="">
  From the book: <a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619/ref=pd_bbs_sr_1_s9_rk?ie=UTF8&amp;s=books&amp;s9r=8a585b43183233f601183314d20d0021&amp;itemPosition=1&amp;qid=1222587750&amp;sr=8-1">Cocoa Programming for Mac OS X by Aaron Hillegass</a>.
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizecreations.com/2008/09/helper-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bits, Bytes &amp; The iPhone SDK</title>
		<link>http://www.bytesizecreations.com/2008/09/bits-bytes-iphone-sdk/</link>
		<comments>http://www.bytesizecreations.com/2008/09/bits-bytes-iphone-sdk/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 14:39:00 +0000</pubDate>
		<dc:creator>Michael Gaylord</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac osx]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.42restaurants.com/byte/?p=35</guid>
		<description><![CDATA[So I&#8217;ve been toying with the idea of building an application for the iPhone and yesterday I finally decided to download the SDK. After agreeing to give my soul to Apple as stipulated in their Terms &#38; Conditions and 8 hours of downloading later I finally got the full SDK.
I have been trolling through their [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been toying with the idea of building an application for the iPhone and yesterday I finally decided to download the <span class="blsp-spelling-error" id="SPELLING_ERROR_0">SDK</span>. After agreeing to give my soul to Apple as stipulated in their Terms &amp; Conditions and 8 hours of downloading later I finally got the full <span class="blsp-spelling-error" id="SPELLING_ERROR_1">SDK</span>.</p>
<p>I have been trolling through their documentation and it looks like I will have to get my hands dirty in Objective-C. Which, from what I can tell, is a slightly cleaner version of C++ specifically designed for Mac <span class="blsp-spelling-error" id="SPELLING_ERROR_2">OSX</span>. In case you didn&#8217;t know, the iPhone runs on a heavily modified version of the Mac <span class="blsp-spelling-error" id="SPELLING_ERROR_3">OSX</span> kernel. This has its benefits in that by learning to program for the iPhone I will also slowly become accustomed to writing programs for Mac.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_eTNQ8DJPMbw/SMFl7tNXl9I/AAAAAAAAABQ/UNqioetmuqw/s1600-h/1023147_apple.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_eTNQ8DJPMbw/SMFl7tNXl9I/AAAAAAAAABQ/UNqioetmuqw/s400/1023147_apple.jpg" alt="" border="0" name="BLOGGER_PHOTO_ID_5242583517658322898" /></a><br />
The easiest way to learn a programming language is to remember that they are all essentially the same. Don&#8217;t get confused between a programming language and a markup language. I can&#8217;t tell you how many times I have read on programmer <span class="blsp-spelling-error" id="SPELLING_ERROR_4">resumés</span> that HTML is a programming language. HTML is a markup language &#8211; a way of describing visual data in a hierarchical textual fashion. A programming language is a set of statements that can be executed sequentially and all procedural programming languages follow a similar set of rules and contain 3 specific constructs:</p>
<ol>
<li>Variables</li>
<li>Conditional statements</li>
<li>And Loops</li>
</ol>
<p>With these three constructs it is possible, with great pain I might add, to build any program.</p>
<p>Of course a programming language is of no use if there is no way of interpreting it. Way back in the days before Microsoft and Apple, programs were created on <a href="http://en.wikipedia.org/wiki/Punch_cards"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_5">punch cards</span></a> &#8211; pieces of cardboard with rows of holes punched in them. Every hole represented a 1 and every non-hole represented a 0. The <span class="blsp-spelling-corrected" id="SPELLING_ERROR_6">punch cards</span> were fed through the computer which would read the rows sequentially and then execute them. <span class="blsp-spelling-corrected" id="SPELLING_ERROR_7">Punch cards</span> are so old they were first used back in the 18<span class="blsp-spelling-error" id="SPELLING_ERROR_8">th</span> century to control weaving looms and were used up until the last century still.</p>
<p>So-called &#8216;modern&#8217; computers work in much the same way. High-level programming languages such as C++ and Java are compiled by another piece of software, called a compiler and converted to what is known as <a href="http://en.wikipedia.org/wiki/Assembly_language">Assembly Language</a>. Assembly language is a low level language used to program hardware, such as your computer&#8217;s CPU. Assembly code is then converted to what is known as Object Code. Object Code is the final sequence of 1s and 0s &#8211; the holes and non-holes on <span class="blsp-spelling-corrected" id="SPELLING_ERROR_9">punch cards</span>.</p>
<p>Every single computer program you use is constructed in this way. So next time you get the dreaded &#8216;blue-screen-of-death&#8217; or your e-mail application crashes, just remember how many 1s and 0s are moving through the system. A modern car consists of approximately 12000 parts. Microsoft Windows <span class="blsp-spelling-error" id="SPELLING_ERROR_10">XP</span> consists of approximately 1 billion lines of code and it works 99% of the time. That is absolutely incredible!</p>
<p>I guess what I am trying to say here is that learning how to program within the iPhone <span class="blsp-spelling-error" id="SPELLING_ERROR_11">SDK</span> and learning Objective-C is trivial compared to building an operating system like Mac <span class="blsp-spelling-error" id="SPELLING_ERROR_12">OSX</span> or programming a computer&#8217;s CPU. It&#8217;s made even easier if we remember that all procedural programming languages are constructed out of similar building blocks and that if we learn and understand the basics of a subject we can go on to learn just about anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizecreations.com/2008/09/bits-bytes-iphone-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
