Hawkeye on NHL 07

For those who don’t keep a close eye on my Xbox playing habits, I picked up NHL 07 last night. There are two hockey franchises for the Xbox 360: EA Sports and 2K Sports. I’ve been a 2K fan for several years, but I didn’t think much of their last effort on Xbox so I never bothered to pick the 360 version. Of course, EA Sports skipped the 360 last year so I’ve been without next-gen hockey since I bought my next-gen console.

Now there’s a new version of both major hockey franchises, just in time for the opening of training camps. Each has had an entire year to innovate, and it’s interesting to see where each title has spent that time. 2K Sports has created “Cinemotion”, which is an entirely new presentation system which is more like an “interactive hockey movie” than a TV broadcast.

NHL 07 Box

EA Sports spent their time on an entirely new control scheme called “Skill Stick”. Basically, while the left thumbstick still controls player movement, the right thumbstick controls the player’s stick. It’s taking time to get used to – hey I’ve only had the game a few hours – but so far I really like it. I was playing the XBLM Demo and scored on a sweet spinorama move with the skill stick. That pretty much hooked me on the spot. Most of the reviewers have singled out the skill stick as the reason for the generally favorable reviews.

Plus, EA picked Washington Capitals superstar Alex Ovechkin for their cover athlete. Barring awful reviews, I pretty much decided to pickup NHL 07 as soon as I heard that.

IDEA 2006

I saw from Bruce Sterling’s blog that he’s going to be at Idea 2006 next month in Seattle. Bruce is at or near the top of the list of “folks I’d like to chat with over a few good beers”. I saw him at ETech and have since read and thoroughly enjoyed both Shaping Things and Tomorrow Now. I wonder if I can make it to IDEA?

Python and DSLs

When I read Larry O’Brien’s post IronPython as a Foundation for DSLs, I had a strong sense of deja-vu. I went thru a very similar thought process when I discovered the early versions of IronPython were written in Python. I figured that meant Python must have some support that makes building compilers easier. Unfortunately, that doesn’t turn out to be the case. Python provides a standard module called parser which “provides an interface to Python’s internal parser”. That means that compiling Python is easy, but there’s no support for compiling any language other than Python.

I’ve been doing a little experimenting in this space. First, as I’ve written before, I’ve been playing with parsing expression grammars. Second, I want to take a close look at Metaphor from QUT:

Metaphor is a programming language with support for type-safe run-time code generation — a form of meta-programming. Metaphor is based on a subset of C# or Java and combines the imperative, object-oriented nature of these languages with the multi-stage programming constructs from MetaOCaml. Metaphor uses the static type system of multi-stage languages to achieve compile-time safety of run-time generated code…

Metaphor is implemented as a compiler on the Microsoft CLR.

Finally, I need to take a closer look at ANTLR. Don’t know how I missed it, but I had never seen ANTLRWorks until Larry linked to it.

SOA Sample Scenario

So now that I’m back, we’re beginning work in earnest on my project. For those not following along at home, my project is to deliver shared service oriented infrastructure for Microsoft’s internal IT department. We’ve spent the time since I moved over working on our business justification, and now we’re moving into specifications and prototyping. That is, I get to starting getting my hands dirty.

As part of the prototyping efforts, we’re looking to build some sample business services on top of our prototype infrastructure. The idea being to both illustrate what we’re building as well as have a playground where we can experiment with new ideas. During the prototyping, I’ll be pretty involved with the development. But once we start writing production code, the dev team will take that over but I will continue to own the service playground. I’ve been kicking a playground idea like this around for several years, so I’m pretty excited about it.

The question is, what kind of business scenario should we build? I want the sample business services to be something interesting and real-world-esque. But of course, it can’t be too complex since I wasn’t hired to build a playground as my primary job function.

So far, we have two primary ideas:

  • Enterprise Management System: AdventureWorks is the primary sample database that ships with SQL Server. They have business scenarios around Sales & Marketing, Product Management, Purchasing and Manufacturing. This sounds suspiciously like an ERP/CRM/SFA type enterprise system. On the plus side, MS is an enterprise so things like ERP/CRM/SFA are the types of solutions we need/use/buy/build internally. On the negative side, it’s complex to do real-world and teams that actually do ERP/CRM/SFA inside Microsoft might dismiss the infrastructure if the playground isn’t real-world enough.
  • Prediction Market: If you’ve ever seen Hollywood Stock Exchange (HSX) or Tradesports, those are prediction markets. The basic idea is that you trade on predictions, rather than companies like you would in a stock market. Using HSX as an example, you get 2 million “Hollywood Dollars” (i.e. play money) to invest in upcoming movies and / or movie stars. Those movies and stars pay out based on the money they make at the box office. They also have derivatives for opening weekend, blockbusters and the Oscars. HSX even sells forecasting and prediction services based on the HSX market. Of course, I can’t build something quite so extensive, but we could get pretty far with this idea. The upside is that it’s relatively simple (compared to enterprise management systems) and there’s little conflict with existing systems inside Microsoft. The downside also is that it’s relatively simple and not like anything we’re building inside Microsoft.

I’m leaning towards the prediction market, as it sounds more fun to build and experiment with. What do you think?

Here Has Moved (And Will Move Again)

I’m back from my two week vacation (note to self: two weeks is about three days too long for a three and one year old to be away from home). But here isn’t where I left it. While I was gone, my team moved into a new temporary space. On the plus side, I have an office instead of a cube, the team is all together and this area of the building is pretty deserted, so it’s quiet. On the downside, I’m sharing the office with the program manager for my project and as I said, it’s temporary. I guess there’s no point unpacking.

Update: about 30 minutes after I posted this, we got the official email that we’re moving at the end of the month.