<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>iOS</title>
        <link>http://codingmonk.com/category/12.aspx</link>
        <description>Programming for iOS, or more specifically Apple's iPad, iPhone, and iPod touch.</description>
        <language>en-US</language>
        <copyright>Jim Fisher</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <item>
            <title>Postcards from Apple Land: Muscle Memory Trumps Saint Ambrose</title>
            <link>http://www.codingmonk.com/archive/2010/08/04/postcards-from-apple-land-muscle-memory-trumps-saint-ambrose.aspx</link>
            <description>&lt;p&gt;As mentioned &lt;a href="archive/2010/07/16/postcards-from-apple-land-a-venture-into-enemy-territory.aspx"&gt;last article&lt;/a&gt;, I'm currently surveying offerings from the "other side". That is, when I recently awoke to find myself owning (unintentionally and completely by accident) an iPhone, iPad, and Mac, I resigned myself to making the best of it and cracked the boxes open to see what was inside. 
&lt;/p&gt;&lt;p&gt;Yeah. That's how I'm telling the story. 
&lt;/p&gt;&lt;p&gt;The truth is, beneath it all I like new, cool technology. And the iPad is definitely new and cool. So to pacify that inner techie, and to try my hand at iPad development, I bought a Mac, without which there can be no iPad development to speak of. While I bumble my way around this new and somewhat foreign Apple landscape, I'm recording my experiences for the benefit of other Windows developers looking to do the same. 
&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Helvetica"&gt;&lt;strong&gt;The Hardware &lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;The act of buying the Mac was painless if not terribly unique. I walked into my local Best Buy store, grabbed the Mac mini box off the shelf (I swear, I have books that are larger) and headed home (stopping briefly at the register to pay). The mini is pretty basic. It comes with no monitor, no keyboard, no mouse. And I was mostly content with this since I have these already. 
&lt;/p&gt;&lt;p&gt;I say "mostly" because there's a part of me that really wanted to go native, to follow the spirit of the famous saying which Wikipedia attributes to &lt;a href="http://en.wikipedia.org/wiki/Saint_Ambrose"&gt;Saint Ambrose&lt;/a&gt;: &lt;span style="color:black; font-family:Helvetica"&gt;&lt;em&gt;when in Apple land, do as the Appleonians do&lt;/em&gt;&lt;/span&gt;. But that part of me, which clung to the ideal of Apple peripherals on Apple devices, was very much at odds with the beautiful, fulfilling, symbiotic relationship I have with my keyboard. 
&lt;/p&gt;&lt;p&gt;Don't look at me like that. Lots of people who type for a living develop a dependency on their keyboards. It is not something to be trifled with. 
&lt;/p&gt;&lt;p&gt;So I was a little concerned, since Apple peripherals are of a different breed than my precious Microsoft natural keyboard and Explorer mouse combo, but as it turns out I needn't have worried. I just plugged the USB cable in alongside my monitor cable and sound input using a generic USB switch and was up and running in seconds. The Mac detected my wireless network too. Nothing sinister surfacing for Windows users so far. 
&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Helvetica"&gt;&lt;strong&gt;The Operating System&lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;OSX is fine. Really. It's been a few weeks now and I've grown comfortable with it. I know where things are, it comes with Dock and Spaces, both tools that require installing 3rd party downloads for similar functionality in Windows. And it has all the familiar Unix terminal tools and directory structure, which is familiar to me. But on balance, I have to say that Windows 7 kicks its butt. 
&lt;/p&gt;&lt;p&gt;Now, now. Unball your fists and take your seats Apple fan boys. My blog, my opinions. I just call 'em like I see 'em. 
&lt;/p&gt;&lt;p&gt;To be fair, OSX stomps on XP with regard to aesthetics, and Vista's stability issues make it a non-contender. But next to Windows 7, OSX feels... I dunno, outdated. I'm sure OS11 will fare better against my subjective and admittedly biased comparison, but OSX is still pretty okay. It's nothing to be ashamed of, and at the moment I see no reason to cover it deeper as the specifics aren't relevant to developing for the iPad. 
&lt;/p&gt;&lt;p&gt;Other than you have to have it to do so, of course. 
&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Helvetica"&gt;&lt;strong&gt;The Development Environment&lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;Which brings me to XCode. 
&lt;/p&gt;&lt;p&gt;XCode is Apple's standard development environment. If you want to develop for the Mac, the iPhone, or the iPad, you'll want to install it and the appropriate SDKs. They're available from Apple's developer site and they're free. 
&lt;/p&gt;&lt;p&gt;If you're an experienced Visual Studio developer, you're in for an adjustment. I'm not here to slam XCode. After all, I'm all about diversifying skill sets. I've dabbled in Delphi, played with Power Builder, and exercised with Eclipse. I have tinkered around with my share of IDEs on various OSs and I can honestly say that I have never found a serious development environment that made me miss Dev Studio more than Apple's XCode and its partner in crime, Interface Builder. 
&lt;/p&gt;&lt;p&gt;Each session, my blood pressure would begin to rise almost immediately. Within a few minutes I would begin reflecting on how much my Mac mini resembled an oversized hockey puck. Soon I would consider how it might be satisfying to see it serve in that capacity. Invariably I would stomp away in disgust, fuming. "How can anyone make a decent application with such a crummy tool?" 
&lt;/p&gt;&lt;p&gt;Of course, a bizzillion apps in the app store paint a different story. Clearly people can and do write apps, some of them quite good, using XCode. I knew I must be missing something. 
&lt;/p&gt;&lt;p&gt;When I actually stopped to analyze myself I found that the peculiar workings of the IDE, the seemingly unstable interactions between XCode and Interface Builder, and my general unfamiliarity of the environment itself were not solely to blame for my aggravation. I've used some really rough development tools in the past and I've certainly seen worse. But what really bothered me the most, the difference that made writing a simple application unbearable, was typing. Yes, even on my glorious keyboard, typing was a problem. 
&lt;/p&gt;&lt;p&gt;At first I thought it was my keyboard itself and this issue stemmed from the bad mojo begot from connecting a Windows keyboard to a Mac. But no. It turns out that Macs handle a few key navigation strokes differently than nearly every other operating system known to man. Keys like Home, End, Page Up, Page Down, the arrows keys, and the combinations of these with Control and Shift behave differently in ways that seem innocuous but have vile implications to those immersed in the autonomic process of translating thought into keystrokes. 
&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Helvetica"&gt;&lt;strong&gt;Remapping Your Keys &lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;Google reveals that a lot of people have this complaint about the Mac and in retrospect I've come to the conclusion that if Saint Ambrose had to contend with muscle memory, the "when in Rome" saying would never have been coined. So making keys work in XCode in a more familiar fashion is my number one recommendation those developers with a Windows background. It's easy, requires only a couple of minutes, and will have a major impact on your productivity. 
&lt;/p&gt;&lt;p&gt;&lt;img align="left" src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr1.png" alt="" /&gt;&lt;span style="color:black; font-family:Helvetica"&gt;&lt;strong&gt;1. Remapping "Spaces" &lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;"Spaces", Apple's virtual desktop manager, uses the Control + arrow key combinations by default. You can change this from the system preferences. I chose the "&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr2.png" alt="" /&gt; + Arrow Keys" option as shown here. The non-Windows &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr3.png" alt="" /&gt;symbol signifies the "command" key which, incidentally, is just another name for the Apple key. If you're using an Apple keyboard, it probably looks like this: &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr4.jpg" alt="" /&gt;. In my case the Windows key, which is positioned in the same place, serves this purpose. 
&lt;/p&gt;&lt;p&gt;This frees us up to define the Control + arrow combinations when we remap XCode. 
&lt;/p&gt;&lt;p&gt;         
 &lt;/p&gt;&lt;p&gt;&lt;em&gt;So, note to the Windows man: for future reference, &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr5.png" alt="" /&gt;equals &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr6.png" alt="" /&gt;. &lt;/em&gt;
	&lt;/p&gt;&lt;p&gt;         
 &lt;/p&gt;&lt;p&gt;&lt;img align="right" src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr7.png" alt="" /&gt;&lt;strong&gt;2. Remapping XCode&lt;/strong&gt;
	&lt;/p&gt;&lt;p&gt;For many uses you can remap the keyboard by modifying the DefaultKeyBindings.dict file either directly or indirectly. XCode itself doesn't honor this file, however. Instead XCode has its own key binding mechanism which is quite a bit easier than doing it by hand. You can access this functionality from the main menu by selecting "XCode", then "Preferences". From the preferences dialog, choose the "Key Bindings" icon. The resulting dialog state is shown here. 
&lt;/p&gt;&lt;p&gt;If you want, you can change the default bindings, but I chose to create a new set, a copy of the defaults to work with. Do this by clicking on the "plus" symbol on the bottom, left hand corner of the window, and name it however you see fit. 
&lt;/p&gt;&lt;p&gt;To change a binding, select the appropriate list item by description and double click on the second field, the column entitled "Key", putting the dialog in key capture mode. This mode hosts two more "+" and "-" buttons next to the selected list of key combinations (not shown here). You can either replace an existing combination or hit the "+" button to add a new one. Type the key combination you want to assign. 
&lt;/p&gt;&lt;p&gt;         
 &lt;/p&gt;&lt;p&gt;Below is a list of key bindings which have been most useful to me. You may find others. There are definitely Windows keystrokes that are not covered here, but even these few adjustments will significantly enhance your coding experience. 
&lt;/p&gt;&lt;div style="text-align: center"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:299px" /&gt;&lt;col style="width:105px" /&gt;&lt;col style="width:201px" /&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height: 19px; background: black"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  solid #404040 1.0pt; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="color:white; font-family:Helvetica; font-size:10pt"&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  solid #404040 1.0pt; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="color:white; font-family:Helvetica; font-size:10pt"&gt;&lt;strong&gt;Key&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  solid #404040 1.0pt; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="color:white; font-family:Helvetica; font-size:10pt"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move Word Backward&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^ &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0159_Postcardsfr1.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Left arrow&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move Word Backward Extending Selection&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr8.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0159_Postcardsfr2.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Shift + Left arrow&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move Word Forward&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^ &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0159_Postcardsfr3.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Right arrow&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move Word Forward Extending Selection&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr9.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0159_Postcardsfr4.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Shift + Right arrow&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to Beginning of Document&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr10.png" alt="" /&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Home&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to Beginning of Document Extending Selection&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr11.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr12.png" alt="" /&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Shift + Home&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to Beginning of Line&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr13.png" alt="" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Home&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to Beginning of Line Extending Selection&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr14.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr15.png" alt="" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Shift + Home&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to End of Document&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr16.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + End&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to End of Document Extending Selection&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr17.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr18.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Shift + End&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to End of Line&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr19.png" alt="" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;End&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Move to End of Line Extending Selection&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr20.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr21.png" alt="" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Shift + End&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Page Up&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr22.png" alt="" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Page Up&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Page Down&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr23.png" alt="" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Page Down&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Copy&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^C&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + C&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Cut&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^X&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + X&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Paste&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^V&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + V&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 19px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Undo&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^Z, &lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr24.png" alt="" /&gt;&lt;img src="http://www.codingmonk.com/images/www_codingmonk_com/080410_0658_Postcardsfr25.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Z or Alt + Backspace&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 17px; background: white"&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #404040 1.0pt; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;Redo&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="font-size:10pt"&gt;^Y &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="middle" style="padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #404040 1.0pt; border-right:  solid #404040 1.0pt"&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:10pt"&gt;Control + Y&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Next article we'll start digging into the actual development process.&lt;span style="font-family:MS Shell Dlg 2; font-size:8pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.codingmonk.com/aggbug/29.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jim Fisher</dc:creator>
            <guid>http://www.codingmonk.com/archive/2010/08/04/postcards-from-apple-land-muscle-memory-trumps-saint-ambrose.aspx</guid>
            <pubDate>Wed, 04 Aug 2010 06:59:44 GMT</pubDate>
            <wfw:comment>http://www.codingmonk.com/comments/29.aspx</wfw:comment>
            <comments>http://www.codingmonk.com/archive/2010/08/04/postcards-from-apple-land-muscle-memory-trumps-saint-ambrose.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.codingmonk.com/comments/commentRss/29.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Postcards from Apple Land: A Venture into Enemy Territory</title>
            <link>http://www.codingmonk.com/archive/2010/07/16/postcards-from-apple-land-a-venture-into-enemy-territory.aspx</link>
            <description>&lt;p&gt;I don't know what's gotten into me. Some creepy form of mid-life crisis I suppose, but yes. I can confirm the rumors are true: 
&lt;/p&gt;&lt;p&gt;I bought a Mac. 
&lt;/p&gt;&lt;p&gt;As I rationalized it to an associate&lt;span style="color:#225522"&gt;, &lt;/span&gt;this doesn't mean for me what it may for others:&lt;span style="color:#225522"&gt;
		&lt;/span&gt;
	&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:#225522"&gt;"When people say they decided to get a Mac, it often means they replaced their PC with a Macintosh.  Fat chance.  I've still got my main workstation (Win7), my test box (Vista), my general purpose server (Win Server 2008), my Tablet PC (Vista), my living room Media Center (Win7), my MAME-based arcade machine in the game room (XP), plus a slew of Windows laptops, net-books, and desktops used by my wife and kids or sitting in the garage waiting for the right project to come along.  &lt;/span&gt;
	&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:#225522"&gt;"I haven't exactly thrown Microsoft away and moved over to the dark side." &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;Yes, cognitive dissonance and I are good friends. &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;So what events led to me committing the eighth deadly sin? &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;It was actually a progression. My wife gave me an iPhone for my birthday (much as Eve tempted Adam with an Apple, I believe) and I had the opportunity to experience firsthand the tactile interface and infrastructure Apple has put together for developers to sell their work.  Shortly after, I picked up an iPad. Same touch interface, same application infrastructure, much bigger screen. I just couldn't help myself. &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;It took all of a minute for the developer in me to raise his head and begin eyeing it as a fresh, new platform with a prebuilt, thriving distribution network. Development for the iPad seems like something too big not to look into.  And, of course, you can only do that on a Mac (or a Hackintosh, but I looked into that and it seemed less trouble to just buy the Mac mini).  &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;So yes, I've an iPhone, an iPad, and a Macintosh. &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;And it makes me feel kinda dirty.  &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;You may say I'm a Judas, but I'm not the only one. &lt;/strong&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;One thing is for certain: I'm not alone. Since the release of the iPhone, internet forums and newsgroups have be inundated by developers asking if there's a way to write apps for these devices from a Windows machine and while I've seen a little headway in this department with so-called "jail broken" devices, and promises of bigger things to come, for now Apple has taken steps to ensure that nearly all iPhone/iPad development is restricted to those machines running OSX. Because of this, I'm confident that right now there are quite a few Windows developers in the same boat I am, looking to find their way around the development offerings of Apple and hoping to realize their iOS solutions. &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;In Lennon's words: "&lt;em&gt;Imagine all the people".&lt;/em&gt;
		&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;If recording my experiences along the way can help save trouble for others... well, that's what CodingMonk is all about, right? Following the convention, I've added a new category to the site: "iOS", since this is Apple's operating system for all of their so-called iTouch devices: "iPod Touch", iPhone, and iPad.&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Disclaimer &lt;/strong&gt;
	&lt;/p&gt;&lt;p&gt;Despite my affinity for Windows, I should confess up front that I haven't started this journey as a complete n00b to non-Microsoft offerings. I spent a decade or so paying hobbyist homage to Linux, so Apple's shift to Posix compliancy with OSX translates into a measure of fluency for me. Augmenting this is the mental osmosis accompanying a few years sharing my study with my wife's "Macintoy". So I'm not really jumping into waters uncharted. As such, when I record my explorations, I might paint the Apple landscape less critically than some fellow Windows fan-boys feel I ought. To those peers of mine, please accept my sincere apologies. That said, I've spent the last couple of decades with a decided aversion to Macs in general and Apple specifically. This too may influence my opinions against the Mac unfairly, so to the Apple aficionados out there, ditto. 
&lt;/p&gt;&lt;p&gt;&lt;a href="archive/2010/08/04/postcards-from-apple-land-muscle-memory-trumps-saint-ambrose.aspx"&gt;Next article&lt;/a&gt;, before I really delve into the act of developing, I'll cover the set up of my shiny new Apple system, how I integrated it into my workspace, and how I configured it to work satisfactorily under the standard of my Windows biased tastes.&lt;/p&gt;&lt;img src="http://www.codingmonk.com/aggbug/27.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jim Fisher</dc:creator>
            <guid>http://www.codingmonk.com/archive/2010/07/16/postcards-from-apple-land-a-venture-into-enemy-territory.aspx</guid>
            <pubDate>Sat, 17 Jul 2010 00:50:29 GMT</pubDate>
            <wfw:comment>http://www.codingmonk.com/comments/27.aspx</wfw:comment>
            <comments>http://www.codingmonk.com/archive/2010/07/16/postcards-from-apple-land-a-venture-into-enemy-territory.aspx#feedback</comments>
            <wfw:commentRss>http://www.codingmonk.com/comments/commentRss/27.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>