I got to play some Magic: The Gathering with one of my co-workers for the first time in a while. He had forgotten to bring his cards, so I lent him some of my decks and the match-ups were: Red-Green Stompy vs. Aggro-Infect, Vampires vs. Red Deck Wins and Baneslayer-Lifelink vs. Pyromancer's Ascension.
The Baneslayer-Lifelink vs. Pyromancer's Ascension turned out to be the most interesting. I was piloting the Ascension deck and in the first game it played oddly aggro. I dropped a pair of Kiln Fiends, cleared the board with a Staggershock and then attacked for massive damage. This worked out just fine, but it's not really the kind of play you would expect from a deck with four creatures in it.
The second game was where things really started to heat up. Other that getting a Pyromancer Ascension down early, my opponent really dominated the early game. I tried to thin the field with some burn spells, but it got to the point where I didn't really have anything other than the Ascention and some land while my opponent had a pair of Vampire Nighthawks stairing at my throat: Not looking good.
I used Foresee to dig for a
Staggershock to match the one in my hand. I bet on triggering the the Ascension, cast the Staggershock, and passed the turn. My dropped a Baneslayer Angel and swung. Ouch. I rebounded the Staggershock, cast the other one, pumped the Ascention and passed the turn. My oponent swung again. More ouch. I rebounded the Staggershock, and put that second counter on the Ascention. I was at five life, with no creatures. My opponent had thirty-something life, a Baneslayer and a pair of Nighthawks. Still not looking good, but I did have a fully charged Ascension. I cast Preordain betting that in four cards and two draws I could pull an Island to replace the one I tapped. I pulled a Lightning Bolt and an Island. I bolted the Nighthawks and killed the Baneslayer with a kicked Burst Lightning. I passed the turn, and it came back to me: I wasn't dead yet! The turns that followed played out as some combination of Call to Mind, Kiln Fiend and Lighting Bolt.
Moral of the story: Spells are better when you get to cast them twice. I clawed my way back from a pretty big deficit and it was terrifyingly fun to cast the same Lightning Bolt over, and over again. The darkhorse MVPs were Kiln Fiend and Staggershock. In the first game, Staggershock kept the board clear and stimulated my Kiln Fiends and in the second, it was key to triggering the Ascension; however, in both games, the Kiln Fiends proved instrumental in actually chipping away at my opponent's life total while my burn spells kept the board clear.
Here's the decklist (because this kind of post is screaming for one):
The more wealthy of our readers, will notice that Scalding Tarn is a drop-in replacement for the Evolving Wilds. Other than that, it's not too shabby for a deck with a grand total of eight rares. The Chandras Ablaze kind of felt like they were dead cards, but it will take more than two games to determine whether they need to be subbed out for something else.
Ever since Portal 2 was announced I've been thinking about playing Portal again and I finally got around to it this weekend. Verdict: Still Awesome.
It was lots of fun. If you havene't played it yet, you really have to. It's sublime. Now I'm even more excited for Portal 2... I mean, the prepulsion gel alone!
I have to say, it's pretty awesome. Thanks to the migration assistant Chrome and Firefox were already there, Pandora and Gmail already knew who I was: It was pretty much a drop-in replacement for my old computer, except faster an shinier. "Pretty much" is kind of the operative phrase there. I did have to reinstall GCC, and that was a pain. Y'see, the entire reason I use a MacBook is because Mac OS X is a *nix with a pretty, consistent, GUI. I'm a build-from-source kind of guy, so I need a C compiler on my laptop, and getting that compiler onto my MacBook was way harder than it ought to be.
Here's what setting up a build environment on Ubuntu (my other *nix of choice) looks like:
sudo apt-get install build-essential
One command that I can type from memory1 and a little bit of waiting. Contrast that with what you need to do to get GCC on Mac OS X:
Register as a developer at http://developer.apple.com/ which includes explaining whether your interested in building iPhone apps, iPad apps or iPhone apps.
Download Xcode, which is like 3 Gigs (keep in mind, I have an SSD, it's teeny). This took all. Frigging. Day. I don't know if it was Verzion, or Apple or both, but some router, somewhere was conspiring to keep me from getting my C compiler in a timely fashion.
Install Xcode and remembering to not install the iOS environment which takes up like 8 Gigs (SSD!). You can't just install GCC, you have to install Xcode (a development environment I will never use, I have Vim after all) so there goes 2 Gigs I'll never get back.
You now have a C compiler, and can now checkout and build clang from source.
You now have not one, but two C compilers. All is right in the world. (Okay, so that last step is superfluous, but, who doesn't want a C compiler they built themselves from source?)
So that's only a days worth of downloading and a multi-gigabyte install so that I can compile "Hello World": Come on!
Now the reality is, the last time I had to do this was two and a half years ago, and if my computer only annoys me enough to write about it once every couple of years, I'm doing pretty good.
The package might actually be named build-essentials, but since Ubuntu's apt-get auto-completes package names, you just have to type build-^TAB and you get the right thing.
I took this with the camera on the phone I got at PDC and I'm pretty impressed with the result. It looks pretty dramatic... though, the subject helps a lot in that respect ;)
Google's Sawzall language has been open-sourced (pronouced: saws all). After I heard the news, I came to the conclusion that I needed to write a program in the language named after the reciprocating saw. So here it is, my first program in Sawzal (cat.szl):
out: table text of word: string;
w: string = input;
emit out <- w;
It's pretty much an implementation of cat, which feels like the log analysis/filtering language version of Hello World!.