<?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>Thom Lawrence</title>
	<atom:link href="http://thom.org.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://thom.org.uk</link>
	<description>Agile, Mobile, Puerile</description>
	<lastBuildDate>Thu, 26 Jul 2012 19:38:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Magic Online M13 Prerelease</title>
		<link>http://thom.org.uk/2012/07/26/magic-online-m13-prerelease/</link>
		<comments>http://thom.org.uk/2012/07/26/magic-online-m13-prerelease/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 19:38:45 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Magic: the Gathering]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=483</guid>
		<description><![CDATA[Opened somewhat well. Note the cheeky Thragtusk in the board. This is one time during a prerelease where I wondered if it was more profitable to drop immediately, before prices go down, but I&#8217;m playing it out&#8230;]]></description>
			<content:encoded><![CDATA[<p>Opened somewhat well. Note the cheeky Thragtusk in the board. This is one time during a prerelease where I wondered if it was more profitable to drop immediately, before prices go down, but I&#8217;m playing it out&#8230;</p>
<table class="mtg_deck mtg_deck_" cellspacing="0" cellpadding="0" style="width:510px;font-size:100%;line-height:140%"><tr><td><span style="font-weight:bold">Main Deck (40)</span><br />1&nbsp;<a href="http://deckbox.org/mtg/Ring of Evos Isle">Ring of Evos Isle</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Welkin Tern">Welkin Tern</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Rewind">Rewind</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Encrust">Encrust</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Mind Rot">Mind Rot</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Crippling Blight">Crippling Blight</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Public Execution">Public Execution</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Essence Scatter">Essence Scatter</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Mutilate">Mutilate</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Jace, Memory Adept">Jace, Memory Adept</a><br />9&nbsp;<a href="http://deckbox.org/mtg/Island">Island</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Liliana of the Dark Realms">Liliana of the Dark Realms</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Tricks of the Trade">Tricks of the Trade</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Diabolic Revelation">Diabolic Revelation</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Rise from the Grave">Rise from the Grave</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Sleep">Sleep</a><br />8&nbsp;<a href="http://deckbox.org/mtg/Swamp">Swamp</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Bloodhunter Bat">Bloodhunter Bat</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Servant of Nefarox">Servant of Nefarox</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Archaeomancer">Archaeomancer</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Unsummon">Unsummon</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Harbor Bandit">Harbor Bandit</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Primal Clay">Primal Clay</a><br /></td><td><span style="font-weight:bold">Sideboard (67)</span><br />2&nbsp;<a href="http://deckbox.org/mtg/Clock of Omens">Clock of Omens</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Arbor Elf">Arbor Elf</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Firewing Phoenix">Firewing Phoenix</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Mwonvuli Beast Tracker">Mwonvuli Beast Tracker</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Rancor">Rancor</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Pillarfield Ox">Pillarfield Ox</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Thragtusk">Thragtusk</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Negate">Negate</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Naturalize">Naturalize</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Naturalize">Naturalize</a><br />3&nbsp;<a href="http://deckbox.org/mtg/Vastwood Gorger">Vastwood Gorger</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Prey Upon">Prey Upon</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Mind Rot">Mind Rot</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Flames of the Firebrand">Flames of the Firebrand</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Mountain">Mountain</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Mindclaw Shaman">Mindclaw Shaman</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Duress">Duress</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Island">Island</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Glorious Charge">Glorious Charge</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Craterize">Craterize</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Silvercoat Lion">Silvercoat Lion</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Forest">Forest</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Mind Sculpt">Mind Sculpt</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Goblin Battle Jester">Goblin Battle Jester</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Ajani&#8217;s Sunstriker">Ajani&#8217;s Sunstriker</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Torch Fiend">Torch Fiend</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Chandra&#8217;s Fury">Chandra&#8217;s Fury</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Reckless Brute">Reckless Brute</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Disentomb">Disentomb</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Rummaging Goblin">Rummaging Goblin</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Dragon Hatchling">Dragon Hatchling</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Plains">Plains</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Spiked Baloth">Spiked Baloth</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Turn to Slag">Turn to Slag</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Reckless Brute">Reckless Brute</a><br />1&nbsp;<a href="http://deckbox.org/mtg/War Priest of Thune">War Priest of Thune</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Downpour">Downpour</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Volcanic Strength">Volcanic Strength</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Swamp">Swamp</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Erase">Erase</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Guardian Lions">Guardian Lions</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Crimson Muckwader">Crimson Muckwader</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Captain&#8217;s Call">Captain&#8217;s Call</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Canyon Minotaur">Canyon Minotaur</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Aven Squire">Aven Squire</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Rain of Blades">Rain of Blades</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Fog">Fog</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Trading Post">Trading Post</a><br />3&nbsp;<a href="http://deckbox.org/mtg/Vile Rebirth">Vile Rebirth</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Ring of Valkas">Ring of Valkas</a><br /></td></tr></table>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2012/07/26/magic-online-m13-prerelease/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Midnight Gond</title>
		<link>http://thom.org.uk/2012/05/02/midnight-gond/</link>
		<comments>http://thom.org.uk/2012/05/02/midnight-gond/#comments</comments>
		<pubDate>Wed, 02 May 2012 00:26:18 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Magic: the Gathering]]></category>
		<category><![CDATA[magic]]></category>
		<category><![CDATA[mtgo]]></category>
		<category><![CDATA[pauper]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=473</guid>
		<description><![CDATA[I&#8217;ve been trying out some Pauper on Magic Online between draft rounds, and mostly sucking. It&#8217;s a format where you absolutely have to be doing something unfair with your deck to be in with a chance, even if it&#8217;s a &#8230; <a href="http://thom.org.uk/2012/05/02/midnight-gond/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying out some Pauper on Magic Online between draft rounds, and mostly sucking. It&#8217;s a format where you absolutely have to be doing something unfair with your deck to be in with a chance, even if it&#8217;s a <a href="http://gatherer.wizards.com/pages/Card/Details.aspx?multiverseid=226749">3/2 flyer</a> on turn 1. I&#8217;ve also not met a huge variety of decks &#8211; the vast majority of players are on Mono-Blue, and there are spatterings of Mono-Black disruption, Storm, Mono-Green Cloudpost, UR Cloudpost, some graveyard decks and some aggro. Okay, so it <em>sounds</em> pretty varied now I write it down, clearly I&#8217;m lying.</p>
<p>Most of my first attempts were <a class="deckbox_link" href="http://deckbox.org/mtg/Cloudpost">Cloudpost</a> and Urzatron variants. I tried a UW version that landed <a class="deckbox_link" href="http://deckbox.org/mtg/Rhystic Circle">Rhystic Circle</a> to prevent all damage ever, in the vague hope that an <a class="deckbox_link" href="http://deckbox.org/mtg/Ulamog&#8217;s Crusher">Ulamog&#8217;s Crusher</a> would later win the game (hint: it didn&#8217;t), and experimented with UB to see if the extra mana made Mystical Teachings at all useful (hint: there&#8217;s nothing worth teachings for in the format). I then tried a deck I dubbed MEGATRON, which had the full set of Urza lands <em>and</em> all 8 loci, hoping there was something to do with all that mana (hint: see previous hints). So, many casual games later, very little fun had.</p>
<p>However, trawling through Pauper-legal card listings, today I discovered a card I hadn&#8217;t yet seen anyone playing, or even heard of: <a class="deckbox_link" href="http://deckbox.org/mtg/Presence of Gond">Presence of Gond</a>. I originally thought this would combo with <a class="deckbox_link" href="http://deckbox.org/mtg/Nettle Sentinel">Nettle Sentinel</a>, but obviously that doesn&#8217;t work, at which point I turned to Innistrad limited stalwart <a class="deckbox_link" href="http://deckbox.org/mtg/Midnight Guard">Midnight Guard</a>. Looking for unfair things to do? Infinite creatures on Turn 3 ought to work:</p>
<table class="mtg_deck mtg_deck_" cellspacing="0" cellpadding="0" style="width:510px;font-size:100%;line-height:140%"><tr><td><span style="font-weight:bold">Midnight Gond (60)</span><br />4&nbsp;<a href="http://deckbox.org/mtg/Preordain">Preordain</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Ponder">Ponder</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Avacyn&#8217;s Pilgrim">Avacyn&#8217;s Pilgrim</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Quirion Elves">Quirion Elves</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Presence of Gond">Presence of Gond</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Midnight Guard">Midnight Guard</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Drift of Phantasms">Drift of Phantasms</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Totem-Guide Hartebeest">Totem-Guide Hartebeest</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Faith&#8217;s Fetters">Faith&#8217;s Fetters</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Guard Duty">Guard Duty</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Shielding Plax">Shielding Plax</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Spell Pierce">Spell Pierce</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Evolving Wilds">Evolving Wilds</a><br />8&nbsp;<a href="http://deckbox.org/mtg/Island">Island</a><br />7&nbsp;<a href="http://deckbox.org/mtg/Forest">Forest</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Plains">Plains</a><br /></td><td><span style="font-weight:bold">Sideboard (15)</span><br />1&nbsp;<a href="http://deckbox.org/mtg/Faith&#8217;s Fetters">Faith&#8217;s Fetters</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Guard Duty">Guard Duty</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Dispel">Dispel</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Ranger&#8217;s Guile">Ranger&#8217;s Guile</a><br />4&nbsp;<a href="http://deckbox.org/mtg/Turn Aside">Turn Aside</a><br /></td></tr></table>
<p>Plenty of library manipulation, and after boarding surprisingly resilient against counters and instant removal. You even get to have a nice <a class="deckbox_link" href="http://deckbox.org/mtg/Totem-Guide Hartebeest">Totem-Guide Hartebeest</a> package as a side-effect of wanting to tutor up Gond&#8217;s presence, whom the flavour text reliably informs me is dead. But at least we know his grave is well guarded at night, I guess.</p>
<p>You can probably come up with a better counter package if you have the cards, and the mana could do with some work, but it actually works. One thing I&#8217;d quite like to incorporate is <a class="deckbox_link" href="http://deckbox.org/mtg/Sigil of the Nayan Gods">Sigil of the Nayan Gods</a>, which would in some cases make you a turn faster as you could just attack with an infinitely large guard.</p>
<p>At the very least, this deck has allowed me to upgrade from the Casual Play room to the Tournament Practice room, and that&#8217;s great for my ego.</p>
<p><strong>Update:</strong> yeah, so everyone&#8217;s had this idea, apparently. SO MUCH FOR BEING EXCITED ABOUT MY SHINY NEW DECK. THANKS, INTERNET.</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2012/05/02/midnight-gond/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>M12 Pre-release</title>
		<link>http://thom.org.uk/2011/07/28/m12-pre-release/</link>
		<comments>http://thom.org.uk/2011/07/28/m12-pre-release/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 18:34:29 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Magic: the Gathering]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=453</guid>
		<description><![CDATA[Having helped out on the beta, it&#8217;s great to see M12 pre-releases finally underway on MTGO. In my first queue, I&#8217;m piloting this RW aggro deck, which seems pretty representative of the format: I&#8217;m not saying it&#8217;s good, or even &#8230; <a href="http://thom.org.uk/2011/07/28/m12-pre-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having helped out on the beta, it&#8217;s great to see M12 pre-releases finally underway on MTGO. In my first queue, I&#8217;m piloting this RW aggro deck, which seems pretty representative of the format:</p>
<table class="mtg_deck mtg_deck_" cellspacing="0" cellpadding="0" style="width:510px;font-size:100%;line-height:140%"><tr><td><span style="font-weight:bold">Creatures (14)</span><br />2&nbsp;<a href="http://deckbox.org/mtg/Armored Warhorse">Armored Warhorse</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Goblin Fireslinger">Goblin Fireslinger</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Arbalest Elite">Arbalest Elite</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Goblin Bangchuckers">Goblin Bangchuckers</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Fiery Hellhound">Fiery Hellhound</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Crimson Mage">Crimson Mage</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Stormblood Berserker">Stormblood Berserker</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Blood Ogre">Blood Ogre</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Gorehorn Minotaurs">Gorehorn Minotaurs</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Peregrine Griffin">Peregrine Griffin</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Goblin Tunneler">Goblin Tunneler</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Gideon&#8217;s Lawkeeper">Gideon&#8217;s Lawkeeper</a><br /><br /><span style="font-weight:bold">Other Spells (9)</span><br />1&nbsp;<a href="http://deckbox.org/mtg/Scepter of Empires">Scepter of Empires</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Spirit Mantle">Spirit Mantle</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Pacifism">Pacifism</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Slaughter Cry">Slaughter Cry</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Tectonic Rift">Tectonic Rift</a><br />2&nbsp;<a href="http://deckbox.org/mtg/Chandra&#8217;s Outrage">Chandra&#8217;s Outrage</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Incinerate">Incinerate</a><br />1&nbsp;<a href="http://deckbox.org/mtg/Gideon Jura">Gideon Jura</a><br /><br /><span style="font-weight:bold">Lands (17)</span><br />8&nbsp;<a href="http://deckbox.org/mtg/Plains">Plains</a><br />9&nbsp;<a href="http://deckbox.org/mtg/Mountain">Mountain</a><br /></td></tr></table>
<p>I&#8217;m not saying it&#8217;s good, or even interesting, but this blog has a Magic: the Gathering plugin, and I want to see it used.</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2011/07/28/m12-pre-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time to stand up for Murdoch</title>
		<link>http://thom.org.uk/2011/07/07/time-to-stand-up-for-murdoch/</link>
		<comments>http://thom.org.uk/2011/07/07/time-to-stand-up-for-murdoch/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 22:38:24 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=442</guid>
		<description><![CDATA[I don&#8217;t usually go for all this campaigning stuff, but I got a bit swept up in the phone hacking hysteria. From: Speak Out Date: 7 July 2011 23:27:53 GMT+01:00 To: thom@thom.org.uk Subject: Speak Out: Thanks for emailing your MP &#8230; <a href="http://thom.org.uk/2011/07/07/time-to-stand-up-for-murdoch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t usually go for all this campaigning stuff, but I got a bit swept up in the phone hacking hysteria.</p>
<blockquote><p>From: Speak Out<br />
Date: 7 July 2011 23:27:53 GMT+01:00<br />
To: thom@thom.org.uk<br />
Subject: Speak Out: Thanks for emailing your MP about Murdoch&#8217;s media takeover</p>
<p>Thank you! You’ve just sent your an e-mail telling your MP to speak out against the Murdoch media takeover.<br />
The more of us that contact our MPs, the more likely we are to win.<br />
Please let your friends and family know about the campaign so they can add their support. There’s an email below you could forward if you like.<br />
Thank you,  38 Degrees —-<br />
Hi,<br />
Have a look at this:  http://www.38degrees.org.uk/Murdoch-MP<br />
I’ve just e-mailed my MP telling them it’s time to stand up to Rupert Murdoch. For too long, our MPs have been spineless and allowed him to get more and more power. These latest phone hacking revelations prove that we just can’t afford to let that go on.<br />
The more of us that e-mail our MPs, the more chance we have finally of turning the tide. Can you e-mail your MP to tell them to stand up to Murdoch and do all they can to clean up the British media? It only takes a couple of minutes.</p>
<p>http://www.38degrees.org.uk/Murdoch-MP</p>
<p>From<br />
Thom Lawrence<br />
To<br />
Nick Clegg MP<br />
Subject<br />
Time to stand up for Murdoch<br />
Message<br />
Like so many people, I&#8217;m appalled at the behaviour of the people on Twitter. It&#8217;s time to clean up the way social media works in the UK. That means politicians like you need to stand up for Murdoch. I know he&#8217;s old and lonely, but he&#8217;s preserving our media and our democracy.</p>
<p>Please stand up with Murdoch and do all you can to:<br />
- Push through the BSkyB deal<br />
- Ensure a public inquiry into hacking is prevented<br />
- Ask Ofcom to declare that Murdoch is a &#8220;fit and proper&#8221; media owner.</p>
<p>Do you agree with these three points?</p></blockquote>
<p>Update: I have since received a reply from Nick Clegg, though I am very disappointed that he apparently hasn&#8217;t even read the contents of my email:</p>
<blockquote><p>Dear Constituent</p>
<p>&nbsp;</p>
<p>Thank you for your recent correspondence concerning the News of the World phone hacking scandal.</p>
<p>&nbsp;</p>
<p>I know that, like me, you have been shocked and appalled by the allegations of widespread phone hacking by the News of the World. The outrageous practices used by some of the News of the World reporters are beneath contempt.</p>
<p>&nbsp;</p>
<p>So, what can we do and what have we already done to make sure that a situation like this never happens again?</p>
<p>&nbsp;</p>
<p>First and foremost, a judge-led inquiry has now been established with extensive powers to investigate both illegal wrongdoing and to make recommendations on how the media is regulated and how politicians, the press and the police interact. This is something I was adamant should happen, and I’m pleased myself, the Prime Minister and the Leader of the Opposition were able to agree a way forward.</p>
<p>&nbsp;</p>
<p>As a Liberal, I believe it is vitally important that we do have a free press and that it can effectively hold people, including politicians, to account. However, recent revelations go to show that effective regulation of the press is also needed to ensure that when stories are reported, the methods they use to obtain their information is ethical.</p>
<p>&nbsp;</p>
<p>Allegations of phone hacking at the News of the World have been bubbling under the surface for a while and it is a great shame that the Press Complaints Commission (PCC) &#8211; whose remit was to investigate such matters &#8211; failed to reveal the true extent of systemic abuses of power that were being used by some reporters at the News of the World.</p>
<p>&nbsp;</p>
<p>The PCC has shown itself, in my eyes, to be ineffectual and I have made it clear that the PCC needs to be scrapped – in fact the Liberal Democrats called for this at our party conference in August of last year. The PCC suffers from a conflict of interest, in that its membership is partly comprised of newspaper editors.</p>
<p>&nbsp;</p>
<p>What we need is a truly independent complaints body that is strong in tackling complaints against the press, as clearly no newspaper should be able to act with impunity, as the News of the World did.</p>
<p>&nbsp;</p>
<p>On Monday last week, I asked News Corporation and Rupert Murdoch to reconsider their bid to take full control of BSkyB. I am pleased that subsequently this has happened, not least in view of the cross party vote against the bid in Parliament last Wednesday.</p>
<p>&nbsp;</p>
<p>I believe that a diverse press gives us healthy competition which in turn leads to improved, more inclusive debate – something that any democracy should seek to harness.</p>
<p>&nbsp;</p>
<p>That is why I announced in a speech today on the ‘freedom, accountability and plurality of the media’, that we should also look at the way rules on plurality operate. One idea we are investigating is whether plurality tests can be applied at any time to media operators, not just when a specific commercial transaction is being considered.</p>
<p>&nbsp;</p>
<p>If you would like to read the above mentioned speech and see in full how I believe we can learn from our mistakes, may I suggest that you visit the following website, using the link below:</p>
<p>&nbsp;</p>
<p><a href="http://www.dpm.cabinetoffice.gov.uk/news/speech-freedom-accountability-and-plurality-media">http://www.dpm.cabinetoffice.gov.uk/news/speech-freedom-accountability-and-plurality-media</a></p>
<p>&nbsp;</p>
<p>Having met with the family of murdered schoolgirl, Milly Dowler, whose phone calls are alleged to have been hacked, I am all too aware of the personal hurt and pain that this scandal has caused.</p>
<p>&nbsp;</p>
<p>However, I do hope that I have been able to demonstrate to you, that since these revelations of phone hacking began to unfold, I have actively sought to clean up this mess and bring in measures aimed at ensuring it never happens again.</p>
<p>&nbsp;</p>
<p>I would like to take this opportunity to thank you for contacting me on such an important matter and for sharing your views.</p>
<p>&nbsp;</p>
<p>Yours sincerely</p>
<p>&nbsp;</p>
<p>Nick Clegg MP</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2011/07/07/time-to-stand-up-for-murdoch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diary of a schwag hag</title>
		<link>http://thom.org.uk/2009/10/31/diary-of-a-schwag-hag/</link>
		<comments>http://thom.org.uk/2009/10/31/diary-of-a-schwag-hag/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 16:51:59 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[devdays]]></category>
		<category><![CDATA[stackoverflow]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=405</guid>
		<description><![CDATA[I managed to accumulate two main things at StackOverflow DevDays Cambridge yesterday: An almighty hangover, courtesy of Red Gate&#8216;s endless supply of free booze in the evening. A huge bag of quality schwag garnered from various corners of the conference, &#8230; <a href="http://thom.org.uk/2009/10/31/diary-of-a-schwag-hag/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I managed to accumulate two main things at <a href="http://stackoverflow.carsonified.com/events/cambridge/">StackOverflow DevDays Cambridge</a> yesterday:</p>
<ol>
<li>An almighty hangover, courtesy of <a href="http://www.red-gate.com/">Red Gate</a>&#8216;s endless supply of free booze in the evening.</li>
<li>A huge bag of quality schwag garnered from various corners of the conference, including a free copy of the <a href="http://www.projectaardvark.com/movie/">Aardvark&#8217;d</a> DVD, some fish toys that Red Gate had brought for some reason and various stickers and stationery etc.</li>
</ol>
<p>And inbetween hunting and gathering, <a href="http://carsonified.com/">Carsonified</a> put on a conference. Talking of which:</p>
<h3>Joel Spolsky &#8211; Opening Keynote</h3>
<p>So I only saw half of this, because even though I had left the house at 5:10am, I didn&#8217;t get to Cambridge until 9:10am. For the record: TweetDeck and Byline had my iPhone battery at 50% before even stepping off the train. Despite arriving late, I had no worries, because the pieces of Joel&#8217;s keynote that I missed seemed just to be what was on <a href="http://blog.stackoverflow.com/2009/10/podcast-71/">the last StackOverflow podcast</a>. What I did catch, however, was typical Joel stuff. He was riffing on JWZ&#8217;s <a href="http://www.jwz.org/doc/groupware.html">&#8220;How will this software get my users laid&#8221;</a> and managed fairly well to mix threads of low-grade erotic fiction and software usability into a quality rant. Good stuff, although I couldn&#8217;t stop picturing how much Joel would look like <a href="http://images.google.co.uk/images?hl=en&amp;q=stanley+tucci">Stanley Tucci</a> if he had less hair. I don&#8217;t know if that affected anyone else&#8217;s enjoyment of the talk. Probably not.</p>
<h3>Ryan Carson &#8211; Carsonified</h3>
<p>While <a href="http://carsonified.com/blog/author/ryan-carson/">Ryan</a> wasn&#8217;t a speaker at the conference, we got to see plenty of him, and he entertained with his now trademark &#8220;three minutes left&#8221;, &#8220;two minutes left&#8221; and incessant polling. Nah, just kidding, Ryan&#8217;s alright.</p>
<h3>Christian Heilmann &#8211; Yahoo! Developer Tools</h3>
<p>This was a pretty good, made all the more enjoyable because hearing a big ginger German guy swearing is good, clean fun. <a href="http://icant.co.uk/">Christian</a>&#8216;s was one of the talks I was looking forward to, having heard the buzz about <a href="http://developer.yahoo.com/yql/">YQL</a> from attendees of the previous <a href="http://stackoverflow.carsonified.com/events/london">London event</a>. As you&#8217;ll read from everyone else&#8217;s write-up, Yahoo have wrapped dozens of data sources of their own, and made it possible for others to expose theirs, allowing queries in an SQL-like syntax over HTTP. You can imagine the rest, but here are some specifics from the talk and a brief chat afterwards that might not have been mentioned elsewhere:</p>
<ul>
<li>It&#8217;s throttled to 10,000 requests an hour, 100,000 a day.</li>
<li>It runs on <a href="http://hadoop.apache.org/">Hadoop</a> over 50 machines at Yahoo, although Christian&#8217;s not on the team and wasn&#8217;t sure of the exact architecture (he mentioned pixies though).</li>
<li>They intend to offer a version that you can host yourself on Google App Engine.</li>
<li>He regretted not mentioning in the talk that you can write <a href="http://developer.yahoo.com/yql/guide/yql-execute-chapter.html">transformations for YQL results in JavaScript</a>. This uses Rhino, presumably running in the above-mentioned Hadoop cluster.</li>
</ul>
<p>The other thrust of his talk was about writing apps/widgets for the Yahoo home page. Yahoo have made their stuff <a href="http://code.google.com/p/google-caja/">Caja compliant</a> to allow sandboxing of client-side apps, and while only large partners are able to publish their widgets, soon anyone will be able to offer useless crap to put on their Yahoo home page (and reach the 330 million users thereof). Good opportunity when it happens, although if you planned on monetizing your app somehow, it sounds like you&#8217;ll suffer the same problems getting noticed as you would on the iPhone app store &#8211; there&#8217;ll be featured apps and categories, but I think it&#8217;ll just end up as a sea of under-appreciated apps drowning each other out. I can&#8217;t help but think the Facebook model of apps spreading virally is the way to go here &#8211; you install an app because someone has attacked you with some sort of flying monkey, and when you click to fling a monkey back, you install the app as a side-effect. You never knew you wanted the app &#8211; you&#8217;re hooked in before you knew it existed. That said, Facebook apps are all shite and I don&#8217;t use them, but I don&#8217;t use Yahoo either so I guess I&#8217;m not the target market.</p>
<p>Like most Facebook apps, you&#8217;ll need your own server to serve up the content of your app, and while I asked if there were any plans to offer hosting for pure HTML/JavaScript apps (perhaps targeting just YQL data), Christian said they didn&#8217;t want people to have to rely on them to keep their stuff alive, which perhaps in the light of GeoCities&#8217; retirement is fair enough.</p>
<h3>Frank Stajano</h3>
<p><a href="http://www.cl.cam.ac.uk/~fms27/">Frank</a>&#8216;s a security researcher at Cambridge, and presented his <a href="http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-754.pdf">seven principles for systems security</a>. These principles are basically seven easy exploits in human psychology, upon which all sorts of scams, both online and off, are based. The majority of the talk was just extracts from <a href="http://www.bbc.co.uk/programmes/b006m8mf">The Real Hustle</a> which he says is required viewing for his PhD students, but he didn&#8217;t really make a big enough leap from there to how this affected computer systems day to day. A few of us chatted to him afterwards at lunch asking about what&#8217;s to be done to remedy some of the problems, especially as he mentioned that often we compound the issues by teaching bad behaviour &#8211; online banking sites on weird, random URLs for example. Unfortunately, his research seems purely related to uncovering the exploits, he could only offer the guidance that we just take the inverse of his seven principles. So, our vulnerability to &#8216;deception&#8217; being one of them, we&#8230; er&#8230; don&#8217;t lie to our users. I&#8217;m not sure if that&#8217;s what he meant. Anyway, I also asked him what he thought of things like <a href="http://openid.net/">OpenID</a> and <a href="http://en.wikipedia.org/wiki/3-D_Secure">3D Secure</a> because I think these are two hugely flawed systems that for many users just teach the behaviour that if you see the right logo, you type what&#8217;s asked of you. His reponse to that is that if we&#8217;re going to use those systems in our apps, we should be the ones that take responsibility for our users or their data being exploited. Which is funny, because the removal of that burden is pretty much exactly why 3D Secure exists.</p>
<p>All in all, some very interesting content from the theoretical standpoint, and certainly some useful stuff if you are into <a href="http://en.wikipedia.org/wiki/Threat_model">threat modelling</a> and such, but it would be nice if Frank gave us some pointers to at least someone else&#8217;s work on the flip side of preventing these problems &#8211; it was an audience largely made up of implementors, after all.</p>
<h3>Joel Spolsky &#8211; FogBugz</h3>
<p>This would have been too much of a sales pitch if we weren&#8217;t sort of in the market for a (bug/issue/requirement/case) management system at the moment. From what we saw, <a href="http://www.fogcreek.com/FogBUGZ/">FogBugz</a> <strong>towers</strong> above <a href="http://studios.thoughtworks.com/mingle-agile-project-management">Mingle</a> in both functionality and especially ease-of-use. We also got a quick demo of the brand-new <a href="http://www.fogcreek.com/Kiln/">Kiln</a>. While it looked useful (hosted source control and code-review), the fact that you&#8217;d have to host your code on someone else&#8217;s servers would be a deal-breaker for every company I&#8217;ve ever worked with. Bringing that up with Internet-famous Aardvarkster <a href="http://bitquabit.com/about/">Benjamin Pollack</a> over lunch, he assured me that the current number one priority was making the Kiln plugin available for the licensed (self-hosted) version of FogBugz. It&#8217;ll come to Windows first, Unix afterwards and six months sounded like a reasonable time-frame. To that end, I put my name down for the beta, and as I think I qualify for the <a href="http://www.fogcreek.com/FogBugz/StudentAndStartup.html">free startup licensing</a> that Fog Creek offers, I&#8217;ll definitely be spending some time with both tools.</p>
<h3>Red Gate &#8211; Lunchtime Presentation</h3>
<p>I arrived a little late for this, and never caught the name of the product being discussed (although I&#8217;m pretty sure Reflector was mentioned at one point &#8211; more on that in a bit). The talk was given by a designer at Red Gate whose name I also missed <ins datetime="2009-10-31T22:47:01+00:00">(Update: Brian Harris of Red Gate tells me he was Stephen Chambers, and very good he was too)</ins>, but it was actually a really revealing presentation. Red Gate iterate early and often, and record regular design reviews. We shared the presenter&#8217;s pain as a user on the recording tried desperately to find the code he was interested in, with no help at all from the tool he was testing. This feeling was intensified for me because I&#8217;d come in late, and assumed we were actually witnessing some disastrous live conference-call-slash-demo as part of the presentation. However, the presenter&#8217;s pain was only remembered, and the talk went on to show how the early embarrassments helped them focus on areas for improvement (although some of the bugs didn&#8217;t seem like they should ever have left a programmer&#8217;s machine) and track their progress honestly and openly. Recordings of later, successful demos revealed an atmosphere at Red Gate that must have driven at least a few people to speak the recruitment team manning their booth in the dinner hall.</p>
<p>Talking of which, I learned a couple of interesting things. First, I was never really clear on the nature of their <a href="http://springboard.red-gate.com/">Springbroad</a> programme. For some reason I thought it was pretty much just office space and some free coffee, but they&#8217;re actually funding the startups they brought in over the Summer, and unlike <a href="http://ycombinator.com/">YCombinator</a>, not taking any equity in return. Now, I suspect the quality of leads generated by the latter is higher, but you can&#8217;t argue that it&#8217;s a good deal, and while details weren&#8217;t clear on whether there was to be a Winter intake to the programme this year, the people I spoke to said they were always open to good ideas and would consider any applications that came through any time. Interesting stuff, although I&#8217;ve not followed any of <a href="http://springboard.red-gate.com/start-ups/">startups involved</a>, so have no idea how successful it&#8217;s all been.</p>
<p>More importantly, I managed to speak to <a href="http://www.linkedin.com/pub/bart-read/1/645/643">Bart Read</a>, head of Red Gate&#8217;s .NET developer division. I&#8217;d been slightly worried that nothing much had seemed to happen with the awesome <a href="http://www.red-gate.com/products/reflector/">Reflector</a> since they&#8217;d taken it over, but he pointed out that there was currently a beta available the next version. That&#8217;ll bring Visual Studio integration, and cool stuff (for .NET developers at least) like stepping through other people&#8217;s source code. It&#8217;ll be a paid product (current functionality will always remain free) and sounded like it might land in February. I intend <a href="http://www.red-gate.com/messageboard/viewtopic.php?t=9584">try the beta</a> over the next few weeks, although it sounded like VS 2010 beta 2 might have broken things.</p>
<h3>Steven Sanderson &#8211; ASP.NET MVC</h3>
<p>I think most people that care about ASP.NET MVC know about it now, so I won&#8217;t go over the content too much here. I did have a lively conversation at tea-time comparing it to Tapestry, but it&#8217;s safe to say that it joins the vanishingly small list of web frameworks that I would describe as &#8216;not bad&#8217;.</p>
<p>The thing I&#8217;d like to focus on is actually Steve himself. As others will have mentioned, he was by far the quickest of the presenters on the day, and got through a fair amount of real code interspersed with enough dry humour to keep it engaging. What I think was brilliant, though, was just the slickness of the presentation. He had complete command of his content and his tools, and sailed smoothly from step to step without any ceremony. I came away really impressed that while we watched two presenters on Macs beachballing all day, Windows 7 and Visual Studio 2010 just seemed to get on with the job. Needless to say, this has not always been my experience with Vista and VS 2008.</p>
<p>Anyway, the talk picked out a few of the nice features of MVC 2.0 that you of course already know about, but it was nice, as I&#8217;d only bought <a href="http://www.apress.com/book/view/1430210079">his book</a> the week before. In true schwag hag style, I asked Steve to sign it, and while he was a bit confused by the whole experience, he very kindly obliged.</p>
<h3>Remi Sharp &#8211; jQuery</h3>
<p>It must have been tough to know where to pitch this talk, as there was a real variety of levels of experience with jQuery in the room. As it turned out, Remi opted to launch an almost encyclopaedic attack on the jQuery API, and given my 4:45am start, I found myself drifting a little. Right at the death, he started on a practical example, and there was palpable tension in the room as the clock ticked down. It might have been nicer to start with the example and expound upon the features and syntax it demonstrated, but as it was time ran out and Remi had to finish it in the break. I didn&#8217;t stay around to see the finished article, although various tweets said it was well worth the wait.</p>
<h3>Michael Foord &#8211; Python</h3>
<p>It was a huge surprise that the Knuth-packing beardo in the front row turned out to be a Windows developer, demoing on IronPython. Michael was excellent, and after demoing some IronPython/WinForms interop for shits and giggles, was working with the now hugely over-analysed <a href="http://norvig.com/spell-correct.html">spelling corrector by Peter Norvig</a>. I suspect his talk was better than Mark Harrison&#8217;s at San Francisco &#8211; although I only have a snippet of podcast to go on for the latter &#8211; if only because Michael sounded the more opinionated. There&#8217;s nothing hugely new to say here about either spelling corrections or Python, but Michael&#8217;s day job at <a href="http://www.resolversystems.com/">Resolver Systems</a> making highly programmable spreadsheets sounded interesting.</p>
<h3>Jeff Atwood &#8211; StackOverflow</h3>
<p>Comedy slides and an ironically short, subdued talk about passion closed out the day. Again, I&#8217;d heard most of this on the podcast and honestly was just thinking about the free beer, so can&#8217;t do Jeff justice. The most satisfying takeaway from the talk was really just &#8216;mission accomplished&#8217;. StackOverflow probably isn&#8217;t perfect, but they executed on their vision and it worked out. While the launch of <a href="http://careers.stackoverflow.com/thom">StackOverflow careers</a> and <a href="http://stackexchange.com/">Stack Exchange</a> have obviously taken up the two teams&#8217; time recently, it wasn&#8217;t clear what else remained on the roadmap, or if Jeff and Joel had any plans outside the Q&amp;A arena.</p>
<h3>After Party</h3>
<p>And then there were beers at <a href="http://www.henryscafebars.co.uk/Home.aspx">Henry&#8217;s</a>. Met a very interesting guy called <a href="http://mes.me.uk/">James Nicholson</a>, who develops the mobile clients at <a href="http://taptu.com/">Taptu</a>, a mobile search engine. James stayed in Cambridge after uni and it was fascinating to hear just how many startups, and how much VC money, has come to Cambridge and its <a href="http://www.cambridge-science-park.com/">science park</a>. It sounds like the perfect place to be if you&#8217;re starting up in the UK, and that the whole area is very easy on the eye is just a bonus.</p>
<p>I also bumped into my <a href="http://www.linkedin.com/in/peterjasko">brother in law</a>. Random.</p>
<p>With a dead iPhone battery, I crawled home on the last train to add my schwag to the mountainous hoard I keep in the dungeon below my castle. Sometimes I sit on it and wait for men with swords to come. They never do.</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2009/10/31/diary-of-a-schwag-hag/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mocking class methods in Objective-C</title>
		<link>http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/</link>
		<comments>http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/#comments</comments>
		<pubDate>Sat, 09 May 2009 13:14:22 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=388</guid>
		<description><![CDATA[If you ever find yourself shying away from class methods in your Objective-C designs on the grounds that they reduce the testability of your code, think again: - (void)testDateSwizzling { Method originalDate = class_getClassMethod([NSDate class], @selector(date)); Method mockDate = class_getInstanceMethod([self &#8230; <a href="http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you ever find yourself shying away from class methods in your Objective-C designs on the grounds that they reduce the testability of your code, think again:</p>
<pre><code>- (void)testDateSwizzling
{
	Method originalDate = class_getClassMethod([NSDate class], @selector(date));
	Method mockDate = class_getInstanceMethod([self class], @selector(mockDate));
	method_exchangeImplementations(originalDate, mockDate);
	STAssertEquals([NSDate date], [NSDate distantPast], @"Should have mocked method");
	method_exchangeImplementations(mockDate, originalDate);
}

- (NSDate *)mockDate
{
	return [NSDate distantPast];
}</code></pre>
<p>This allows you to substitute your own implementation for a class method, using the magic of Objective-C&#8217;s <a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html">runtime library</a>. I&#8217;m going to have a look at how this could be packaged up for <a href="mulle-kybernetik.com/software/OCMock/">OCMock</a> to make the syntax a little nicer, but I&#8217;m already using it wherever it simplifies my APIs (<code>NSDate</code>s in particular) and wherever I can&#8217;t or don&#8217;t want to refactor third-party libraries.</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linking to dynamic libraries in Xcode</title>
		<link>http://thom.org.uk/2009/03/06/linking-to-dynamic-libraries-in-xcode/</link>
		<comments>http://thom.org.uk/2009/03/06/linking-to-dynamic-libraries-in-xcode/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 00:15:23 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[dylib]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://thom.org.uk/?p=385</guid>
		<description><![CDATA[I like to think it&#8217;s entirely a lifestyle choice that Cocoa exposes no regular expression API to developers. It&#8217;s probably the same motivation behind making Xcode such a tortuous IDE &#8211; Apple just don&#8217;t want the rabble writing Mac apps. &#8230; <a href="http://thom.org.uk/2009/03/06/linking-to-dynamic-libraries-in-xcode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I like to think it&#8217;s entirely a lifestyle choice that Cocoa exposes no regular expression API to developers. It&#8217;s probably the same motivation behind making Xcode such a tortuous IDE &#8211; Apple just don&#8217;t want the rabble writing Mac apps.</p>
<p>But, nevertheless, we plug away, and of the half-dozen available regex libraries out there, I settled on RegexKitLite. It&#8217;s dead easy to integrate (drop two files in your project) and relies on a built-in (but technically unsupported for development, if not <strong>verboten</strong>) OS X library called the International Components for Unicode.</p>
<p>The <a href="http://regexkit.sourceforge.net/RegexKitLite/index.html">RKL docs</a> show you two ways of referencing it, but neither seemed right to me, and it turns out that Xcode (3.1 at least) makes it even easier.</p>
<p>Simply:</p>
<ol>
<li>Right-click on each target in which you need regular expressions.</li>
<li>Click on the &#8216;+&#8217; under Linked Libraries.</li>
<li>Click on the drop-down to filter to &#8216;Dylibs&#8217;.</li>
<li>Scroll down to libicucore.dylib and add it.</li>
</ol>
<p>After that you&#8217;re all set.</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2009/03/06/linking-to-dynamic-libraries-in-xcode/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>XNA Studio 3.0 under Parallels</title>
		<link>http://thom.org.uk/2008/09/28/xna-studio-30-under-parallels/</link>
		<comments>http://thom.org.uk/2008/09/28/xna-studio-30-under-parallels/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 21:55:01 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[parallels]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://thomlawrence.wordpress.com/?p=382</guid>
		<description><![CDATA[Still no joy with the new beta. Any VMWare Fusion peeps have any luck?]]></description>
			<content:encoded><![CDATA[<p>Still no joy with <a href="http://blogs.msdn.com/xna/archive/2008/05/07/announcing-xna-game-studio-3-0-community-technical-preview-ctp.aspx">the new beta</a>. Any VMWare Fusion peeps have any luck?</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2008/09/28/xna-studio-30-under-parallels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magic: the Gathering with normal playing cards</title>
		<link>http://thom.org.uk/2008/09/23/magic-the-gathering-with-normal-playing-card/</link>
		<comments>http://thom.org.uk/2008/09/23/magic-the-gathering-with-normal-playing-card/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 20:11:22 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[cards]]></category>
		<category><![CDATA[mtg]]></category>

		<guid isPermaLink="false">http://thomlawrence.wordpress.com/?p=376</guid>
		<description><![CDATA[Rules Shuffle all 52 cards together and lay the deck face down. Players draw from this single deck. When the last card is drawn from the deck, shuffle all graveyards back into the deck. There is no mana burn. Other &#8230; <a href="http://thom.org.uk/2008/09/23/magic-the-gathering-with-normal-playing-card/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Rules</h3>
<ol>
<li>Shuffle all 52 cards together and lay the deck face down.</li>
<li>Players draw from this single deck.</li>
<li>When the last card is drawn from the deck, shuffle all graveyards back into the deck.</li>
<li>There is no mana burn.</li>
</ol>
<p>Other than that, it&#8217;s just the same game.</p>
<h3>Cards</h3>
<p>All nonland cards have a casting cost derived from their rank, in colourless mana. Aces therefore cost 1 mana, and face cards cost 10. Where X is used in the card text below, it is equal to the card&#8217;s rank (again aces being 1 and face cards 10).</p>
<dl>
<dt>&spades; Spades</dt>
<dd>Land. &#x27f3;: Add X to your mana pool.</dd>
<dt>&clubs; Clubs</dt>
<dd>Creature. X/X.</dd>
<dt>&diams; Diamonds</dt>
<dd>Instant. Deal X damage to target creature or player.</dd>
<dt>&hearts; Hearts</dt>
<dd>Instant. Choose one &#8212; Target player gains X life; or prevent the next X damage that would be dealt to target creature or player this turn.</dd>
</dl>
<h3>Problems</h3>
<p>Mana flood and mana screw happen fairly often, and obviously there&#8217;s not much variety in the cards. But in desperate times, if you need your fix, it&#8217;ll tide you over.</p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2008/09/23/magic-the-gathering-with-normal-playing-card/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ode to a Karplusan Wolverine</title>
		<link>http://thom.org.uk/2008/07/18/ode-to-a-karplusan-wolverine/</link>
		<comments>http://thom.org.uk/2008/07/18/ode-to-a-karplusan-wolverine/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 23:05:55 +0000</pubDate>
		<dc:creator>Thom</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Magic: the Gathering]]></category>
		<category><![CDATA[coldsnap]]></category>
		<category><![CDATA[common]]></category>
		<category><![CDATA[mtg]]></category>

		<guid isPermaLink="false">http://thomlawrence.wordpress.com/?p=354</guid>
		<description><![CDATA[How do I love thee? Let me count the ways. Thou art a one-drop with first strike. When blocked, thou hast double strike. Thou mayst deal thine combat damage as if thou wert not blocked. There are some who call &#8230; <a href="http://thom.org.uk/2008/07/18/ode-to-a-karplusan-wolverine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://resources.wizards.com/Magic/Cards/CSP/en-us/Card121179.jpg" alt="" width="200" height="285" /></p>
<p>How do I love <a href="http://ww2.wizards.com/gatherer/CardDetails.aspx?&amp;name=Karplusan%20Wolverine">thee</a>? Let me count the ways.</p>
<ul>
<li>Thou art a one-drop with first strike.</li>
<li>When blocked, thou hast double strike.</li>
<li>Thou mayst deal thine combat damage as if thou wert not blocked.</li>
<li>There are some who call thee&#8230; &#8216;Tim&#8217;.</li>
</ul>
<p>And, if God choose, I shall but love thee better after 20 damage.</p>
<p>With apologies to <a href="http://en.wikipedia.org/wiki/Elizabeth_Barrett_Browning">Elizabeth Barrett Browning</a>. <img src='http://thom.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://thom.org.uk/2008/07/18/ode-to-a-karplusan-wolverine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
