Scott Hanselman

Happy Birthday to Mii - Wii Review

January 21, '07 Comments [35] Posted in Gaming | Reviews
Sponsored By

My Wish ListMy birthday is actually Monday, but my supercool wife Mo got me with a huge birthday surprise today. She organized the whole thing with my whole family chipping in and I never suspected. Without knowing (or caring) what a "Wii" is, turns out she'd been driving all over Oregon all last week, while sick, looking for a Wii for mii. She saw my Amazon Wishlist and went off hunting for a Wii. The amazing part is that she actually thought it was US$450 because I added a "bundle" to my list, and was thrilled when it was $249. Still "ridiculously expensive why do you have so many gadgets," but cool when one finds that something is nearly half what they expected it'd be.

Lately I've been thinking about games and hobbies that would bring family and friends together, rather than Gears of War style games that I can't play with anyone but the sick bastards at work. :) My buddy Eli and boss Chris have turned me on to alternative (my word) boardgaming, and that'll be the topic of this week's Hanselminutes. More on that later. I'm looking for games that are fun. Full stop.

I did research on the Wii for the podcast on Next Generation Gaming, although I got a few things wrong, I generally had the right idea. The Wii - specifically the controllers and the experience - is built to be fun, and really stretches the classic controller design assumptions.

It's tiny, the Wii is. Quite wee, in fact. It's smaller than the Xbox360's HD-DVD by a considerable margin. It's of course, easy to hook up as it includes Composite RCA cables, and a sensor bar. Everything else is wireless.

The sensor bar appears to be two IR receivers on a foot long bar that has to be mounted either above or below your TV. From what I can glean in an hour, there's two physical transmitters next to each other on the Wiimote and there's two receivers. When you're pointing the controller (folks talk about calibrating, but I never saw those screens. It just worked.) it knows the orientation (if you twisted your wrist) as well as the location you're pointing to. The IR details, along with the internal gyroscope and accelerometer give it a pretty decent idea of where you are. The little floating hand cursor actually twists with you. It's very much like the Gyromouse of years past. (Folks are hacking the Wiimote for Linux and Windows, but it's kind of pointless as that controller is freely available. I use it for my Media Center.) I believe Nintendo either bought or sleeps with that company.

The Wii outputs composite, but you can get Component Cables that'll do 480p. I believe I'm out of Video Inputs though, so I'm just plugging it into the Camcorder front jacks on the Receiver. I seriously doubt the screen quality would get THAT much better, considering that my Onkyo is upconverting the output to 480p anyway and pushing it through HDMI, but I'm probably wrong. I'll try the component cables one day.

I hooked it up, and went through a few menus. It was very Japanese minimalist. Big, clear buttons, simple menus. The hardest part was typing in the WEP key for my WiFi with the on screen keyboard. After that, the Wii went through a lengthy self-update process that seemed to have three parts. Not sure why it took so long.

I popped in the free Wii Sports game and tried tennis. It took literally two minutes to get it. The controllers really work well.

I thought it might just be me, so I figured I'd use my control case - the wife.

"Here dear, try this."

"Oh, lord, what is this. The video game; no you go ahead."

"Seriously, two minutes. Try it."

The video at left is the two minutes. She actually liked it. She liked it a lot. This is a woman who sees little value in the Xbox360 beyond Bejeweled. I asked if it was the controllers or the graphics that she appreciated (remembering to myself that she was wholly unimpressed while I foisted Topspin Tennis on the Xbox360 on her). She said that fact that there was no learning curve, and that we were 'off our butts.'

Wii Sports is a silly little ditty, but addictive and fun. I look forward to having four people playing mixed doubles. I hope that Nintendo comes out with deeper version of Wii sports...even a "Wii Summer Games" would be a blast.

At this point I can say that while the Xbox360 and Sony PS3 are both truly gorgeous, the Wii is just good fun. So far that's based on one game, and what I hear about Zelda. The current Wii lineup appears, IMHO, to be fairly weak. It'll take a year I figure for the developers to really do something interesting with the controllers beyond minigames.

The Xbox is all about community. It really is. I have at least 50 folks on my buddy list and I enjoy that distributed community. I get the impression that the Wii is also expanding the community to the person standing next to you. The DS and Gameboy were like that also with their game sharing and head-to-head features. Yes, I know that there's lot of systems that do this, and yes, I know that Fusion Frenzy was a great party game on the original Xbox. But argue with this: The number of times that Mo has played Gears of War with me is somewhere between zero and bubkes. Don't get me wrong, I enjoy the Xbox immensely when I get a chance to play it. But if there's a chance to spend time with the Wife, the Wife always wins. Ideally I'd combine the two hobbies and actually play a game with the Wife. The fact that she picked up the controllers and was losing a virtual tennis match two minutes later is a significant event, IMHO. The Whole Wii Experience was seamless, from Out of the Box to Game Over.

For now, if I were considering buying a console, I could totally recommend the Wii. Even after tonight's few hours with it, I suspect Mo and I will play Tennis a few times a week. I also think that the accessibility and non-existent learning curve might even get Mom and Dad using the Wii.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Windows Vista SideBar Gadget for AirLink Web Cam

January 20, '07 Comments [6] Posted in ASP.NET | Javascript | Tools | Z
Sponsored By

I've got an AirLink101 AIC250 Network Camera in the baby's room. I wrote about it when he was younger in a Coding4Fun article on Motion Detection. He's been sleeping through the night since he was about six months, so even though my Webcam application was a ClickOnce App, I got lazy, and didn't used it for several months. However, we just weaned Z and I'm now in charge of putting him to bed.

Putting a baby to sleep is a subtle art, not unlike defusing a bomb or tiptoeing through minefield. Sometimes he goes down well, other times, less so. We started using the Webcam again lately, but I wasn't really digging the application and the way that it integrated into our life. My wife and I like to check our email just after we put the baby down, and I like to watch the baby at the same time. The app was getting in the way, or it'd take up the second monitor, and while I could have fixed it, I realized that I really wanted to see Z in the Vista Sidebar.

I started digging into the various "Gadget APIs." A Windows Sidebar Gadget is just a tiny web page or pages, along with javascript, that runs in a specific secure host and has automatic access to the Vista Sidebar DOM as JavaScript Objects. If you want to access storage bags for settings or whatever, it's all javascript and bailing wire. MacGyver would love it. I, on the other hand, don't.

Well, that's not true. I mean, it's brilliant, really, all the Gadget APIs are very accessible to the Javascripty. I'm just not very Javascripty. The lack of a really good debugger has me using System.Debug.outputstring and dbgview.exe from Sysinternals. It's lovely, really, but "got here" debugging sucks.

Got here.
Got here.
Got here.

Anyway. Turns out that the AirLInk101 not only has a MJPEG (That's MotionJPEG, not MPEG, for those who are paying attention) stream, but there's as a single JPEG endpoint like this: http://babyroom/IMAGE.JPG?cidx=20071200134234234 where you append a random number on the end to make sure the browser doesn't cache.

Now, I could do this Sidebar a number of ways. I could:

  • Use the Java Applet or the ActiveX control that comes with the camera and host it inside the Sidebar. However, you'd have to log into the admin console once, first, to authenticate. Not to mention the "meh" of having that stuff running inside the Sidebar process.
  • Use Ajax/XMLHttp ala Flickr to get the image all async like and assign it to an image.
  • Use XBAP or WPF/E to do the work for me...this was beyond my patience for new technology as I just wanted to spend and hour.

However, I'm old school. Smells like a job for "setInterval" to me. Hunting for Sidebar Samples got me to Microsoft which is WAY old, but the Tutorial was useful. Interestingly the stuff that OdeToCode did was WAY clearer and more elegant, but I ended up using the stuff from the tutorial because it supported the many states that a Sidebar gadget can be in:

  • Docked
  • Docked, with a Flyout
  • Undocked and large (via a Setting)
  • Undocked and small (via a Setting)

I used the bare bones Virtual Earth sample to start with. Without getting to intense on the details, as you can just look at the code, I added a setting for the Camera Server that gets pulled out of the Gadget settings State Bag.

   1:  function procGadgetCore()
   2:  {
   3:      var serverName ="CameraServer");
   4:      if (serverName == '')
   5:      {
   6:          serverName = "babyroom";
   7:      }
   8:      gCameraServerURL = "http://" + serverName + "/image.jpg";
  10:      UpdateGadget();
  12:      startTimer();
  13:  }

It's my gadget, I use my camera's name as the default. The gadget can be many sizes, so I just resize the image as the gadget changes. I also append the unique-enough number to prevent caching.

   1:  function UpdateGadget()
   2:  {
   3:      var now = new Date();
   4:      imgCamera.src = gCameraServerURL + '?cidx=' + now.getTime();
   5: =;
   6: =;
   7:      System.Debug.outputString("Update Gadget" + imgCamera.src);
   8:  }

StartTimer() just does

   1:  function startTimer()
   2:  {
   3:      gTimerID = setInterval(UpdateGadget, gInterval);
   4:  }

I need to add the interval as a modifiable setting. Right now it's set to a half-second. Certainly less than the 10fps I get with the Webcam ClickOnce app, but I'm really just looking to see that he's OK, and 2fps fine for that and the CPU usage is negligible.

None of this matters to you if you don't have a Webcam like this, but here's the craptastical source. A gadget file is just a ZIP file, FYI. When you double-click it, Vista will ask install it and it'll show up in

%userprofile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets

You can get there by pasting that into Start|Run. Enjoy. Take a look at these places that helped me in this little project:

Night night.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Buy Local Art - Connecting with a Tanzanian Artist from Dar es Salaam

January 19, '07 Comments [0] Posted in Africa
Sponsored By

CIMG6880A little tangent for a second. While we were in Tanzania last month we bought a lot of art. We usually "load up" and much of our house is African Art. I was an Afrophile long before I met my wife, and at least half the collection is mine., including two very large Amharic Fidel that I'm particularly fond of. Anyway, while we were in Arusha we had the good fortune to stop by Viavia, considered the least commercial of the local cultural heritage spots (here's photos in Flickr tagged "viavia" for a taste) and we met a young artist named Devdeo.

He really connected with my Mom, but as we had just arrived a day before, my Mom wasn't quite comfortable "putting her heart on her sleeve" and she didn't buy. The artist left for Dar es Salaam the next day. Fortunately Mom got his card, and remembered the art she wanted. We used SMS text'ing over the next week once she'd come to her senses and young Devdeo gave his art to a friend who was taking the six hour bus ride from Dar back to Arusha.

In this case we didn't negotiate prices because we felt strongly about helping young artists, and the prices were quite fair. I also mentioned to Devdeo that I'd put his art on my website, a prospect he found quite "fantastic."

His email is "devdeo" at the domain (obfuscated for anti-spam) and he welcomes comments and inquiries. Most Africans with email that I met use free email in a domain it turns out.

My name is Devdeo.
I'm mainly an abstract painter but also i 've some realistic paintings. I age 23 yrs old.
I was born in Kilimanjaro, Tanzania, in may 1983. Started drawing comics at age of 5, in 1988.
I've not attend any fine art or painting school, but am dreaming of got one. Now living in Dar es Salaam, Tanzania. Painting on canvas or paper with acrylic, oil, oil pastel, dry pastel or water colours. I don't have a studio just paint at home.
I have been participating in art festival or exhibition and looking forward for more and I'm Not married.
I love painting for sure, that's wat i sleep think about it and wake up think of it....ha ha! U kno wen am painting i feel like am the creator! Is something am free to do the way i like. My bottom line i have a "heart of art".
My contacts, Mobile: +255 784 235 235.
My Address is P.O.Box 34073, Dar es Salaam Tanzania.
Thanx scott,

Devdeo encourages emails and SMS text messages with questions about his art, and art in Tanzania. He's also on Windows Messenger and Yahoo messenger with the same email as above. If you're visiting Tanzania, SMS him and say that you heard about him from Scott's website.

If you visit a country not your own, do try to connect with locals, especially young artists. We met many artists, some old, some young, most very talented. This young artist wants nothing more than any other artist, to support himself and create, and that stuck out in our heads.

My mom carried the four original works that she purchased from him with incredible care on the 25 hours of airline travel and they are now lovingly framed and displayed in her house in Oregon. She now feels more connected to Africa and this young man, and I was, and am, happy to have been a small part of that.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Hanselminutes Podcast 47 - How to start your own MicroISV

January 18, '07 Comments [4] Posted in Musings
Sponsored By

My forty-seventh Podcast is up. In this one, we talk to Leon the SecretGeek - who is 1/2 of TimeSnapper - about his 25 steps to starting your own MicroISV. NOTE: We cover most of the steps in the interview, but you'll want to visit today for the complete list.

We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well.

Subscribe: Feed-icon-16x16 Subscribe to my Podcast in iTunes

Links from the show are also always on the show site. This particular show had some great links, do check them out. Do also remember the archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Our sponsors are CodeSmith Tools, /n software and the .NET Dev Journal.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

  • The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support.
  • Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at
  • I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
  • If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Optimus Mini Three Keyboard and Windows Vista SideShow

January 18, '07 Comments [5] Posted in Tools
Sponsored By

Golly, it sure seems to me that the Optimus Mini Three Keyboard (ThinkGeek - ORDERED) would really suit Windows Vista SideShow very nicely. SideShow is Vista direct support for "helper displays." That might be three lines of LCD text on the back of a laptop on standby, or it might be a 320x240 color screen on your wall talking bluetooth. It'll certainly make Continuous Integration build monitors fun to write. :)

Of course McLaws is already over the general SideShow idea, and the the list is obvious. As SideShow APIs are fairly clear (MSDN) and the SideShow blog is very active, so I predict a LOT of motion in this direction soon.

Here's some ideas on what needs to be written:

  • SideShow adapters for Ceiva picture frames. Actually, this is a great idea. I think I'll start with this guy's Serial Port adapter for Ceiva, and flash my old picture frame with Linux, then write the SideShow stuff in C#.
  • SideShow using your PocketPC or SmartPhone as the display, over Bluetooth or WiFi.
  • A user-written XNA game for 360, where the XBox360 itself is the SideShow display.
  • Making a CrystalFontz LCD work with SideShow. Hm...I've got one of these lying around. I don't think there's a minimum device standard.
  • SideShow for the Optimus Mini-Three...this would ROCK. That'll be worked on this weekend...
  • I wonder if I can control the LCD on my Canon Pixma m550 Printer?
  • How long until Logitech updates the G15? They're obviously working on it - they'd be incredibly short sighted not to - it's too bad they haven't jumped in earlier with beta stuff.
  • There will be better Remotes that'll do it, but too bad my Harmony 880 Remote isn't wireless...

If your a company and you've got a cool device, email me, and let's talk about getting SideShow to talk to it, and I'll do a Coding4Fun article on SideShow. If you're the SideShow team, let me know what device isn't done yet, and I'll do it.

One very lovely thing to note about SideShow that will enable all sorts of crazy nonsense - from the docs:

The Sideshow platform is connection agnostic. It doesn’t matter whether an auxiliary display is connected through USB, Bluetooth, TCP/IP, or other future protocols, as long as the appropriate user mode Sideshow transport driver is present. is starting to collect news on all things SideShowy. Any other ideas on crazy SideShow stuff?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.