Tuesday, August 28, 2007

The glamorous life of working in video games

Many of you probably know by now that I work for a video games company.  Those who don't work at one must wonder, "What's it like to work at a video game company?!  It must be very glamorous.  What is your day like?"

People ask me for free video games.   That's the life.

I've never minded friends asking for free video games.  And I'm only mildly annoyed when acquaintances ask for free games.  It's the strangers that annoy the shit out of me.

A few months ago a coworker and I were walking to a nearby coffee shop and a teenage kid asked us if we worked for the notable, large video game company that we were obviously walking from.  We said we did work there.  He then harassed us for our entire walk asking for free video games.

To most adults, I reply "Support the cause, please buy the game for full price!  We have to sell 10,870 copies of that game to pay our new executive's salary!"

The weird part is that I think it is exclusive to video games.  When I was working on movies, no one would ask me for free DVDs or free movie tickets.  Why? 

Likewise, do people ask friends at Google for free adwords?  Friends at Starbucks for free coffee?  Friends at Microsoft for free Zunes (if someone out there wanted one)?

Ok, I know that everyone calls up their friends at Pixar or Apple to get the Mac discount, or Imageworks to get the Sony discount, so maybe I'm being too harsh about this.  People will probably think I'm weird anyway because if friends ask for a game from our company as a gift, I sometimes buy it for full price at Best Buy.   For one thing, I feel cheap if I give them a free gift.  The other part is any little thing that helps the bottom line helps my stock, right? 

Yeah, I wish.

Monday, August 27, 2007

Media Center Markup Language -- why?

This story starts off two nights ago, when I spent a considerable amount of time trying to get my Xbox 360 re-connected to Vista.

That's the thing about Microsoft products. They offer more verticality, if that's even a real word outside of software marketing buzzspeak, than any other solutions on the planet -- IF you can get them to work in the first place.

My 360 and Vista work together really great -- except for the last couple of weeks. Foolishly, I had tried to use Internet Connection Sharing to hook up a second computer without a wireless card to my Vista computer, which is on Wi-Fi. This Redmondesque booby trap prevented the 360 and Vista from communicating with each other... even though I could see the 360 in the Network panel. Really, how do you write software that can have a bug like that and not be otherwise completely broken? It's pretty remarkable sometimes what Microsoft is able to ship and have work for most customers.

After turning off ICS -- by the way, you have re-enable the second connection to get the Sharing panel to show back up to disable ICS; that's another gem hidden in Vista -- I was able to watch my Amazon Unboxed movie and everything was swell.

That's not where this ends though. That was just some random sniping at Microsoft for what follows.

In the process of methodical Googling to find out what the problem was, I came across info about the Media Center SDK. I was intrigued. Being a chronic adopter of all technology meant I had to take a look at it to see what it was about.

Booby trap.

I have a lot of respect for Media Center. I think they've done a great job with it and it's awesome that it basically ships with all mainstream consumer versions of Vista. That said, how did this group come to think that what the world needed was another brand-new markup schema for describing UIs?

That's right. MCML -- Media Center Markup Language. It's like XAML... except it's not at all like XAML. My spidey-sense tells me MCML is on its own island within Microsoft. No UI designer, sparse documentation and no other applications that use it. It's also pretty arcane for what it is. As an outsider, it seems the MCE team had a slight case of "not invented here" syndrome when they decided to take this on.

Why do this?

Well, I can see the tech requirement that led to this kind of thing. They wanted a generic markup language that would work across Media Center extenders like the Xbox 360. They didn't want to have to mess around with unproven technology like XAML.

Of course, there's a little markup language called HTML that can be scripted with Javascript that seems to work for a lot of applications. And hey, I think Microsoft has a pretty good engine just sitting around for that exact pair.

That's not to say the MCE team doesn't tell you how to use XAML or even HTML if you want to. You can do it, but they have a fraction of the documentation and it can't be used on Xbox 360 with any performance.

I have no problem with a custom markup language when it doesn't require ripping up all precedent and can still work with tools you already use. A great example is Facebook's API. Their FBML is comprised of simple extensions to HTML. Plus, it is the only API they offer, so devs won't be very worried about its future with respect to Facebook.

That last bit pretty much surmises how I feel about all Microsoft development that isn't in the mainstream at Microsoft: fear of losing long term support. Something like MCML has the potential to leave third party devs out in the cold when the SDK/project gets canned. An astute MCE developer should concerned that this is the only project at Microsoft putting its weight behind this solution -- and this project isn't exactly a raging success.

The funny thing is that all of the alternatives web people are talking about are Silverlight or XAML based. Newsflash: developing on top of Silverlight doesn't help your chances of longevity (In fact, it probably reduces it. I'd hazard a guess that SL gets canned before MCML).

In any case, can someone please explain why Javascript and HTML wouldn't have worked? What great advantage am I missing that MCML provides?

This harkens back to my JavaFX vs. Silverlight vs. Flash vs. DHTML/AJAX post. The only real players in the next 5 years will be DHTML and Flash -- especially after ECMAScript 4 allegedly merges Javascript and Actionscript.

Sunday, August 19, 2007

Programming a Chamberlain garage door opener into your VW HomeLink

My wife has a Volkswagen Passat and we just moved into a place with a Chamberlain garage door opener that uses a rolling code. The normal VW instructions don't help you figure out how to program these types of garage door openers. I found some instructions on VW vortex which describe how to do this. I'm going to paraphrase the instructions here so people searching for this kind of thing can easily find it.

  1. Park your VW in the garage and turn on the ignition (don't start it -- just turn it to "on" without starting). I find this easier than trying to run outside and inside.
  2. One side of your Chamberlain garage door opener will have the radio underneath the plastic light bulb cover. It's the side where the wall remote wires come in (if there are wires). Pull down the light bulb cover and press and hold the "learn" button until it goes out. This resets the codes and none of your remotes will work anymore.
  3. This part is exactly like the VW manual and is how the car grabs the frequency of the remote: go to your VW and press and hold the HomeLink key you want to program. When it starts blinking slowly, also press the button on your garage door remote and hold it down until the light blinks fast. Make sure to hold the remote up near the HomeLink panel. After it blinks fast, let go of both buttons.
  4. Go press the "learn" button again on the garage door opener and it will light up solid (you don't need to hold it).
  5. Now go back to your car and press the button you programmed before. Hold it until the garage door opener's lights blink, and you hear a click. Mission accomplished! If you press the button again, it will open the garage door.
  6. As mentioned, your remote will no longer work. Go back to your garage door opener and press the "learn" button briefly, until it goes solid. Press the button on your remote and the garage door opener lights blink again. Your remote and your VW should both work.
Hope this helps someone.