Patrick and Daddy’s Xbox

Last night, after his sister had gone to bed, my three year old son Patrick and I spent some time playing on “daddy’s Xbox”. He wants Cars and Viva Pinata for Christmas, but I fired up the Sonic the Hedgehogdemo and handed him the controller. He’s only three, so he would basically run around in a circle and jump until he fell off the very tall tower the demo starts on. He enjoyed it, but he was also a little discouraged because he wasn’t very good at the game.

That got me thinking about what kind of games would be good for him. He’s not that good with the controller yet, so fighting bad guys or navigating a ledge on a tall tower are not great bets. Likewise, three year olds aren’t that good at focusing on a specific goal like “pick up all the rings” but would rather just explore the world. Viva Pinata sounds like it’s right on target for Patrick (plus, he likes the TV show). But what other games really fit the bill? Not many. Patrick loves Cars – he wants to be Lightning McQueen so bad – but I’m not sure he’s going to be any good at the game.

I wonder if there’s much of a market for pre-school console games? Probably not at the $50-60 price point, but as a $5 or $10 Xbox Live Arcade game? Maybe so. I’ve played around with XNA Game Studio, but I haven’t really been inspired to build anything. Maybe I’ve been looking in the wrong place for inspiration!

Update: My father had a great suggestion. Patrick loves Handy Manny and Bob the Builder, so how about some type of Mr. Fix It game where you can go around building and repairing stuff. Sort of Grand Theft Auto with tools, but for three year olds.

Thoughts on Election Day

I’ve had a few days to savor the Democrat landslide victory this past Tuesday. I was half right about the razor thin majorities. Democrats have a slim two seat advantage in the senate, but a fairly significant thirty-four seat majority in the house (with ten races undecided). Given that the Republicans had a twenty-eight seat majority in the last congress, that’s a pretty significant turnaround for the Democrats. Frankly, I’m pretty excited.

Here are a few short takes on the election:

  • We can close the book on Rove’s “permanent republican majority” pipe dream. America isn’t a conservative country. It isn’t a liberal country, either. It’s a moderate country. Liberal and conservative are the words we use to describe the direction one diverges from the middle ground. This election was decided by the moderates in this country, which isn’t surprising as the bell curve tells us that it’s the moderates who are in the majority. Political parties ignore the middle at their own peril.
  • Democrats didn’t win the election on Tuesday, the Republicans lost it. Hard working moderate Americans have limited tolerance for ineptitude and corruption, as the Democrats found out in ’94 and the Republicans found out this week. There are those on the left howling for elephant blood, but spending time exacting revenge on the Republicans won’t solve any of America’s hard problems. The Democrats are talking like they realize this, but actions speak louder than words.
  • Speaking of actions and words, President Bush talked a good talk Wednesday, but I’ll believe President “The Decider” Bush honestly wants to “work with the new Congress in a bipartisan way” when I see it. Trying to push John Bolton’s confirmation as well as retroactive authorization for the warrantless wiretapping program through congress before Democrats officially take control isn’t a promising start.
  • There’s no such thing as a political party that actively works for limited government. It isn’t that surprising, as it violates my Numero Uno theory. Individuals may want limited government, but there’s no way a government entity like a political party will actively work to reduce their own importance. Republicans claim to be for shrinking the federal government, but their actions contradict that claim. Republicans like Reagan and Bush cut taxes, but they never actually cut spending to match. As such, the Federal Debt / GDP ratio has about doubled in the past 18 years, with the only reduction coming while Clinton was in office. Claiming to cut taxes without cutting spending is like claiming you’re making more money because you’re not paying your mortgage. Republicans aren’t cutting taxes, they’re deferring them. It’s time to realize that you can’t starve the beast and move on to more pragmatic policies. Better a tax-and-spend liberal than a borrow-and-spend conservative.

Update: In the interest of bipartisanship, here are some less than reputable Democrats poised to take key positions in the new Democrat controlled congress. Making someone with a congressional impeachment or under FBI investigation the chair of a congressional committee isn’t a promising start to “draining the swamp”.

Common Ground with My Conservative Teammates

I came in this morning to discover my boss and next cube neighbor Rick had decided to spruce up his cube with camo netting. He’s ex-Army, so it’s not like it’s out of character for him. Of course, the camo netting has the exact opposite of it’s indented effect, making Rick’s cube very easy to find in the farm.

Unlike my last team, most of my teammates are conservatives. But apparently we can find common ground in our opinions of Defense Secretary Rumsfeld. Rick called him an abysmal failure. I couldn’t agree more. Dale joked that Rumsfeld was joining our team and moving into Rick’s newly camo festooned cube. Rick countered that Rumsfeld was actually joining the Enterprise Architecture group. Heh.

Update: Dale points out he made the joke about Rumsfeld joining EA, not Rick. My bad Dale.

Certainly Not Politics As Usual

Today is the Midterm Elections here in the United States. If the pre-election day polls are to be believed, it looks like good news for the Democrats and bad news for the Republicans. The big question is whether the news is good/bad enough for Democrats to take control of one or both houses of Congress. I guess we’ll know by tonight.

But this post isn’t about the midterms. Don’t get me wrong, I hope the Democrats take back both houses of congress. But whoever ends up controlling Congress will have a thin majority at best, which will limit their ability to accomplish much. Frankly, the only area that I would expect to see much traction is on issues where moderate Republicans can reach across the aisle and vote with the Democrats in order to distance themselves from President Bush’s abysmal approval ratings.

I’m much more interested in the 2008 presidential campaign. For the first time in over 50 years, it will be a wide open race for both parties. Neither the sitting president nor the vice president will be running for president in 2008. The last time this happened was in 1952. President Harry Truman (D) dropped out of the race after losing the New Hampshire primary and Vice President Alben Barkley never had enough support to win the nomination. The Democratic nomination went to Illinois Governor Adlai Stevenson who lost to General Eisenhower in a landslide. Since then, the incumbent president or vice president has always been his party’s nominee for president.

Until now. Well, until two years from now at any rate. So while not completely unprecedented, this is the first time we’ve had a completely wide open race since the start of the Information Age. In other words, it’s the first time we’ve had a wide open race since the advent of cable TV, personal computers, 24 news networks, Rush Limbaugh, the Internet, weblogs, Wikipedia and YouTube. I’m sure some have already started calling this Politics 2.0. And while I’m tired of the “2.0″ moniker, certainly big changes is underway in the political arena.

So what happens when you combine the harsh sunlight of a decentralized and demassivied media with a wide open race with no clear favorite from either party? I’m guessing a very ugly race, especially from the Republicans. Both parties do negative ads, but they have become a “key strategy in the Republican political arsenal“. (The NRCC apparently spent “more than 90 percent of its $50 million-plus advertising budget” on negative ads this year.) I expect 2008 will be even worse. And not just the presidential race itself, but also the race for each party’s nomination. In some ways, the nomination race will be worse, since you expect politicians to have bad things to say about candidates from the opposing party.

If the next two years are filled with party infighting with every detail chronicled in the blogosphere and/or the mainstream media – and I fully expect that’s what will happen – we are in for a very ugly campaign ahead. Brace yourselves.

Slight Workflow Annoyance

One of the cool things about WF is that you can specify the GUID it uses to identify a workflow instance. WorkflowRuntime.CreateWorkflow has an overload (actually two) where you can specify said workflow instance identifier. This is awesome for using WF with Service Broker, as Service Broker already has the idea of a conversation group which is roughly analogous to a workflow instance. Conversation groups even use a GUID identifier, so there’s not even any mapping required to go from conversation group to workflow instance.

However, things get less cool when you call WorkflowRuntime.GetWorkflow. If you call GetWorkflow with a GUID that has no corresponding workflow instance, it throws an InvalidOperationException instead of just returning null. That seems like an odd choice. If you’re going to support specifying the instance identifier when you create the workflow instance, doesn’t it make sense that you should also gracefully support the scenario where an instance identifier is invalid?

I see two ways to deal with this:

  • Iterate through the list of loaded and persisted workflow instances looking for the one in question.
  • Call GetWorkflow and swallow the exception.

I ended up picking the “Swallow the Exception” approach as I can’t imagine the iteration thru every loaded and persisted instance would be very performant. But swallowing exceptions always makes me feel icky. I’m a fan of the “exceptions only for exceptional situations” approach and as far as I’m concerned, an invalid instance identifier isn’t that exceptional. Still, it’s a minor annoyance, especially given how cool it is to be able to specify the workflow instance identifier in the first place.