Friday, October 28, 2011

Wolf Run Green: My List. Thoughts?

Here is the new list I am looking to put together for the local circuit:



  • Main Deck:
    • 17 Forest
    • 4 Rampant Growth
    • 4 Garruk, Primal Hunter
    • 4 Primeval Titan
    • 4 Birds of Paradise
    • 4 Dungrove Elder
    • 3 Green Sun's Zenith
    • 3 Solemn Simulacrum
    • 3 Beast Within
    • 2 Inkmoth Nexus
    • 2 Llanowar Elves
    • 2 Kessig Wolf Run
    • 2 Mountain
    • 1 Batterskull
    • 1 Wurmcoil Engine
    • 1 Acidic Slime
    • 1 Copperline Gorge
    • 1 Rootbound Crag
    • 1 Slagstorm
  • Sideboard:
    • 3 Thrun, the Last Troll
    • 2 Sword of Feast and Famine
    • 2 Blasphemous Act
    • 2 Ancient Grudge
    • 1 Tree of Redemption
    • 1 Arc Trail
    • 1 Viridian Corrupter
    • 1 Ghost Quarter
    • 1 Gut Shot
    • 1 Acidic Slime
I welcome opinions on the numbers, especially the sideboard! I was torn on the Slime, or if i need something like the fourth Beast Within. Also maindeck, I'm torn on Copperline versus Rootbound: at the end, either tutors off a Titan for the red next turn (provided you aren't getting Inkmoth, etc), but still.

17th at Connecticut 2011s with Red Deck!

So I was the highest placed 'burninator' in States this year. I knocked out 2 other RDW decks on the way to the top, the key being 4 Volshok Refugees and 8 ways to kill their copies of the red dread. I was 5-1 going in to the last round, and we had exactly 128 players... so we had 16 people in contention for Top 8. I lost to the man who eventually won the event. He ran W Humans, games 1 and 2 he went 'turn 1 Champion, turn 2 human /human/swing 3'... Game 1 involved a Angelic I couldn't answer, game 2 a Hero I also couldn't answer, and that was all she wrote.

Since then I've been tweaking the deck, and after running the numbers, I've come up with a list that I am pretty happy with. My biggest divergence from this is my lack of Grim Lavamancer: I would just rather have Spikeshot Elder, I feel Grim just sits around without enough graveyard cards to be effective half the time.

Here is the list I recommend: it is 5 cards off from what I ran at States. In light of recent events I'm planning to move from RDW to Primetime (Primieval Titan)... anything not blue makes me happy. :-)



  • Main Deck
    • 18 Mountain
    • 4 Stromkirk Noble
    • 4 Stormblood Berserker
    • 4 Shrine of Burning Rage
    • 4 Incinerate
    • 3 Arc Trail
    • 3 Brimstone Volley
    • 3 Koth of the Hammer
    • 3 Chandra's Phoenix
    • 2 Hero of Oxid Ridge
    • 3 Rootbound Crag
    • 2 Spikeshot Elder
    • 2 Grim Lavamancer
    • 2 Volt Charge
    • 1 Geistflame
    • 1 Goblin Arsonist
    • 1 Gut Shot
  • Sideboard
    • 4 Volshok Refugee
    • 3 Ancient Grudge
    • 1 Traitorous Blood
    • 1 Arc Trail
    • 1 Hero of Oxid Ridge
    • 1 Perilous Myr
    • 1 Manic Vandal
    • 1 Manabarbs
    • 2 Dismember
Koth comes out VS aggro generally, Hero VS control, mind your Arc Trail/Incinerate ratio depending on the creature quantity and sizes coming at you, and make sure to pull in off color killers VS the mirror (and arguably VS poison for Crusader). Barbs is basically only for Wolf Run.

Good luck slinging spells!

XmlSerializer VS DataContractSerializer

So I am doing a project on the side involving a RESTful WCF Service involving many different types of clients. Recently I was stumped by several issues with the XmlSerializer and the attributes on my data classes: the main issue originated from using WCF to serialize the responses, but not using the DataContractSerializer to deserialize the responses. (Which was clearly a mistake from the start... the lesson here is don't mix and match technologies if you have the tools available native!)

Some fun facts if you find yourself in this predicament (or really, REALLY, want to use XmlSerializer):

  • XmlSerializer will not recognize lists when the complex objects in those lists exist in a different namespace than the list itself, even if you specify this fact on the XmlElement for said list. The same goes for arrays. And give up on loosely types interfaces like 'IEnumerable': the serializer chokes on these.
  • You will be stuck with the yucky 'http://schemas.microsoft.com/2003/10/Serialization/+class namespace' namespace in your xml. This can become VERY inconvenient to your class structure, especially when paired with the first issue.
  • The XmlSerializer will fail if it finds a root node it doesn't understand, but will simply null any inner nodes: make sure to check your entire object, a single element in a complex class can be null without the serializer giving you any warning.
  • Off Topic: One issue I have dealt with a little in other projects, but not for this, is the complete lack of support for serializing multidimensional arrays. One way around it is to turn your array into a single array of complex objects with more in it than just the next 'dimension'. Even a dummy 'int' in the class will work, because it prevents the serializer from trying to 'simplify' the code into a structure it can't handle. (I should note, this recommendation comes from BizTalk experience, not WCF, so it may not apply. But if you are stuck, it's worth trying.)

The simple solution (provided you find this, or some similar article) is to use the serializer intended for WCF, and to stick with the DataContract/DataMember structure of more classic WCF service classes. So long as you specify names and namespaces, and don't care about fine-grained serialization control, everything should work great.

If you look around, you will find lots of recommendations to use 'ResponseFormat = WebMessageFormat.Xml' on your contracts. If you can avoid it, do so - WCF 4 lets clients specify in the request header their return types (an issue I discussed a little in a previous post), and IMO that is a far better way to go, especially if you have any plans of interfacing with clients more at home with JSON (i.e., Android devices).

Happy coding!

References:
http://www.danrigsby.com/blog/index.php/2008/03/07/xmlserializer-vs-datacontractserializer-serialization-in-wcf/
http://social.msdn.microsoft.com/Forums/en-AU/csharpgeneral/thread/dfd587ec-a269-49a9-a1a5-0f69d915c776