<?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/"
	>

<channel>
	<title>Blog</title>
	<atom:link href="http://matt.chadburn.co.uk/feed" rel="self" type="application/rss+xml" />
	<link>http://matt.chadburn.co.uk</link>
	<description></description>
	<pubDate>Fri, 27 Apr 2012 21:38:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Testing Culture</title>
		<link>http://matt.chadburn.co.uk/786</link>
		<comments>http://matt.chadburn.co.uk/786#comments</comments>
		<pubDate>Tue, 24 Apr 2012 13:46:57 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=786</guid>
		<description><![CDATA[TL;DR. Never patch release your code. Instead, remove any external dependencies, keep your master branch militantly clean, move your QA process to before you commit your changes, and always release HEAD.
Yesteryear
I spent a long thinking patch releases were the done thing, but now I realise they just mean you&#8217;ve got a broken development process.
Yesteryear we [...]]]></description>
			<content:encoded><![CDATA[<p>TL;DR. Never patch release your code. Instead, remove any external dependencies, keep your master branch militantly clean, move your QA process to <b>before</b> you commit your changes, and always release HEAD.</p>
<h2>Yesteryear</h2>
<p>I spent a long thinking patch releases were the done thing, but now I realise they just mean you&#8217;ve got a broken development process.</p>
<p>Yesteryear we worked like this.</p>
<p>A team of people write some code and then commit it to a code repository. And lets say it then gets deployed to an integration environment, and once everyone is happy with that then they deploy it to a staging environment and on to production. And you tag that release <i>version 0.1.0</i>.</p>
<p>Lets say you then decide to add a feature to that code or fix a bug, so you start writing code on top of version 0.1.0. That&#8217;s fine, and you release that code in the same way as above, and you call that <i>version 0.2.0</i>, and then you set off with a plan to build <i>version 0.3.0</i>.</p>
<p>But wait! Someone has spotted a serious problem with version 0.2.0.</p>
<p>So we&#8217;ve got a choice to make if we want to fix that problem:-</p>
<pre>
 v0.1.0 - version last known to have worked.
 v0.2.0 - version in production now.
 v0.3.0 - version on integration environment.
</pre>
<p>Do we, a) rollback to the last known good <i>version 0.1.0</i>, b) patch the code in the production release, and called it <i>version 0.2.1</i>, or c) put the fix in <i>version 0.3.0</i> and release that ASAP?</p>
<p>The old me would pick either option a) or b).</p>
<p>Probably a) if it were a serious problem spotted in the minutes after release or b) if it was a problem that could wait a few hours to resolve, but looking back at I realise now these options highlighted serious deficiencies with our development process.</p>
<p>The best option is always c).</p>
<p>Not picking c) meant past projects fell in to one or all of these traps.</p>
<h2>Problem #1 - Clean Trunk</h2>
<p>We couldn&#8217;t release immediately because we had code in our master branch (or trunk) we weren&#8217;t confident of putting in to production, so any release was blocked until this was resolved. In other words we merged code in to master that nobody had taken a second look at or that we didn&#8217;t have sufficient tests around it to prove it worked.</p>
<p>This is easy to fix. Firstly by writing more tests at various levels (unit, integration etc.). And secondly adopting various development approaches (pairing, peer reviewing etc.) that socialise the code before it&#8217;s merged in to trunk. Being militant about what&#8217;s merged in to the master branch is important here. Have high standards.</p>
<h2>Problem #2 - Dependencies</h2>
<p>Sometimes not being able to release was because we had dependencies that needed to be released first.</p>
<p>At the very beginning of a project, say, <i>release v0.1.0</i>, this is often impossible to avoid, especially where new systems are being created, but after that point a dependency you can&#8217;t quickly turn off will slow your release process down to the slowest denominator, blocking any changes that need to be made more quickly.</p>
<p>So, it&#8217;s not always possible to plan for dependencies not being delivered but having a means to stub things out (feature toggles etc.) is the idea here.</p>
<h2>Problem #3 - QA</h2>
<p>Having non-automated process *after* the code is merged in to master prevented us from releasing quickly. This is most apparent in the <i>QA</i> process.</p>
<p>Most projects employ a tester. It&#8217;s very easy to see this person as a backstop - something that happens after the programming stops and before the code gets released. But this is lazy and another blocker to a seamless release process.</p>
<p>Developers should care enough about the quality of what they are producing to check it works perfectly before they dump it in to the source code management system and in front of users - both by writing integration tests or pairing with someone on the team to walk through the change (ie. HCI, testing the change with different use cases).</p>
<p>Sometimes we found it was hard to test something locally - Eg, you can&#8217;t connect to a production database, or emulate a state of some dependent system, or physically connect a test device to the developers virtual machine - and committing the changes to the integration environment was the only reasonable way to test them. But this breaks out clean trunk rule (above), so spending time removing these problems yields an environment where nobody has excuses for not testing something.</p>
<p>Rather than employing an army of testers to plough through the work the team has done at regular intervals, use them to impart their expertise to developers to help them understand context in which the code with be used. Help them understand how to test.</p>
<p>And as for people who like writing code but think it&#8217;s some one else&#8217;s job to check it for them. Well, try to avoid that.</p>
<h2>HEAD</h2>
<p>The advantage of the above three principals is that you avoid the hassle of patching, which isn&#8217;t so much a hassle in practical terms (although typically around our way is does cause more effort that I&#8217;d like), more a bad process smell. We&#8217;ve tried to keep to these rules while building <a href="http://m.bbc.co.uk/news">m.bbc.co.uk/news</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/786/feed</wfw:commentRss>
		</item>
		<item>
		<title>REST-assured on Cent OS</title>
		<link>http://matt.chadburn.co.uk/784</link>
		<comments>http://matt.chadburn.co.uk/784#comments</comments>
		<pubDate>Tue, 13 Dec 2011 22:37:06 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=784</guid>
		<description><![CDATA[To get REST-assured running on my CentOS VM with the sqlite3 gem I needed to install sqlite3 manually and export the LD_LIBRARY_PATH. Like this.

sudo wget http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz
sudo tar xzvf sqlite-autoconf-3070400.tar.gz
cd sqlite-autoconf-3070400
sudo ./configure
make install
export LD_LIBRARY_PATH=/usr/local/lib

]]></description>
			<content:encoded><![CDATA[<p>To get <a href="https://github.com/BBC/REST-assured">REST-assured</a> running on my CentOS VM with the <em>sqlite3</em> gem I needed to install sqlite3 manually and export the LD_LIBRARY_PATH. Like this.</p>
<pre>
sudo wget http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz
sudo tar xzvf sqlite-autoconf-3070400.tar.gz
cd sqlite-autoconf-3070400
sudo ./configure
make install
export LD_LIBRARY_PATH=/usr/local/lib
</pre>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/784/feed</wfw:commentRss>
		</item>
		<item>
		<title>Query DOM with Xpath in Chrome</title>
		<link>http://matt.chadburn.co.uk/782</link>
		<comments>http://matt.chadburn.co.uk/782#comments</comments>
		<pubDate>Thu, 25 Aug 2011 19:26:20 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=782</guid>
		<description><![CDATA[Go to Developer Tools, hit &#8216;Escape&#8217; on the Elements tab, then type :-
document.evaluate( 'count(//p)', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );
]]></description>
			<content:encoded><![CDATA[<p>Go to Developer Tools, hit &#8216;Escape&#8217; on the Elements tab, then type :-</p>
<pre>document.evaluate( 'count(//p)', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );</pre>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/782/feed</wfw:commentRss>
		</item>
		<item>
		<title>Responsive design @ bbc.co.uk</title>
		<link>http://matt.chadburn.co.uk/774</link>
		<comments>http://matt.chadburn.co.uk/774#comments</comments>
		<pubDate>Mon, 25 Jul 2011 21:53:43 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=774</guid>
		<description><![CDATA[I spoke to an internal audience last week about a responsive design project my team has been working on at the BBC.
The slides, which explain the motivation behind the project, are available as a PDF, or you can view them on slideshare. The video of our prototype that accompanied the presentation is available on YouTube.
]]></description>
			<content:encoded><![CDATA[<p>I spoke to an internal audience last week about a <a href="http://www.alistapart.com/articles/responsive-web-design/">responsive design</a> project my team has been working on at the BBC.</p>
<p>The slides, which explain the motivation behind the project, are available as <a href="http://matt.chadburn.co.uk/presentations/mobile.pdf">a PDF</a>, or you can view them <a href="http://www.slideshare.net/commuterjoy/responsive-design-bbccouk-8687366">on slideshare</a>. The video of our prototype that accompanied the presentation is available <a href="http://youtu.be/N9cuGP0tLZg">on YouTube</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/774/feed</wfw:commentRss>
		</item>
		<item>
		<title>Design Sans Frontières</title>
		<link>http://matt.chadburn.co.uk/768</link>
		<comments>http://matt.chadburn.co.uk/768#comments</comments>
		<pubDate>Fri, 17 Jun 2011 17:09:23 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=768</guid>
		<description><![CDATA[Imagine you didn&#8217;t understand the difference between a hardware accelerated CSS3 animation, a JQuery tween or a declarative SVG transition. How would you be able to decide on how your UI moved gracefully from one state to another on a dozen different devices?
Or imagine you couldn&#8217;t mentally measure an interface feature in kilobytes. How would [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine you didn&#8217;t understand the difference between a hardware accelerated CSS3 animation, a JQuery tween or a declarative SVG transition. How would you be able to decide on how your UI moved gracefully from one state to another on a dozen different devices?</p>
<p>Or imagine you couldn&#8217;t mentally measure an interface feature in kilobytes. How would be able to decide on the fastest experience for a person on a slow connection?</p>
<p>Imagine if you never read the data model documentation and had to guess the presence, function, relationship and structure of each object. How would you decide the composition of an interface? </p>
<p>Imagine if you had to create tactile interface without ever touching it. How would you comprehend what gestures didn&#8217;t confuse?</p>
<p>Imagine you didn&#8217;t spend Sunday evening reading through the W3 specifications and browser vendors nightly READMEs. How would you understand what&#8217;s going to happen next?</p>
<p>Design is a manifestation of experience, and the experience is ever more complex.</p>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/768/feed</wfw:commentRss>
		</item>
		<item>
		<title>Happy path design pattern</title>
		<link>http://matt.chadburn.co.uk/739</link>
		<comments>http://matt.chadburn.co.uk/739#comments</comments>
		<pubDate>Fri, 10 Jun 2011 19:13:57 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=739</guid>
		<description><![CDATA[The happy path design pattern involves pushing down improbable but important worst-case scenario execution paths to the deepest part of your application so they are only executed in the exceptional circumstances at which they occur.
I wrote this because I&#8217;m unaware of it being written anywhere else.
Worst-case coding
Developers are trained to code cautiously. Errors and exceptions [...]]]></description>
			<content:encoded><![CDATA[<p>The <em>happy path design pattern</em> involves pushing down improbable but important worst-case scenario execution paths to the deepest part of your application so they are only executed in the exceptional circumstances at which they occur.</p>
<p>I wrote this because I&#8217;m unaware of it being written anywhere else.</p>
<h2>Worst-case coding</h2>
<p>Developers are trained to code cautiously. Errors and exceptions are predicted and trapped, databases are read before insertions and updates happen, we check caches before we attempt to purge their items. Our code is littered with conditional constructs to determine whether or not we should to do something.</p>
<p>The problem also extends to business analysts. Functional specifications are full of edge cases, &#8216;a user can&#8217;t do this if they&#8217;ve already done such and such.&#8217;</p>
<p>Your code probably has a lot of this going on :-</p>
<pre><code>
if (thing.exists === false)
	thing.create
else
	thing.update
end
</code></pre>
<p>Each execution cycle is pessimistic, assuming the worst will happen (that the thing exists and we will try to create it again rather than update it) and so you are, understandably, trying to prevent that and avoid your boss/colleagues/clients from thinking you are bad at your job (by building things that don&#8217;t result in error states).</p>
<p>This approach doesn&#8217;t always scale.</p>
<p>In many circumstances the chosen path is overwhelmingly going to be one or the other. Lets call this the <em>happy path</em>, the other paths being edge cases, 1/1000 events that will break your system but hardly ever happen.</p>
<p>Here&#8217;s an example of our simple code sample presented as a registration system where a user object is queried with a unique id (Eg, an email address) and then created if it doesn&#8217;t exist, otherwise updated.</p>
<pre><code>
if (user.exists(uid) === false)
	user.create(uid)
else
	user.update(uid, telephone)
end
</code></pre>
<p>How many times a day does somebody attempt to register with the same email address as someone else or bypass your systems security to update a user that doesn&#8217;t exist? Both these requirements are essential but may be edge cases in some systems.</p>
<p>In this case we make a minimum of two calls to the user object for every registration/update - a read (exists) and a create or update.</p>
<p>Twice doesn&#8217;t sound too bad, and it&#8217;s often not of course. But let&#8217;s say the user object is talking to a web service in a different data centre, each function (exists, create, update) maps to a HTTP method (GET, PUT, POST) on stateless, RESTful API. Let&#8217;s also say your site is popular to the tune of 1000&#8217;s of requests a second at certain times of the week.</p>
<p>You&#8217;ve just doubled the network traffic and operations on that database because of an edge case.</p>
<h2>Happy path</h2>
<p>Lets look at this problem again. We are wrapping edge cases around our optimal path. Is there a better way we can solve this? What would our code look like if we assumed the best-case scenario usually happens?</p>
<p>In the following example we pass the error handling down to the deepest application layer and the handle the <em>exceptional case</em> if and when it occurs. It works nicely when you know that one path is far more likely to happen the the other.</p>
<pre><code>
// assume something will blow up underneath if bad, Eg. mysql
// duplicate primary key error) and then catch that exception
try
	user.create(uid)
	catch(e)
		user.update(uid, telephone)
</code></pre>
<p>The above example is crude but came about from high-transaction survey software that I was helping design and build at <a href="http://bbc.co.uk">work</a>.</p>
<p>We found while load testing we could tear out many cautious calls (mostly reads, naturally) to sub-systems like memcached that would throw graceful exceptions when, for example, we tried to create something that was already there. Likewise our HTTP API would send back 409 code when tried to update something that had gone stale.</p>
<p>It&#8217;s a simple trick that had a significant impact on our performance. </p>
<p>It&#8217;s interesting to me as a developer because knowingly causing lower level errors/exections is counter-intuative to what we&#8217;ve been trained to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/739/feed</wfw:commentRss>
		</item>
		<item>
		<title>Who Is The Secret Footballer?</title>
		<link>http://matt.chadburn.co.uk/719</link>
		<comments>http://matt.chadburn.co.uk/719#comments</comments>
		<pubDate>Sat, 09 Apr 2011 09:58:44 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=719</guid>
		<description><![CDATA[The identity of the Guardian&#8217;s secret footballer is keeping me awake at night.
Summary

Not foreign, most likely English due to his articles on Capello and foreigners.
Probably in his 30s, but not past it. (not Sol Campbell, Danny Mills, Keown).
Current in a Premiership squad. (not Craig Bellamy)
Happily married. (not Peter Crouch or Frank Lampard)
An outfield player. (not [...]]]></description>
			<content:encoded><![CDATA[<p>The identity of the <a href="http://www.guardian.co.uk/football/series/the-secret-footballer">Guardian&#8217;s secret footballer</a> is keeping me awake at night.</p>
<h2>Summary</h2>
<ul>
<li>Not foreign, most likely English due to his articles on Capello and foreigners.
<li>Probably in his 30s, but not past it. (not Sol Campbell, Danny Mills, Keown).
<li>Current in a Premiership squad. (not Craig Bellamy)
<li>Happily married. (not Peter Crouch or Frank Lampard)
<li>An outfield player. (not David James)
<li>Played for several Premiership clubs (unlikely to be Phil Neville, Owen Hargreaves, Clarke Carlisle, Carragher, Kevin Nolan etc.)
<li>A long stint a one club under a single manager (4+ seasons?) at at least one of them (not Jason Roberts or other journeymen etc.)
<li>Possibly past involvement in international football (unlikely to be Matthew Taylor, Kevin Davies)
<li>Played a match the weekend 2nd - 3rd April (so not Joe Cole, Woodgate, Gerrard, Andy Johnson, Heskey etc)
<li>Strong farther figure (not Joey Barton!)
</ul>
<p>I think this leaves three possible candidates - Scott Parker, Danny Murphy, Kevin Phillips. </p>
<p>They&#8217;ve all had potential to form &#8216;lifelong friendships&#8217; with an unnamed Scandinavian - Phillips (Sørensen), Scott Parker (Claus Jensen), Danny Murphy (Hyypiä or Riisee). They&#8217;ve all played under good and bad managers, most squads have had a small French contingent in the last decade, and gambling seems rife across the industry so that doesn&#8217;t give me any specific clues.</p>
<p>Many people think Kevin Davies, but hasn&#8217;t played at enough clubs for my liking, so I&#8217;m striking off my list - the secret footballer has regularly been involved in transfer negotiations whereas Kevin seems content at Bolton.</p>
<p>I can&#8217;t narrow it down further with any certainty.</p>
<p>Murphy is the front runner because of his past media work but that might be too obvious and his <a href="http://www.guardian.co.uk/football/2011/jan/29/secret-footballer-andy-gray-pundits">29th January column</a> railed against pundits (he occasionally works for ITV).</p>
<p>A couple of <a href="http://twitter.com/#!/TSFGuardian">tweets</a> make me think it is Murphy though. </p>
<ul>
<li>&#8220;Which 3 will be relegated from the Prem this season? My friend is adament Villa will go but they don&#8217;t see the type!&#8221; - I wouldn&#8217;t expect this from a player in the middle of a relegation battle, as Parker is at West Ham.
<li>&#8220;Congratulations to Birmingham. What do you think the difference was? Except one goal&#8230;&#8221; - Referring to Birmingham in this way would be odd for Phillips.
</ul>
<p>For my own sanity I&#8217;m assuming he&#8217;s not given out any false information and that it is a single person, not a group of player, nor a Guardian hack as some have suggested.</p>
<p>So, I think it&#8217;s <strong>Danny Murphy</strong> for now.</p>
<h2>Weekly Notes</h2>
<p><a href="http://www.guardian.co.uk/football/blog/2011/apr/09/secret-footballer-respect-referees">9 April</a> </p>
<ul>
<li>I once won a free-kick playing at Old Trafford and a Manchester United player brought the ball over to the spot where it was to be taken from and handed it to the referee. [I take this to mean he's not played for Manchester United. also definitely an outfield player]
<li>In a nutshell, that is the &#8220;justification&#8221; for shouting in the referee&#8217;s face, waving your finger at him, lambasting him every time he gives something against you and jogging past him and &#8220;getting in his ear&#8221;. I don&#8217;t overly like it and I&#8217;m uncomfortable doing it. [Only an outfield player would have regular opportunity to berate a referee]
<li>My wife told me that last week &#8230; [Currently married]
<li>I still grew up to be a footballer and, may I say, a fairly well-adjusted one, and that is because of my upbringing and the values that were instilled in me. [strong father figure]
</ul>
<p><a href="http://www.guardian.co.uk/football/blog/2011/apr/02/jack-wilshere-foreign-legion-secret-footballer">2 April</a></p>
<ul>
<li>I have made some lifelong friends, like the Scandinavian I&#8217;ve known for so long that I forgot he wasn&#8217;t English. [Long-term EPL Scandinavians]
<li>A group of French players I played with at one club who were not interested in communicating with anybody else. [Could be French speaking, so covers much of North/West Africa]
<li>And there was a striker who refused to move unless the pass went exactly where he wanted. [Could be one of many primma donna forwards - Berbatov, Anelka]
</ul>
<p><a href="http://www.guardian.co.uk/football/blog/2011/mar/19/the-secret-footballer-gambling">19 March</a></p>
<p>Played at a club with a culture of gambling.</p>
<ul>
<li>I&#8217;ve known one player who operates on what I would describe as very close to a professional level when it comes to gambling.
<li>And then there is the complete opposite type of gambler. I&#8217;ve actually roomed with one of these and it isn&#8217;t pleasant &#8230; taking calls from bookmakers all over the world at all hours of the day.
</ul>
<p><a href="http://www.guardian.co.uk/football/blog/2011/mar/12/the-secret-footballer-gay-players">12 March</a></p>
<ul>
<li>I saw a talented young kid reduced to tears in the changing room &#8230; thinking back, I can definitely guess [Several references throughout various columns to the younger generation.]
<li>It isn&#8217;t because we&#8217;re a superior breed – even I wouldn&#8217;t take on that argument with half the England team conspiring against me. [this isn't a very well worded sentence, I'm not sure if we can conclude he's an ex-international]
</ul>
<p><a href="http://www.guardian.co.uk/football/blog/2011/mar/05/bosman-ruling">5 March</a></p>
<p>This article hints that he&#8217;s got an agent with a good reputation.</p>
<ul>
<li>When I hang up my boots, I will have opportunity to move on to things I have always wanted to do before I undergo the hip and knee replacements my doctor promised a few years ago. [Obviously an older player]
<li>I have been in contract negotiations where the Bosman ruling hung over proceedings. [Has been around a few clubs with several contracts]
</ul>
<p><a href="http://www.guardian.co.uk/football/2011/feb/26/the-secret-footballer-ifab-snoods">26 February</a></p>
<p>Nothing specific in this column but the examples he gives examples of laws he thinks FIFA should introduce, &#8220;the situation that arises when a defender shepherds the ball out of play for a goal-kick, preventing his opponent from getting the ball despite making no attempt to play it&#8221;, which makes me think it can&#8217;t be a defensive player.</p>
<p>Also, this :-</p>
<ul>
<li>A friend of mine recently told me his team lacked any clear direction or ambition and, as a result, problems came about which had not been addressed. He said things got so bad that a group of players even began to raise the possibility that it could be a deliberate ploy by the manager to get himself sacked. [99% sure this is a friend of Liverpool]
</ul>
<p><a href="http://www.guardian.co.uk/football/2011/feb/19/the-secret-footballer-managers">19 February</a></p>
<ul>
<li>I&#8217;ve played for great managers, and I&#8217;ve also played for one or two where I would happily have faked my own death if it meant not working with them a minute longer. [Well travelled]
<li>At one club I played for, it was because of a shared belief that our tactics were flawed, that this was making us look like poor players and, in turn, lose matches. [RE: managers loosing the dressing room]
<li>I remember at one club being fined for going out to a pub with a couple of friends while injured.
<li>He was referring to whether or not I escorted a young lady home, despite the fact that he knew I had a long-term girlfriend &#8230; I was young back then.
<li>The first time this happened I had been playing for the manager in question for a long time [had a long stint at least one club] &#8230; a man who I looked up to as a god of the game from the way he handled the players, the fans and the media. [But it's not Harry Redknapp] &#8230; and it showed him up as a man who, at the time, was troubled. [Houlier?]
</ul>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/719/feed</wfw:commentRss>
		</item>
		<item>
		<title>CVs</title>
		<link>http://matt.chadburn.co.uk/713</link>
		<comments>http://matt.chadburn.co.uk/713#comments</comments>
		<pubDate>Fri, 11 Feb 2011 22:54:52 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=713</guid>
		<description><![CDATA[These are my thoughts, not those of my employer
I&#8217;m reading quite a lot of CVs at the moment. Here&#8217;s what I think is important.
Keep it to about two pages when printed. I can&#8217;t stress enough the improbability of an unfocussed eleven pager making it past the initial CV filtering process. I do actually print CVs [...]]]></description>
			<content:encoded><![CDATA[<p><em>These are my thoughts, not those of my employer</em></p>
<p>I&#8217;m reading quite a lot of CVs at the moment. Here&#8217;s what I think is important.</p>
<p>Keep it to about <strong>two pages</strong> when printed. I can&#8217;t stress enough the improbability of an unfocussed eleven pager making it past the initial CV filtering process. I do actually print CVs out and scribble on them rather than reading off the screen.</p>
<p>Unless you are a very recent graduate it&#8217;s not overly important to me if you got a B+ in your Geography GSCE in 1992. Tell me (briefly) if you got ten straight A&#8217;s or were awarded a scholarship, but please don&#8217;t list every exam result you&#8217;ve ever had.</p>
<p>List your jobs in reverse chronological order. It&#8217;s weird how some CVs start with what they were doing in 1995. Fine if you invented the cure for the common cold and won the 1995 Nobel Prize in Medicine. Not fine for less significant events.</p>
<p>I&#8217;m no good at spelling, and worse at grammar, so I don&#8217;t care overly if the CV has the odd hard to parse sentence, but make an effort. Spellcheck it at least.	</p>
<p>Include a URL to some code you wrote. You are applying for a programming job.</p>
<p>Writing this is pretty meaningless :-</p>
<ul>
<li>PHP – 7 years
<li>Ruby on Rails – 4 years
<li>JavaScript (JQuery, Prototype) - 6 years
<li>CSS &#038; HTML – 7 years
<li>XML – 7 years
<li>XSLT - 4 years
<li>ActionScript – 8 years
<li>SEO – 4 years
<li>&#8230;
</ul>
<p>Am I to think that you have over 92 man-years of experience in your short career or that you&#8217;ve stuck a lot of buzzwords in your CV to fish for work? Separate out what you think you really are good at, probably things you&#8217;ve been doing on a daily basis for few years. Then mention the few other relevant things you&#8217;ve got decent exposure to. The clue as to what to leave in/out will be in the job ad.</p>
<p>On that note, doing this is even worse (taken from an otherwise great CV) :-</p>
<blockquote><p>PHP OOP, Zend Framework, MVC, Drupal, XML, XSD, XSL, DOM, Xpath, Smarty, Pear, XMLRPC, SOAP, Lucene, Sphinx, SOLR, Cassandra, Thrift, MySQL (foreign keys, optimisation, indexing), ORM (Active Record), Properl, Doctrine, Caching, Memcache, OAuth, Apache auth (basic, digest) EC2, S3, MongoDB, TDD, RAD, Agile, PHPUnit, Xdebug, LAMP, Apache (Linux config, mod_rewrite, system admin, testing, stats - Munin), Tomcat, SVN, Git, Eclipse, Aptana, JEE, Spring Framework, MVC, Hibernate, Tomcat, JUnit, Quartz, Velocity, SOAP, Maven, Ant, Netbeans, Eclipse, Query, Prototype, Ajax, Comet, Mootools, DOM, Behaviour scripting, HTML 5 (canvas), CSS, Mail (SMTP, IMAP, POP3), DNS, DHCP, SSH, Telnet, FTP, Database Server (Sybase, MySQL, PostgreSQL, LiteSQL), Apache, TOMCAT, PHP Server, Ruby on Rails configuration, Memacached, SVN Server &#8230;</p></blockquote>
<p>It&#8217;s recruitment spam. Don&#8217;t do it.</p>
<p>Also, don&#8217;t cut bits and pieces out of the job description and insert them in your personal statement. I&#8217;ll spot it.</p>
<p>A four page CV mentioned the word PHP no less than twenty-nine times.</p>
<p>Some people think I need every technical acronym expanding. RDBMS becomes, &#8220;relational database management system (RDBMS)&#8221;. It&#8217;s not necessary.</p>
<p>Irrelevant stuff. Bartender, ice-cream van driver, gardener, please don&#8217;t mention jobs that aren&#8217;t related to the one advertised. Some people put the fact they have a clean driving license on their CV. The job doesn&#8217;t involved driving, or cars.</p>
<p>I don&#8217;t really read the personal interests section. I think I might be sociopathic.</p>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/713/feed</wfw:commentRss>
		</item>
		<item>
		<title>Illustrated London News on Broadcasting History</title>
		<link>http://matt.chadburn.co.uk/701</link>
		<comments>http://matt.chadburn.co.uk/701#comments</comments>
		<pubDate>Sun, 23 Jan 2011 22:20:45 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=701</guid>
		<description><![CDATA[I found an old copy of the Illustrated London News on my mother-in-laws bookshelf. More specifically it&#8217;s the special edition published to celebrate George V&#8217;s Silver Jubilee in 1935.
The 50-or-so-page book is largely a review of the key events and scientific, cultural and technical achievements falling with in the monarchs reign, which, with hindsight, was [...]]]></description>
			<content:encoded><![CDATA[<p>I found an old copy of the <a href="http://en.wikipedia.org/wiki/The_Illustrated_London_News">Illustrated London News</a> on my mother-in-laws bookshelf. More specifically it&#8217;s the special edition published to celebrate George V&#8217;s Silver Jubilee in 1935.</p>
<p>The 50-or-so-page book is largely a review of the key events and scientific, cultural and technical achievements falling with in the monarchs reign, which, with hindsight, was only to last a further 7 months (he died in early 1936 from assorted smoking related diseases).</p>
<p>The early 1920s saw attempts to <a href="http://en.wikipedia.org/wiki/Radio#Early_history">popularise radio broadcasting</a> so included in the book are several references to (upper-class) members of society experiencing the medium.</p>
<p>Here&#8217;s my favourites&#8230;</p>
<p><strong>1913</strong>: A family calibrating their various time pieces using the Parisian 11:30pm broadcast.</p>
<p><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs1393.snc4/164529_490538746231_567866231_6524372_920940_n.jpg"/></p>
<p><strong>1923</strong>: Several overdressed folk sat on the London to Liverpool Express were entertained by radio broadcasts from London and Birmingham. The caption reads as if the train carriage was a successful proof of concept rather than an everyday occurrence.</p>
<p><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash1/hs890.ash1/179857_490539276231_567866231_6524385_3034839_n.jpg"/></p>
<p><strong>1923</strong>: It was noted that a live band in one location could simultaneously play at many private parties. This was later to inspire the work of a Mr Peter Tong of Kent.</p>
<p><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs1386.snc4/163863_490538471231_567866231_6524365_2361138_n.jpg"/></p>
<p><strong>1933</strong>: Broadcasting House is finished and the 10-year old BBC moves in.</p>
<p><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc6/hs275.snc6/180339_490537276231_567866231_6524324_7894035_n.jpg"/></p>
<p><strong>1935</strong>: The announcement of a &#8216;London television station&#8217; was illustrated by an early model of a home tv set (aka. the Baird receiver). Note the comically small screen, I think displaying Adrian Chiles&#8217; face, and some kind of mechanical apparatus built in to the armchair that appears to be associated with the function of the gentleman&#8217;s telly (possibly the receiver).  </p>
<p><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash1/hs799.ash1/168915_490539811231_567866231_6524396_4662413_n.jpg"/></p>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/701/feed</wfw:commentRss>
		</item>
		<item>
		<title>Have you?</title>
		<link>http://matt.chadburn.co.uk/694</link>
		<comments>http://matt.chadburn.co.uk/694#comments</comments>
		<pubDate>Tue, 18 Jan 2011 10:10:59 +0000</pubDate>
		<dc:creator>mattc</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://matt.chadburn.co.uk/?p=694</guid>
		<description><![CDATA[
dev checked it
cached it
unit tested it
profiled it
acceptance tested with whoever wanted it
load tested it (reads &#038; writes)
monitored it
stress tested it for 12 hours
volume tested (with 5m users)
documented it

]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://thecodetrain.co.uk/2011/01/dev-checks/">dev checked</a> it
<li>cached it
<li>unit tested it
<li>profiled it
<li>acceptance tested with whoever wanted it
<li>load tested it (reads &#038; writes)
<li>monitored it
<li>stress tested it for 12 hours
<li>volume tested (with 5m users)
<li>documented it
</ul>
]]></content:encoded>
			<wfw:commentRss>http://matt.chadburn.co.uk/694/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

