<?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 Goodwin</title>
	<atom:link href="http://codepoets.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://codepoets.co.uk</link>
	<description>PHP, running, family stuff, Bromsgrove and other bits</description>
	<lastBuildDate>Sun, 07 Feb 2010 16:41:00 +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>Twitter Weekly Updates for 2010-02-07</title>
		<link>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-02-07/</link>
		<comments>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-02-07/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 16:41:00 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-02-07/</guid>
		<description><![CDATA[
Wondering where to run to tomorrow. #
Rowan now has a facebook account to go with his Twitter @rowangoodwin and blog &#8230; (rowangoodwin.co.uk, Facebook.com/rowan.Goodwin) #
Haha msnbot it appears you are enjoying indexing a customers server a bit much. Have you heard of being &#39;nice&#39; ? #
Today I did a total of 132 pushups thanks to the [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Wondering where to run to tomorrow. <a href="http://twitter.com/TheGingerDog/statuses/8737384533" class="aktt_tweet_time">#</a></li>
<li>Rowan now has a facebook account to go with his Twitter @<a href="http://twitter.com/rowangoodwin" class="aktt_username">rowangoodwin</a> and blog &#8230; (rowangoodwin.co.uk, Facebook.com/rowan.Goodwin) <a href="http://twitter.com/TheGingerDog/statuses/8737364053" class="aktt_tweet_time">#</a></li>
<li>Haha msnbot it appears you are enjoying indexing a customers server a bit much. Have you heard of being &#39;nice&#39; ? <a href="http://twitter.com/TheGingerDog/statuses/8717143186" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 132 pushups thanks to the Hundred Pushups iPhone app. (Week 4, Day 3, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8716167691" class="aktt_tweet_time">#</a></li>
<li>Rowan is still asleep. Lie in ftw. <a href="http://twitter.com/TheGingerDog/statuses/8715736020" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/loudmouthman" class="aktt_username">loudmouthman</a> What Woman will not tell you about pregancy is great breakfast reading <a href="http://bit.ly/caqaJL" rel="nofollow">http://bit.ly/caqaJL</a> <a href="http://twitter.com/TheGingerDog/statuses/8669748525" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/jzy" class="aktt_username">jzy</a>: @<a href="http://twitter.com/codinghorror" class="aktt_username">codinghorror</a> you should try &quot;Outside&quot; sometimes. <a href="http://bit.ly/dsbcos" rel="nofollow">http://bit.ly/dsbcos</a> &#8211; looks like a great game&#8230;. Cost? Hardware/platform? <a href="http://twitter.com/TheGingerDog/statuses/8666945064" class="aktt_tweet_time">#</a></li>
<li>If only this developer knew database design. Adding (a) new table(s) for an additional dataset is just WRONG! #<a href="http://search.twitter.com/search?q=%23uneducated" class="aktt_hashtag">uneducated</a> #heathen <a href="http://twitter.com/TheGingerDog/statuses/8633154222" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 119 pushups thanks to the Hundred Pushups iPhone app. (Week 4, Day 2, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8623131173" class="aktt_tweet_time">#</a></li>
<li>More sleep plz? Kthxzzzz <a href="http://twitter.com/TheGingerDog/statuses/8622210804" class="aktt_tweet_time">#</a></li>
<li>Hmm aroundme&#39;s augmented reality looks cool; @<a href="http://twitter.com/moobert" class="aktt_username">moobert</a> might kill me if i ask him to do it on the food hygiene iPhone app we&#39;re planning tho <a href="http://twitter.com/TheGingerDog/statuses/8607744005" class="aktt_tweet_time">#</a></li>
<li>Don&#39;t you just hate it when you save data to a backend, only for it to silently vanish. (Apc + zend_cache. Perhaps apc needs more memory?) <a href="http://twitter.com/TheGingerDog/statuses/8605477043" class="aktt_tweet_time">#</a></li>
<li>I am now 200 grams heavier. #<a href="http://search.twitter.com/search?q=%23chocolate" class="aktt_hashtag">chocolate</a> <a href="http://twitter.com/TheGingerDog/statuses/8600535218" class="aktt_tweet_time">#</a></li>
<li>Why do I need to FAX docs to apple to develop on the iPhone. FFS. What&#39;s wrong with email ? #<a href="http://search.twitter.com/search?q=%23fail" class="aktt_hashtag">fail</a> #not1980sanylonger <a href="http://twitter.com/TheGingerDog/statuses/8580824742" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 121 situps thanks to the 200 Situps iPhone app. (Week 2, Day 3, Level 3) #<a href="http://search.twitter.com/search?q=%23200Situps" class="aktt_hashtag">200Situps</a> <a href="http://twitter.com/TheGingerDog/statuses/8578368912" class="aktt_tweet_time">#</a></li>
<li>Interviewing possible php contractor this morning. I hope he&#39;s good &#8211; i&#39;ve got work stacking up. <a href="http://twitter.com/TheGingerDog/statuses/8577603165" class="aktt_tweet_time">#</a></li>
<li>*ding dong* &quot;Time to wake up chuggers!&quot; <a href="http://twitter.com/TheGingerDog/statuses/8577579812" class="aktt_tweet_time">#</a></li>
<li>.RT @<a href="http://twitter.com/metofficeWMids" class="aktt_username">metofficeWMids</a> ADVISORY of Heavy Snow for West Midlands valid from 0349 &#8211; 2359 Wed 03 Feb <a href="http://bit.ly/bBNkz0" rel="nofollow">http://bit.ly/bBNkz0</a> <a href="http://twitter.com/TheGingerDog/statuses/8577521824" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/scottmac" class="aktt_username">scottmac</a>: Announcing HipHop for PHP &#8211; <a href="http://developers.facebook.com/news.php?blog=1&amp;story=358" rel="nofollow">http://developers.facebook.com/news.php?blog=1&amp;story=358</a> <a href="http://twitter.com/TheGingerDog/statuses/8557544735" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/grifferz" class="aktt_username">grifferz</a> Impregnation via the proximal gastrointestinal tract in a patient with an aplastic distal vagina: <a href="http://is.gd/7wvbe" rel="nofollow">http://is.gd/7wvbe</a> (via @<a href="http://twitter.com/jwz" class="aktt_username">jwz</a>) <a href="http://twitter.com/TheGingerDog/statuses/8532800143" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 102 pushups thanks to the Hundred Pushups iPhone app. (Week 4, Day 1, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8532718132" class="aktt_tweet_time">#</a></li>
<li>Sleep little toddler. Sleep. <a href="http://twitter.com/TheGingerDog/statuses/8527493309" class="aktt_tweet_time">#</a></li>
<li>Cold cold. Brrr. Snow melted tho <img src='http://codepoets.co.uk/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  <a href="http://twitter.com/TheGingerDog/statuses/8506101927" class="aktt_tweet_time">#</a></li>
<li>Well that was a crash course into learning mailscanner with exim on rhel. What next dear customers ? <a href="http://twitter.com/TheGingerDog/statuses/8498506232" class="aktt_tweet_time">#</a></li>
<li>Hmm 144 bus turns up an hour and a half late. Chances of getting to Birmingham before 1030 &#8211; near zero. <a href="http://twitter.com/TheGingerDog/statuses/8492324345" class="aktt_tweet_time">#</a></li>
<li>Bromsgrove looks a bit clogged up this morning. Stupid snow. Wondering if I&#39;m going to make<br />
the train now. <a href="http://twitter.com/TheGingerDog/statuses/8492247580" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 108 situps thanks to the 200 Situps iPhone app. (Week 2, Day 2, Level 3) #<a href="http://search.twitter.com/search?q=%23200Situps" class="aktt_hashtag">200Situps</a> <a href="http://twitter.com/TheGingerDog/statuses/8490192514" class="aktt_tweet_time">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-02-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Still looking for a PHP contractor&#8230;.</title>
		<link>http://codepoets.co.uk/2010/still-looking-for-a-php-contractor/</link>
		<comments>http://codepoets.co.uk/2010/still-looking-for-a-php-contractor/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 20:40:07 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[contractor]]></category>
		<category><![CDATA[interview]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/?p=112</guid>
		<description><![CDATA[At work I&#8217;m still looking for a short term PHP contractor. Perhaps I&#8217;m being unrealistic in my expectations/requirements (rate/location/duration/skills etc), but nevertheless&#8230;. As I&#8217;ve not found anyone via normal channels (twitter/phpwm user group etc) I thought I&#8217;d turn to a random recruitment agency (who I&#8217;d spoken to a week or so ago).
Yesterday I interviewed one [...]]]></description>
			<content:encoded><![CDATA[<p>At <a title="Pale Purple PHP development" href="http://www.palepurple.co.uk">work</a> I&#8217;m still looking for a short term PHP contractor. Perhaps I&#8217;m being unrealistic in my expectations/requirements (rate/location/duration/skills etc), but nevertheless&#8230;. As I&#8217;ve not found anyone via normal channels (twitter/<a title="PHP user group" href="http://phpwm.org">phpwm</a> user group etc) I thought I&#8217;d turn to a random recruitment agency (who I&#8217;d spoken to a week or so ago).</p>
<p>Yesterday I interviewed one guy &#8211; who&#8217;d been a programmer for a number of years (10+) &#8211; using Visual Foxpro (whatever that is) &#8211; presumably it&#8217;s a dead language, as he wants to move across into <a title="PHP" href="http://php.net">PHP</a>. He has very basic PHP experience (yet claims 2 years on his CV), figured out how to do FizzBuzz and Recursion without too much help &#8211; but didn&#8217;t know anything about object orientation, separation of concerns (specifically <a title="Model View Controller - Wikipedia" href="http://en.wikipedia.org/wiki/Model–view–controller">MVC</a>), security (obvious SQL injection) or unit testing and failed to make any comment on what is almost the worst code I could find to present to him. This isn&#8217;t necessarily a problem &#8211; I would normally be happy to train someone &#8211; however, not when I&#8217;m paying him £25/hour and I&#8217;d be lucky if he was productive within a week. (Hint: students are better than this when they&#8217;ve only been in <a title="Computer Science - Aberystwyth" href="http://www.aber.ac.uk/compsci">University</a> for two years).</p>
<p>Today, I therefore continued hunting, with mixed success. I had three more CVs &#8211; all asking for more money, and one looked quite good &#8211; but had a requirement he worked remotely after the first few days (well he does live in Telford). Another, who is local, I&#8217;m interviewing tomorrow. Wanting to do some homework on him, I had a look at a couple of websites mentioned in his doctored CV  - the first is clearly .Net from the error message it throws when you pass a &gt; into it&#8217;s search box &#8211; so either they replaced his PHP site quickly or his CV is misleading. The <a title="ladyflamingo" href="http://www.ladyflamingo.info/ladytalk/">second has a PHP error</a> on it &#8211; and is only (effectively) a themed <a title="wordpress" href="http://wordpress.org">wordpress</a> site which looks like it&#8217;s slowly rotting. From these I found out his address (hint: whois $flamingodomain) and an invalid email address/domain (which archive.org seems to not do much with). Typing in his name into Google / LinkedIn, Facebook etc produces no obvious matches. So I know hardly anything about him, and for all intent he may as well not exist. Great sales job there.</p>
<p>From talking to the recruiters it seems it&#8217;s difficult to find decent PHP programmers &#8211; and anyone who may be decent will almost certainly not be programming PHP as their primary language (i.e. they&#8217;ll be doing web development in Java/.Net, and know PHP quite well). This seems a shame, but really only confirms what I already knew from interacting with others in the community. I&#8217;ve known for ages that I&#8217;ve effectively taken a large pay cut by running my own company, and doing PHP. It sucks that this continues to be the case. Clearly I&#8217;m a martyr or something.</p>
<p>So, if you happen to be a contractor looking for work, please make an effort. I&#8217;m not overly impressed so far, and may just end up stalling customers for another week/month instead.</p>
<p>(Oddly I wrote this post, posted it, and it vanished. What are you up to wordpress? Why do you want me to retype things in twice?)</p>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/still-looking-for-a-php-contractor/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Can you write a web app, like Ebay, for me?</title>
		<link>http://codepoets.co.uk/2010/can-you-write-a-web-app-like-ebay-for-m/</link>
		<comments>http://codepoets.co.uk/2010/can-you-write-a-web-app-like-ebay-for-m/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 19:04:43 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/?p=108</guid>
		<description><![CDATA[Today I had a phone call which went along the lines of &#8230;.
Prospect: Do you develop web applications?
Me: Yes&#8230; &#60;cue sales pitch&#62;
Prospect: I&#8217;ve got a great idea, it&#8217;s like eBay&#8230;. I need a programmer&#8230;.
Me: &#60;thinking: oh not another&#8230;.&#62;
Prospect: I think it&#8217;s about 2 developer months worth of work&#8230;.
Me: Well, we&#8217;d need to see your requirements [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had a phone call which went along the lines of &#8230;.</p>
<p>Prospect: Do you develop web applications?<br />
Me: Yes&#8230; &lt;cue sales pitch&gt;<br />
Prospect: I&#8217;ve got a great idea, it&#8217;s like eBay&#8230;. I need a programmer&#8230;.<br />
Me: &lt;thinking: oh not another&#8230;.&gt;<br />
Prospect: I think it&#8217;s about 2 developer months worth of work&#8230;.<br />
Me: Well, we&#8217;d need to see your requirements spec to determine that.<br />
&lt;snip&gt;<br />
Prospect: Would you be willing to do the work for free in return for a stake in the resultant venture? How much would it cost?<br />
Me: Well, I&#8217;ve not seen any sort of requirements specification; I&#8217;ve no idea what&#8217;s involved&#8230;.. Just how long is a piece of string?</p>
<p>I don&#8217;t quite understand why people think they&#8217;ll be able to create an eBay/Amazon/Google/whatever killer/competitor with minimal funding, a couple of months development and also persuade me to do the work for free on the outside chance they&#8217;re successful (that&#8217;s like a &lt;5% chance). I <em>might</em> consider reducing the price of the development in return for a share in any resultant company &#8211; but I&#8217;m sure as not going to commit to anything before I&#8217;ve seen any sort of business plan.</p>
<p>Perhaps tomorrow I&#8217;ll get someone wanting a site &#8220;like Facebook&#8221; costing a few thousand pounds&#8230; &#8216;cos we do <a title="Pale Purple PHP Development" href="http://www.palepurple.co.uk">PHP</a> just like them&#8230; and it can&#8217;t be hard can it?</p>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/can-you-write-a-web-app-like-ebay-for-m/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Rate limiting http traffic (mod_evasive and iptables)</title>
		<link>http://codepoets.co.uk/2010/rate-limiting-web-httptraffic/</link>
		<comments>http://codepoets.co.uk/2010/rate-limiting-web-httptraffic/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 13:43:57 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/?p=104</guid>
		<description><![CDATA[A customer has a relatively busy web site, which contains lots of juicy information (business names, addresses, email address, phone numbers etc etc). Currently there is nothing in place to stop people spidering it &#8211; unless someone explicitly looks at the log files and does something.
Blocking annoying people who spider the site is easy enough [...]]]></description>
			<content:encoded><![CDATA[<p>A customer has a relatively busy web site, which contains lots of juicy information (business names, addresses, email address, phone numbers etc etc). Currently there is nothing in place to stop people spidering it &#8211; unless someone explicitly looks at the log files and does something.</p>
<p>Blocking annoying people who spider the site is easy enough -</p>
<pre>iptables -I INPUT -s 80.x.x.x -j REJECT</pre>
<p>However, I&#8217;d obviously rather automate this if possible &#8211; and ideally without having to change the PHP code (as each request would need perform some sort of DB lookup it&#8217;s part of a spidering attempt)</p>
<p>So, my first idea was to manipulate an existing rule I have to limit SSH connection attempts, giving something like :</p>
<pre>iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set</pre>
<pre>iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 40 -j LOG --log-prefix "http spidering?" --log-ip-options --log-tcp-options --log-tcp-sequence --log-level 4</pre>
<p>Annoyingly however, even though these are the first rules in the iptables output &#8211; and they should therefore work, they don&#8217;t &#8211; i.e. I&#8217;m not seeing anything being logged, when doing e.g. the following on a remote server :</p>
<pre>while [ true ] ; do</pre>
<pre>wget -q -O - http://server.xyz/index.php</pre>
<pre>done</pre>
<p>So, I&#8217;m still trying to avoid making changes to the code base &#8211; although doing so would produce the best user experience (namely we could display a captcha or something and if someone really can browse that quickly they&#8217;d not encounter any problems).</p>
<p>And as I&#8217;ve just found <a title="mod_evasive dos protection" href="http://www.zdziarski.com/projects/mod_evasive/">mod_evasive</a> which claims to provide DoS and DDoS protection. Thankfully <a title="RHEL and CentOS LAMP rpm packages" href="http://www.jasonlitka.com/ ">Jason Litka</a> has packaged it &#8211; so I have no problems from an installation point of view <img src='http://codepoets.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (yum install mod_evasive)</p>
<p>Installation on Debian doesn&#8217;t result in a config file &#8211; but it&#8217;s not difficult to create (see /usr/share/doc/mod_evasive). However, it&#8217;s not a shiney, sunny ending &#8211; mod_evasive appears to be &#8220;tripped&#8221; by people requesting images &#8211; and in my case the client has about 10-20 images per page; so it&#8217;s difficult to differentiate between a normal user loading a page or someone running <a title="ht track" href="http://www.httrack.com/">httrack</a> on the website and only requesting the &#8220;php page&#8221;. If only mod_evasive took a regexp to ignore/match&#8230; and I can&#8217;t seem to find anyway of fixing this.</p>
<p>So application logic it is :-/ Perhaps caching in <a title="APC (PHP OpCode Cache and more)" href="http://php.net/apc">APC</a> may be the way forward &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/rate-limiting-web-httptraffic/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-01-31</title>
		<link>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-31/</link>
		<comments>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-31/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 16:41:00 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-31/</guid>
		<description><![CDATA[
RT @glynmoody Facebook rewrites PHP runtime &#8211; http://bit.ly/ahwWiq to be released as open source #facebook #php #
Poop. Spoke too soon. Snow tap being turned off. F&#39;ing weather god. Curse you. #
Decent snow. 4/10 perhaps. B61 #uksnow &#8230; Just keep up for an hour or two and perhaps i can sledge/snow fight. #
Looks like we had [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>RT @<a href="http://twitter.com/glynmoody" class="aktt_username">glynmoody</a> Facebook rewrites PHP runtime &#8211; <a href="http://bit.ly/ahwWiq" rel="nofollow">http://bit.ly/ahwWiq</a> to be released as open source #<a href="http://search.twitter.com/search?q=%23facebook" class="aktt_hashtag">facebook</a> #php <a href="http://twitter.com/TheGingerDog/statuses/8455911348" class="aktt_tweet_time">#</a></li>
<li>Poop. Spoke too soon. Snow tap being turned off. F&#39;ing weather god. Curse you. <a href="http://twitter.com/TheGingerDog/statuses/8449152090" class="aktt_tweet_time">#</a></li>
<li>Decent snow. 4/10 perhaps. B61 #<a href="http://search.twitter.com/search?q=%23uksnow" class="aktt_hashtag">uksnow</a> &#8230; Just keep up for an hour or two and perhaps i can sledge/snow fight. <a href="http://twitter.com/TheGingerDog/statuses/8449136553" class="aktt_tweet_time">#</a></li>
<li>Looks like we had a token amount of snow last night. Looks cold too :-/ 14 miles here I run. Still, cybrosis ppdcast episode to listen to:) <a href="http://twitter.com/TheGingerDog/statuses/8446340709" class="aktt_tweet_time">#</a></li>
<li>Our car has depreciated £1000 for every year (7) we&#39;ve owned it. Perhaps it&#39;ll soon put on value when as it turns into a mobile pool? <a href="http://twitter.com/TheGingerDog/statuses/8412345583" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 105 pushups thanks to the Hundred Pushups iPhone app. (Week 3, Day 3, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8403372774" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/stuherbert" class="aktt_username">stuherbert</a> PHP 5.3 adoption: some numbers and talking points <a href="http://bit.ly/djJRos" rel="nofollow">http://bit.ly/djJRos</a> (please RT) <a href="http://twitter.com/TheGingerDog/statuses/8402217930" class="aktt_tweet_time">#</a></li>
<li>Dogs have a very inefficient protocol for communication. Guessing lots of packet loss as they&#39;ve been retransmitting for ages now. Woof woof <a href="http://twitter.com/TheGingerDog/statuses/8379917415" class="aktt_tweet_time">#</a></li>
<li>The last apple in the shop should be avoided; keys are always in the last pocket you check. #<a href="http://search.twitter.com/search?q=%23lessonoftheday" class="aktt_hashtag">lessonoftheday</a> <a href="http://twitter.com/TheGingerDog/statuses/8366157903" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 97 situps thanks to the 200 Situps iPhone app. (Week 2, Day 1, Level 3) #<a href="http://search.twitter.com/search?q=%23200Situps" class="aktt_hashtag">200Situps</a> <a href="http://twitter.com/TheGingerDog/statuses/8356170625" class="aktt_tweet_time">#</a></li>
<li>Twitterific appears to have won. Goodbye tweetdeck. <a href="http://twitter.com/TheGingerDog/statuses/8339014682" class="aktt_tweet_time">#</a></li>
<li>Nice Run &#8211; roads (a38 etc) were almost empty, shame I&#39;d have to get up at 5am to experience it more often :-/ <a href="http://twitter.com/TheGingerDog/statuses/8313061252" class="aktt_tweet_time">#</a></li>
<li>100 pushup thing is now hard; couldn&#39;t do last rep without two stops :-/ #<a href="http://search.twitter.com/search?q=%23100pushups" class="aktt_hashtag">100pushups</a> weak puny arms get bigger! <a href="http://twitter.com/TheGingerDog/statuses/8311498311" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 100 pushups thanks to the Hundred Pushups iPhone app. (Week 3, Day 2, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8311437609" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 92 situps thanks to the 200 Situps iPhone app. (Week 1, Day 3, Level 3) #<a href="http://search.twitter.com/search?q=%23200Situps" class="aktt_hashtag">200Situps</a> <a href="http://twitter.com/TheGingerDog/statuses/8271022107" class="aktt_tweet_time">#</a></li>
<li>is giving tweetdeck a whirl&#8230; as a change from twitterific <a href="http://twitter.com/TheGingerDog/statuses/8237571765" class="aktt_tweet_time">#</a></li>
<li>Shocked to receive apple MacBook he ordered online yesterday afternoon this morning. Win! <a href="http://twitter.com/TheGingerDog/statuses/8230533968" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 80 pushups thanks to the Hundred Pushups iPhone app. (Week 3, Day 1, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8226852813" class="aktt_tweet_time">#</a></li>
<li>Worringly I seem to like coffee (with chocolate biscuits) I wish there was no junk food in this house. I&#39;d best help &#39;dispose&#39; of it&#8230;.. <a href="http://twitter.com/TheGingerDog/statuses/8205979770" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 88 situps thanks to the 200 Situps iPhone app. (Week 1, Day 2, Level 3) #<a href="http://search.twitter.com/search?q=%23200Situps" class="aktt_hashtag">200Situps</a> <a href="http://twitter.com/TheGingerDog/statuses/8183588754" class="aktt_tweet_time">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-31/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verified by Visa &#8230;. what rubbish</title>
		<link>http://codepoets.co.uk/2010/verified-by-visa-what-rubbish/</link>
		<comments>http://codepoets.co.uk/2010/verified-by-visa-what-rubbish/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 20:55:18 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/?p=101</guid>
		<description><![CDATA[On Wednesday I was trying to buy train tickets for an upcoming trip to London.
So, I book the tickets, and get to point of being asked for my card details &#8230; tap tap tap &#8230; kapow &#8230; Up comes the Verified by Visa payment screen (in a stupid iframe [how do I know this isn't [...]]]></description>
			<content:encoded><![CDATA[<p>On Wednesday I was trying to buy train tickets for an upcoming trip to London.</p>
<p>So, I book the tickets, and get to point of being asked for my card details &#8230; tap tap tap &#8230; kapow &#8230; Up comes the Verified by Visa payment screen (in a stupid iframe [how do I know this isn't a <a title="phishing" href="http://en.wikipedia.org/wiki/Phishing">phishing</a> site?]). Well, it displays my &#8216;username&#8217; correctly &#8211; a terrificly hard to guess one of MRDAVIDGOODWIN&#8230; I enter my details and it keeps decling them. Hmm.. Fine&#8230; perhaps I&#8217;ve incorrectly stored the password &#8211; &#8220;oooh look &#8211; reset password&#8230;&#8221; *click* &#8211; &#8220;You want me to enter my date of birth&#8230; is that the ONLY security check you&#8217;re going to do? WTF??? &#8221;</p>
<p>Grr.. Why do they bother&#8230;.</p>
<p>See also <a title="how online card security fails" href="http://www.lightbluetouchpaper.org/2010/01/26/how-online-card-security-fails/">http://www.lightbluetouchpaper.org/2010/01/26/how-online-card-security-fails/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/verified-by-visa-what-rubbish/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Random PHP project progress</title>
		<link>http://codepoets.co.uk/2010/random-php-project-progress/</link>
		<comments>http://codepoets.co.uk/2010/random-php-project-progress/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 22:03:40 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[pdo]]></category>
		<category><![CDATA[propel]]></category>
		<category><![CDATA[simpletest]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[unit testing]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/?p=99</guid>
		<description><![CDATA[Random php development musing]]></description>
			<content:encoded><![CDATA[<p>Initially when we founded <a title="Pale Purple PHP web development" href="http://www.palepurple.co.uk">Pale Purple</a> all our new <a title="PHP" href="http://php.net">PHP</a> development used a combination of <a title="Propel" href="http://propel.phpdb.org">Propel</a>, <a title="Smarty" href="http://smarty.net">Smarty</a> and some inhouse glue. Over time we seem to have drifted towards the <a title="Zend Framework" href="http://framework.zend.com">Zend Framework</a>, but I&#8217;ve never been particularly happy with Zend_Db or Zend_View. Why the Zend Framework? Well, it has loads of useful components (Cache, Form, Routing, Mail etc) and it&#8217;s near enough an industry standard from what we see &#8211; and obviously I&#8217;d rather build on the shoulders of others than spend time developing an in-house framework no one else will ever use.</p>
<p>For one customer, we&#8217;re currently working on the next iteration of their code base &#8211; which incorporates a number of significant changes. When we inherited the code base from the previous developers we spent a long time patching various SQL Injection holes (casting to ints), moving over to use PDO&#8217;s prepared statements and trying to keep on top of the customer&#8217;s new functionality requests and support issues. There&#8217;s still a lot of horrible code to refactor, plenty of security holes (although none public facing) and we know we&#8217;re moving in the right direction &#8211; hopefully patching and duct tape will soon be a thing of the past as it will develop some form of architecture and look like someone has thought about design and long term maintenance.</p>
<p>I&#8217;ve started to properly do Test First Development &#8211; at least from a support perspective &#8211; as too often we&#8217;d find we would patch a bug, only for it to reappear again in a few weeks/months time. This has been especially useful with the SOAP interface the application exposes. The tests run every 5 minutes, and we all get emailed when stuff breaks &#8211; it took all of 30 minutes to setup and put in place &#8211; then it was just a case of actually writing the unit tests themselves (the tests take minutes to write; finding/fixing any bugs they pin point takes somewhat longer :-/ ). I&#8217;ve also abused Simpletest&#8217;s web testing &#8217;stuff&#8217; to also act as an availability checker of the live site (i.e. hit a few remote URLs, and check that we don&#8217;t get error messages back and do see expected strings).</p>
<p>The original code base had no &#8216;model&#8217; like layer (or MVC &#8216;compliance&#8217;) &#8211; files containing HTML, CSS, SQL, Javascript and PHP were the norm &#8211; we&#8217;ve added Propel to the project as the &#8216;model&#8217; layer &#8211; which took a few hours; and then when reverse engineering the database we found a few oddities (tables without primary keys and so on) &#8211; anyway, moving the functionality from a handful of legacy objects across into the Propel ones seems to be well underway, and I for one will be glad to see the end of :</p>
<pre>$x = new Foo(5);</pre>
<p>Accompanied with code that does the equivalent of :</p>
<pre>class Foo {</pre>
<pre>    public function __construct($id = false) {</pre>
<pre>        if($id != false) {</pre>
<pre>            // select * from foo where id = 5</pre>
<pre>            // populate $this; don't bother checking for the edge case where $id isn't valid</pre>
<pre>       }</pre>
<pre>       else {</pre>
<pre>           // insert into foo values ('');</pre>
<pre>          // populate $this-&gt;id; leaving all other fields as empty strings...</pre>
<pre>     }</pre>
<pre>     public function setBaz($nv) { // repeat for all table fields</pre>
<pre>         $this-&gt;baz = $nv;</pre>
<pre>         global $db;</pre>
<pre>         $db-&gt;query('update foo set baz = "' . $nv . '" where id = ' . $this-&gt;id);</pre>
<pre>     }</pre>
<pre>}</pre>
<pre></pre>
<p>Finally, we have a meaningful directory structure &#8211; where some things aren&#8217;t exposed in the document root. Hopefully soon a front controller and some decent routing. At the moment a huge amount of code is just sat in the &#8216;public&#8217; directory due to it&#8217;s nature. We hope to fix this in time, and move to using Zend Controller &#8211; once we get Smarty integrated with it.</p>
<p>Propel has added some nice new features since we last used it (effectively v1.2); it was a toss up between it and Doctrine (as obviously the ZF is moving in that direction) &#8211; but we already had knowledge/experience with Propel and it seemed the easier option.</p>
<p>I&#8217;m hoping that with time we&#8217;ll be able to get up to at least 60% test coverage of the code base &#8211; at that point we should be able to refactor the code far easier and with less fear. At the moment I doubt the unit tests cover more than 5-10% &#8211; although maybe it&#8217;s time I pointed xdebug or whatever at it to generate some meaningful stats.</p>
<p>My final task is to get some decent performance measurements out of the code base &#8211; so we can track any performance regressions. I&#8217;m fairly confident that moving to Propel will result in an speedup as duplicate object hydrations will be eliminated thanks to it&#8217;s instance pool, however having hard figures and nice graphs to point at would be ideal. So far I&#8217;ve knocked up my own script around &#8216;ab&#8217; which stores some figures to a .csv file and uses ezComponents to generate a graph file. This seems to be a crap solution, but I can&#8217;t think or find anything better. Any suggestions dear Internet? Perhaps I should integrate changeset/revision id&#8217;s in my benchmarking too. Suggestions here would be exceedingly appreciated.</p>
<p>There, I should have ticked all necessary boxes wrt development practices now. Now to work on finding a contract PHP developer&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/random-php-project-progress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The PHP Security Journey begins&#8230;</title>
		<link>http://codepoets.co.uk/2010/the-php-security-journey-begins/</link>
		<comments>http://codepoets.co.uk/2010/the-php-security-journey-begins/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 15:17:02 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/?p=97</guid>
		<description><![CDATA[Here&#8217;s the slides from the PHPWM talk I gave last week PHPWM Presentation &#8211; The Security Journey Begins ; thanks to DeanC on #phpwm for reminding me to upload them  
The presentation focusses on security issues in web applications &#8211; specifically, PHP &#8211; although obviously other web facing languages face the same problems. It&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the slides from the <a title="phpwm website" href="http://www.phpwm.org">PHPWM</a> talk I gave last week <a href="http://codepoets.co.uk/wp-content/uploads/2010/01/phpwm-security.pdf">PHPWM Presentation &#8211; The Security Journey Begins</a> ; thanks to DeanC on #phpwm for reminding me to upload them <img src='http://codepoets.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The presentation focusses on security issues in web applications &#8211; specifically, <a title="php.net" href="http://php.net">PHP</a> &#8211; although obviously other web facing languages face the same problems. It&#8217;s a very condensed version of what I normally give as a two day <a title="php security training" href="http://www.palepurple.co.uk/training/php/security">PHP security training course</a> &#8211; so there are bits missing, and many things aren&#8217;t explained fully&#8230; and obviously the demonstration after the slides is missing <img src='http://codepoets.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(250kb, PDF file&#8230; I think)</p>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/the-php-security-journey-begins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-01-24</title>
		<link>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-24/</link>
		<comments>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-24/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 16:41:00 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-24/</guid>
		<description><![CDATA[
Bubble blowing fail day. Do mixtures have a BBE date? Rowan seems happy with one bubble in 10 goes. #
820 days uptime is sufficient; time for a long overdue reboot I think. #linux #
There&#39;s still snow outside tesco. Strange redditch. #
Today I did a total of 77 situps thanks to the 200 Situps iPhone app. [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Bubble blowing fail day. Do mixtures have a BBE date? Rowan seems happy with one bubble in 10 goes. <a href="http://twitter.com/TheGingerDog/statuses/8148471268" class="aktt_tweet_time">#</a></li>
<li>820 days uptime is sufficient; time for a long overdue reboot I think. #<a href="http://search.twitter.com/search?q=%23linux" class="aktt_hashtag">linux</a> <a href="http://twitter.com/TheGingerDog/statuses/8121707956" class="aktt_tweet_time">#</a></li>
<li>There&#39;s still snow outside tesco. Strange redditch. <a href="http://twitter.com/TheGingerDog/statuses/8111964989" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 77 situps thanks to the 200 Situps iPhone app. (Week 1, Day 1, Level 3) #<a href="http://search.twitter.com/search?q=%23200Situps" class="aktt_hashtag">200Situps</a> <a href="http://twitter.com/TheGingerDog/statuses/8103859223" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/Ade_B" class="aktt_username">Ade_B</a> OMG I didnt realise they were making a new A Team Movie <a href="http://bit.ly/7iCLiL" rel="nofollow">http://bit.ly/7iCLiL</a> via @<a href="http://twitter.com/purityale" class="aktt_username">purityale</a> w00t <a href="http://twitter.com/TheGingerDog/statuses/8079351565" class="aktt_tweet_time">#</a></li>
<li>Wonder why everyone wishes they&#39;d stayed in bed today?. Today was quite good for me&#8230;. <a href="http://twitter.com/TheGingerDog/statuses/8077527680" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 81 pushups thanks to the Hundred Pushups iPhone app. (Week 2, Day 3, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/8061362383" class="aktt_tweet_time">#</a></li>
<li>Wake up little bunnies! <a href="http://twitter.com/TheGingerDog/statuses/8060827916" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/loudmouthman" class="aktt_username">loudmouthman</a> Well when you put it like that <a href="http://www.life-stylefitness.com/Exercise%20or%20Death.jpg" rel="nofollow">http://www.life-stylefitness.com/Exercise%20or%20Death.jpg</a> <a href="http://twitter.com/TheGingerDog/statuses/8049470715" class="aktt_tweet_time">#</a></li>
<li>This side of heaven is right next door to hell. <a href="http://twitter.com/TheGingerDog/statuses/8020961962" class="aktt_tweet_time">#</a></li>
<li>Enjoying Thunderbird 3 &#8211; faster, better UI; 3.0.1 is now out &#8211; <a href="http://lwn.net/Articles/370465/" rel="nofollow">http://lwn.net/Articles/370465/</a>  #<a href="http://search.twitter.com/search?q=%23email" class="aktt_hashtag">email</a> #floss #<a href="http://search.twitter.com/search?q=%23thunderbird" class="aktt_hashtag">thunderbird</a> <a href="http://twitter.com/TheGingerDog/statuses/8000056004" class="aktt_tweet_time">#</a></li>
<li>Met office once again fail. There&#39;s no snow here. #<a href="http://search.twitter.com/search?q=%23uksnow" class="aktt_hashtag">uksnow</a> b61 <a href="http://twitter.com/TheGingerDog/statuses/7999773621" class="aktt_tweet_time">#</a></li>
<li>The @<a href="http://twitter.com/scottsigler" class="aktt_username">scottsigler</a> iphone app looks cool (chainsaw and kitten juggling eh?). It&#39;s free, gives easy access to great audiobooks +more #<a href="http://search.twitter.com/search?q=%23podcast" class="aktt_hashtag">podcast</a> <a href="http://twitter.com/TheGingerDog/statuses/7990538216" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 74 pushups thanks to the Hundred Pushups iPhone app. (Week 2, Day 2, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/7979586941" class="aktt_tweet_time">#</a></li>
<li>Yawn. <a href="http://twitter.com/TheGingerDog/statuses/7978599131" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/rowangoodwin" class="aktt_username">rowangoodwin</a> This time 2 years ago I was preparing to make my grand entrance! <a href="http://twitter.com/TheGingerDog/statuses/7963900708" class="aktt_tweet_time">#</a></li>
<li>Wish my iPhone had a fingerprint/ facial/retinal recognition, instead of asking me for a password all the time. It has a camera afterall. <a href="http://twitter.com/TheGingerDog/statuses/7952605002" class="aktt_tweet_time">#</a></li>
<li><a href="http://www.predictablyirrational.com/?p=704" rel="nofollow">http://www.predictablyirrational.com/?p=704</a> &#8211; Google autocomplete rocks. See also <a href="http://autocompleteme.com" rel="nofollow">http://autocompleteme.com</a> <a href="http://twitter.com/TheGingerDog/statuses/7948002915" class="aktt_tweet_time">#</a></li>
<li>trying to find a decent twitter username for $customer; it&#39;s like domain name squatting all over again. <a href="http://twitter.com/TheGingerDog/statuses/7939403855" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/evilneuro" class="aktt_username">evilneuro</a> another reason not to use Internet Explorer, ever: <a href="http://bit.ly/6xbH5z" rel="nofollow">http://bit.ly/6xbH5z</a> &#8211; switch to chrome? <a href="http://twitter.com/TheGingerDog/statuses/7936757860" class="aktt_tweet_time">#</a></li>
<li>iPhone voice recognition is getting worse. &quot;phone Katherine Goodwin&quot; != &quot;phone kathryn reeve&quot; *sigh* need aliasing or shortcuts <a href="http://twitter.com/TheGingerDog/statuses/7911782935" class="aktt_tweet_time">#</a></li>
<li>Did aliens help plot the location of Woolworths? <a href="http://bengoldacre.posterous.com/did-aliens-play-a-role-in-woolworths" rel="nofollow">http://bengoldacre.posterous.com/did-aliens-play-a-role-in-woolworths</a> <a href="http://twitter.com/TheGingerDog/statuses/7910142778" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 63 pushups thanks to the Hundred Pushups iPhone app. (Week 2, Day 1, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/7895747655" class="aktt_tweet_time">#</a></li>
<li>Hmm. Heavy snow for weds; heavy rain for thurs. Fun times ahead. <a href="http://twitter.com/TheGingerDog/statuses/7872722134" class="aktt_tweet_time">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-24/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-01-17</title>
		<link>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-17/</link>
		<comments>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-17/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 16:41:00 +0000</pubDate>
		<dc:creator>David Goodwin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-17/</guid>
		<description><![CDATA[
Fantastic Mr Fox looks pretty good; Rowan seems to approve too   #
13.26 miles, 1hour and 45 mins or thereabouts. Icy roads. #
Lets try http://favoriterun.com/299771 #
Hotel chocolate is very nice; I lack self control and gorge myself on a packet at a time &#8230; And subsequently feel yucky. no common sense. #
Joined the weirdos [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Fantastic Mr Fox looks pretty good; Rowan seems to approve too <img src='http://codepoets.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://twitter.com/TheGingerDog/statuses/7860246333" class="aktt_tweet_time">#</a></li>
<li>13.26 miles, 1hour and 45 mins or thereabouts. Icy roads. <a href="http://twitter.com/TheGingerDog/statuses/7859901823" class="aktt_tweet_time">#</a></li>
<li>Lets try <a href="http://favoriterun.com/299771" rel="nofollow">http://favoriterun.com/299771</a> <a href="http://twitter.com/TheGingerDog/statuses/7857335277" class="aktt_tweet_time">#</a></li>
<li>Hotel chocolate is very nice; I lack self control and gorge myself on a packet at a time &#8230; And subsequently feel yucky. no common sense. <a href="http://twitter.com/TheGingerDog/statuses/7834598500" class="aktt_tweet_time">#</a></li>
<li>Joined the weirdos in Bromsgrove by walking a childless push chair. Next up wearing womens clothes?shouting at people? X rd to avoid<br />
me! <a href="http://twitter.com/TheGingerDog/statuses/7795560398" class="aktt_tweet_time">#</a></li>
<li>Installing Quickbooks is not fun. Pain. License keys. Pain. Updates etc. Payroll still to do :-/ <a href="http://twitter.com/TheGingerDog/statuses/7790201180" class="aktt_tweet_time">#</a></li>
<li>Prezzo&#39;s Sticky toffee pudding is very nice; shame about the sugar rush afterwards. <a href="http://twitter.com/TheGingerDog/statuses/7787123019" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 61 pushups thanks to the Hundred Pushups iPhone app. (Week 1, Day 3, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/7779338516" class="aktt_tweet_time">#</a></li>
<li>We&#39;re trainees and we&#39;re making tracks, wheels to the rails&#8230; Clackety clack!  #<a href="http://search.twitter.com/search?q=%23chuggington" class="aktt_hashtag">chuggington</a> <a href="http://twitter.com/TheGingerDog/statuses/7741327358" class="aktt_tweet_time">#</a></li>
<li>Virtualbox OSE seems much better and quicker than vmware server. Bye bye vmware, your version 2 web ui will not be missed. <a href="http://twitter.com/TheGingerDog/statuses/7711232816" class="aktt_tweet_time">#</a></li>
<li>Windows 7 looks pretty similar to vista to me. Wondering what the fuss is about? <a href="http://twitter.com/TheGingerDog/statuses/7710551415" class="aktt_tweet_time">#</a></li>
<li>#<a href="http://search.twitter.com/search?q=%23uksnow" class="aktt_hashtag">uksnow</a> b61 (bromsgrove) 1/10; 1&quot; on ground. Roads appear ungritted. #<a href="http://search.twitter.com/search?q=%23timeforachange" class="aktt_hashtag">timeforachange</a> <a href="http://twitter.com/TheGingerDog/statuses/7701282892" class="aktt_tweet_time">#</a></li>
<li>Bromsgrove roads appear ungritted. Traffic moving on a38; stourbridge rd worst. <a href="http://twitter.com/TheGingerDog/statuses/7700234276" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 58 pushups thanks to the Hundred Pushups iPhone app. (Week 1, Day 2, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/7699295008" class="aktt_tweet_time">#</a></li>
<li>Grr. Snow. You&#39;ve outlived your welcome. B61 #<a href="http://search.twitter.com/search?q=%23uksnow" class="aktt_hashtag">uksnow</a> <a href="http://twitter.com/TheGingerDog/statuses/7698165261" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/guardiantech" class="aktt_username">guardiantech</a> Microsoft Office disappears from virtual shelves as i4i&#39;s injunction bites <a href="http://bit.ly/5QDPcY" rel="nofollow">http://bit.ly/5QDPcY</a> <a href="http://twitter.com/TheGingerDog/statuses/7661127819" class="aktt_tweet_time">#</a></li>
<li><a href="http://www.myconfinedspace.com/2010/01/10/dog-pony" rel="nofollow">http://www.myconfinedspace.com/2010/01/10/dog-pony</a> <a href="http://twitter.com/TheGingerDog/statuses/7640302621" class="aktt_tweet_time">#</a></li>
<li>Cold weather is awesome &#8211; week old bread hasn&#39;t gone mouldy <img src='http://codepoets.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  <a href="http://twitter.com/TheGingerDog/statuses/7627811609" class="aktt_tweet_time">#</a></li>
<li>Finally stuck #<a href="http://search.twitter.com/search?q=%23varnish" class="aktt_hashtag">varnish</a> infront of some #<a href="http://search.twitter.com/search?q=%23plone" class="aktt_hashtag">plone</a> / #<a href="http://search.twitter.com/search?q=%23zope" class="aktt_hashtag">zope</a> sites. Performance++. Should have done this ages ago. 7req/sec -&gt; 300req/sec etc. <a href="http://twitter.com/TheGingerDog/statuses/7627682170" class="aktt_tweet_time">#</a></li>
<li>Today I did a total of 48 pushups thanks to the Hundred Pushups iPhone app. (Week 1, Day 1, Level 3) #<a href="http://search.twitter.com/search?q=%23100Pushups" class="aktt_hashtag">100Pushups</a> <a href="http://twitter.com/TheGingerDog/statuses/7622837151" class="aktt_tweet_time">#</a></li>
<li>Interesting talk with asda cashier re muppets panic buying recently (15 loaves of bread anyone?). No<br />
Fresh milk the only affected thing 2day <a href="http://twitter.com/TheGingerDog/statuses/7603189719" class="aktt_tweet_time">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codepoets.co.uk/2010/twitter-weekly-updates-for-2010-01-17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
