<?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>David Otton</title>
	<atom:link href="http://www.otton.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.otton.org</link>
	<description>Look! Bunnies!</description>
	<lastBuildDate>Wed, 06 Jan 2010 14:32:48 +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>More switch() Abuse &#8211; Switching on Multiple Values</title>
		<link>http://www.otton.org/2009/11/22/more-php-switch-abuse-switching-on-multiple-values/</link>
		<comments>http://www.otton.org/2009/11/22/more-php-switch-abuse-switching-on-multiple-values/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 22:38:11 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[PHP Tricks]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[branching]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=400</guid>
		<description><![CDATA[Due to working with Drupal for most of this year, I&#8217;ve seen this construct so many times it&#8217;s killed me a little inside:

switch&#40;$a&#41; &#123;
    case TRUE:
        switch&#40;$b&#41; &#123;
            case TRUE:
     [...]]]></description>
			<content:encoded><![CDATA[<p>Due to working with Drupal for most of this year, I&#8217;ve seen this construct so many times it&#8217;s killed me a little inside:</p>
<p><code>
<pre><span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">TRUE</span>:
        <span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$b</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">TRUE</span>:
                <span style="color: #b1b100;">break</span>;
            <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">FALSE</span>:
                <span style="color: #b1b100;">break</span>;
        <span style="color: #66cc66;">&#125;</span>
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">FALSE</span>:
        <span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$b</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">TRUE</span>:
                <span style="color: #b1b100;">break</span>;
            <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">FALSE</span>:
                <span style="color: #b1b100;">break</span>;
        <span style="color: #66cc66;">&#125;</span>
        <span style="color: #b1b100;">break</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p></code></p>
<p>Someone I work with, who wishes to keep his name off the net, came up with this:</p>
<p><code>
<pre><span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span>, <span style="color: #0000ff;">$b</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>:
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>:
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>:
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>:
        <span style="color: #b1b100;">break</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p></code></p>
<p>I&#8217;d rather avoid the need for nested switches altogether, but this construct makes it easy to collapse similar branches, and is, I think, a useful addition to my toolkit:</p>
<p><code>
<pre><span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span>,<span style="color: #0000ff;">$b</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>:
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>:
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>:
    <span style="color: #b1b100;">case</span> <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>:
    <span style="color: #000000; font-weight: bold;">default</span>:
        <span style="color: #b1b100;">break</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p></code></p>
<p>It&#8217;s worth mentioning that arrays are compared for equality (==) rather than identicality (===).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/11/22/more-php-switch-abuse-switching-on-multiple-values/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instructions for opening Nutool SF5, SF10 and SF20 safes</title>
		<link>http://www.otton.org/2009/10/02/instructions-for-opening-nutool-sf5-sf10-and-sf20-safes/</link>
		<comments>http://www.otton.org/2009/10/02/instructions-for-opening-nutool-sf5-sf10-and-sf20-safes/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 01:22:39 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[nutool]]></category>
		<category><![CDATA[safe]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=393</guid>
		<description><![CDATA[A couple of years ago I had to open a personal/hotel-room style safe without a key. I contacted the manufacturer, thinking that just maybe, given a serial number, they could supply a new key. Instead I got complete instructions for breaking into their safes. Yay security!
I&#8217;m not sure which is dumber &#8211; that it&#8217;s so [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_396" class="wp-caption alignleft" style="width: 330px"><a href="http://www.flickr.com/photos/pong/288491653/"><img class="size-full wp-image-396" title="yale-safe" src="http://www.otton.org/wordpress/uploads/yale-safe.jpg" alt="Boston Library Yale Safe by rpongsaj" width="320" height="240" /></a><p class="wp-caption-text">Boston Library Yale Safe by rpongsaj</p></div>
<p>A couple of years ago I had to open a personal/hotel-room style safe without a key. I contacted the manufacturer, thinking that just maybe, given a serial number, they could supply a new key. Instead I got complete instructions for breaking into their safes. Yay security!</p>
<p>I&#8217;m not sure which is dumber &#8211; that it&#8217;s so simple to open, or that they give &#8220;defeat-our-product&#8221; howtos to anyone who asks. Anyway:</p>
<p>[<a href="http://en.wikipedia.org/wiki/Security_through_obscurity">instructions removed at nutool's request</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/10/02/instructions-for-opening-nutool-sf5-sf10-and-sf20-safes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apropos nothing: Rabbit pic</title>
		<link>http://www.otton.org/2009/07/14/apropos-nothing-rabbit-pic/</link>
		<comments>http://www.otton.org/2009/07/14/apropos-nothing-rabbit-pic/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 07:28:02 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[giant rabbit]]></category>
		<category><![CDATA[slipper]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=390</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_391" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.otton.org/wordpress/uploads/slipper-chair.jpg"><img class="size-full wp-image-391" title="slipper-chair" src="http://www.otton.org/wordpress/uploads/slipper-chair.jpg" alt="Slipper, heading for the table" width="500" height="666" /></a><p class="wp-caption-text">Slipper, heading for the table</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/07/14/apropos-nothing-rabbit-pic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supid PHP Tricks: Broken Switch</title>
		<link>http://www.otton.org/2009/06/05/supid-php-tricks-broken-switch/</link>
		<comments>http://www.otton.org/2009/06/05/supid-php-tricks-broken-switch/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 12:03:46 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[PHP Tricks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=388</guid>
		<description><![CDATA[A fragment of PHP that really shouldn&#8217;t work. I hope nobody ever finds a use for this:

switch&#40;$n&#41;
&#123;
    case 1;
        echo 'one';
        break;
    case 2;
        echo 'two';
   [...]]]></description>
			<content:encoded><![CDATA[<p>A fragment of PHP that really shouldn&#8217;t work. I hope nobody ever finds a use for this:</p>
<p><code>
<pre><span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$n</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">1</span>;
        <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'one'</span>;
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">2</span>;
        <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'two'</span>;
        <span style="color: #b1b100;">break</span>;
    <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">3</span>;
        <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'three'</span>;
        <span style="color: #b1b100;">break</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/06/05/supid-php-tricks-broken-switch/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Seen on the PHP General Mailing List</title>
		<link>http://www.otton.org/2009/06/04/seen-on-the-php-general-mailing-list/</link>
		<comments>http://www.otton.org/2009/06/04/seen-on-the-php-general-mailing-list/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 16:48:22 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=386</guid>
		<description><![CDATA[
Hi
Can anyone help me handel this URL injection ?
https://www.xxx.co.uk/register.php"&#124; grep "123"
I want to detect it and header back to my index page.
It's quite urgent
Thanks for help

Heh. Poor guy.
]]></description>
			<content:encoded><![CDATA[<blockquote>
<pre>Hi
Can anyone help me handel this URL injection ?
https://www.xxx.co.uk/register.php"| grep "123"
I want to detect it and header back to my index page.
It's quite urgent
Thanks for help</pre>
</blockquote>
<p>Heh. Poor guy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/06/04/seen-on-the-php-general-mailing-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small Privacy Bug in Google Maps</title>
		<link>http://www.otton.org/2009/04/22/google-maps-privacy-bug/</link>
		<comments>http://www.otton.org/2009/04/22/google-maps-privacy-bug/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 23:25:35 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=379</guid>
		<description><![CDATA[I was poking around in Google Maps tonight, and discovered that the &#8220;Link&#8221; button contains a reference to the last map you looked at, as well as the current one.
Steps to replicate:
Go to http://maps.google.co.uk/ and search for &#8220;Birmingham&#8221;
Now search for &#8220;London&#8221;
Click &#8220;Link&#8221;. The link should look something like this:
http://maps.google.co.uk/maps?f=q&#38;source=s_q&#38;hl=en&#38;geocode=&#38;q=London&#38;sll=52.487798,-1.893768&#38;sspn=0.262996,0.617981&#38;ie=UTF8&#38;ll=51.510452,-0.126343&#38;spn=0.537601,1.235962&#38;z=10&#38;iwloc=A
If you snip out the sll attribute [...]]]></description>
			<content:encoded><![CDATA[<p>I was poking around in Google Maps tonight, and discovered that the &#8220;Link&#8221; button contains a reference to the last map you looked at, as well as the current one.</p>
<p>Steps to replicate:</p>
<p>Go to <a href="http://maps.google.co.uk/">http://maps.google.co.uk/</a> and search for &#8220;Birmingham&#8221;</p>
<p>Now search for &#8220;London&#8221;</p>
<p>Click &#8220;Link&#8221;. The link should look something like this:</p>
<p><a href="http://maps.google.co.uk/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=London&amp;sll=52.487798,-1.893768&amp;sspn=0.262996,0.617981&amp;ie=UTF8&amp;ll=51.510452,-0.126343&amp;spn=0.537601,1.235962&amp;z=10&amp;iwloc=A">http://maps.google.co.uk/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=London&amp;sll=52.487798,-1.893768&amp;sspn=0.262996,0.617981&amp;ie=UTF8&amp;ll=51.510452,-0.126343&amp;spn=0.537601,1.235962&amp;z=10&amp;iwloc=A</a></p>
<p>If you snip out the sll attribute (52.487798,-1.893768) and feed it back into Maps, you&#8217;ll find it&#8217;s the lat/long for Birmingham, not London. I think it&#8217;s intentional, because the ll attribute points to London. I can&#8217;t see any obvious use for the sll attribute, though &#8211; there doesn&#8217;t appear to be a back button or history tool on the target page.</p>
<p>Not a big deal, but it could conceivably be an embarrassment to someone, some day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/04/22/google-maps-privacy-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Learn Something New Every Day &#8211; isset()</title>
		<link>http://www.otton.org/2009/04/16/i-learn-something-new-every-day-isset/</link>
		<comments>http://www.otton.org/2009/04/16/i-learn-something-new-every-day-isset/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 12:10:30 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[PHP Tricks]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=377</guid>
		<description><![CDATA[Check this out:

if &#40;isset&#40;$a, $b, $c&#41;&#41;
&#123;
    unset&#40;$a, $b, $c&#41;;
&#125;

Mulitple arguments. Looks like they&#8217;ve been there since an early PHP4 release, at least. Why does nobody tell me these things?
]]></description>
			<content:encoded><![CDATA[<p>Check this out:<br />
<code>
<pre><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span>, <span style="color: #0000ff;">$b</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
    <a href="http://www.php.net/unset"><span style="color: #000066;">unset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span>, <span style="color: #0000ff;">$b</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p></code></p>
<p>Mulitple arguments. Looks like they&#8217;ve been there since an early PHP4 release, at least. Why does nobody tell me these things?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/04/16/i-learn-something-new-every-day-isset/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Script to make relative includes absolute, for the benefit of APC</title>
		<link>http://www.otton.org/2009/04/06/script-to-make-relative-includes-absolute-for-the-benefit-of-apc/</link>
		<comments>http://www.otton.org/2009/04/06/script-to-make-relative-includes-absolute-for-the-benefit-of-apc/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 17:16:29 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[build process]]></category>
		<category><![CDATA[include_once]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[require_once]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=371</guid>
		<description><![CDATA[The problem:
If you include() or require() files with relative paths, APC will search the include_path on every request, and you won&#8217;t gain the full benefit of turning apc.stat off.
Using absolute paths portably in your own code is easy &#8211; just use a constant, eg. &#8220;require APP_PATH . &#8216;file.php&#8217;;&#8221;. External libraries, however, are harder to deal [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The problem:</strong></p>
<p>If you include() or require() files with relative paths, <a href="http://pecl.php.net/package/APC">APC</a> will search the include_path on every request, and you won&#8217;t gain the full benefit of turning apc.stat off.</p>
<p>Using absolute paths portably in your own code is easy &#8211; just use a constant, eg. &#8220;require APP_PATH . &#8216;file.php&#8217;;&#8221;. External libraries, however, are harder to deal with &#8211; you either accept the performance hit, or go through them adding constants by hand (and merging your changes every time there&#8217;s a new release).</p>
<p><strong>The solution:</strong></p>
<p><a href="http://www.otton.org/uploads/Absolute/absolute.rar">This script</a> rewrites PHP scripts, turning relative paths into absolute paths, allowing you to deploy third party libraries within your build process and still take full advantage of APC.</p>
<p><strong>Some caveats:</strong></p>
<p>It reads from stdin and writes to stdout.</p>
<p>It relies on it&#8217;s own include_path; in the real world, you&#8217;ll probably want to pass that in on the command line.</p>
<p>It only deals with the most common subset of include statements (variations on T_INCLUDE, T_CONSTANT_ENCAPSED_STRING, T_SEMICOLON).</p>
<p>The Windows support is a bit wing-and-a-prayer.</p>
<p>It&#8217;s memory-greedy when dealing with very large files.</p>
<p>It doesn&#8217;t play 100% nicely with safe_mode_include_dir.</p>
<p>Thrown out there in the hope it will be useful to someone. I&#8217;d be delighted to accept any feedback or additions anyone wants to offer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/04/06/script-to-make-relative-includes-absolute-for-the-benefit-of-apc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job Opportunity &#8211; Junior Pythonista</title>
		<link>http://www.otton.org/2009/04/05/job-opportunity-junior-pythonista/</link>
		<comments>http://www.otton.org/2009/04/05/job-opportunity-junior-pythonista/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 22:13:11 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[jobs]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=369</guid>
		<description><![CDATA[Mauve Internet over in Chichester is growing, and is looking for a Junior Python Developer. If you know anyone who might be interested, please forward the link to them.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mauveinternet.co.uk/">Mauve Internet</a> over in Chichester is growing, and is looking for a <a href="http://www.mauveinternet.co.uk/jobs">Junior Python Developer</a>. If you know anyone who might be interested, please forward the link to them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/04/05/job-opportunity-junior-pythonista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Link</title>
		<link>http://www.otton.org/2009/02/19/quick-link-2/</link>
		<comments>http://www.otton.org/2009/02/19/quick-link-2/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 12:09:15 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.otton.org/?p=365</guid>
		<description><![CDATA[Matt Jones on the advantages of &#8220;Good Enough&#8221; in location-based services. (via)
I think lifestreaming might have something to learn from this approach.
]]></description>
			<content:encoded><![CDATA[<p>Matt Jones on the advantages of <a href="http://magicalnihilism.wordpress.com/2009/02/18/exporting-the-past-into-the-future-or-the-possibility-jelly-lives-on-the-hypersurface-of-the-present/">&#8220;Good Enough&#8221;</a> in location-based services. <small>(<a href="http://radar.oreilly.com/2009/02/four-short-links-18-feb-2009.html">via</a>)</small></p>
<p>I think lifestreaming might have something to learn from this approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otton.org/2009/02/19/quick-link-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
