Magic Online M13 Prerelease

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’m playing it out…

Main Deck (40)
Ring of Evos Isle
Welkin Tern
Mind Rot
Crippling Blight
Public Execution
Essence Scatter
Jace, Memory Adept
Liliana of the Dark Realms
Tricks of the Trade
Diabolic Revelation
Rise from the Grave
Bloodhunter Bat
Servant of Nefarox
Harbor Bandit
Primal Clay
Sideboard (67)
Clock of Omens
Arbor Elf
Firewing Phoenix
Mwonvuli Beast Tracker
Pillarfield Ox
Vastwood Gorger
Prey Upon
Mind Rot
Flames of the Firebrand
Mindclaw Shaman
Glorious Charge
Silvercoat Lion
Mind Sculpt
Goblin Battle Jester
Ajani’s Sunstriker
Torch Fiend
Chandra’s Fury
Reckless Brute
Rummaging Goblin
Dragon Hatchling
Spiked Baloth
Turn to Slag
Reckless Brute
War Priest of Thune
Volcanic Strength
Guardian Lions
Crimson Muckwader
Captain’s Call
Canyon Minotaur
Aven Squire
Rain of Blades
Trading Post
Vile Rebirth
Ring of Valkas
Posted in Gaming, Magic: the Gathering | Leave a comment

Midnight Gond

I’ve been trying out some Pauper on Magic Online between draft rounds, and mostly sucking. It’s a format where you absolutely have to be doing something unfair with your deck to be in with a chance, even if it’s a 3/2 flyer on turn 1. I’ve also not met a huge variety of decks – 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 sounds pretty varied now I write it down, clearly I’m lying.

Most of my first attempts were Cloudpost and Urzatron variants. I tried a UW version that landed Rhystic Circle to prevent all damage ever, in the vague hope that an Ulamog’s Crusher would later win the game (hint: it didn’t), and experimented with UB to see if the extra mana made Mystical Teachings at all useful (hint: there’s nothing worth teachings for in the format). I then tried a deck I dubbed MEGATRON, which had the full set of Urza lands and 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.

However, trawling through Pauper-legal card listings, today I discovered a card I hadn’t yet seen anyone playing, or even heard of: Presence of Gond. I originally thought this would combo with Nettle Sentinel, but obviously that doesn’t work, at which point I turned to Innistrad limited stalwart Midnight Guard. Looking for unfair things to do? Infinite creatures on Turn 3 ought to work:

Midnight Gond (60)
Avacyn’s Pilgrim
Quirion Elves
Presence of Gond
Midnight Guard
Drift of Phantasms
Totem-Guide Hartebeest
Faith’s Fetters
Guard Duty
Shielding Plax
Spell Pierce
Evolving Wilds
Sideboard (15)
Faith’s Fetters
Guard Duty
Ranger’s Guile
Turn Aside

Plenty of library manipulation, and after boarding surprisingly resilient against counters and instant removal. You even get to have a nice Totem-Guide Hartebeest package as a side-effect of wanting to tutor up Gond’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.

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’d quite like to incorporate is Sigil of the Nayan Gods, which would in some cases make you a turn faster as you could just attack with an infinitely large guard.

At the very least, this deck has allowed me to upgrade from the Casual Play room to the Tournament Practice room, and that’s great for my ego.

Update: yeah, so everyone’s had this idea, apparently. SO MUCH FOR BEING EXCITED ABOUT MY SHINY NEW DECK. THANKS, INTERNET.

Posted in Gaming, Magic: the Gathering | Tagged , , | Leave a comment

M12 Pre-release

Having helped out on the beta, it’s great to see M12 pre-releases finally underway on MTGO. In my first queue, I’m piloting this RW aggro deck, which seems pretty representative of the format:

Creatures (14)
Armored Warhorse
Goblin Fireslinger
Arbalest Elite
Goblin Bangchuckers
Fiery Hellhound
Crimson Mage
Stormblood Berserker
Blood Ogre
Gorehorn Minotaurs
Peregrine Griffin
Goblin Tunneler
Gideon’s Lawkeeper

Other Spells (9)
Scepter of Empires
Spirit Mantle
Slaughter Cry
Tectonic Rift
Chandra’s Outrage
Gideon Jura

Lands (17)

I’m not saying it’s good, or even interesting, but this blog has a Magic: the Gathering plugin, and I want to see it used.

Posted in Gaming, Magic: the Gathering | Leave a comment

Time to stand up for Murdoch

I don’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
Subject: Speak Out: Thanks for emailing your MP about Murdoch’s media takeover

Thank you! You’ve just sent your an e-mail telling your MP to speak out against the Murdoch media takeover.
The more of us that contact our MPs, the more likely we are to win.
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.
Thank you, 
38 Degrees
Have a look at this:
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.
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.

Thom Lawrence
Nick Clegg MP
Time to stand up for Murdoch
Like so many people, I’m appalled at the behaviour of the people on Twitter. It’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’s old and lonely, but he’s preserving our media and our democracy.

Please stand up with Murdoch and do all you can to:
– Push through the BSkyB deal
– Ensure a public inquiry into hacking is prevented
– Ask Ofcom to declare that Murdoch is a “fit and proper” media owner.

Do you agree with these three points?

Update: I have since received a reply from Nick Clegg, though I am very disappointed that he apparently hasn’t even read the contents of my email:

Dear Constituent


Thank you for your recent correspondence concerning the News of the World phone hacking scandal.


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.


So, what can we do and what have we already done to make sure that a situation like this never happens again?


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.


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.


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) – whose remit was to investigate such matters – failed to reveal the true extent of systemic abuses of power that were being used by some reporters at the News of the World.


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.


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.


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.


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.


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.


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:


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.


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.


I would like to take this opportunity to thank you for contacting me on such an important matter and for sharing your views.


Yours sincerely


Nick Clegg MP

Posted in Uncategorized | Leave a comment

Diary of a schwag hag

I managed to accumulate two main things at StackOverflow DevDays Cambridge yesterday:

  1. An almighty hangover, courtesy of Red Gate‘s endless supply of free booze in the evening.
  2. A huge bag of quality schwag garnered from various corners of the conference, including a free copy of the Aardvark’d DVD, some fish toys that Red Gate had brought for some reason and various stickers and stationery etc.

And inbetween hunting and gathering, Carsonified put on a conference. Talking of which:

Joel Spolsky – Opening Keynote

So I only saw half of this, because even though I had left the house at 5:10am, I didn’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’s keynote that I missed seemed just to be what was on the last StackOverflow podcast. What I did catch, however, was typical Joel stuff. He was riffing on JWZ’s “How will this software get my users laid” and managed fairly well to mix threads of low-grade erotic fiction and software usability into a quality rant. Good stuff, although I couldn’t stop picturing how much Joel would look like Stanley Tucci if he had less hair. I don’t know if that affected anyone else’s enjoyment of the talk. Probably not.

Ryan Carson – Carsonified

While Ryan wasn’t a speaker at the conference, we got to see plenty of him, and he entertained with his now trademark “three minutes left”, “two minutes left” and incessant polling. Nah, just kidding, Ryan’s alright.

Christian Heilmann – Yahoo! Developer Tools

This was a pretty good, made all the more enjoyable because hearing a big ginger German guy swearing is good, clean fun. Christian‘s was one of the talks I was looking forward to, having heard the buzz about YQL from attendees of the previous London event. As you’ll read from everyone else’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:

  • It’s throttled to 10,000 requests an hour, 100,000 a day.
  • It runs on Hadoop over 50 machines at Yahoo, although Christian’s not on the team and wasn’t sure of the exact architecture (he mentioned pixies though).
  • They intend to offer a version that you can host yourself on Google App Engine.
  • He regretted not mentioning in the talk that you can write transformations for YQL results in JavaScript. This uses Rhino, presumably running in the above-mentioned Hadoop cluster.

The other thrust of his talk was about writing apps/widgets for the Yahoo home page. Yahoo have made their stuff Caja compliant 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’ll suffer the same problems getting noticed as you would on the iPhone app store – there’ll be featured apps and categories, but I think it’ll just end up as a sea of under-appreciated apps drowning each other out. I can’t help but think the Facebook model of apps spreading virally is the way to go here – 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 – you’re hooked in before you knew it existed. That said, Facebook apps are all shite and I don’t use them, but I don’t use Yahoo either so I guess I’m not the target market.

Like most Facebook apps, you’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’t want people to have to rely on them to keep their stuff alive, which perhaps in the light of GeoCities’ retirement is fair enough.

Frank Stajano

Frank‘s a security researcher at Cambridge, and presented his seven principles for systems security. 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 The Real Hustle which he says is required viewing for his PhD students, but he didn’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’s to be done to remedy some of the problems, especially as he mentioned that often we compound the issues by teaching bad behaviour – 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 ‘deception’ being one of them, we… er… don’t lie to our users. I’m not sure if that’s what he meant. Anyway, I also asked him what he thought of things like OpenID and 3D Secure 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’s asked of you. His reponse to that is that if we’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.

All in all, some very interesting content from the theoretical standpoint, and certainly some useful stuff if you are into threat modelling and such, but it would be nice if Frank gave us some pointers to at least someone else’s work on the flip side of preventing these problems – it was an audience largely made up of implementors, after all.

Joel Spolsky – FogBugz

This would have been too much of a sales pitch if we weren’t sort of in the market for a (bug/issue/requirement/case) management system at the moment. From what we saw, FogBugz towers above Mingle in both functionality and especially ease-of-use. We also got a quick demo of the brand-new Kiln. While it looked useful (hosted source control and code-review), the fact that you’d have to host your code on someone else’s servers would be a deal-breaker for every company I’ve ever worked with. Bringing that up with Internet-famous Aardvarkster Benjamin Pollack 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’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 free startup licensing that Fog Creek offers, I’ll definitely be spending some time with both tools.

Red Gate – Lunchtime Presentation

I arrived a little late for this, and never caught the name of the product being discussed (although I’m pretty sure Reflector was mentioned at one point – more on that in a bit). The talk was given by a designer at Red Gate whose name I also missed (Update: Brian Harris of Red Gate tells me he was Stephen Chambers, and very good he was too), but it was actually a really revealing presentation. Red Gate iterate early and often, and record regular design reviews. We shared the presenter’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’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’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’t seem like they should ever have left a programmer’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.

Talking of which, I learned a couple of interesting things. First, I was never really clear on the nature of their Springbroad programme. For some reason I thought it was pretty much just office space and some free coffee, but they’re actually funding the startups they brought in over the Summer, and unlike YCombinator, not taking any equity in return. Now, I suspect the quality of leads generated by the latter is higher, but you can’t argue that it’s a good deal, and while details weren’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’ve not followed any of startups involved, so have no idea how successful it’s all been.

More importantly, I managed to speak to Bart Read, head of Red Gate’s .NET developer division. I’d been slightly worried that nothing much had seemed to happen with the awesome Reflector since they’d taken it over, but he pointed out that there was currently a beta available the next version. That’ll bring Visual Studio integration, and cool stuff (for .NET developers at least) like stepping through other people’s source code. It’ll be a paid product (current functionality will always remain free) and sounded like it might land in February. I intend try the beta over the next few weeks, although it sounded like VS 2010 beta 2 might have broken things.

Steven Sanderson – ASP.NET MVC

I think most people that care about ASP.NET MVC know about it now, so I won’t go over the content too much here. I did have a lively conversation at tea-time comparing it to Tapestry, but it’s safe to say that it joins the vanishingly small list of web frameworks that I would describe as ‘not bad’.

The thing I’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.

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’d only bought his book 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.

Remi Sharp – jQuery

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’t stay around to see the finished article, although various tweets said it was well worth the wait.

Michael Foord – Python

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 spelling corrector by Peter Norvig. I suspect his talk was better than Mark Harrison’s at San Francisco – although I only have a snippet of podcast to go on for the latter – if only because Michael sounded the more opinionated. There’s nothing hugely new to say here about either spelling corrections or Python, but Michael’s day job at Resolver Systems making highly programmable spreadsheets sounded interesting.

Jeff Atwood – StackOverflow

Comedy slides and an ironically short, subdued talk about passion closed out the day. Again, I’d heard most of this on the podcast and honestly was just thinking about the free beer, so can’t do Jeff justice. The most satisfying takeaway from the talk was really just ‘mission accomplished’. StackOverflow probably isn’t perfect, but they executed on their vision and it worked out. While the launch of StackOverflow careers and Stack Exchange have obviously taken up the two teams’ time recently, it wasn’t clear what else remained on the roadmap, or if Jeff and Joel had any plans outside the Q&A arena.

After Party

And then there were beers at Henry’s. Met a very interesting guy called James Nicholson, who develops the mobile clients at Taptu, 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 science park. It sounds like the perfect place to be if you’re starting up in the UK, and that the whole area is very easy on the eye is just a bonus.

I also bumped into my brother in law. Random.

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.

Posted in Uncategorized | Tagged , , | 5 Comments

Mocking class methods in Objective-C

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 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];

This allows you to substitute your own implementation for a class method, using the magic of Objective-C’s runtime library. I’m going to have a look at how this could be packaged up for OCMock to make the syntax a little nicer, but I’m already using it wherever it simplifies my APIs (NSDates in particular) and wherever I can’t or don’t want to refactor third-party libraries.

Posted in Objective-C | 1 Comment

Linking to dynamic libraries in Xcode

I like to think it’s entirely a lifestyle choice that Cocoa exposes no regular expression API to developers. It’s probably the same motivation behind making Xcode such a tortuous IDE – Apple just don’t want the rabble writing Mac apps.

But, nevertheless, we plug away, and of the half-dozen available regex libraries out there, I settled on RegexKitLite. It’s dead easy to integrate (drop two files in your project) and relies on a built-in (but technically unsupported for development, if not verboten) OS X library called the International Components for Unicode.

The RKL docs 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.


  1. Right-click on each target in which you need regular expressions.
  2. Click on the ‘+’ under Linked Libraries.
  3. Click on the drop-down to filter to ‘Dylibs’.
  4. Scroll down to libicucore.dylib and add it.

After that you’re all set.

Posted in Programming | Tagged , , , , | 15 Comments

XNA Studio 3.0 under Parallels

Still no joy with the new beta. Any VMWare Fusion peeps have any luck?

Posted in Gaming, Programming | Tagged , , , | Leave a comment

Magic: the Gathering with normal playing cards


  1. Shuffle all 52 cards together and lay the deck face down.
  2. Players draw from this single deck.
  3. When the last card is drawn from the deck, shuffle all graveyards back into the deck.
  4. There is no mana burn.

Other than that, it’s just the same game.


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’s rank (again aces being 1 and face cards 10).

♠ Spades
Land. ⟳: Add X to your mana pool.
♣ Clubs
Creature. X/X.
♦ Diamonds
Instant. Deal X damage to target creature or player.
♥ Hearts
Instant. Choose one — Target player gains X life; or prevent the next X damage that would be dealt to target creature or player this turn.


Mana flood and mana screw happen fairly often, and obviously there’s not much variety in the cards. But in desperate times, if you need your fix, it’ll tide you over.

Posted in Gaming | Tagged , | 1 Comment

Ode to a Karplusan Wolverine

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 thee… ‘Tim’.

And, if God choose, I shall but love thee better after 20 damage.

With apologies to Elizabeth Barrett Browning. :)

Posted in Gaming, Magic: the Gathering | Tagged , , | Leave a comment