<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel>
    <title>Small Values of Cool</title>
    <link>http://www.brunningonline.net/simon/blog/</link>
    <description>Simon Brunning - stuff that I find interesting</description>
    <dc:language>en-us</dc:language>
    <dc:creator>simon.brunning+smallvaluescomment@gmail.com</dc:creator>
    <dc:rights>Copyright 2020</dc:rights>
    <dc:date>2008-10-08T13:18:28+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=2.661" />
    <admin:errorReportsTo rdf:resource="mailto:simon.brunning+smallvaluescomment@gmail.com"/>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>


    <item>
      <title>London Python meetup today</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002273.html</link>
      <description>It&apos;s the London Python meetup this evening. See you there!...</description>
      <guid isPermaLink="false">2273@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>It's the <a href="http://announce.londonpython.org.uk/2008/09/25/london-python-meetup-tuesday-october-the-8th/">London Python meetup</a> this evening. See you there!</p>]]></content:encoded>
      <dc:subject>Python</dc:subject>
      <dc:date>2008-10-08T13:18:28+00:00</dc:date>
    </item>

    <item>
      <title>Avatar</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002272.html</link>
      <description>At my new client site, everyone has an picture of themselves to stick up on the story wall to show whatbn we are working on. Here&apos;s mine: What do you...</description>
      <guid isPermaLink="false">2272@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>At my new client site, everyone has an picture of themselves to stick up on the story wall to show whatbn we are working on. Here's mine:</p>

<p><img alt="South Park Avatar.jpg" src="http://www.brunningonline.net/simon/blog/archives/South Park Avatar.jpg" width="383" height="383" border="0" /></p>

<p>What do you think?</p>]]></content:encoded>
      <dc:subject>Agile</dc:subject>
      <dc:date>2008-10-08T13:16:03+00:00</dc:date>
    </item>

    <item>
      <title>Photo Meme</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002271.html</link>
      <description>If I must. Instructions: Take a picture of yourself right now. Don&apos;t change your clothes, don&apos;t fix your hair - just take a picture. Post that picture with NO editing....</description>
      <guid isPermaLink="false">2271@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>If I must.</p>

<p><img src="http://www.brunningonline.net/simon/blog//Photo 340.jpg" alt="Photo 340.jpg" border="0" width="640" height="480" /></p>

<p>Instructions: Take a picture of yourself right now. Don't change your clothes, don't fix your hair - just take a picture. Post that picture with NO editing. Post these instructions with the picture.</p>

<p>Via <a href="http://jeremyhylton.blogspot.com/2008/09/photo-meme.html">Jeremy</a> and <a href="http://holdenweb.blogspot.com/2008/09/photo-meme.html">Steve H</a>. </p>]]></content:encoded>
      <dc:subject>Apropos of nothing</dc:subject>
      <dc:date>2008-09-22T12:21:34+00:00</dc:date>
    </item>

    <item>
      <title>Trickle Down Economics?</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002270.html</link>
      <description>It&apos;s trickling down now, all right....</description>
      <guid isPermaLink="false">2270@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p><a href="http://www.guardian.co.uk/business">It's trickling down now</a>, all right.</p>]]></content:encoded>
      <dc:subject>Rants</dc:subject>
      <dc:date>2008-09-16T12:07:46+00:00</dc:date>
    </item>

    <item>
      <title>Off to PyCon UK</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002269.html</link>
      <description>See you there. I might even see one or two people at my talk, if I&apos;m lucky. Though since I&apos;m clashing with Simon Willison, I don&apos;t expect many. BTW, we...</description>
      <guid isPermaLink="false">2269@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>See you <a href="http://www.pyconuk.org/">there</a>.</p>

<p>I might even see one or two people at <a href="http://www.pyconuk.org/talk_abstracts.html#5">my talk</a>, if I'm lucky. Though since I'm clashing with <a href="http://www.pyconuk.org/talk_abstracts.html#20">Simon Willison</a>, I don't expect many.</p>

<p>BTW, we still need more <a href="http://pyconuk.org/community/VolunteerHelp/SessionTeam#A2008Rota">session chairs</a>. Don't be shy!</p>]]></content:encoded>
      <dc:subject>Python</dc:subject>
      <dc:date>2008-09-12T16:58:43+00:00</dc:date>
    </item>

    <item>
      <title>Django 1.0</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002268.html</link>
      <description>Congratulations to everyone involved in getting Django 1.0 out of the door. Great job....</description>
      <guid isPermaLink="false">2268@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>Congratulations to everyone involved in getting <a href="http://docs.djangoproject.com/en/dev/releases/1.0/">Django 1.0</a> out of the door. Great job.</p>]]></content:encoded>
      <dc:subject>Django</dc:subject>
      <dc:date>2008-09-04T15:40:13+00:00</dc:date>
    </item>

    <item>
      <title>Apress eBooks</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002267.html</link>
      <description>Buy a book from Apress (such as the superb Definitive Guide to Django) and you can get the PDF version for a fiver, so you can keep a copy on...</description>
      <guid isPermaLink="false">2267@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>Buy a book from <a href="http://www.apress.com/">Apress</a> (such as the superb <a href="http://www.apress.com/book/view/9781590597255">Definitive Guide to Django</a>) and you can get the <a href="http://en.wikipedia.org/wiki/Pdf"><acronym name="Portable Document Format">PDF</acronym></a> version <a href="http://www.apress.com/promo/tendollars/">for a fiver</a>, so you can keep a copy on your laptop when you are on the road.</p>

<p>What a great idea. I don't want <em>only</em> the <a href="http://en.wikipedia.org/wiki/Pdf"><acronym name="Portable Document Format">PDF</acronym></a> - I much prefer to read the dead tree edition. But you can't carry dozens of chunky tech books around with you, so I want the <a href="http://en.wikipedia.org/wiki/Pdf"><acronym name="Portable Document Format">PDF</acronym></a> too. Clearly I shouldn't have to pay full whack twice, but the fiver that <a href="http://www.apress.com/">Apress</a> is asking seems fair.</p>

<p>I wish <a href="http://oreilly.com/">O'Reilly</a> did this.</p>]]></content:encoded>
      <dc:subject>Books and magazines</dc:subject>
      <dc:date>2008-09-04T15:29:55+00:00</dc:date>
    </item>

    <item>
      <title>My Work Here is Done</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002266.html</link>
      <description>I was just called over by Ken and Grant to help them with a problem that they were having with the unittest/Mox test suite that they were putting together, written...</description>
      <guid isPermaLink="false">2266@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>I was just called over by Ken and Grant to help them with a problem that they were having with the <a href="http://www.python.org/doc/2.5/lib/module-unittest.html">unittest</a>/<a href="http://code.google.com/p/pymox/">Mox</a> test suite that they were putting together, <a href="http://en.wikipedia.org/wiki/Test-driven_development">written ahead of the functional code</a>. I feel <strong>so</strong> proud.</p>]]></content:encoded>
      <dc:subject>Python</dc:subject>
      <dc:date>2008-09-04T15:15:32+00:00</dc:date>
    </item>

    <item>
      <title>Welcome, Simon!</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002265.html</link>
      <description>Welcome to the Guardian, Simon! I only wish I&apos;d still be there when you started, but I&apos;ll be gone by then. :-(...</description>
      <guid isPermaLink="false">2265@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p><a href="http://simonwillison.net/2008/Aug/22/employment/">Welcome to the Guardian, Simon</a>! I only wish I'd still be there when you started, but I'll be gone by then. :-(</p>]]></content:encoded>
      <dc:subject>Work</dc:subject>
      <dc:date>2008-08-22T18:03:49+00:00</dc:date>
    </item>

    <item>
      <title>London Python meetup, September the 2nd.</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002264.html</link>
      <description>Time for another London Python meetup, pre-PyCon UK 2008. PyCon UK 2008, at which I find myself the &quot;Session Chair Team Captain&quot;, God help them. Given how rubbish I am...</description>
      <guid isPermaLink="false">2264@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>Time for another <a href="http://announce.londonpython.org.uk/2008/08/19/pre-pycon-meetup-september-the-2nd/">London Python meetup</a>, pre-<a href="http://pyconuk.org/">PyCon UK 2008</a>.</p>

<p>PyCon UK 2008, at which I find myself the "<a href="http://pyconuk.org/community/VolunteerHelp/SessionTeam#A2008Team">Session Chair Team Captain</a>", God help them. Given how rubbish I am at organizing London Python, I do hope I can pick my game up a bit.</p>]]></content:encoded>
      <dc:subject>Python</dc:subject>
      <dc:date>2008-08-19T23:08:35+00:00</dc:date>
    </item>

    <item>
      <title>Epic Fail</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002263.html</link>
      <description>My Mac died again a month or so ago - another HDD failure. Not a problem, I thought - new disk, restore from Time Machine, sorted. Only my Time Machine...</description>
      <guid isPermaLink="false">2263@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>My Mac died again a month or so ago - another <acronym name="Hard disk drive">HDD</acronym> failure. Not a problem, I thought - new disk, restore from <a href="http://www.apple.com/macosx/features/timemachine.html">Time Machine</a>, sorted.</p>

<p>Only my Time Machine backup disk had been plugged in to my Mac when it died, which is at least as bad as pulling the plug without unmounting. The backup disk wouldn't mount. Dash it, I thought.</p>

<p>All in all, though, I'm surprised how little I lost:</p>

<ul><li>My music, all recovered from My iPod. Thank you <a href="http://www.fadingred.org/senuti/">Senuti</a>. It even recovered most of my metadata - play counts, star ratings, the sort of thing that only the painfully anal people like me care about. I'm <strong>very</strong> glad about this - re-ripping all my CDs would have taken <em>months</em>.</li>
<li>My contacts were in a <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> file on my iPod too.</li>
<li>My email is all on <a href="https://mail.google.com/">Gmail</a>.</li>
<li>My calendar, ditto, synched with iCal via <a href="http://www.busymac.com/">BusySync</a>.</li>
<li>My bookmarks are all in <a href="http://delicious.com/brunns">delicious</a>, accessed via <a href="https://addons.mozilla.org/en-US/firefox/addon/3615">Delicious Bookmarks</a>.</li>
<li>Most of my documents I managed to dredge out of email too.</li>
<li>Code. All in one Subversion repository or another, naturally.</li></ul>

<p>What <strong>did</strong> I lose?</p>

<ul><li>Some of my photos. It wasn't too bad - I have a backup from about six months ago, so most of them were there. I'd sent CDs to family with more recent stuff, so I could recvover those. But I know I lost some.</li>
<li>A few documents. Having said that I recovered most of my documents, I was missing a few things. Most notably, I have a couple of <a href="http://flyingmeat.com/voodoopad/">VoodooPad</a> documents that I keep loads of notes in, and I lost several month's worth of these. Bah.</li>
<li>An episode of Doctor Who or two, grabbed with <a href="http://po-ru.com/projects/iplayer-downloader/">iplayer-dl</a>. Ah well, they'll repeat them sooner or later.</li></ul>

<p>Lesson learned - <a href="http://www.apple.com/macosx/features/timemachine.html">Time Machine</a> is great for convenience, but don't trust it as your only backup mechanism. If it wasn't for those <a href="http://en.wikipedia.org/wiki/DVD-R">DVD-R</a> backups I'd taken a few months back, i'd have lost <strong>far</strong> more than I have.</p>]]></content:encoded>
      <dc:subject>Mac</dc:subject>
      <dc:date>2008-08-19T21:59:16+00:00</dc:date>
    </item>

    <item>
      <title>Python Mock Frameworks</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002262.html</link>
      <description>Given that I&apos;m speaking on Python mocking shortly, I thought I&apos;d better dig through my accumulated bookmarks and see what I&apos;m missing. PyMock is what I&apos;ve been using up till...</description>
      <guid isPermaLink="false">2262@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>Given that <a href="http://www.pyconuk.org/talk_abstracts.html#5">I'm speaking</a> on Python <a href="http://c2.com/cgi/wiki?MockObject">mocking</a> shortly, I thought I'd better dig through my <a href="http://delicious.com/brunns/python+mock">accumulated bookmarks</a> and see what I'm missing.</p>

<p><a href="http://theblobshop.com/pymock/">PyMock</a> is what I've been using up till now. It's heavily inspired by <a href="http://www.easymock.org/">EasyMock</a>, a mocking style I'm used to. It's pretty good, really. The docs really could be better, and the failure messages are not very helpful, but it does the job. </p>

<p>But then I found <a href="http://code.google.com/p/pymox/">Mox</a>. Superficially, it's very similar to PyMock. It's also based on EasyMock. But wherever Mox does differ from PyMock, it's better.</p>

<p>It's <a href="http://code.google.com/p/pymox/wiki/MoxDocumentation">much better documented</a> than PyDoc, and has more meaningful, helpful failure messages. I <em>think</em> it's has more functionality, too, with some nice <a href="http://code.google.com/p/pymox/wiki/MoxDocumentation#Comparators">comparators</a>, <a href="http://code.google.com/p/pymox/wiki/MoxDocumentation#Side_Effects">side effects</a> and <a href="http://code.google.com/p/pymox/wiki/MoxDocumentation#Callbacks">callbacks</a>. <a href="http://code.google.com/p/pymox/wiki/MoxDocumentation#Mock_a_module"><code>StubOutWithMock()</code></a> is nice too. But it's possible that PyMock has all of this - given the documentation, it's hard to tell.</p>

<p>Mox will warn you if you call a method on a mock that the mocked class doesn't have, which is handy. It can get confused if your mocked class uses delegation, but you can always fall back to <a href="http://code.google.com/p/pymox/wiki/MoxDocumentation#MockAnything"><code>MockAnything()</code></a>. The <a href="http://groups.google.com/group/mox-discuss">mailing list</a> is small but helpful.</p>

<p>On the downside, <a href="http://pypi.python.org/pypi?%3Aaction=search&term=mock">Mox isn't in PyPI</a>, which is a shame. And they missed a trick not calling the documentation MoxDox. ;-)</p>

<p>There are <a href="http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy#MockTestingTools">many other Python mocking packages</a> out there, too - notably <a href="http://pmock.sourceforge.net/">pMock</a>, a jMock style mocking library, <a href="http://www.voidspace.org.uk/python/mock.html">Mock</a> and <a href="http://blog.ianbicking.org/minimock.html">minimock</a>, a mocking library for the <a href="http://docs.python.org/lib/module-doctest.html">doctest</a> unit test library.</p>

<p>In early development there's <a href="http://code.google.com/p/mockito/wiki/MockitoForPython">Mockito For Python</a>, a port of <a href="http://code.google.com/p/mockito/">Mockito</a>, which will be worth keeping an eye on if <a href="http://monkeyisland.pl/">Szczepan</a> ever gets the hang of Python. ;-)</p>]]></content:encoded>
      <dc:subject>Python</dc:subject>
      <dc:date>2008-08-19T20:59:05+00:00</dc:date>
    </item>

    <item>
      <title>Goodhart&apos;s law</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002261.html</link>
      <description>Via &quot;Let&apos;s set a new standard&quot; I discovered Goodhart&apos;s law. I&apos;ve long been arguing, err, OK, ranting that the setting of targets in an organization is usually counter-productive, because people...</description>
      <guid isPermaLink="false">2261@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p>Via "<a href="http://www.guardian.co.uk/commentisfree/2008/aug/13/sats.reform">Let's set a new standard</a>" I discovered <a href="">Goodhart's law</a>. I've long been arguing, err, OK, ranting that the setting of targets in an organization is usually counter-productive, because people will very soon learn to game the system, meeting the targets without actually doing what the organization is supposed to be doing. Think <a href="http://www.guardian.co.uk/education/sats">SAT</a>s, <a href="http://www.guardian.co.uk/society/2002/jun/26/NHS">hospital waiting lists</a>, <a href="http://news.bbc.co.uk/1/hi/uk/7562477.stm">arrest figures</a>, the list goes on.</p>

<p>It's nice to know that the effect has a name.</p>

<p><a href="http://engineeringandcareering.blogspot.com/">Dan Abel</a> had a similar discovery recently, when he stumbled on the term <a href="http://en.wikipedia.org/wiki/Moral_hazard">Moral Hazard</a>, an effect <a href="http://engineeringandcareering.blogspot.com/2008/08/moral-hazard-is-your-team-insulated.html">he'd noticed before</a>.</p>

<p><br />
</p>]]></content:encoded>
      <dc:subject>The Big Room</dc:subject>
      <dc:date>2008-08-14T14:02:12+00:00</dc:date>
    </item>

    <item>
      <title>Also Scary</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002260.html</link>
      <description>My PyCon UK talk hass been accepted. It&apos;s even considered notable!. ;-)...</description>
      <guid isPermaLink="false">2260@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p><a href="http://www.pyconuk.org/talk_abstracts.html#1002">My PyCon UK talk</a> hass been accepted. It's even considered <a href="http://www.voidspace.org.uk/python/weblog/arch_d7_2008_07_26.shtml#e996">notable</a>!. ;-)</p>]]></content:encoded>
      <dc:subject>Python</dc:subject>
      <dc:date>2008-07-30T10:38:29+00:00</dc:date>
    </item>

    <item>
      <title>Pissed as a Newt?</title>
      <link>http://www.brunningonline.net/simon/blog/archives/002259.html</link>
      <description>Pissed as a newt - look who&apos;s number three!...</description>
      <guid isPermaLink="false">2259@http://www.brunningonline.net/simon/blog/</guid>
      <content:encoded><![CDATA[<p><a href="http://images.google.com/images?q=as+pissed+as+a+newt">Pissed as a newt</a> - look who's <a href="http://www.iksha.co.uk/">number three</a>! </p>]]></content:encoded>
      <dc:subject>Funny</dc:subject>
      <dc:date>2008-07-30T10:34:42+00:00</dc:date>
    </item>


  </channel>
</rss>
