<?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>NathanGaskin.com</title>
	<atom:link href="http://nathangaskin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nathangaskin.com</link>
	<description></description>
	<lastBuildDate>Fri, 16 Jul 2010 13:22:38 +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>In the Papers!</title>
		<link>http://nathangaskin.com/2010/07/16/in-the-papers/</link>
		<comments>http://nathangaskin.com/2010/07/16/in-the-papers/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 13:16:31 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://nathangaskin.com/2010/07/16/in-the-papers/</guid>
		<description><![CDATA[I&#8217;ve been extremely busy recently getting my business, Applied Brilliance, off the ground. Last weekend I entered the Dragon&#8217;s Den, as it were, to pitch my business to seven local business masterminds as part of Portsmouth University&#8217;s PIPEline scheme. Applied Brilliance won the prize for best use of technology as well as a membership to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been extremely busy recently getting my business, Applied Brilliance, off the ground. Last weekend I entered the Dragon&#8217;s Den, as it were, to pitch my business to seven local business masterminds as part of Portsmouth University&#8217;s PIPEline scheme.</p>
<p>Applied Brilliance won the prize for best use of technology as well as a membership to the Hampshire Chamber of Commerce. It was a great day, and thanks to all involved.</p>
<p>Even better, we&#8217;re starting to get a bit of press coverage. Pro photography and everything. Check it out!</p>
<p><a href="http://nathangaskin.com/wp-content/uploads/2010/07/l_600_399_C50AD759-8963-40B6-BE1A-68DAFEB5B753.jpeg"><img src="http://nathangaskin.com/wp-content/uploads/2010/07/l_600_399_C50AD759-8963-40B6-BE1A-68DAFEB5B753.jpeg" alt="" class="alignnone size-full" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/07/16/in-the-papers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve made it!</title>
		<link>http://nathangaskin.com/2010/07/14/ive-made-it/</link>
		<comments>http://nathangaskin.com/2010/07/14/ive-made-it/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 12:57:14 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://nathangaskin.com/2010/07/14/ive-made-it/</guid>
		<description><![CDATA[I have my company on a badge!]]></description>
			<content:encoded><![CDATA[<p>I have my company on a badge!</p>
<p><a href="http://nathangaskin.com/wp-content/uploads/2010/07/p_2592_1936_BFEE23E3-4047-42B2-84AA-434EA9640D23.jpeg"><img src="http://nathangaskin.com/wp-content/uploads/2010/07/p_2592_1936_BFEE23E3-4047-42B2-84AA-434EA9640D23.jpeg" alt="" class="alignnone size-full" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/07/14/ive-made-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portsmouth Creative Collective</title>
		<link>http://nathangaskin.com/2010/07/05/portsmouth-creative-collective/</link>
		<comments>http://nathangaskin.com/2010/07/05/portsmouth-creative-collective/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 18:47:01 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://nathangaskin.com/?p=70</guid>
		<description><![CDATA[Portsmouth Creative Collective is a new meetup event for passionate entrepreneurs and creative professionals in the Portsmouth area. I&#8217;ve been taking part in Portsmouth University&#8217;s PIPEline programme for the last couple of weeks, which has taught me a great deal and introduced me to a load of awesome new people. Through these people I noticed [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nathangaskin.com/wp-content/uploads/2010/07/PORTSCCsmall.png"><img class="alignright size-full wp-image-72" title="Portsmouth Creative Collective" src="http://nathangaskin.com/wp-content/uploads/2010/07/PORTSCCsmall.png" alt="Portsmouth Creative Collective Logo" width="330" height="400" /></a>Portsmouth Creative Collective is a new meetup event for passionate entrepreneurs and creative professionals in the Portsmouth area.</p>
<p>I&#8217;ve been taking part in Portsmouth University&#8217;s <a href="http://www.port.ac.uk/departments/academic/pce/PIPEline/" target="_blank">PIPEline</a> programme for the last couple of weeks, which has taught me a great deal and introduced me to a load of awesome new people. Through these people I noticed a distinct lack of social gatherings for networking within the creative sector, and thus Portsmouth Creative Collective was born!</p>
<p>We&#8217;re meeting at <a href="http://www.thekrakenwakes.com/" target="_blank">The Kraken Wakes</a> on Thursday 8th July at 12:00pm. Anyone is welcome to pop along and say hello. Currently we have a great mix of graphic designers, architects, product designers, games developers, illustrators, creative writers and, of course, mobile application developers! No agenda, no schedule, just an informal meetup with some good people, good atmosphere and good beer!</p>
<p>If you&#8217;re interested, the Facebook event page is located <a title="Portsmouth Creative Collective" href="http://www.facebook.com/event.php?eid=132784723419769" target="_blank">here</a>, or just turn up!</p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/07/05/portsmouth-creative-collective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This is a test of the emergency broadcast system</title>
		<link>http://nathangaskin.com/2010/06/25/this-is-a-test-of-the-emergency-broadcast-system/</link>
		<comments>http://nathangaskin.com/2010/06/25/this-is-a-test-of-the-emergency-broadcast-system/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 21:33:52 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://nathangaskin.com/?p=4</guid>
		<description><![CDATA[Some nasty things happened that meant that Google was flagging this site as being &#8216;potentially dangerous&#8217;. As such, I&#8217;ve nuked everything and updated WordPress, which I assume was the culprit. Normal service will be resumed shortly.]]></description>
			<content:encoded><![CDATA[<p>Some nasty things happened that meant that Google was flagging this site as being &#8216;potentially dangerous&#8217;. As such, I&#8217;ve nuked everything and updated WordPress, which I assume was the culprit.</p>
<p>Normal service will be resumed shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/06/25/this-is-a-test-of-the-emergency-broadcast-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validation without a model in CakePHP</title>
		<link>http://nathangaskin.com/2010/04/19/validation-without-a-model-in-cakephp/</link>
		<comments>http://nathangaskin.com/2010/04/19/validation-without-a-model-in-cakephp/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:16:32 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.nathangaskin.com/?p=62</guid>
		<description><![CDATA[CakePHP offers an awesome set of validation methods, but they rely on defining what you want to validate within a model. Sometimes you just want to quickly validate a certain piece of data, or validate a set of data iteratively without touching the model. For that, you can import the Validation class and use its [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP offers an awesome set of validation methods, but they rely on defining what you want to validate within a model. Sometimes you just want to quickly validate a certain piece of data, or validate a set of data iteratively without touching the model. For that, you can import the Validation class and use its methods directly in the controller.</p>
<p>For example &#8211; I had a comma separated list of phone numbers and wanted to strip out any invalid ones.</p>
<pre class="brush:php">
App::import('Core', 'Validation');
$valid_recipients = array();
foreach($recipients as $rcpt) {
      $rcpt = trim($rcpt);
      if(Validation::phone($rcpt)) {
            $valid_recipients[] = $rcpt;
      }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/04/19/validation-without-a-model-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Street View Portsmouth: It&#039;s me!</title>
		<link>http://nathangaskin.com/2010/03/22/street-view-portsmouth-2/</link>
		<comments>http://nathangaskin.com/2010/03/22/street-view-portsmouth-2/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 20:04:25 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.nathangaskin.com/?p=51</guid>
		<description><![CDATA[I blogged a while back about seeing the Google Street View car driving around Portsmouth. It seemed to be speeding past rather quickly, so I wasn't sure if it was taking photos or not. Well, long story short - it was! And so my blurred out self now becomes a part of something quite iconic. A snapshot of time, a snapshot of a whole country, millions of people living out their lives - recorded for all to see.]]></description>
			<content:encoded><![CDATA[<p>I blogged a while back (since purged in the great WordPress Update Disaster) about seeing the Google Street View car driving around Portsmouth. It seemed to be speeding past rather quickly, so I wasn&#8217;t sure if it was taking photos or not. Well, long story short &#8211; it was! And so my blurred out self now becomes a part of something quite iconic. A snapshot of time, a snapshot of a whole country, millions of people living out their lives &#8211; recorded for all to see.</p>
<p style="text-align: center;"><a href="http://nathangaskin.com/wp-content/uploads/2010/03/maps1.jpg"><img class="size-medium wp-image-52 aligncenter" title="Me on Google Maps" src="http://www.nathangaskin.com/wp-content/uploads/2010/03/maps1-300x164.jpg" alt="Me on Google Maps" width="300" height="164" /></a></p>
<p>Also of note is my friend Mark <a href="http://maps.google.co.uk/?ie=UTF8&amp;ll=50.796387,-1.095457&amp;spn=0,359.932365&amp;t=h&amp;z=14&amp;layer=c&amp;cbll=50.796292,-1.095446&amp;panoid=bK0O1yqpG4u99EcPYVXT-Q&amp;cbp=12,41.76,,1,10.01" target="_blank">chasing the car back down the road, waving like a maniac</a>. And why not, eh?</p>
<p>I haven&#8217;t heard much from the crazies with the latest batch of updates to Street View. The ones who normally complain how their privacy is being so unfairly invaded. Load of rubbish &#8211; if only for the sheer fact that Street View is just so damned cool. Go, find yourself, be proud! If you&#8217;re on there then you really are a part of digital history (although I&#8217;m not sure how often these images are updated, maybe you&#8217;re a temporary part of digital history). If you happened to get caught walking out of a slightly seedy establishment then better luck next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/03/22/street-view-portsmouth-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Half Pie Charts in Flex</title>
		<link>http://nathangaskin.com/2010/02/26/creating-half-pie-charts-in-flex/</link>
		<comments>http://nathangaskin.com/2010/02/26/creating-half-pie-charts-in-flex/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 15:25:04 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[charting]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://www.nathangaskin.com/?p=38</guid>
		<description><![CDATA[This is an awfully hacky way to perform a very specific task. My brief was to create a pie chart representing two data sets, each occupying half of the pie chart. The pie chart as a whole could represent the sum of the two pieces of data, whilst still representing them both individually.]]></description>
			<content:encoded><![CDATA[<p>This is an awfully hacky way to perform a very specific task, but I couldn&#8217;t find anything else on the web about it so here you go.  My brief was to create a pie chart representing two data sets, each occupying half of the pie chart. The pie chart as a whole could represent the sum of the two pieces of data, whilst still representing them both individually. Still with me? It ended up looking like this:</p>
<a href="http://nathangaskin.com/wp-content/uploads/2010/02/pie.png"><img class="size-full wp-image-39" title="Pie Chart" src="http://nathangaskin.com/wp-content/uploads/2010/02/pie.png" alt="A bisected pie chart" width="252" height="222" /></a>
<p>The simplest way I could think of was to retrieve the data as a percentage, half it, then &#8216;pad out&#8217; the remaining space with a blank entry.</p>
<pre class="brush:xml">
&lt;mx:ArrayCollection id=&quot;myData&quot;&gt;
	&lt;mx:source&gt;
		&lt;mx:Array&gt;
			&lt;mx:Object label=&quot;&quot; value=&quot;{50 - (myValueOne / 2)}&quot;/&gt;
			&lt;mx:Object label=&quot;My Value One&quot; value=&quot;{myValueOne / 2}&quot;/&gt;
			&lt;mx:Object label=&quot;My Value Two&quot; value=&quot;{myValueTwo / 2}&quot;/&gt;
			&lt;mx:Object label=&quot;&quot; value=&quot;{50 - (myValueTwo / 2)}&quot;/&gt;
		&lt;/mx:Array&gt;
	&lt;/mx:source&gt;
&lt;/mx:ArrayCollection&gt;
</pre>
<p>Define a PieChart as usual, set myData as its DataSource property. Add a PieSeries, then set the following as its fills property.</p>
<pre class="brush:xml">
&lt;mx:Array id=&quot;myFills&quot;&gt;
	&lt;mx:SolidColor color=&quot;0xFDFDCB&quot; alpha=&quot;0&quot; /&gt;
	&lt;mx:SolidColor color=&quot;0xFDFDCB&quot; alpha=&quot;1.0&quot; /&gt;
	&lt;mx:SolidColor color=&quot;0xBBEEBB&quot; alpha=&quot;1.0&quot; /&gt;
	&lt;mx:SolidColor color=&quot;0xBBEEBB&quot; alpha=&quot;0&quot; /&gt;
&lt;/mx:Array&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2010/02/26/creating-half-pie-charts-in-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unique items in a multidimensional array in PHP</title>
		<link>http://nathangaskin.com/2009/09/14/unique-items-in-a-multidimensional-array-in-php/</link>
		<comments>http://nathangaskin.com/2009/09/14/unique-items-in-a-multidimensional-array-in-php/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 11:51:10 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.nathangaskin.com/?p=33</guid>
		<description><![CDATA[array_unique() works fine for a single dimensional array, but falls down on multidimensional arrays because it relies on string comparisons. When it compares entries in a multidimensional array, it simply sees 'Array' === 'Array' and returns true.]]></description>
			<content:encoded><![CDATA[<p>I just found this in the PHP documentation and thought it was neat enough to warrant a blog post.</p>
<p>array_unique() works fine for a single dimensional array, but falls down on multidimensional arrays because it relies on string comparisons. When it compares entries in a multidimensional array, it simply sees &#8216;Array&#8217; === &#8216;Array&#8217; and returns true. This means everything will appear to be the same, and you&#8217;ll only get one thing in your result set.</p>
<p><em>Steve</em> in the comments for the array_unique function comes up with a novel solution. Store every result with a key based upon the md5 hash of the array item. This means if two items are the same, they will be stored under the same key, overwriting each other and making sure there&#8217;s only one of each. Really elegant.</p>
<p>Here&#8217;s how&#8230;</p>
<pre class="brush:php">
$unique = array();

foreach($my_duplicate_array as $entry) {
   $unique[md5(serialize($entry))] = $entry;
}
</pre>
<p>Sweet.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2009/09/14/unique-items-in-a-multidimensional-array-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouScoob</title>
		<link>http://nathangaskin.com/2009/08/19/youscoob/</link>
		<comments>http://nathangaskin.com/2009/08/19/youscoob/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 22:45:52 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.nathangaskin.com/?p=16</guid>
		<description><![CDATA[YouScoob is a social networking site aimed specifically at the scuba diving community. It allows members to share their dive experiences and integrate as a community worldwide over the web.]]></description>
			<content:encoded><![CDATA[<p><strong>Brief:</strong> To develop a social networking website targeted at the scuba diving community.</p>
<p><strong>Outcome:</strong> A social networking site was created from the ground up in PHP utilising the Zend MVC Framework. The initial beta versions allowed scuba divers to create online ‘dive logs’, showcasing their dives amongst the community with photos and technical information. Divers could communicate on ‘dive boards’ within their profiles and dives, or in a communal forum.</p>
<p>The site received huge amounts of positive feedback when demoed at UK dive shows and several hundred members had signed up within days of its launch.</p>
<p>There were many plans for evolving the site, especially in the social networking aspects – allowing divers with similar niches and interests to find each other through the site. Sadly, the project was pulled in its infancy due to funding issues.</p>
<p>It can be found at <a href="http://www.youscoob.com" target="_blank">Youscoob.com</a> until the hosting expires, although it does have a distinct ghost town feel.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2009/08/19/youscoob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maximms</title>
		<link>http://nathangaskin.com/2009/08/19/maximms/</link>
		<comments>http://nathangaskin.com/2009/08/19/maximms/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 22:41:06 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.nathangaskin.com/?p=13</guid>
		<description><![CDATA[Maximms is a mobile marketing suite allowing for easy drag-and-drop design of MMS messages to mobile phones. It allows customised images and videos to be rendered for each recipient on the fly, proving to be an extremely powerful marketing tool.]]></description>
			<content:encoded><![CDATA[<p><strong>Brief:</strong> To develop a complete SMS and MMS marketing suite, with focus on sending customised graphical and video MMS messages to individual recipients.</p>
<p><strong>Outcome:</strong> A combination of J2EE, Adobe Flex and Livecycle Data Services was used in order to create a robust, scalable and extremely usable marketing platform. The use of Flex allowed for an intuitive web-based front end to be created, providing the power of a traditional application delivered through the web browser. A clustered J2EE architecture allows for the system to scale well into the foreseeable future.</p>
<p>The system combines a drag and drop design studio with powerful campaign management, analytic and reporting tools to provide a rounded suite.<br />
Maximms is currently in use and sending thousands of messages each month. Future development plans include the integration of a mobile web development platform and support for Bluetooth-based proximity marketing.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathangaskin.com/2009/08/19/maximms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

