<?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>Differential Progression &#187; alex</title>
	<atom:link href="http://alex.kavanagh.name/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://alex.kavanagh.name</link>
	<description>Random thoughts, differential progress ...</description>
	<lastBuildDate>Mon, 06 Jun 2011 15:39:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Exploring Python @decorators</title>
		<link>http://alex.kavanagh.name/2011/05/exploring-python-decorators/</link>
		<comments>http://alex.kavanagh.name/2011/05/exploring-python-decorators/#comments</comments>
		<pubDate>Sat, 28 May 2011 17:02:27 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=294</guid>
		<description><![CDATA[Today I&#8217;ve been using Python decorators to factor out common functionality in test cases. I ran into the slightly (!) interesting problem of how to define a @decorator(like_this). That is, a decorator that takes a parameter. It&#8217;s fairly trivial to &#8230; <a href="http://alex.kavanagh.name/2011/05/exploring-python-decorators/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve been using Python decorators to factor out common functionality in test cases. I ran into the <em>slightly (!)</em> interesting problem of how to define a <code>@decorator(like_this)</code>. That is, a decorator that takes a parameter.</p>
<p>It&#8217;s fairly trivial to define a decorator that doesn&#8217;t take a parameter:</p>
<pre class="brush: python; gutter: true; title: ; notranslate">from functools import wraps

def decorator(f):
    @wraps(f)
    def dec(*args, **kwargs):
        # do something useful
        return f(*args, **kwargs)
    return dec

@decorator
def hello(string):
    print string</pre>
<p>Okay, it doesn&#8217;t do much! <code>@wraps(f)</code> from <code>functools</code> does the magic. The end effect is that the function <code>hello</code> ends up pointing to the <code>dec</code>function that is dynamically created when the file or module is loaded.  That is, <code>@decorator</code> runs when the file is loaded, creates a <code>dec</code> instance and then <code>@wraps</code> &#8216;renames&#8217; things so that <code>hello</code> points to <code>dec</code> and the <code>f</code> in <code>dec</code> points to the original <code>hello</code> definition (the one with the <code>print string</code>)!</p>
<p>But, what if we want to have a decorator that takes a parameter.  i.e. we want to do this:</p>
<pre class="brush: python; title: ; notranslate">@pdecorator('hello')
def hello2(string, string2='optional'):
    &quot;&quot;&quot;
    hello2 doc string.
    &quot;&quot;&quot;
    print string, string2</pre>
<p>So, as usual, one goes off and does some research. My answer was found <a title="Python: Decorators With Arguments (with bonus Django goodness)" href="http://www.elfsternberg.com/2009/11/20/python-decorators-with-arguments-with-bonus-django-goodness/" target="_blank">here</a> in a very useful post by Elf Sternberg. The example on the <a title="Python: Decorators With Arguments (with bonus Django goodness)" href="http://www.elfsternberg.com/2009/11/20/python-decorators-with-arguments-with-bonus-django-goodness/" target="_blank">linked page</a> has a bit more detail than I needed to understand so I simplified it as:</p>
<pre class="brush: python; title: ; notranslate">def pdecorator(name):
    def inner(f):
        def wrapped(*args, **kwargs):
            return f(name, *args, **kwargs)
        return wraps(f)(wrapped)
    return inner

@pdecorator('hello')
def hello2(string, string2='optional'):
    &quot;&quot;&quot;
    My doc string.
    &quot;&quot;&quot;
    print string, string2</pre>
<p>So, what&#8217;s going on here? <a title="PEP 318 -- Decorators for Functions and Methods " href="http://www.python.org/dev/peps/pep-0318/#current-syntax">PEP-318</a> explains what&#8217;s going on. Essentially, the syntax of a decorator with arguments like this:</p>
<pre class="brush: python; title: ; notranslate">@decorator(arg1, arg2, arg3)
def func(*args):
    pass</pre>
<p>is actually transformed into:</p>
<pre class="brush: python; light: true; title: ; notranslate">func = decorator(arg1, arg2, arg3)(func)</pre>
<p>That is, <code>decorator</code> has to return a function that can decorate <code>func</code>. So in the above example, <code>wrapped</code> is the function we want to wrap around <code>f</code>. So what does</p>
<pre class="brush: python; light: true; title: ; notranslate">return wraps(f)(wrapped)</pre>
<p>actually do?  For that we have to look at <code>wraps</code> from <code>functools</code>.</p>
<p><code>wraps(f)</code> returns a <code>functools.partial</code> object. A <em>partial</em> object is sort of like a function that is partially called, i.e. it isn&#8217;t &#8216;finished&#8217; yet.  e.g. Take the complete function <code>f(a,b) -&gt; a+b</code>.  <code>f(2,3) -&gt; 5</code>. However, now imagine that <code>g(f,2)</code> returns a function <code>h(b)</code> which takes a single parameter <code>b</code> such that <code>h(3) -&gt; 5</code>. Effectively <code>h(b)</code> (as we designed it) has <em>partially completed</em> or <em>frozen</em> <code>f()</code> such that the first parameter <code>a</code> is now 2 in the add. In Python it looks like this:</p>
<pre class="brush: python; title: ; notranslate">from functools import partial
add2 = partial(lambda x,y: x+y, 2)
add2(3)
5</pre>
<p>i.e. the 2 was captured in the in the <code>x</code> position in the function.  Cool, huh!</p>
<p>Anyway, what <code>wraps(...)</code> returns is a partially applied <code>functools.update_wrapper(...)</code> function which has captured the __name__, __doc__ and __dict__ of the function passed as an argument.  i.e. <code>wraps(f)</code> returns a partially applied <code>update_wrapper</code> function with <code>f.__name__</code>, <code>f.__doc__</code> and <code>f.__dict__</code> frozen into it.  However, the <em>wrap</em> hasn&#8217;t yet been applied to a function.  In our example above, <code>wraps(f)(wrapped)</code> thus then wraps <code>f.__name__</code>, <code>f.__doc__</code> and <code>f.__dict__</code> on to the <code>wrapped</code> function.</p>
<p>So coming back to the example (repeated again to stop you scrolling up and down!):</p>
<pre class="brush: python; title: ; notranslate">def pdecorator(name):
    def inner(f):
        def wrapped(*args, **kwargs):
            return f(name, *args, **kwargs)
        return wraps(f)(wrapped)
    return inner

@pdecorator('hello')
def hello2(string, string2='optional'):
    &quot;&quot;&quot;
    My doc string.
    &quot;&quot;&quot;
    print string, string2</pre>
<p><code>inner(f)</code> returns a function which is basically wrapped(f(&#8230;)) but has the <code>__name__</code>, <code>__doc__</code> and <code>__dict__</code> of <code>f</code>.</p>
<p>i.e. the nice equivalent of</p>
<pre class="brush: python; gutter: false; title: ; notranslate">
def hello2(...): pass
hello2 = wrapped(hello2)</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2011%2F05%2Fexploring-python-decorators%2F&amp;title=Exploring%20Python%20%40decorators" id="wpa2a_2"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2011/05/exploring-python-decorators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 LTS &#8211; experimenting with overcommit</title>
		<link>http://alex.kavanagh.name/2011/05/ubuntu-10-04-lts-experimenting-with-overcommit/</link>
		<comments>http://alex.kavanagh.name/2011/05/ubuntu-10-04-lts-experimenting-with-overcommit/#comments</comments>
		<pubDate>Sat, 14 May 2011 16:56:48 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=283</guid>
		<description><![CDATA[I currently running Ubuntu 10.04 LTS as my desktop. Neither Unity nor GNOME Shell (in GNOME 3) really interest me, but that&#8217;s for another post! This one is about the exasperation I feel when Linux overcommits too much memory and &#8230; <a href="http://alex.kavanagh.name/2011/05/ubuntu-10-04-lts-experimenting-with-overcommit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I currently running Ubuntu 10.04 LTS as my desktop. Neither Unity nor GNOME Shell (in GNOME 3) really interest me, but that&#8217;s for another post! This one is about the exasperation I feel when Linux overcommits too much memory and then goes into disk-thrashing hell.</p>
<p>It happens when I open just &#8216;one-too-many&#8217; tabs in Chrome. The desktop becomes unresponsive as the memory manager in Linux tries to find pages for Chrome to use for the new tab. Unfortunately, it&#8217;s so overcommitted the pages that it can&#8217;t find any. Every process wants to run and Linux essentially runs out of pages. Hence disk-thrashing starts, the desktop slows to a crawl or simply becomes unresponsive, and I try to Ctrl-Alt-F1 to get to a TTY so I can kill something (usually &#8216;killall chrome&#8217;).</p>
<p>I&#8217;d rather the box just didn&#8217;t allocate the memory if it doesn&#8217;t have it &#8211; i.e. <em>don&#8217;t open the new tab if there isn&#8217;t memory for it</em>.</p>
<p>My experiment is going to be to run for a few weeks using some sysctls of:</p>
<ul>
<li>vm.overcommit_memory = 2</li>
<li>vm.overcommit_ratio = 120</li>
</ul>
<p>This should give me a maximum commit of 8GB (4Gb swap and 4GB of memory). I wonder how it will go?</p>
<p>Useful information from:</p>
<ul>
<li><a href="http://opsmonkey.blogspot.com/2007/01/linux-memory-overcommit.html">Linux Memory Overcommit</a></li>
<li><a href="http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommit">How Linux handles virtual memory overcommit</a></li>
</ul>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2011%2F05%2Fubuntu-10-04-lts-experimenting-with-overcommit%2F&amp;title=Ubuntu%2010.04%20LTS%20%26%238211%3B%20experimenting%20with%20overcommit" id="wpa2a_4"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2011/05/ubuntu-10-04-lts-experimenting-with-overcommit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So Microsoft is buying Skype &#8230;</title>
		<link>http://alex.kavanagh.name/2011/05/so-microsoft-is-buying-skype/</link>
		<comments>http://alex.kavanagh.name/2011/05/so-microsoft-is-buying-skype/#comments</comments>
		<pubDate>Wed, 11 May 2011 09:38:18 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=280</guid>
		<description><![CDATA[Yesterday (10 May 2011), news broke that Microsoft is paying $8.5B for Skype (or roughly £5.2B in English).  Skype is a rather good, if proprietary, telephony/conferencing app that is multi-platform. It currently works on Windows, of course, but also on &#8230; <a href="http://alex.kavanagh.name/2011/05/so-microsoft-is-buying-skype/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yesterday (10 May 2011), <a href="http://www.bbc.co.uk/news/business-13343600">news </a>broke that Microsoft is paying $8.5B for <a href="http://www.skype.com/intl/en-gb/home">Skype</a> (or roughly £5.2B in English).  Skype is a rather good, if proprietary, telephony/conferencing app that is <em><a href="http://www.skype.com/intl/en-gb/get-skype/">multi-platform</a></em>. It currently works on Windows, of course, but also on Macs, Linux, iThings (iPhones, iPads and iPods), and on Android devices. And there&#8217;s the potential problem.</p>
<p><span id="more-280"></span>Microsoft isn&#8217;t exactly known for it&#8217;s love affair with cross-platform technologies. If anything, they are the most <em>anti-</em>cross-platform technology provider there is. Windows and its eco-system is all that Microsoft is interested in; it&#8217;s where the bulk (<em>nay</em> all?) of its revenue is derived from.</p>
<p>Buying Skype for $8.5B is an interesting move. It&#8217;s roughly double what Google or Facebook <em>were</em> going to pay, if the <a href="http://www.computerworld.com/s/article/9216598/With_Skype_buy_Microsoft_plays_keep_away_with_Google_">rumours</a> were true. Thus, Microsoft must believe that it will gain synergies (that <em>horrible</em> management/marketing word &#8230;) from integrating Skype technology (and brand?) into Windows in the Desktop, Server, Xbox and Windows Mobile world. It&#8217;s got a <a href="https://partner.microsoft.com/40092187">large fight on its hand</a>s with Cisco in the conferencing space and has been looking to make its Unified Communications solution really, really compelling. And maybe by adding Skype to the mix it will be compelling? But $8.5B compelling?</p>
<p>It&#8217;s hard to see how Microsoft is going to get its investment back. There could be some useful patents in the mix, and Microsoft is showing that it likes to throw patents around to interfere with markets and use legal tactics as competition rather that, say, just innovating and competing. However, keeping the technology away from Google <em>et al.</em> may also be part of there competitive strategy.</p>
<p>So there&#8217;s lots of interesting stuff in there. But for those of us who use Skype on Macs, Linux, Android, or anything that <em>isn&#8217;t</em> Windows, yesterday marks a turning point. Previous acquisitions by Microsoft that <em>were</em> cross-platform eventually became Windows only, with the other platforms left swinging in the breeze. What are we going to use instead? SIP, Google Voice, <em>something else</em>? Come on Google, sort out your <a href="http://en.wikipedia.org/wiki/Google_Voice">Google Voice</a> offering for the rest of the world &#8230;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2011%2F05%2Fso-microsoft-is-buying-skype%2F&amp;title=So%20Microsoft%20is%20buying%20Skype%20%26%238230%3B" id="wpa2a_6"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2011/05/so-microsoft-is-buying-skype/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rant: Just because something is hard &#8230;</title>
		<link>http://alex.kavanagh.name/2011/03/rant-just-because-something-is-hard/</link>
		<comments>http://alex.kavanagh.name/2011/03/rant-just-because-something-is-hard/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 15:05:23 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=272</guid>
		<description><![CDATA[&#60;rant&#62;I&#8217;m doing a beginner&#8217;s French course at the Open University. It&#8217;s great. It&#8217;s also hard work and takes lots of time. However, the forums seem to attract many posts about how it is &#8220;suitable for beginner&#8217;s&#8221; or that &#8220;it&#8217;s not &#8230; <a href="http://alex.kavanagh.name/2011/03/rant-just-because-something-is-hard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&lt;rant&gt;I&#8217;m doing a <em>beginner&#8217;s</em> <a href="http://www3.open.ac.uk/study/undergraduate/course/l192.htm" target="_blank">French course at the Open University</a>. It&#8217;s great. It&#8217;s also <strong>hard work</strong> and takes <strong>lots of time</strong>.</p>
<p>However, the forums seem to attract many posts about how it is &#8220;suitable for beginner&#8217;s&#8221; or that &#8220;it&#8217;s not a beginner&#8217;s course&#8221;. Apart from being annoying, they are simply incorrect.</p>
<p>Fact: the course, L192, assumes <em>no previous knowledge of French</em> before starting on the <a title="Entry requirements for the course" href="http://www3.open.ac.uk/study/undergraduate/course/l192.htm#entry" target="_blank">course</a>:</p>
<blockquote><p><strong>Entry</strong></p>
<p>No prior knowledge of French is required to study this course.</p>
<p>This is a Level 1 course. Level 1 courses provide core subject knowledge and study skills needed for both higher education and distance learning. If you have any doubt about the suitability of the course, please contact our Student Registration &amp; Enquiry Service.</p></blockquote>
<p>The course <strong>is</strong> for beginner&#8217;s; it just isn&#8217;t <strong>easy</strong>.&lt;/rant&gt;</p>
<p>The problem, of course, is that when something is <strong>hard</strong> or takes a little bit of <strong>work</strong> or <strong>time</strong>, some people instantly assume that the problem lies outside of themselves, and therefore, <em>surely the problem is with the course/person/situation</em>. Work harder and/or smarter; stop complaining.</p>
<p>&nbsp;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2011%2F03%2Frant-just-because-something-is-hard%2F&amp;title=Rant%3A%20Just%20because%20something%20is%20hard%20%26%238230%3B" id="wpa2a_8"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2011/03/rant-just-because-something-is-hard/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Call Centre PIN Codes</title>
		<link>http://alex.kavanagh.name/2011/02/call-centre-pin-codes/</link>
		<comments>http://alex.kavanagh.name/2011/02/call-centre-pin-codes/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 20:45:06 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=252</guid>
		<description><![CDATA[With the recent snowy weather in December, my roof sustained a fair amount of damage. Enough damage, in fact, to require a claim on the insurance. All well and good. In fact the insurance company have been very good and &#8230; <a href="http://alex.kavanagh.name/2011/02/call-centre-pin-codes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With the recent snowy weather in December, my roof sustained a fair amount of damage. Enough damage, in fact, to require a claim on the insurance. All well and good. In fact the insurance company have been very good and all is proceeding to plan.</p>
<p>However, they called me today, somewhat randomly, to inform me that the claim was proceeding normally. They called me and then asked me to provide details to &#8216;prove&#8217; who I was. I said, before I do that, can you prove who you are? And they couldn&#8217;t. There&#8217;s no information they could give me over the phone to demonstrate that they were who they said they were.</p>
<p>Why am I so cautious? Well, why not. It&#8217;s trivially easy to spoof a phone number on ID, and this was &#8216;withheld&#8217; anyway. I ended the call, looked up their number on my policy document and rang back in &#8211; it was the only way to (mostly) ensure that I was talking to who I thought I would be.</p>
<p>So it made me think: if we need to prove who we are when we call them, why <em>shouldn&#8217;t</em> they prove who they are when they call us. And the easiest way to do that is to give a piece of information that only they could know, essentially, something that you&#8217;ve given them as a password <em>only</em> to be given back to you &#8211; not for you to access the account.</p>
<p>Of course, it will never happen &#8230; <em>(sigh)</em>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2011%2F02%2Fcall-centre-pin-codes%2F&amp;title=Call%20Centre%20PIN%20Codes" id="wpa2a_10"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2011/02/call-centre-pin-codes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fun with BAA</title>
		<link>http://alex.kavanagh.name/2009/08/fun-with-baa/</link>
		<comments>http://alex.kavanagh.name/2009/08/fun-with-baa/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 16:42:28 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=75</guid>
		<description><![CDATA[BAA is British Airports Authority.  They &#8216;run&#8217; the main airports around London which include Heathrow, Gatwick and Standsted.  Unfortunately, Heathrow T5 is the centre of operations for British Airways.  I say &#8216;unfortunately&#8217; because travelling through T5 is a thoroughly unpleasant &#8230; <a href="http://alex.kavanagh.name/2009/08/fun-with-baa/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>BAA is British Airports Authority.  They &#8216;run&#8217; the main airports around London which include Heathrow, Gatwick and Standsted.  Unfortunately, Heathrow T5 is the centre of operations for British Airways.  I say &#8216;unfortunately&#8217; because travelling through T5 is a thoroughly unpleasant experience and blights British Airways and Britian&#8217;s supposedly premiere airport.<span id="more-75"></span></p>
<p>I had the &#8216;pleasure&#8217; of travelling through Heathrow T5 twice during my holiday to Thonon les Bains on Lac Leman which is reached via Geneva.  On paper, the flights look fine; catch the BA plane to Heathrow, two hours at Heathrow and then catch your onward flight to Geneva.  On the return journey, three hours are offered at Heathrow &#8211; little did I know it was to clear security.</p>
<p>On the way out to Geneva, the plane was delayed by nearly an hour waiting at the gate.  However, desipte a 2 hour transfer time (not including the extra delay) our bags failed to make the connection from Newcastle and didn&#8217;t travel with us.  That&#8217;s everybody who flew from Newcastle to Geneva, six in total; not one of us was joined by our bags on the flight.  The bags did eventually turn up on the next flight and were delivered to us after a 5 hour delay. The baggage company at Geneva were not surprised; it seems that bags are far more frequently delayed from T5 than <em>any</em> other airport in the developed world.</p>
<p>However, it only got worse on the way back.  First we were delayed in Geneva because there was no slot available at Heathrow.  Then, even when we were given a slot at Heathrow, when the plane arrived at the airport&#8217;s airspace we were delayed again.</p>
<p>Then the plane was parked away from the terminal as there were no stands available.  Normally buses await to take the passengers to the terminal.  Except there weren&#8217;t any.  For 30 minutes.   None of the ground staff seemed to have any sense of urgency.  The bus driver even seemed to wait with the bus full despite several panicked American passengers on short transfers &#8211; they didn&#8217;t stand a chance with T5.  But when we were finally delivered to the terminal the fun really began.  We didn&#8217;t get to the T5 shopping centre for another 30 minutes.</p>
<p>Queues seem to be the norm at T5.  Firstly, there was a ludicrous queue after getting to T5.  It transpired that at the head of this queue was a small woman asking people whether they were transferring to local or international flights.  She was <em>completely pointless</em> because the hall <em>immediately</em> behind her was full of signs directing you where to go if you were transferring to a local or international flight.  She had <em>no purpose whatsoever</em>.  Utterly unbelievable and the first 10 minutes of waiting.</p>
<p>Next we queued to have our boarding passes checked.  After that another queue to have our passports checked.  Finally, both the <em>local</em> and <em>international</em> passengers were shepherded to yet another security check.  Together.  Why we were split up into different queues is anybodies guess as both the national and international passengers had boarding card and passport checks.  The final security check is the one where you take your belt off, take your laptop out, etc.  This took another 15 to 20 minutes.  Why?  Why?  Because the staff were just <em>slow</em>.  Inept too, probably, but generally very, very slow at staring at the computer monitor that displays the innards of cases, jackets, purses and other assorted bags. Incredibly slow.  In Newcastle this queue usually takes about 5 minutes.  The queue for our machine was on 10 or so people long yet took nearly 20 minutes &#8230;  I dispaired.</p>
<p>All told from the moment of touching down to getting into T5 took over an hour; it would have been 30-40 minutes at best even if we had got to a stand.  What a disgraceful way of treating people arriving at supposedly the most advanced passenger terminal in the world.  I imagine the American passengers on short transfers missed their flights.  There bags almost certainly will have done.</p>
<p>However, once in T5 proper you understand that it isn&#8217;t for passengers to relax waiting for their flight.  No, it&#8217;s only purpose is to extract money; it&#8217;s simply a glorified shopping mall.  All we wanted to do was get some lunch and then find somewhere comfortable for our next flight.  Instead, there are precious few places to eat and virtually no where to actually sit.  Unless you have an executive lounge pass that is.  T5, which because of its size, should feel spacious, yet feels claustrophobic, cluttered, noisy and generally unpleasant.</p>
<p>Even when we boarded our flight to Newcastle the madness of Heathrow didn&#8217;t end.  We ended up staying a further hour at the stand and taxiing before we finally took off.  Because they are operating at full capacity.</p>
<p>That seems to be the problem.  There are simply too many passengers.  They don&#8217;t need another runway; they need less passengers.  The current &#8216;systems&#8217; at T5 don&#8217;t seem to be able to cope.  Most of the staff have a &#8216;learned helplessness&#8217; air around them.</p>
<p>Heathrow needs proper competition.  Maybe BAA needs to be broken up so that Gatwick and Stansted can offer real competition to Heathrow to force it to buck its ideas up and provide a proper service to its passengers.  The <a title="Wikipedia article" href="http://en.wikipedia.org/wiki/Security_theater">security theatre</a> is a joke; I don&#8217;t feel more secure, just that I&#8217;m having my time wasted.  We are paying customers; yet we pay to be treated like cattle.  I&#8217;m not sure why we put up with it.  Yet another reason for competition, but perhaps in a different way.  If there was an airport that didn&#8217;t treat you like cattle and actually treated you like paying customers then I would definitely fly through there, even if it was a bit more expensive.</p>
<p>BAA is bad for Heathrow and bad for British Airways.  The sooner it is broken up the better.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2009%2F08%2Ffun-with-baa%2F&amp;title=Fun%20with%20BAA" id="wpa2a_12"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/08/fun-with-baa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDC kicks off to a 2nd great day</title>
		<link>http://alex.kavanagh.name/2009/05/tdc-kicks-off-to-a-2nd-great-day/</link>
		<comments>http://alex.kavanagh.name/2009/05/tdc-kicks-off-to-a-2nd-great-day/#comments</comments>
		<pubDate>Fri, 15 May 2009 12:00:23 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[TDC]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=68</guid>
		<description><![CDATA[The Thinking Digital Conference kicked off to a great start on it&#8217;s second (and last) day.  The comedy of Tom Scott was a fabulous tonic to the rest of the first session which kicked off with an exploration od &#8220;Digital &#8230; <a href="http://alex.kavanagh.name/2009/05/tdc-kicks-off-to-a-2nd-great-day/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a title="TDC" href="http://www.thinkingdigital.co.uk/" target="_blank">Thinking Digital Conference</a> kicked off to a great start on it&#8217;s second (and last) day.  The comedy of <a title="Tom Scott - Geek Comedian" href="http://www.tomscott.com/" target="_blank">Tom Scott</a> was a fabulous tonic to the rest of the first session which kicked off with an exploration od &#8220;Digital Darwin&#8221;, climbed considerable heights with data visualisation through an Internet connected presentation by <a title="Data visualisation guru" href="http://www.gapminder.org/" target="_blank">Professor Hans Rosling</a>, had a little dip with a spotlight on segmenting the US population for the recent Presidential elections, and finished with the Tom.  Oh, and I almost forgot that there was a great digital piano solo that started the session by Rob Colling.</p>
<p><span id="more-68"></span></p>
<p>I also arrived for the GTi breakfast event at 7.30am which I felt was quite an achievement because I didn&#8217;t go to bed until 11.30 the night before which brings me back to the first day of TDC.</p>
<p>Day 1 was very good with only a couple of &#8216;blooper&#8217; presentations.  The highlights for me were:</p>
<p>Harry Drmec, Former CEO of Red Bull.  A drinks company CEO at a digital event?  Yes, and it worked very well.  The guy leaked of leadership and capability and this is of course reflected in his amazing work at Red Bull.  I particularly liked his story of how he stood up to Tesco and won.</p>
<p><a title="Beer Mat Entrepreneur" href="http://www.beermat.biz/mike_southon.php" target="_blank">Mike Southon</a>, who did an inspirational talk about entrepreneurship using the Beatles (as in the Group) as a metaphor or simile.  It was great and the use of music and old b/w photos of the Beatles helped hammer his points home.</p>
<p>Dan Lyons (a.k.a. Fake Steve Jobs) who, after a shaky start, pulled off an amusing and informative talk.</p>
<p>But the outstanding session for me on Day 1 was the final session entitled &#8220;Stop Making Sense&#8221;:</p>
<p><a title="Skeptic" href="http://en.wikipedia.org/wiki/Michael_Shermer" target="_blank">Dr Michael Shermer</a> took us on a tour of skeptism, gullableness, its biological and evolutionary roots and some techniques to combat the category errors that we all make when faced with the unknown.  Essentially, how to ensure that we address the unknown with &#8220;we don&#8217;t know&#8221; rather than attributing it to some supernatural entity or God.  Preaching to the converted for sure, but still a timely and funny reminder of how our biology and sensing systems can trick our brains into believing things that simply aren&#8217;t there.</p>
<p>Then, completely unexpectedly, <a title="Perfume critic, outstanding speaker" href="http://www.chandlerburr.com/" target="_blank">Chandler Burr</a>, a Perfume critic at the New York Times, gave an exhilerating tour of scent culminating in an exploration of the structure (and smells) of a boutique fragrance called &#8220;Silver Mark&#8221;.  A simply stunning perfume and a delightful speaker who is clearly massively enthusiastic about scents, the sense of smell, and the way in which they can be manipulated to produce emotional responses to, well, scent.  Who Knew, huh?</p>
<p>But the star of the show was an independent toy designer called Caleb Chung.  He designed the Furby which, we were told, sold 50 Billion.  That&#8217;s about 7 Furbys for every single person on the planet!  Who was buying those things.  More to the point, who bought my seven and probably your seven?</p>
<p>Mr Chung then went on to demonstrate his new toy which was the Pleo from Ugobe.  An amazing robotic toy which had real lifelike attributes &#8211; basically it is a very cute toy which evokes empathy.  Pleo is a learning robot and reacts to how you treat it &#8211; and it&#8217;s aimed at kids!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2009%2F05%2Ftdc-kicks-off-to-a-2nd-great-day%2F&amp;title=TDC%20kicks%20off%20to%20a%202nd%20great%20day" id="wpa2a_14"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/05/tdc-kicks-off-to-a-2nd-great-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extreme Window Cleaning at the Sage</title>
		<link>http://alex.kavanagh.name/2009/05/extreme-window-cleaning-at-the-sage/</link>
		<comments>http://alex.kavanagh.name/2009/05/extreme-window-cleaning-at-the-sage/#comments</comments>
		<pubDate>Thu, 14 May 2009 15:17:35 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=65</guid>
		<description><![CDATA[The picture says it all.  (Had a twitter failure, this was supposed to be a twitpic &#8230;)]]></description>
			<content:encoded><![CDATA[<p>The picture says it all.  (Had a twitter failure, this was supposed to be a twitpic &#8230;)</p>
<div id="attachment_66" class="wp-caption alignnone" style="width: 310px"><a href="http://alex.kavanagh.name/wp-content/uploads/2009/05/2009-05-14-111937.jpg"><img class="size-medium wp-image-66" title="Extreme Window Cleaning" src="http://alex.kavanagh.name/wp-content/uploads/2009/05/2009-05-14-111937-300x225.jpg" alt="making cleaning windows interesting?" width="300" height="225" /></a><p class="wp-caption-text">making cleaning windows interesting?</p></div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2009%2F05%2Fextreme-window-cleaning-at-the-sage%2F&amp;title=Extreme%20Window%20Cleaning%20at%20the%20Sage" id="wpa2a_16"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/05/extreme-window-cleaning-at-the-sage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Excel is too buggy to be used?</title>
		<link>http://alex.kavanagh.name/2009/03/excel-is-too-buggy-to-be-used/</link>
		<comments>http://alex.kavanagh.name/2009/03/excel-is-too-buggy-to-be-used/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 08:52:33 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=62</guid>
		<description><![CDATA[Interesting post by Rob Wier about year and date problems in Excel.  I&#8217;m using OpenOffice instead.  They&#8217;ve hopefully fixed the problem in Excel by now though?]]></description>
			<content:encoded><![CDATA[<p>Interesting post by <a href="http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html">Rob Wier</a> about year and date problems in Excel.  I&#8217;m using OpenOffice instead.  They&#8217;ve hopefully fixed the problem in Excel by now though?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2009%2F03%2Fexcel-is-too-buggy-to-be-used%2F&amp;title=Excel%20is%20too%20buggy%20to%20be%20used%3F" id="wpa2a_18"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/03/excel-is-too-buggy-to-be-used/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Losing Liferea</title>
		<link>http://alex.kavanagh.name/2009/03/losing-liferea/</link>
		<comments>http://alex.kavanagh.name/2009/03/losing-liferea/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 08:45:25 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=60</guid>
		<description><![CDATA[&#8230; has probably been the best thing that has happened to me on my desktop.  It started after an update on Intrepid 8.20 which broke Liferea and stopped it from running.  The effect has been to stop me reading endless &#8230; <a href="http://alex.kavanagh.name/2009/03/losing-liferea/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&#8230; has probably been the best thing that has happened to me on my desktop.  It started after an update on Intrepid 8.20 which broke Liferea and stopped it from running.  The effect has been to stop me reading endless amounts of crap and (along with my new Tracks interest) is helping me to focus on doing things that are important!  Expect to see a slightly higher output of blog posts amongst other things!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2009%2F03%2Flosing-liferea%2F&amp;title=Losing%20Liferea" id="wpa2a_20"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/03/losing-liferea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

