<?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>GC</title>
	<atom:link href="http://gavincoop.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://gavincoop.co.uk</link>
	<description>Seeing how long he can blog for without getting bored...</description>
	<lastBuildDate>Tue, 04 May 2010 14:24:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Debugging JavaScript on the iPhone</title>
		<link>http://gavincoop.co.uk/2010/05/04/debugging-javascript-on-the-iphone/</link>
		<comments>http://gavincoop.co.uk/2010/05/04/debugging-javascript-on-the-iphone/#comments</comments>
		<pubDate>Tue, 04 May 2010 14:24:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=114</guid>
		<description><![CDATA[Quick tip, if your trying to debug your web app on the iPhone simulator or a device you can switch on the Debug console by going into Settings &#62; Safari &#62; Developer. It&#8217;s all explained in the Safari Web Content Guide written by the nice people at Apple.
]]></description>
			<content:encoded><![CDATA[<p>Quick tip, if your trying to debug your web app on the iPhone simulator or a device you can switch on the Debug console by going into Settings &gt; Safari &gt; Developer. It&#8217;s all explained in the <a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/DebuggingSafarioniPhoneContent/DebuggingSafarioniPhoneContent.html#//apple_ref/doc/uid/TP40006515-SW1">Safari Web Content Guide</a> written by the nice people at Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/05/04/debugging-javascript-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Singleton Pattern</title>
		<link>http://gavincoop.co.uk/2010/04/23/javascript-singleton-pattern/</link>
		<comments>http://gavincoop.co.uk/2010/04/23/javascript-singleton-pattern/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 08:48:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=111</guid>
		<description><![CDATA[It may have taken 15/20 minutes of Google&#8217;ing to find an actual Singleton Pattern replicated in JavaScript, but it was worth it. Anyway I thought I would share. Thanks to this post for giving me what I wanted! Most of the answers Google turfed up for me didn&#8217;t return a persistent object, which is required [...]]]></description>
			<content:encoded><![CDATA[<p>It may have taken 15/20 minutes of Google&#8217;ing to find an actual <a href="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton Pattern</a> replicated in JavaScript, but it was worth it. Anyway I thought I would share. Thanks to <a href="http://stackoverflow.com/questions/1479319/simplest-cleanest-way-to-implement-singleton-in-javascript">this post</a> for giving me what I wanted! Most of the answers Google turfed up for me didn&#8217;t return a persistent object, which is required by the Singleton Pattern. You can learn more about patterns in JavaScript with <a href="http://www.amazon.com/gp/product/159059908X/ref=cm_li_v_cd_d?tag=linkedin-20">Pro JavaScript Design Patterns</a>, although be warned it&#8217;s a very fast paced book and expects you to have a very good aptitude for learning. I have had to re-read some of the pages more than three times to understand precisely what&#8217;s going on, there is no doubt that the author is an exceptional JavaScript developer, but he explains things so quickly it&#8217;s almost like he presume you should know it already.</p>
<p>The Singleton Pattern</p>
<pre>var Application = window.Application || {}; // Creates a <a href="http://snook.ca/archives/javascript/javascript_name/">namespace</a> called Application.

Application.Config = function () {
    var instance = (function () {
        var privateVar;

        function privateMethod() {
            return 'privateMethod';
        }

        return { // Public interface.
            publicMethod: function () {
                return privateMethod();
            }
        }
    })();

    Application.Config = function() {
        return instance;
    }

    return Application.Config();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/04/23/javascript-singleton-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handling Screen Orientations with xUI</title>
		<link>http://gavincoop.co.uk/2010/04/17/handling-screen-orientations-with-xui/</link>
		<comments>http://gavincoop.co.uk/2010/04/17/handling-screen-orientations-with-xui/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 12:00:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[XUI]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=103</guid>
		<description><![CDATA[Handling cross device screen orientations with the xUI framework is a breeze. xUI handles all the hard stuff for you all you need to do is register for an event change and react to it, xUI takes care of all the cross-device complexities for you.
x$('body').orientationchange(function() {
    alert('Orientation changed to: '.window.orientation);
});

Above attaches the [...]]]></description>
			<content:encoded><![CDATA[<p>Handling cross device screen orientations with the <a href="http://github.com/brianleroux/xui">xUI framework</a> is a breeze. xUI handles all the hard stuff for you all you need to do is register for an event change and react to it, xUI takes care of all the cross-device complexities for you.</p>
<pre>x$('body').orientationchange(function() {
    alert('Orientation changed to: '.window.orientation);
});
</pre>
<p>Above attaches the body to the &#8216;orientationchange&#8217; event, within in here your free to do what you like to react to the change.</p>
<p>What I have been doing is toggling a css class on the body tag and adjusting fixed width elements in my style sheet where I need to. Of course if you can devise a layout which doesn&#8217;t have any fixed width elements and everything is in %&#8217;s then you can leave this bit out. Your probably still need to react to the change however if you need to change the width of any full screen images for example. Below changes the css class of the attached element (body) when the orientation changes.</p>
<pre>var current_orientation; // Cache orientation.

x$('body').orientationchange(function() {
    var newOrientation;

    switch (window.orientation) // Switch out the windows orientation
    {
        case 0:
        case 180: // Upside down.
            newOrientation = 'portrait';
            break;
        case -90:
        case 90:
            newOrientation = 'landscape';
            break;
    }

    if (current_orientation != newOrientation) // Ensure the new orientation isn't the same as the current.
    {
        x$('body').addClass(newOrientation);
        x$('body').removeClass(current_orientation);

        orientation_str = newOrientation; // Cache current orientation for comparison,
    }
});
</pre>
<p>The above code will change the class of the &#8216;body&#8217; tag when the orientation changes from landscape to portrait. Using this you can alter the layout of your application depending on the devices orientation.</p>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/04/17/handling-screen-orientations-with-xui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Time and Timezones</title>
		<link>http://gavincoop.co.uk/2010/04/16/php-time-and-timezones/</link>
		<comments>http://gavincoop.co.uk/2010/04/16/php-time-and-timezones/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 20:55:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[datetime]]></category>
		<category><![CDATA[datetimezone]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[timezones]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=92</guid>
		<description><![CDATA[The concept of timezones in PHP has gone through many iterations since PHP 3.x which didn&#8217;t have the concept of timezones, of course there were still ways to progromaticaly handle timezones in PHP3 but not as simply as we can today. PHP4 was a marked improvement native support for timezones and PHP5 wraps everything into [...]]]></description>
			<content:encoded><![CDATA[<p>The concept of timezones in PHP has gone through many iterations since PHP 3.x which didn&#8217;t have the concept of timezones, of course there were still ways to progromaticaly handle timezones in PHP3 but not as simply as we can today. PHP4 was a marked improvement native support for timezones and PHP5 wraps everything into some tidy <a href="http://www.php.net/manual/en/class.datetime.php">classes</a> for us to use.</p>
<p>The concept of time across our earth can often confuse developers, indeed the problem burdened me initially. At the core of time within PHP is the Unix time stamp. A Unix time stamp (or POSIX time) is the number of seconds from 1st January 1970 00:00:00 UTC. For our discussion here about timezones the important part to note is &#8216;UTC&#8217; which is essentially GMT time. The reason this is important is because as you move round the earth into different timezones UTC is offset by <em>n</em> number of hours, for example San Fransisco is either -7 or -8 hours from UTC. I say &#8216;either&#8217; because San Fransisco has daylight saving which alters the offset by 1 hour, whilst we are on the topic of daylight the reason for any offset in the first place is because of the suns rotation around the earth. It is sunrise or a new day in New Zealand (which is +12) before it is a new day or sunrise in England (which is either 0/+1).</p>
<p>Once you&#8217;ve grasped this concept, that you were no doubt taught in school  and subsequently forgot by the next lesson, time because much easier.</p>
<p>Ok so before we get any further ahead of ourselves, you need to tell the server where it is. You could rely on the default configuration of the server, but that would be silly because a) it&#8217;s probably not in your control and b) what if you need another server, say in the US to feed a growing market &#8211; that server will be in another timezone and thus ruin your code.</p>
<pre>date_default_timezone_set('UTC');
</pre>
<p>The above code tells your server that from <strong>now on</strong> you want all date related functions (date(), mktime() etc) to be done in that timezone. Read that again because it&#8217;s important. Anytime you want to format a Unix time stamp into a legible string for a given timezone you need to wrap it in the below code.</p>
<pre>$cache = date_default_timezone_get();
date_default_timezone_set('Australia/Sydney');
$now = date("r");
date_default_timezone_set($cache);</pre>
<p>Notice here how we cache the current timezone, we do this because we only want to be setting the default timezone from configuration etc once.</p>
<p>The important thing to remember is just using time() although gives you the time, is not a &#8216;timezone safe&#8217; operation. For example.</p>
<pre>$now = time();
date("r", $now);
</pre>
<p>Will return the correct time ONLY if you your server is configured to the same timezone you are in. Or put another way if you are sat in England (not in British summer time) and your using localhost as your server (correctly configured to UTC) will the above result in a correct date and time. If your sat in another timezone which has an offset from UTC then this is not really &#8216;now&#8217; for you. Here are foreign cousins have the advantage because if your never developing on a timezone that is UTC the problem will always be apparent, but for us what you see may only work half the year, as when the clocks change for BST (British summer time) you will now be at UTC +1.</p>
<p>That explains a few problems that your likely to come across. At the core of these problems is the old PHP5.1 style way of calculating time. Everything you&#8217;ve seen so far is PHP5.1/4/3. Although the methods are still supported for obvious reasons the new PHP5.2 DateTime classes are the most type safe solutions and should always be the interfaces you use to calculate time.</p>
<pre>date_default_timezone_set('UTC');
$now = new DateTime("now");
echo($now-&gt;format("r")); // Current time in RFC 2822 Thu, 21 Dec 2000 16:01:07 +0200
</pre>
<p>The above code creates a <a href="http://www.php.net/manual/en/class.datetime.php">DateTime</a> object automatically set for the current time in the default timezone. Below shows how to get the current time in a timezone.</p>
<pre>$tz = new DateTimeZone("Australia/Melbourne");
$now = new DateTime("now", $tz);</pre>
<p>No switching of the servers timezone required here, which means you can be sure that your fellow developers haven&#8217;t forgotten to switch the default timezone back after a date() function. With the above example you can guarantee that the returned time, whatever format you specify will be in the correct timezone. Using the above code as a starting point its easy to adjust the time.</p>
<pre>
$now-&gt;setTime($now-&gt;format("H") + 3); // setTime(hours, minutes, seconds);
</pre>
<p>Above sets the DateTime object 3 hours into the future and printed will return the current time in Melbourne, Australia + 3 hours.</p>
<p>Now back to UTC time, which is great but often causes confusion with timezones. If we format the above DateTime object we will get the same Unix time stamp returned if we have set the DateTimeZone object to &#8216;Europe/London&#8217;.</p>
<pre>
date_default_timezone_set('UTC');
$now = new DateTime();
echo('Now: '.$now-&gt;format('r').' ('.$now-&gt;format('U').')&lt;br /&gt;'); // Returns: Now: Fri, 16 Apr 2010 20:22:11 +0000 (1271449331)

$tz = new DateTimeZone('Australia/Melbourne');
$now = new DateTime("now", $tz);
echo('Now: '.$now-&gt;format('r').' ('.$now-&gt;format('U').')&lt;br /&gt;'); // Returns: Now: Sat, 17 Apr 2010 06:22:11 +1000 (1271449331)
</pre>
<p>It&#8217;s great to store Unix time stamps and use Unix time stamps, I love them, they are the most versatile way of representing time. However it&#8217;s here that unless you have a thorough understanding of time and that Unix is always UTC you will get and cause bugs in your code. To take a Unix time stamp and ensure its used in a timezone safe manner you need to quickly convert that time stamp into a DateTime object set with the correct timezone, so for the seconds returned timezone.</p>
<pre>
$tz = new DateTimeZone('Australia/Melbourne');
$now = new DateTime("now", $tz);

$now-&gt;setTimestamp(1271449331);
</pre>
<p>The most type safe process to ensure your Unix timestamps are stored and used by client code in the correct way is to provide a timezone safe function within your objects for getting time. The below code shows this.</p>
<pre>class SurfEvent
{
    private $timestamp;
    private $timezone;
    function __construct()
    {
        $this-&gt;timestamp = '1271449331'; // Came from the database for example.
        $this-&gt;timezone = 'Australia/Melbourne';
    }

    function getDate($format)
    {
        $tz = new DateTimeZone($this-&gt;timezone);
        $dt = new DateTime("now", $tz);
        $dt-&gt;setTimestamp($this-&gt;timestamp);

        return $dt-&gt;format($format);
    }
}
</pre>
<p>The above code ensures a client coder cannot access the raw time stamp and run date() on it without thinking about the timezone of that current time stamp. The above code rightly forces the client coder to provide a format that they want the time stamp in. Although yes you could provide &#8220;U&#8221; as a format and then run a date() function on that timezone, but adding checking for the passed format is trivial. The above code could just as easily be used to return a RFC 2822 formatted date which includes timezone information and then used to create DateTime objects for comparison. Or you could modify the class to make this easier. I leave it to you to play with.</p>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/04/16/php-time-and-timezones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xUI Plugins</title>
		<link>http://gavincoop.co.uk/2010/04/14/xui-plugins/</link>
		<comments>http://gavincoop.co.uk/2010/04/14/xui-plugins/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 16:16:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[XUI]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=88</guid>
		<description><![CDATA[Below is a template for plugins with xUI the awesome jQuery like mobile JS framework. This might be an un-documented feature of xUI at the current version. Check the latest version on git, which is what I am using for this (1.0.0) and I have already written compiling building it on os x. Although it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Below is a template for plugins with xUI the awesome jQuery like mobile JS framework. This might be an un-documented feature of xUI at the current version. Check the <a href="http://github.com/brianleroux/xui">latest version on git</a>, which is what I am using for this (1.0.0) and <a href="http://gavincoop.co.uk/2010/04/09/building-xui-on-os-x-from-the-source/">I have already written compiling building it on os x</a>. Although it&#8217;s an undocumented &#8220;feature&#8221; as such, it&#8217;s basically supported because of xUI&#8217;s JavaScript architecture. I haven&#8217;t really got time to explain this now, but check out <a href="http://www.amazon.co.uk/JavaScript-Design-Patterns-Recipes-Problem-Solution/dp/159059908X">Pro JavaScript Design Patterns</a> which will unlock OO JavaScript for you!</p>
<p>xUI JavaScript plugin template.</p>
<pre>(function(x$) {
  x$.fn.myPlugin = function()
  {
    return this.each(function()
    {
      console.log('myPlugin!');
    });
  }
})(x$);
</pre>
<p>Update 17/04/2010: After sifting through the new xUI source it seems this is an implemented, feature although the how and why it works you should definitely read the above book (<a href="http://www.amazon.co.uk/JavaScript-Design-Patterns-Recipes-Problem-Solution/dp/159059908X">Pro  JavaScript Design Patterns</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/04/14/xui-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple HTTP Live Streaming Specification</title>
		<link>http://gavincoop.co.uk/2010/04/09/apple-http-live-streaming-specification/</link>
		<comments>http://gavincoop.co.uk/2010/04/09/apple-http-live-streaming-specification/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 19:51:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[http live streaming]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[x264]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=85</guid>
		<description><![CDATA[A word on Apple&#8217;s HTTP Live Streaming Protocol. Firstly if you intend to implement this you must ensure your app meets all the criteria in this specification or your app will be rejected from the App Store &#8211; end of.
I only wish this document was there when I first sent my app to Apple. Admitedly [...]]]></description>
			<content:encoded><![CDATA[<p>A word on Apple&#8217;s HTTP Live Streaming Protocol. Firstly if you intend to implement this you must ensure your app meets all the criteria <a href="http://developer.apple.com/iphone/library/technotes/tn2010/tn2224.html">in this specification</a> or your app will be rejected from the App Store &#8211; end of.</p>
<p>I only wish this document was there when I first sent my app to Apple. Admitedly I would imagine that had I taken the time to read the <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-01">entire submitted specification on the IETF</a> I probably would have know this.</p>
<p>Secondly what is very interesting is that when you read <a href="http://developer.apple.com/iphone/library/technotes/tn2010/tn2224.html">Technical Note TN2224</a> on the ADC they explicitly say that if your app does not meet this specification it will be rejected &#8211; an Apple first?</p>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/04/09/apple-http-live-streaming-specification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building XUI on OS X from the source</title>
		<link>http://gavincoop.co.uk/2010/04/09/building-xui-on-os-x-from-the-source/</link>
		<comments>http://gavincoop.co.uk/2010/04/09/building-xui-on-os-x-from-the-source/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 10:28:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[XUI]]></category>
		<category><![CDATA[xui git]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=76</guid>
		<description><![CDATA[I&#8217;ve been using XUI for a while now and figured I would get stuck in with contributing, but not having seen JS source like this before actually getting the js file out of the source wasn&#8217;t as easy as I thought.
For those that are still struggling.
First you need to open the terminal and go to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using XUI for a while now and figured I would get stuck in with contributing, but not having seen JS source like this before actually getting the js file out of the source wasn&#8217;t as easy as I thought.</p>
<p>For those that are still struggling.</p>
<p>First you need to open the terminal and go to a directory of your choice.</p>
<pre>$ cd /repos</pre>
<p>Next clone the git repository</p>
<pre>$ git clone git clone git://github.com/brianleroux/xui.git</pre>
<p>Change to the newely created git repository</p>
<pre>$ cd xui</pre>
<p>Now this is what got me stuck if you run rake now, just like the readme file suggests you will get an error similiar to below</p>
<pre>No such file or directory - /Library/WebServer/Documents/repos/xui/packages/emile/emile.js</pre>
<p>To rectify this you need to run the commands below to initiate the submodules.</p>
<pre>$ git submodule init
$ git submodule update</pre>
<p>That will ensure you have a full git repository of XUI with the submodule repositories as well. The last thing you need to do to get a clean build is <a title="WebKit Nightly Builds" href="http://nightly.webkit.org/">download Webkit</a> and make sure its in your applications folder. When you run rake Webkit is used to run some automated tests of your built JS files.</p>
<p>Lastly then make sure your in the main project directory and run.</p>
<pre>$ rake</pre>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2010/04/09/building-xui-on-os-x-from-the-source/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dissertation Download</title>
		<link>http://gavincoop.co.uk/2009/03/25/dissertation-download/</link>
		<comments>http://gavincoop.co.uk/2009/03/25/dissertation-download/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:34:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PRID301 - Dissertation]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=71</guid>
		<description><![CDATA[Please enjoy responsibly&#8230;
Cyberspace Monopolies and The Search Engine Market
]]></description>
			<content:encoded><![CDATA[<p>Please enjoy responsibly&#8230;</p>
<p><a href="http://gavincoop.co.uk/wp-content/uploads/2009/03/gavincooper1.pdf">Cyberspace Monopolies and The Search Engine Market</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2009/03/25/dissertation-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protected: Introducing Protector</title>
		<link>http://gavincoop.co.uk/2008/11/21/introducing-protector/</link>
		<comments>http://gavincoop.co.uk/2008/11/21/introducing-protector/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 14:12:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PRID302 - Project]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=54</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://gavincoop.co.uk/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-54">Password:<br />
<input name="post_password" id="pwbox-54" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2008/11/21/introducing-protector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protected: New Concept</title>
		<link>http://gavincoop.co.uk/2008/11/14/new-concept/</link>
		<comments>http://gavincoop.co.uk/2008/11/14/new-concept/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 15:57:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PRID302 - Project]]></category>

		<guid isPermaLink="false">http://gavincoop.co.uk/?p=52</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://gavincoop.co.uk/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-52">Password:<br />
<input name="post_password" id="pwbox-52" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://gavincoop.co.uk/2008/11/14/new-concept/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
