<?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>Floyd Price &#187; Development</title>
	<atom:link href="http://www.floydprice.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.floydprice.com</link>
	<description>Art is never finished, only abandoned. — Leonard da Vinci</description>
	<lastBuildDate>Wed, 14 Dec 2011 15:01:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>.GitIgnore for xCode 4 projects.</title>
		<link>http://www.floydprice.com/2011/12/gitignore-for-xcode-4-projects/</link>
		<comments>http://www.floydprice.com/2011/12/gitignore-for-xcode-4-projects/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 12:55:43 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=418</guid>
		<description><![CDATA[xCode git support is great, but if your working in a team or on multiple machines you will want to ignore any user/machine specific files. In my .gitinore I have: .DS_Store *.swp *~.nib build/ *.pbxuser *.perspective *.perspectivev3 xcuserdata/ Seems to work pretty well.]]></description>
			<content:encoded><![CDATA[<p>xCode git support is great, but if your working in a team or on multiple machines you will want to ignore any user/machine specific files.</p>
<p>In my .gitinore I have:</p>

<div class="wp_syntax"><div class="code"><pre class="git" style="font-family:monospace;">.DS_Store
*.swp
*~.nib
build/
*.pbxuser
*.perspective
*.perspectivev3
xcuserdata/</pre></div></div>

<p>Seems to work pretty well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2011/12/gitignore-for-xcode-4-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding touch support to jQueryUI</title>
		<link>http://www.floydprice.com/2010/09/adding-touch-support-to-jqueryui/</link>
		<comments>http://www.floydprice.com/2010/09/adding-touch-support-to-jqueryui/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 15:04:04 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jqueryUI]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=235</guid>
		<description><![CDATA[I needed a quick and dirty way of getting the jQueryUI Slider component to work with the touch events on the iPhone and iPad (iOS) so after a little thinking I started writing a few lines of jQuery that would listed to the touch events and pass them on to the relevant jQuery core classes [...]]]></description>
			<content:encoded><![CDATA[<p>I needed a quick and dirty way of getting the jQueryUI Slider component to work with the touch events on the iPhone and iPad (iOS) so after a little thinking I started writing a few lines of jQuery that would listed to the touch events and pass them on to the relevant jQuery core classes so that any components based on jQuery would get the events for Free.</p>
<p> </p>
<p>About 10 minutes in it occured to me that this must have been done before and while i like hacking with touch events, I did a quick Google and found the exact script i was about to write.</p>
<p>If your looking to add  touch support to jQueryUI components look no further than <a href="http://code.google.com/p/jquery-ui-for-ipad-and-iphone/">this Google Code projec</a>t</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2010/09/adding-touch-support-to-jqueryui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad Multi-Touch &#8211; in Javascript.</title>
		<link>http://www.floydprice.com/2010/09/ipad-multi-touch-in-javascript/</link>
		<comments>http://www.floydprice.com/2010/09/ipad-multi-touch-in-javascript/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 12:24:42 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[IPhone]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[interesting]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[pointless]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=228</guid>
		<description><![CDATA[I recently came across a nice article/experiment from Matt Gemmell (﻿@mattgemmell) where he decided to test how many simultaneous touches the iPad Multi Touch display would register, it turns out its 11 and he put together a pretty impressive demo app to prove it (see the Screen Shot). At first sight you would think its a [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right;" src="http://mattgemmell.com/images/ipad_touches_small.jpg" border="0" alt="ipad_touches_small.jpg" width="200" /></p>
<p>I recently came across a nice <a href="http://mattgemmell.com/2010/05/09/ipad-multi-touch">article/experiment</a> from <a href="http://mattgemmell.com">Matt Gemmell</a> (﻿@mattgemmell) where he decided to test how many simultaneous touches the iPad Multi Touch display would register, it turns out its 11 and he put together a pretty impressive demo app to prove it (see the Screen Shot).</p>
<p>At first sight you would think its a pretty complex application to achieve this, i mean all the multi touch stuff and the animation seems quite complex, however anybody who knows the iOS SDK will tell you that this stuff is trivial at best, and while Matt has done a great job of pulling it all together its far from complex.</p>
<h2>The SDK that wasn&#8217;t mean&#8217;t to be</h2>
<p>This application got me thinking about the iOS SDK and the fact that Apple originally didn&#8217;t want us writing native applications and in fact they wanted us to write Browser based applications in Javascript, HTML5 and CSS3.</p>
<p>Now its pretty clear to me that the native apps we see (in abundance) on the app store like Angry Birds, Twitterific, Pulse, Things, Pages, etc&#8230; <em>could</em> be written using JS, HTML5 and CSS3 but they would most ﻿definitely be poorer for it, come on, the runtime performance, the slick User Experience, simply can&#8217;t be replecated to the same level with an app running inside a Browser! (let the flame war begin)</p>
<p>So on that note i decided to replicate Matt&#8217;s Multi Touch application in Javascript, HTML5 and CSS3, so with a little digging around in Apples documentation I found all the Javascript events that expose touches (touchstart, touchend and touchmove) and began hacking!</p>
<p>Now let me say right now that this is one hours worth of hacking and the end goal was to build an application that was comparable to Matt&#8217;s, I suspect some of the code could be optimised, in fact I really hope that is the case when it comes to the Canvas drawing methods (but that is another story for another post).</p>
<p><img style="float: right;" src="http://www.floydprice.com/wp-content/uploads/2010/09/multitouchtest.png" border="0" alt="multitouchtest.png" width="200" height="150" />Now for some reason I fully expected the JS version to respond to less touches than the native version but in fact its 11 just like Matt&#8217;s Version, I also expected the animation to be less &#8220;smooth&#8221; and jerky when I was moving my fingers around, and I was spot on. The iPad benefits from multithreading and a graphics rendering pipeline, where the Browser that my app is running in does not so any processing I do to draw, calculate or respond to touch events all happens in the same thread as well as the browsers rendering code, this in a nut shell is the reason why these apps will not compete with Naive apps, I may in the near future re visit this topic and look at using <a href="http://www.whatwg.org/specs/web-workers/current-work/">HTML5 Web-Workers</a> which in theory would give me the ability to run background threads, but i suspect that even that wouldn&#8217;t help too much for applications that are so closely coupled to the rendering engine.</p>
<p>Anyway, <a href="http://www.floydprice.com/wp-content/uploads/2010/09/multiTouch.htm">here is the application I wrote</a> (visit it on an iOS device) it works almost exactly like the Original albeit its not as smooth. The source code is all inline (for your convenience) so feel free to take a look (lift, steal, optimise, laugh at, etc&#8230;) and let me know what you think.</p>
<h2>My Conclusion</h2>
<p>The iPad really is a &#8220;Magical&#8221; device, and with Great tools like <a href="http://www.sencha.com/products/touch/">Sencha Touch</a> web developers are better placed than ever before when it comes to building native-ish applications, but I really believe that these apps will be the poorer relations to their native cousins. So keep learning Obj-C folks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2010/09/ipad-multi-touch-in-javascript/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rails can&#8217;t scale!</title>
		<link>http://www.floydprice.com/2010/06/rails-cant-scale/</link>
		<comments>http://www.floydprice.com/2010/06/rails-cant-scale/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 05:25:32 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=217</guid>
		<description><![CDATA[I&#8217;m not sure who coined the phrase &#8220;Rails can&#8217;t scale&#8221;? but its on of those things that amazingly keeps coming up, particularly when you talk to people in the corporate world who for some reason have it as the stock answer to any rails related discussions. Anyway this is my Open Source answer to that statement, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure who coined the phrase &#8220;Rails can&#8217;t scale&#8221;? but its on of those things that amazingly keeps coming up, particularly when you talk to people in the corporate world who for some reason have it as the stock answer to any rails related discussions.</p>
<p>Anyway this is my Open Source answer to that statement, so please if anybody asks you &#8220;can rails scale&#8221; or makes the statement &#8220;Rails can&#8217;t scale!&#8221; please feel free to use this answer&#8230;</p>
<blockquote>
<p>Applications built in rails are actually as capable of scaling as apps built in any other language (or on top of any other framework), in fact rails out-of-the-box is good enough for 99.9% of the applications you will ever write, and that tiny amount of apps that will have problems would have the same problems in ANY other language or framework. The benefits of Rails as a framework and Ruby as a language (Like Productivity, Maintainability, Developer Engagement, Mapping to an Agile Process) should in every case be considered over any notion of scaling issues. In fact if your app doesn&#8217;t have 8 million concurrent users right now, don&#8217;t worry about scaling at all, your wasting time that could be better spent getting 8 million users.</p>
</blockquote>
<p>Now this answer doesn&#8217;t touch the real issue with this question but in my experience it is good enough to satisfy the type of people who ask this question.</p>
<p>The only exception where i wouldn&#8217;t use this answer is if the question (or statement) comes from a &#8220;Technical Architect&#8221; in a large corperate who is paid 6 figures a year to keep a development team of 100+ moving forward, if he says &#8220;Rails can&#8217;t scale&#8221; Punch him between the fucking eyes, because he should know better.</p>
<p>The truth, is of course that, anybody who says this knows f-all about software architecture and in fact shouldn&#8217;t be in a position where they have an audience to spout their nonsense.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2010/06/rails-cant-scale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Buy &#8211; Open Sources IdeaX</title>
		<link>http://www.floydprice.com/2010/06/best-buy-open-source-ideax/</link>
		<comments>http://www.floydprice.com/2010/06/best-buy-open-source-ideax/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 21:38:17 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Didn't know Yesterday]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=209</guid>
		<description><![CDATA[Best Buy has received much acclaim for its IdeaX platform over the last year, and rightly so. For anyone who isn&#8217;t away of IdeaX its an Idea Gathering application that allows Best Buy to capture ideas and comments from customers and staff members, which can then be voted or commented on buy other customers or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bestbuy.com">Best Buy</a> has received much acclaim for its <a href="http://bestbuyideax.com/">IdeaX</a> platform over the last year, and rightly so. For anyone who isn&#8217;t away of IdeaX its an Idea Gathering application that allows Best Buy to capture ideas and comments from customers and staff members, which can then be voted or commented on buy other customers or staff members. The basic idea is that good ideas will organically rise to the top as votes and comments increase the &#8220;score&#8221; given to an Idea. Best Buy can then take a &#8220;good&#8221; idea and make it into a reality.</p>
<p>Idea Gather Applications (also known as Idea Management Apps) are not a new thing, many American corporates have already embraced this concept including Google and Dell, and while each have great apps the Best Buy IdeaX platform stands head and shoulders about the competition.</p>
<p>While browsing Hacker News the other day i noticed a post saying that the Best Buy IdeaX platform has been open sourced! This is a great step for Best Buy, Come on, a big non-tech US corporate releasing an Open Source product!!! its unheard of! Whats more the app is written in Ruby on Rails, which in its self is a massive step for a big corporate who would traditionally have written apps like this in C# or Java.</p>
<p>Check out the <a href="http://bbyidx.com/">project home page</a> for the full story, and be sure to take a look around the code <img src='http://www.floydprice.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The project does take some getting going, you have to me using Postgress and be sure to check out the mad Postgress Specific stuff going on in the migrations. I plan on getting a version of it up and running on EC2 over the next few days (time permitting) so I will issue some instructions in a later post.</p>
<p>All I can say is Hat Tip to Best Buy, Great job!</p>
<p> </p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2010/06/best-buy-open-source-ideax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automatic Elastic Block snapshots with a cron job</title>
		<link>http://www.floydprice.com/2009/10/automatic-elastic-block-snapshots-with-a-cron-job/</link>
		<comments>http://www.floydprice.com/2009/10/automatic-elastic-block-snapshots-with-a-cron-job/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 22:01:46 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Code Spaces]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=158</guid>
		<description><![CDATA[Amazon EC2 really is amazing, and the Elastic Block storage is pretty darn good too, however I wish you could automate the snapshot process form the EC2 console. It is however pretty easy to do yourself using a simple cron job. Before you start make sure you have a JRE: sudo apt-get install sun-java6-jre You [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon EC2 really is amazing, and the Elastic Block storage is pretty darn good too, however I wish you could automate the snapshot process form the EC2 console.</p>
<p>It is however pretty easy to do yourself using a simple cron job.</p>
<p>Before you start make sure you have a JRE:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">	<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> sun-java6-jre</pre></div></div>

<p>You will also need the EC2 API tools:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">	<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>s3.amazonaws.com<span style="color: #000000; font-weight: bold;">/</span>ec2-downloads<span style="color: #000000; font-weight: bold;">/</span>ec2-api-tools.zip
	<span style="color: #c20cb9; font-weight: bold;">unzip</span> ec2-api-tools.zip</pre></div></div>

<p>At this point you should make a metal note of where you unzipped the api tools to.</p>
<p>Now that you have the prerequisites you need the following simple script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">JAVA_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-<span style="color: #000000;">6</span>-sun<span style="color: #000000; font-weight: bold;">/</span>jre<span style="color: #000000; font-weight: bold;">/</span>
	<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">EC2_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>ec2-api-tools-<span style="color: #000000;">1.3</span>-<span style="color: #000000;">42584</span>
	<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">EC2_PRIVATE_KEY</span>=<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>misc<span style="color: #000000; font-weight: bold;">/</span>pk-Umbongo.pem
	<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">EC2_CERT</span>=<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>misc<span style="color: #000000; font-weight: bold;">/</span>cert-Umbongo.pem 
	<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">AWS_ACCESS_KEY_ID</span>=<span style="color: #ff0000;">&quot;Twinkle Twinkle Little star&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">AWS_SECRET_ACCESS_KEY</span>=<span style="color: #ff0000;">&quot;If your happy and your know it, clap your hands&quot;</span>
&nbsp;
&nbsp;
	<span style="color: #007800;">$EC2_HOME</span><span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>ec2-create-snapshot vol-<span style="color: #000000;">999999</span></pre></div></div>

<p>Obviously you need to specify your volume id where i have vol-999999</p>
<p>Once you have modified this file to be executable you are ready to test it.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">	<span style="color: #c20cb9; font-weight: bold;">chmod</span> +x snapshot.sh
&nbsp;
	.<span style="color: #000000; font-weight: bold;">/</span>snapshot.sh</pre></div></div>

<p>Once your have ran it go to the EC2 Console and verify that the snapshot process has started.</p>
<p>And thats it, the first time you run this script the snapshot will take a while to complete but the next one will be much quicker as the snapshot process is incremental, so only the changes since the last snapshot will be read.</p>
<p>Oh, don&#8217;t forget to create a cron job for this (*/5 * * * * /path/snapshot/sh) <img src='http://www.floydprice.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2009/10/automatic-elastic-block-snapshots-with-a-cron-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to respond to the IPhone Shake Gesture</title>
		<link>http://www.floydprice.com/2009/10/how-to-respond-to-the-iphone-shake-gesture/</link>
		<comments>http://www.floydprice.com/2009/10/how-to-respond-to-the-iphone-shake-gesture/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 19:48:02 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IPhone]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[UIKit]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=148</guid>
		<description><![CDATA[The IPhone 3.0 SDK includes support for detecting when a user &#8220;Shakes&#8221; the IPhone, this is intended to be a usability feature allowing app developers to implement Refresh or Read All functions on shake, wow those crazy guys at Apple really do know how to innovate! It&#8217;s pretty easy to implement all you need to [...]]]></description>
			<content:encoded><![CDATA[<p>The IPhone 3.0 SDK includes support for detecting when a user &#8220;Shakes&#8221; the IPhone, this is intended to be a usability feature allowing app developers to implement Refresh or Read All functions on shake, wow those crazy guys at Apple really do know how to innovate!</p>
<p>It&#8217;s pretty easy to implement all you need to do is register your view controller as the first responder and listen for the motion event.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> viewDidAppear<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>BOOL<span style="color: #009900;">&#41;</span>animated<span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#91;</span>super viewDidAppear<span style="color: #339933;">:</span>animated<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#91;</span>self becomeFirstResponder<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Once your controller is the First Responder you can receive the motion event like so:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>motionEnded<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIEventSubtype<span style="color: #009900;">&#41;</span>motion withEvent<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIEvent <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>event
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>motion <span style="color: #339933;">==</span> UIEventSubtypeMotionShake<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		refresh<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This will work beautifully but you will however notice that any views you present over this one will not respond to all touch events, for instance the keyboard will not show when you touch a text field, this is because you need to resign the First Responder before you present the view like so:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>IBAction<span style="color: #009900;">&#41;</span>showMyCustomView <span style="color: #009900;">&#123;</span>    
	<span style="color: #009900;">&#91;</span>self resignFirstResponder<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#91;</span>self presentModalViewController<span style="color: #339933;">:</span>myCustomViewController animated<span style="color: #339933;">:</span>YES<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>As you can see this is all pretty easy and the only gotcha is the First Responder stuff, which also is pretty trivial.</p>
<p>Enjoy and please people, Shake Responsibly!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2009/10/how-to-respond-to-the-iphone-shake-gesture/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fixing the little things.</title>
		<link>http://www.floydprice.com/2008/08/fixing-the-little-things/</link>
		<comments>http://www.floydprice.com/2008/08/fixing-the-little-things/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 21:19:41 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Reality]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=113</guid>
		<description><![CDATA[When your developing, enhancing, evolving your software you will introduce bugs which range from trivial UI issues to &#8220;Show Stopping&#8221; issue in business logic that will drive your customers away. Its pretty easy to prioritize these bugs as tasks for your development team by making the &#8220;Show Stoppers&#8221; #1 priority and so on&#8230; and this [...]]]></description>
			<content:encoded><![CDATA[<p>When your developing, enhancing, evolving your software you will introduce bugs which range from trivial UI issues to &#8220;Show Stopping&#8221; issue in business logic that will drive your customers away.</p>
<p>Its pretty easy to prioritize these bugs as tasks for your development team by making the &#8220;Show Stoppers&#8221; #1 priority and so on&#8230; and this list of priorities is often geared around the customer, we make sure the issues that the customer will react to the most are sorted out first and then we get to the other &#8220;trivial&#8221; issues later (if ever).</p>
<p>While this method of prioritization works well in theory I have observed that developers who are not allowed to fix bugs that annoy them or are &#8220;easy&#8221; to fix, often loose motivation and interest in fixing those bugs that are not so easy to fix.</p>
<p>I have myself worked on projects where the PM has taken exception to me spending an hour to fix and test a bug because I felt that it was worth doing even thought the &#8220;Plan&#8221; didn&#8217;t express this.</p>
<p>Its so important to let your development team cherry pick issues to fix as well as prioritizing the &#8220;Show Stoppers&#8221;.</p>
<p><img src="http://www.pragprog.com/images/covers/120x144/tpp.jpg?1184184146" alt="Pragmatic Programmer" border="0"  align="right" style="border : 2px solid #aaa; padding: 1px;" /></p>
<p><strong>Why?</strong></p>
<p>Developers love marking tasks as &#8220;Dev Complete&#8221;, it gives us a sense of achievement that motivates us to crack on with the next task at hand.</p>
<p>&#8220;Wasting&#8221; (if your a PM) an hour on a task that isn&#8217;t the most pressing one at the time can have a profound impact on your teams productivity, letting the developers mould the shape of the product by picking the issues, tasks to work on gives them a sense of ownership which brings with it a sense of determination to deliver.</p>
<p>I liken this to the Broken Window (Tip 4) theory expressed in <a href="http://www.pragprog.com/the-pragmatic-programmer">The Pragmatic Programmer</a> by Andrew Hunt and David Thomas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2008/08/fixing-the-little-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profound #1</title>
		<link>http://www.floydprice.com/2008/08/profound-1/</link>
		<comments>http://www.floydprice.com/2008/08/profound-1/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 20:57:01 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Profound]]></category>
		<category><![CDATA[Reality]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=111</guid>
		<description><![CDATA[An Investment in knowledge always pays the best interest. Benjamin Franklin]]></description>
			<content:encoded><![CDATA[<blockquote><p>An Investment in knowledge always pays the best interest.</p>
<p><strong><i>Benjamin Franklin</i></strong></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2008/08/profound-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exception Notifier in Rails 2.1</title>
		<link>http://www.floydprice.com/2008/08/exception-notifier-in-rails-21/</link>
		<comments>http://www.floydprice.com/2008/08/exception-notifier-in-rails-21/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 17:29:45 +0000</pubDate>
		<dc:creator>Floyd Price</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.floydprice.com/?p=91</guid>
		<description><![CDATA[If you have recenlty or are about to Upgrade an existing Rails application to Rails 2.1 (and why wouldn&#8217;t you), be aware that your implementation of Exception Notifier might not work due to a scope change in Rails where: @controller.filter_parameters Is now protected, therefore the code in Exception Notifier that called it needs to be [...]]]></description>
			<content:encoded><![CDATA[<p>If you have recenlty or are about to Upgrade an existing Rails application to Rails 2.1 (and why wouldn&#8217;t you), be aware that your implementation of Exception Notifier might not work due to a scope change in Rails where:</p>

<div class="wp_syntax"><div class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#0066ff; font-weight:bold;">@controller</span>.<span style="color:#9900CC;">filter_parameters</span></pre></div></div>

<p>Is now protected, therefore the code in Exception Notifier that called it needs to be change as follows :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;">   <span style="color:#008000; font-style:italic;">#exclude_raw_post_parameters? ? @controller.filter_parameters(parameters) : parameters</span>
   exclude_raw_post_parameters? ? <span style="color:#0066ff; font-weight:bold;">@controller</span>.<span style="color:#9900CC;">send</span>!<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:filter_parameters</span>, parameters<span style="color:#006600; font-weight:bold;">&#41;</span> : parameters</pre></td></tr></table></div>

<p>Utilizing the send method allows you to call the protected method.</p>
<p>Fortunately the Exception Notifier plugin on GitHut has already been updated to accommodate this fix and can be installed by :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">	.<span style="color: #000000; font-weight: bold;">/</span>script<span style="color: #000000; font-weight: bold;">/</span>plugin <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>rails<span style="color: #000000; font-weight: bold;">/</span>exception_notification.git</pre></td></tr></table></div>

<p><strong>NOTE</strong><br />
Exception Notifier (like most plugins) comes with a suite of tests that you should run as part of your build or at the very least whenever you change something as fundamental as the Rails version your using&#8230; BTW I did neither of these things and found out the hard way :-/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.floydprice.com/2008/08/exception-notifier-in-rails-21/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

