<?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>Chris Gummer</title>
	<atom:link href="http://www.chrisgummer.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.chrisgummer.com</link>
	<description>Freelance Software Developer</description>
	<lastBuildDate>Tue, 29 Jun 2010 21:24:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iOS 4 and Disabling Multitasking</title>
		<link>http://www.chrisgummer.com/?p=133</link>
		<comments>http://www.chrisgummer.com/?p=133#comments</comments>
		<pubDate>Tue, 29 Jun 2010 12:26:04 +0000</pubDate>
		<dc:creator>Chris Gummer</dc:creator>
				<category><![CDATA[Multitasking]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.chrisgummer.com/?p=133</guid>
		<description><![CDATA[iOS 4 delivers long awaiting and much anticipated multitasking support for iOS apps. Detailed information on supporting multitasking in your app can be found via Apple&#8217;s iPhone Application Programming Guide. If you&#8217;ve installed iPhone SDK 4 and are now building apps with it, one very important point to note is:
Applications linked against iPhone OS 4 [...]]]></description>
			<content:encoded><![CDATA[<p>iOS 4 delivers long awaiting and much anticipated multitasking support for iOS apps. Detailed information on supporting multitasking in your app can be found via Apple&#8217;s <a href="http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/index.html">iPhone Application Programming Guide</a>. If you&#8217;ve installed iPhone SDK 4 and are now building apps with it, one very important point to note is:</p>
<blockquote><p>Applications linked against iPhone OS 4 and later are automatically assumed to support multitasking and to implement the appropriate methods to handle transitions to the background state. However, work is still required to ensure that your application transitions smoothly between the foreground and background.
</p></blockquote>
<p>Therefore, if you set your Xcode project&#8217;s target to a Base SDK of 4.0, your application is expected to support multitasking. In some cases having your app moved to the background instead of being terminated may not be appropriate. It is possible to opt out of background execution by adding the UIApplicationExitsOnSuspend key to your project&#8217;s Info.plist and setting its&#8217; value to YES. This effectively disables multitasking for your app and will force it to terminate instead of being suspended by the OS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisgummer.com/?feed=rss2&amp;p=133</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone screenshots &#8211; cropping the status bar</title>
		<link>http://www.chrisgummer.com/?p=128</link>
		<comments>http://www.chrisgummer.com/?p=128#comments</comments>
		<pubDate>Sat, 29 May 2010 11:41:49 +0000</pubDate>
		<dc:creator>Chris Gummer</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.chrisgummer.com/?p=128</guid>
		<description><![CDATA[When providing your application screenshots in iTunes Connect, one thing that Apple recommends is removing the status bar from your screenshots. Whilst I agree with and follow this recommendation, cropping the screenshots to remove the status bar is particularly tedious and frustrating. The issue is only compounded now with the separate screenshots required for iPad [...]]]></description>
			<content:encoded><![CDATA[<p>When providing your application screenshots in iTunes Connect, one thing that Apple recommends is removing the status bar from your screenshots. Whilst I agree with and follow this recommendation, cropping the screenshots to remove the status bar is particularly tedious and frustrating. The issue is only compounded now with the separate screenshots required for iPad devices.</p>
<p>So I decided to write a small Automator application to automatically crop my screenshots. The application can be downloaded <a href="http://chrisgummer.com/files/iPhoneScreenshotCropper.zip">here</a>. To use the application, drag the CropAction.action file to ~/Library/Automator and execute the iPhoneScreenshotCropper, selecting the image files you&#8217;d like to crop. The image files have to have one of the supported file extensions of png, jpg, jpeg, or tiff. They also need to have the correct resolution matching a full size screenshot from an iPad, iPhone, or iPod touch device. The existing image files selected will then have the status bar removed.</p>
<p>One caveat, I&#8217;ve only tested the application on PNGs so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisgummer.com/?feed=rss2&amp;p=128</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>svnmerge and subversion 1.5: Can&#8217;t read stdin</title>
		<link>http://www.chrisgummer.com/?p=32</link>
		<comments>http://www.chrisgummer.com/?p=32#comments</comments>
		<pubDate>Tue, 02 Feb 2010 20:43:58 +0000</pubDate>
		<dc:creator>Chris Gummer</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.chrisgummer.com/?p=32</guid>
		<description><![CDATA[I have svnmerge set up to keep two separate branches in sync. Whilst attempting to run a merge I received the following error :
svnmerge: command execution failed (exit code: 1)
svn merge -r 1:1 http://myrepo/svn/projectbranches/source.
Conflict discovered in 'dir/some-file.txt'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
  [...]]]></description>
			<content:encoded><![CDATA[<p>I have svnmerge set up to keep two separate branches in sync. Whilst attempting to run a merge I received the following error :</p>
<pre class="brush: plain; highlight: [1,2,3,4,5,6,7]; light: true;">svnmerge: command execution failed (exit code: 1)
svn merge -r 1:1 http://myrepo/svn/projectbranches/source.
Conflict discovered in 'dir/some-file.txt'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: svn: Can't read stdin: End of file found
svn: Error reading spooled REPORT request response</pre>
<p>The source of the error is due to a conflict encountered due to the merge. However, due to a new feature in Subversion 1.5, svnmerge is unable to instruct Subversion how to proceed. The new feature is client based and called &#8220;Interactive Conflict Resolution&#8221;.</p>
<p>To resolve this issue and allow svnmerge to complete, I disabled the new feature. This is done by placing the following line in your Subversion config file:</p>
<pre class="brush: plain; highlight: [1]; light: true;">interactive-conflicts = no</pre>
<p>Of course this disables interactive conflict resolution for all further invocations of the Subversion client. So once svnmerge has completed successfully, be sure to set this option back to yes if you&#8217;d like to continue using this feature.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisgummer.com/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logback and Hibernate SQL</title>
		<link>http://www.chrisgummer.com/?p=67</link>
		<comments>http://www.chrisgummer.com/?p=67#comments</comments>
		<pubDate>Sun, 10 Jan 2010 11:40:10 +0000</pubDate>
		<dc:creator>Chris Gummer</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.chrisgummer.com/?p=67</guid>
		<description><![CDATA[ORM tools can be extremely powerful and save us a lot of the mundane heavy lifting required to persist data captured in an object graph through to an RDBMS. However, one problem can be that behind the scenes the tool may not always function as expected. What&#8217;s often important is to be able to see [...]]]></description>
			<content:encoded><![CDATA[<p>ORM tools can be extremely powerful and save us a lot of the mundane heavy lifting required to persist data captured in an object graph through to an RDBMS. However, one problem can be that behind the scenes the tool may not always function as expected. What&#8217;s often important is to be able to see exactly what SQL the ORM tool is building and issuing to your database.<br />
Recently we&#8217;d switched to the Logback framework for our logging and I wanted to be able to capture all the SQL that Hibernate was generating for me. There is a Hibernate configuration property which controls whether or not the generated SQL is printed to the console:</p>
<pre class="brush: plain; highlight: [1]; light: true;">hibernate.format_sql</pre>
<p>Setting this property to true will print out the generated SQL to the console. However, I&#8217;ve found having a separate log file that was solely responsible for capturing this generated SQL was invaluable. So how do we set it up with Logback?</p>
<pre class="brush: xml;">&lt;appender name=&quot;hibernate-sql&quot; class=&quot;ch.qos.logback.core.FileAppender&quot;&gt;
  &lt;file&gt;logs/hibernate-sql.log&lt;/file&gt;

  &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;
    &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n&lt;/pattern&gt;
  &lt;/layout&gt;
&lt;/appender&gt;

&lt;logger name=&quot;org.hibernate.SQL&quot;&gt;
  &lt;appender-ref ref=&quot;hibernate-sql&quot;/&gt;
&lt;/logger</pre>
<p>This will put all our generated SQL statements from Hibernate into the hibernate-sql.log file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisgummer.com/?feed=rss2&amp;p=67</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Objective-C: Categories and static libraries</title>
		<link>http://www.chrisgummer.com/?p=77</link>
		<comments>http://www.chrisgummer.com/?p=77#comments</comments>
		<pubDate>Mon, 28 Dec 2009 02:54:00 +0000</pubDate>
		<dc:creator>Chris Gummer</dc:creator>
				<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://www.chrisgummer.com/?p=77</guid>
		<description><![CDATA[After taking advantage of Objective-C categories to add some additional behaviour to NSArray and NSDictionary, I decided to extract the new classes I created into a static library. However, when running my application that made use of this static library, I received the following error:
unrecognized selector sent to instance
There is an Apple tech note that [...]]]></description>
			<content:encoded><![CDATA[<p>After taking advantage of Objective-C categories to add some additional behaviour to NSArray and NSDictionary, I decided to extract the new classes I created into a static library. However, when running my application that made use of this static library, I received the following error:</p>
<pre class="brush: plain; highlight: [1]; light: true;">unrecognized selector sent to instance</pre>
<p>There is an Apple tech note that explains how to resolve this &#8211; QA1490</p>
<blockquote><p>To resolve this issue, the static library should pass the -ObjC option to the linker. This flag causes the linker to load every object file in the library that defines an Objective-C class or category. While this option will typically result in a larger executable (due to additional object code loaded into the application), it will allow the successful creation of effective Objective-C static libraries that contain categories on existing classes.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisgummer.com/?feed=rss2&amp;p=77</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding iPhone 3.x features and retaining 2.x compatibility</title>
		<link>http://www.chrisgummer.com/?p=83</link>
		<comments>http://www.chrisgummer.com/?p=83#comments</comments>
		<pubDate>Tue, 08 Dec 2009 00:03:27 +0000</pubDate>
		<dc:creator>Chris Gummer</dc:creator>
				<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://www.chrisgummer.com/?p=83</guid>
		<description><![CDATA[I&#8217;ve been planning on writing a post on how to add new features that utilise iPhone OS 3.x, to your iPhone 2.x OS app whilst maintaining backwards compatibility. However, I recently came across some Apple sample code that demonstrates how to do this &#8211; Apple&#8217;s MailComposer Sample Code
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been planning on writing a post on how to add new features that utilise iPhone OS 3.x, to your iPhone 2.x OS app whilst maintaining backwards compatibility. However, I recently came across some Apple sample code that demonstrates how to do this &#8211; <a href="http://developer.apple.com/iphone/library/samplecode/MailComposer/index.html">Apple&#8217;s MailComposer Sample Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisgummer.com/?feed=rss2&amp;p=83</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
