<?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>Outer Level Blog &#187; Programming</title>
	<atom:link href="http://outerlevel.com/blog/categories/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://outerlevel.com/blog</link>
	<description>Building a MicroISV</description>
	<lastBuildDate>Mon, 12 Sep 2011 17:30:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>WWDC Itinerary</title>
		<link>http://outerlevel.com/blog/2011/04/02/wwdc-itinerary/</link>
		<comments>http://outerlevel.com/blog/2011/04/02/wwdc-itinerary/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 15:02:13 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Knapsack]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=520</guid>
		<description><![CDATA[Apple recently announced dates for WWDC 2011 which sold out in about ten hours. With help from some friends I was able to procure tickets, a nearby affordable hotel, and free flights using miles. I&#8217;m pretty excited about this year&#8217;s World Wide Developers Conference since I missed last year due to short notice and existing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://outerlevel.com/knapsack/"><img style="float:right;border:none;margin:15px;" src="http://outerlevel.com/blog/images/KS-WWDC11.png" /></a></p>
<p>Apple recently announced dates for <a href="http://developer.apple.com/wwdc/">WWDC 2011</a> which sold out in about ten hours. With help from some friends I was able to procure tickets, a nearby affordable hotel, and free flights using miles.</p>
<p>I&#8217;m pretty excited about this year&#8217;s World Wide Developers Conference since I missed last year due to short notice and existing plans. With all of the new things coming in Mac OS X 10.7 (Lion), Apple is sure to provide tons of new information. I&#8217;m looking to be inspired as we plan for some new things coming from Outer Level.</p>
<p>As I was putting together my trip itinerary in <a href="http://outerlevel.com/knapsack/">Knapsack</a>, I thought it would be fun to share it with any other developers also making the pilgrimage this year. Maybe it can save you some time when putting your plans together.</p>
<p>You can use <b>File > Import Trips&#8230;</b> to import the WWDC itinerary into Knapsack where you can customize the details for your own plans. </p>
<p>If you have any suggestions for activities or locations to included in the itinerary, I&#8217;d love to hear from you.</p>
<ul>
<li><a href="http://outerlevel.com/downloads/trips/Knapsack-WWDC-2011.zip">Download Knapsack WWDC Itinerary</a></li>
<li><a href="http://outerlevel.com/downloads/Knapsack.zip">Download the Knapsack Free 30 Day Trial</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2011/04/02/wwdc-itinerary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing Features</title>
		<link>http://outerlevel.com/blog/2010/02/03/removing-features/</link>
		<comments>http://outerlevel.com/blog/2010/02/03/removing-features/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 16:17:13 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[User Interface Design]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=416</guid>
		<description><![CDATA[Lukas Mathis on Removing Features. I especially like this bit: You can’t please all of the people all of the time. Sometimes, you have to make a few people really unhappy in order to make everyone else a little bit happier. Don’t let angry customers dictate your application design &#8211; the application isn’t as important [...]]]></description>
			<content:encoded><![CDATA[<p>Lukas Mathis on <a href="http://ignorethecode.net/blog/2010/02/02/removing-features/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+IgnoreTheCode+%28ignore+the+code%29">Removing Features</a>.</p>
<p>I especially like this bit:</p>
<blockquote><p>
You can’t please all of the people all of the time. Sometimes, you have to make a few people really unhappy in order to make everyone else a little bit happier. Don’t let angry customers dictate your application design &#8211; the application isn’t as important to them as it is to you. Keeping your application healthy is your responsibility.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2010/02/03/removing-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Example: Drawing the iPhone Back Button</title>
		<link>http://outerlevel.com/blog/2008/12/26/code-example-drawing-the-iphone-back-button/</link>
		<comments>http://outerlevel.com/blog/2008/12/26/code-example-drawing-the-iphone-back-button/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 20:42:41 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Cocoa / Objective-C]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=307</guid>
		<description><![CDATA[Recently, I had need to provide a back button similar to the one used in Mobile Safari for a consulting project. Many of the buttons used in the built-in iPhone applications are made available via the SDK with built in button types and graphics. Unfortunately, the back button is not one of these. Because I [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:10px;">
<img src="http://outerlevel.com/blog/images/iPhoneBackButton.png" />
</div>
<p>Recently, I had need to provide a back button similar to the one used in Mobile Safari for a consulting project.  </p>
<p>Many of the buttons used in the built-in iPhone applications are made available via the SDK with built in button types and graphics.  Unfortunately, the back button is not one of these.</p>
<p>Because I needed to display the toolbar button from inside a static library which can not include images, I had to render the back arrow directly in code. </p>
<p>Since this was a bit time consuming, I thought I would share in hopes that it saves someone else a little bit of time.</p>
<div class="codeblock">
<pre lang="objc" line="1">
- (CGContextRef)createContext
{
   // create the bitmap context
   CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
   CGContextRef context = CGBitmapContextCreate(nil,27,27,8,0,
                            colorSpace,kCGImageAlphaPremultipliedLast);
   CFRelease(colorSpace);
   return context;
}

- (CGImageRef)createBackArrowImageRef
{
   CGContextRef context = [self createContext];

   // set the fill color
   CGColorRef fillColor = [[UIColor blackColor] CGColor];
   CGContextSetFillColor(context, CGColorGetComponents(fillColor));

   CGContextBeginPath(context);
   CGContextMoveToPoint(context, 8.0f, 13.0f);
   CGContextAddLineToPoint(context, 24.0f, 4.0f);
   CGContextAddLineToPoint(context, 24.0f, 22.0f);
   CGContextClosePath(context);
   CGContextFillPath(context);

   // convert the context into a CGImageRef
   CGImageRef image = CGBitmapContextCreateImage(context);
   CGContextRelease(context);

   return image;
}

- (UIBarButtonItem *)backButton
{
   CGImageRef theCGImage = [self createBackArrowImageRef];
   UIImage *backImage = [[UIImage alloc] initWithCGImage:theCGImage];
   CGImageRelease(theCGImage);

   UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backImage
                                        style:UIBarButtonItemStylePlain
                                        target:self.webView
                                        action:@selector(goBack)];

   [backImage release], backImage = nil;

   return [backButton autorelease];
}
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/12/26/code-example-drawing-the-iphone-back-button/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>uDevGames 2008 Game Programming Contest</title>
		<link>http://outerlevel.com/blog/2008/12/02/udevgames-2008-game-programming-contest/</link>
		<comments>http://outerlevel.com/blog/2008/12/02/udevgames-2008-game-programming-contest/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 15:06:07 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=293</guid>
		<description><![CDATA[iDevGames announces the start of their uDevGames 2008 contest: iDevGames is proud to announce the start of the fifth uDevGames Mac Game Development Contest! The contest challenges participants to create a Mac OS X game in three months time, which will then be subjected to public vote and peer vote, with the best in a [...]]]></description>
			<content:encoded><![CDATA[<p>iDevGames announces the start of their <a href="http://www.idevgames.com/news/official-start-of-udevgames-2008">uDevGames 2008</a> contest:</p>
<blockquote><p>
iDevGames is proud to announce the start of the fifth uDevGames Mac Game Development Contest! The contest challenges participants to create a Mac OS X game in three months time, which will then be subjected to public vote and peer vote, with the best in a variety of categories receiving prizes provided by our generous sponsors.
</p></blockquote>
<p>My game, <a href="http://outerlevel.com/bullfrog/">Bullfrog</a> for Mac is a <a href="http://makemacgames.com/2006/01/24/bullfrog-a-postmortem/">direct result</a> of a previous iDevGames contest back in 2005.  It was a fun challenge and great learning experience.   Nothing like a true deadline to push you to get something done and you never know where <a href="http://outerlevel.com/bullfrog-touch">this may lead you</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/12/02/udevgames-2008-game-programming-contest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Village Toy Maker</title>
		<link>http://outerlevel.com/blog/2008/11/15/the-village-toy-maker/</link>
		<comments>http://outerlevel.com/blog/2008/11/15/the-village-toy-maker/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 15:00:26 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Micro ISV]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=289</guid>
		<description><![CDATA[Brent Simmons: Advice for Indies You have to work every day. You have to sit in the chair and stay seated. And sleep and come back to the chair. You need to wear out that chair and then buy a new one and then wear out that one. &#8230; I shouldnâ€™t even have to say [...]]]></description>
			<content:encoded><![CDATA[<p>Brent Simmons: <a href="http://inessential.com/?comments=1&#038;postid=3564">Advice for Indies</a></p>
<blockquote><p>
You have to work every day. You have to sit in the chair and stay seated. And sleep and come back to the chair. You need to wear out that chair and then buy a new one and then wear out that one.</p>
<p>&#8230;</p>
<p>I shouldnâ€™t even have to say it, but I will: you need a weblog. People in the village love toys, but they also like to get to know the village toy-maker.</p>
<p>Thatâ€™s you, and itâ€™s a great job.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/11/15/the-village-toy-maker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mike Ash: iPhone Development Story</title>
		<link>http://outerlevel.com/blog/2008/09/18/mike-ash-iphone-development-story/</link>
		<comments>http://outerlevel.com/blog/2008/09/18/mike-ash-iphone-development-story/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 14:00:55 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=261</guid>
		<description><![CDATA[Now, this sounds familiar. Mike Ash, describes the process of developing iPhone applications. Finally, nearly a month after the original submission, the application is accepted by Apple and appears in the store. It spent longer going through Apple&#8217;s approval process than it did in development! And while Apple did find a legitimate bug, spending a [...]]]></description>
			<content:encoded><![CDATA[<p>Now, this sounds familiar.  Mike Ash, describes <a href="http://www.mikeash.com/?page=pyblog/the-iphone-development-story.html">the process of developing iPhone applications</a>.</p>
<blockquote><p>
	Finally, nearly a month after the original submission, the application is accepted by Apple and appears in the store. It spent longer going through Apple&#8217;s approval process than it did in development! And while Apple did find a legitimate bug, spending a month in limbo for a single bug is a very poor tradeoff.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/09/18/mike-ash-iphone-development-story/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Justin Williams: Lessons Learned as an Indie Mac Developer</title>
		<link>http://outerlevel.com/blog/2008/08/26/justin-williams-lessons-learned-as-an-indie-mac-developer/</link>
		<comments>http://outerlevel.com/blog/2008/08/26/justin-williams-lessons-learned-as-an-indie-mac-developer/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 13:30:14 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=259</guid>
		<description><![CDATA[Justin Williams on lessons learned in his first few months as an indie developer working on his Mac software, Today. I&#8217;ve officially been indie since the end of April and have had varying degrees of success&#8230;]]></description>
			<content:encoded><![CDATA[<p>Justin Williams on <a href="http://log.carpeaqua.com/post/47389586">lessons learned</a> in his first few months as an indie developer working on his Mac software, <a href="http://secondgearllc.com/today/">Today</a>.</p>
<blockquote><p>
I&rsquo;ve officially been indie since the end of April and have had varying degrees of success&#8230;
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/08/26/justin-williams-lessons-learned-as-an-indie-mac-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucky to be a Programmer</title>
		<link>http://outerlevel.com/blog/2008/07/22/lucky-to-be-a-programmer/</link>
		<comments>http://outerlevel.com/blog/2008/07/22/lucky-to-be-a-programmer/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 14:24:17 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=249</guid>
		<description><![CDATA[Gustavo Duarte: Lucky to be a Programmer Under the right conditions, writing software is so intensely pleasurable it should be illegal. Many programmers relate to this, but others are taken aback when they hear it. I think it&#8217;s because institutions are so good at squeezing the fun out of everything. It&#8217;s appalling for example how [...]]]></description>
			<content:encoded><![CDATA[<p>Gustavo Duarte: <a href="http://duartes.org/gustavo/blog/post/lucky-to-be-a-programmer">Lucky to be a Programmer</a></p>
<blockquote><p>Under the right conditions, writing software is so intensely pleasurable it should be illegal.</p>
<p>Many programmers relate to this, but others are taken aback when they hear it. I think it&rsquo;s because institutions are so good at squeezing the fun out of everything. It&rsquo;s appalling for example how schools can take the most vibrant topics and mangle them into formulaic, mediocre slog. And so it is for programming.&#8221;</p></blockquote>
<p>(Via <a href="http://objective-d.com/">Duncan Campbell</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/07/22/lucky-to-be-a-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What does a deadline look like?</title>
		<link>http://outerlevel.com/blog/2008/07/04/what-does-a-deadline-look-like/</link>
		<comments>http://outerlevel.com/blog/2008/07/04/what-does-a-deadline-look-like/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 17:51:39 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Bullfrog Touch]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=243</guid>
		<description><![CDATA[What does crunch time only three days before the submission deadline for Apple&#8217;s iPhone AppStore look like? And with that, I need more coffee. Update (July 6, 2008): As per request, the visible apps running on the large display include Photoshop, Terminal.app, and Xcode. The front-most windows belong to a custom map and level designer [...]]]></description>
			<content:encoded><![CDATA[<p>What does crunch time only three days before the submission deadline for Apple&#8217;s iPhone AppStore look like?</p>
<p><center><br />
<a href="/blog/images/bullfrogTouch/deadline-wide.png" title="Designing Bullfrog Touch Levels"><img src="/blog/images/bullfrogTouch/deadline-wide-thumb.png" alt="Designing Bullfrog Touch Levels" /></a><br />
</center></p>
<p>And with that, I need more coffee.</p>
<p><strong>Update (July 6, 2008):</strong>  As per request, the visible apps running on the large display include Photoshop, Terminal.app, and Xcode.  The front-most windows belong to a custom map and level designer for a soon to be announced iPhone game.</p>
<p>The second display on the right has <a href="http://colloquy.info/">Colloquy</a> (irc client), <a href="http://flyingmeat.com/voodoopad/">VoodooPad</a>, and Safari opened to our bug tracker hosted by <a href="http://unfuddle.com/">Unfuddle</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/07/04/what-does-a-deadline-look-like/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New iPhone Game Programming Forum</title>
		<link>http://outerlevel.com/blog/2008/06/11/new-iphone-game-programming-forum/</link>
		<comments>http://outerlevel.com/blog/2008/06/11/new-iphone-game-programming-forum/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 15:34:18 +0000</pubDate>
		<dc:creator>Jon Trainer</dc:creator>
				<category><![CDATA[Cocoa / Objective-C]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://outerlevel.com/blog/?p=242</guid>
		<description><![CDATA[If you&#8217;re in to making games for the iPhone you may want to check out a new forum over on iDevGames.com dedicated to discussing iPhone &#038; iPod Game Development. While you&#8217;re there you may want to check out the other forums and resources on the site. There&#8217;s a ton of information on game programming for [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re in to making games for the iPhone you may want to check out a new forum over on <a href="http://www.idevgames.com/">iDevGames.com</a> dedicated to discussing <a href="http://www.idevgames.com/news/iphone-ipod-game-programming-message-board">iPhone &#038; iPod Game Development</a>.</p>
<p>While you&#8217;re there you may want to check out the other forums and resources on the site.  There&#8217;s a ton of information on game programming for the Mac too.</p>
]]></content:encoded>
			<wfw:commentRss>http://outerlevel.com/blog/2008/06/11/new-iphone-game-programming-forum/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

