Vista Frustration

Vista is a well beaten dead horse.  Microsoft is embarassed of it, and is rushing to get Windows 7 out the door in the hopes that the world will forget Vista ever happened.  In the meantime, the world is largely ignoring Vista and staunchly sticking to their XP installations.  Personally, I've installed Vista on my work laptop and on my home PC, while leaving the PCs that my wife and kids use on XP.  

For the typical home user there is no compelling reason to upgrade to Vista.  There is nothing that Vista offers you that you aren't already getting from your Windows XP machine.  If you are one of those hold-outs hanging on to your Windows 95/98/Me edition could get a lot of of XP, but don't go all the way to Vista yet.

One feature that I have grown to like in Vista is the universal search on the Start button.  Hit your Windows key and you can start typing.  Type the name of the application you want to run, and it hunts down the shortcut.  Type the name of the document you want and it lists all matching files.  Type in a URL and it gives you a link to that website.  It is really handy, and I find myself missing it when I move back to an XP box.  Aside from that, the Aero interface is pretty but adds no tangible value.  You would be hard pressed to name any other Vista improvements that would compel you to switch.

What you will find are a bunch of frustrations though.  First, most of your older hardware just flat won't work.  Have a printer that is more than a couple of years old?  Won't work.  How about that scanner you've had for three years?  Nope, that won't work either.  Webcam?  No.  Grrr..  Vista will also gladly gobble up any extra memory you have around.  Remember two years ago when the whole Vista Capable effort started?  At the time, Vista was just on the horizon and PC manufacturers were selling units with the Vista Capable sticker to let you know that it would run Vista perfectly well.  Not so much.  These machines, outfitted with modest graphics cards and 1GB of memory or less, were horrible Vista platforms.  Vista gladly gobbled up that 1GB of memory for itself and then asked hungrily for me, denying the applications that you wanted to run any memory for themselves.  It consumed the majority of your hard disk, and it busied your graphics cards with moronic things to do like rendering the desktop in 3D, or animating your wallpaper.

On top of those intentional frustrations, there are also a number of unintended frustrations.  For one, you may notice that after time the Network, Sound, and Battery indicator icons in your system tray fall of the end never to be seen again.  For reasons unknown, Vista will occassionally reset the preference to display these, forcing you to find the arcane place where you can ask to have them displayed again.

One frustration I recently dealt with had to do with my CD drive and iTunes.  When iTunes installs, it installs a custom CD driver to assist in burning discs.  Unfortunately, this driver is exactly comfortable running on Vista x64.  Recent revisions of iTunes are much better, but the hangup is that if you ever decide to uninstall iTunes, your CDROM is going away with it.  You see, the custom driver doesn't uninstall properly along with iTunes, and it leaves Vista thinking that the drive is broken.  You have to perform a registry hack to get it back (documented here).

So here's some friendly advice from a geek.  If you have never owned a PC before, and you have no existing equipment that you want to run on a new PC, go ahead and purchase a PC with Vista installed.  Most PC's today with Vista installed have the necessary memory and graphics to get the job done, and you won't experience the pain of trying to get all of your old stuff to work.  If, however, you've been using a PC for more than 2 years, don't bother with Vista.  If you absolutely must buy a new PC, ask for it to be downgraded to XP, or see if you can get a refund for Vista and use the money to buy a copy of XP.  You'll save yourself a ton of frustration, and won't be missing anything.

Prepping for Winter

Burnout Paradise

A buddy of mine at work was generous enough to loan me a bunch of PS3 games.  He is knee deep into the Wrath expansion for WoW, and so he said he wouldn't miss them for a while.  Initially I set them aside as I really wanted to get to 100% treasure collection on LittleBigPlanet, but now that I have achieved that goal, I was ready for something new.  

The first game we pulled out of the stack was Sonic the Hedgehog.  Now, I loved Sonic on my old Genesis, so I had some expectations going in.  Ooooh, was I disappointed.  Gone are the 2D platforming levels with insane speed (thank you blast processor!).  Today's game is filled with 3D platforming at it's worst.  Every conceivable issue that could afflict a 3D platformer is here: unclear objectives, horrible character control, uncooperative camera system, and outright bugginess.  If you get this game in your stocking this holiday season, don't even bother to unwrap it.  Just take it to your nearest games dealer and hope they give you $5 on trade-in for it.

So I set that one aside and picked up the next on on the stack: Burnout Paradise.  If you've played any of the Burnout series of driving games, you know that the series is far from a pure racing sim.  In Burnout, crashing your car in the most spectacular way possible is part of the fun.  First, let me say that this game is gorgeous!  The vehicles, the environments, and the wrecks are just amazing.  This is what next gen console play is all about (sorry Wii, I love you man, but this is not your forte).  The gameplay itself is a lot of fun too.  The game is set in an open environment that is Paradise City (cue G'n'R).  You can simply cruise around in your vehicle enjoying the environment at your leisure, or you can pull up to any stop light and hit the gas and brake to start an event.  The events are one-on-one race, group race, stunt run, marked man, road rage, and burning route.  The first two are typical racing fare.  Marked man and road rage are variations on a smash up derby.  In marked man you are the target, and your goal is to get to your destination in one piece while your opponents attempt to destroy your vehicle.  In road rage, it's a roadway free for all with the objective to destroy a target number of opponents.  The burning route is a special timed race that, if you win, you get a new version of your vehicle.

This game is a lot of fun, but it can be a little daunting to first jump in.  With so much city to explore it is easy to get lost during a race.  There are lots of times that I'll manage to get the lead only to see the pack peel off to a side street while I barrel down the road heading the wrong direction.  

Burnout Paradise supports Trophies, so if you are a trophy hound this is another opportunity to get your fix.  The PS3 is my first experience with a trophy system and I'm finding that I really enjoy it.  It's giving the games a lot of replay value as I try to attain the more difficult goals.  It's also fun to compare my trophy collection with other folks on PSN just to see how I rank against other folks.

I noticed that Burnout Paradise is now available as a download on the PSN Store for $30.  If you own a PS3 and enjoy driving games, $30 is an easy investment for this kind of fun.

BeginRead Weirdness

I've run into a bit of an interesting problem with some code I'm working on.  It deals with asynchronous reads on a stream.  Here is a simplified version of the problem:

I have a network device that communicates by a TCP socket.  The client software connects to that TCP socket and issues commands.  Every command should receive a response from the device.  A new command must not be sent until the response to the last command was received.

So initially I wrote some code that looked like this:

public class Reader
private readonly Stream inStream;

public Reader( Stream in )
inStream = in;

public byte[] ReadResponse()
byte[] buffer = new byte[256]; 
inStream.Read(buffer, 0, buffer.Length);
return buffer;

This code worked just long as the device responded to my command.  Sometimes, the device wouldn't respond.  This might be because the device was unplugged before the response was sent (in which case my Read attempt would eventually return indicating the end of the stream was reached) or the device simply failed to respond to the command.

So now what I wanted was a way to deal with the device simply not responding to a command.  I needed some mechanism that would allow me to block on the read for only a little while.  A perfect place to use the asynchronous read!  So I modified my code to this:

public byte[] ReadResponse()
byte[] buffer = new byte[256]; 
IAsyncResult waitHandle 
= inStream.BeginRead(
bool waitResult 
= waitHandle.AsyncWaitHandle.WaitOne(
return buffer;

This change will read back the response if one is returned, or stop blocking after 5 seconds elapses without a response.  This works as I expected - the WaitOne returns as soon as data is available, or after the timeout period.  If the waitResult indicates that the timeout occurred, I can send my next command.  Here is where the weirdness is: the BeginRead attempting to read the response to the first command now reads the response to the second command!  This results in my latest command never receiving a response. 

So my question is, how can I block on a read for a specified period of time and avoid consuming the next byte arriving on the stream if the timeout occurs?  

I've tried a couple of things, and I have a working solution, but I'm not satisfied with it.  My current solution is to use a NetworkStream rather than a base Stream.  I would prefer to use the basic Stream type as it allows me to apply this reader to any Stream source and not just NetworkStream sources.  The NetworkStream has a DataAvailable property that returns true when data is available to be read on the stream.  I poll the DataAvailable property until data arrives or my 5 second timeout occurs.  This avoids the erroneously consumed byte.  However, in addition to the reliance on a NetworkStream source, it also introduces inefficiency as I poll the DataAvailable property.  I can either cause the CPU to spike by continuously polling the property, or I can introduce a Sleep.  The Sleep will allow the CPU usage to remain low, but also means that if the data becomes available while the thread is sleeping, I'm wasting time that could be spent processing the data.

What I really need is a way to cancel the thread that is waiting for the response asynchronously.  Unfortunately, the .NET framework doesn't support this concept.  So my only option to get this working the way I really want is to craft up my own Asynchronous read method.  Unfortunately, I can't think of a way to do this that avoids the polling scenario I have already implemented.

Long Flights

The delay since my last post is due to a business trip I had to take.  It involved a couple of really long flights on really large planes.  It left me with a couple of thoughts.  So this post is in the outstandingly unlikely hope that some influential person in the airline industry is reading and acts on these comments.

First, airline food has improved quite a bit from what I remember.  Domestic flights rarely offer you more than salted pretzels, but this 12 hour between Detroit and Nagoya, Japan, had two full meals and a large snack.  Each dinner meal offered a choice of chicken or beef (sounds like a wedding reception) and each breakfast meal offered a choice between chicken and eggs.  I went with chicken for dinner and eggs for breakfast.  It was surprisingly edible...not something you would seek out of course, but definitely better than, say, elementary school cafeteria fare.  My only recommendation here would be to include more non-soda options for drinks, chocolate milk being at the top of my list.

Seating was a bit improved from my previous trans-atlantic flight.  Flying economy from Detroit to Amsterdam ten years ago, my knees were solidly wedged into the reclining metal hinge of the seat in front of me.  Whenever the passenger in front wanted to recline it resulted in spasms of pain and shuffling around on my part.  This flight gave me a good two inches between my knee and the next seat, which was greatly appreciated.  There is still a long way to go before this can be called comfortable though.  I opted for a window seat on all occassions because I like the view and I feel I'm bothered less in that spot.  Still, a cold war sprang up between me and the passenger next to me for ownership of the arm rest.  The "reclined" position of the seat is about a two degree difference from the upright position.  The worst part for me was that I could not get my head or my legs into a comfortable position.  The headrest of the seat seems to be sloped to intentionally cause the drowsy travellers head to crash into either the wall or the passenger next to you, leaving your neck sore.  I had a travel pillow, which was good for keeping my head in place but offered just enough padding that my head was always pitched forward.  There was nothing to be done about my legs.  I found the best I could manage was to put my duffle bag under my feet to elevate my legs a bit.  Getting up to take a stroll isn't really possible in the economy section.  Fortunately I'm not afflicted with claustrophobia, but after 12 hours of being held captive in tight quarters I was feeling a little delirious.

A couple of movies were shown during the flight as entertainment.  Honestly I would have preferred that they just leave the telematics data on display, as I found it more entertaining (we cruised at close to 600mph with an outside temperature hovering around -100 degrees btw).  The movies played were Baby Mama, Bonneville, and Swing Vote.  I'm sure some committee got together to determine which modestly recent films would be the most inoffensive to the widest possible audience.  Seriously, if those are your criteria, just shut the thing off.  IMDB has these films rated in the solid 6 out of 10, and barely making that 6.  Very few passengers were paying any attention at all to the screen.  Most were either a) trying in futility to sleep, or b) engrossed in some personal entertainment gadget or book.  

Storage was actually surprisingly good, although I wasn't carrying much onboard.  I had my laptop briefcase that I didn't want to leave my site, and a small messenger bag with books and gadgets in it to keep me entertained.  The overhead bins had plenty of room, and my bag fit comfortably under the seat in front of me.

The cabin temperature was nice and cool for the trip, possibly a little too cool.  It didn't bother me while I was reading, but when I tried to fall asleep I felt a distinct chill.  The provided blanket is some relief.

So here is the short form of the tips for the airline:
  • Wider arm rests
  • Chocolate milk
  • Better in-flight entertainment
  • Power outlet at the seat (even a powered USB port would be good)
  • Foot rests
Here is a crazy idea: how about bungee cord stirrups under each seat.  This would allow some resistance to stretching your legs without requiring that I disturb the other passengers to get up and walk.

Also, for any passengers out there readying for a long flight, here are some tips to help you survive:
  • Get a (thin) U-shaped travel pillow
  • bring a small bag with entertainment to stow under the seat
  • Use the airline blanket like a shawl, not like a blanket. Your legs will be warm because you are wearing pants like a sane person.  Your arms will be cold, so wrap the blanket around your back and neck and drape it across your arms
  • Use the airline pillow for lumbar support
  • Books can be read at anytime, unlike electronics that must be switched off
  • An iPod can be enjoyed with your head leaning back unlike a book where your head is pitched forward.
  • Bring a snack.  You may not like some of the food, or you may just get hungry.  Cookies keep well and are easy to stow in the seatback.

Blu-Ray Movie

Last night I got my first chance to watch a Blu-Ray movie on the PS3, and to be honest, I think I was hoping for a little bit more. Maybe the difference is more stark on a 1080p television, but on my 1080i set not so much. The biggest difference was in sound quality. I couldn't support the best audio option out of the PS3, but the bitstream option sounded better than our current DVD player does. The picture quality, while better, wasn't amazingly better. We have a progressive scan (480p) DVD player now, which looks great on our set. Our television is rear project 55" set that is about 5 years old. It uses the tradition 3-tube setup (3 monitors at the bottom, one red, blue, and green, converged by a mirror onto a screen), not the newer DLP, LCD, or plasma that are common in larger sets. Maybe with one of those newer technologies at the higher 1080p resolution it would really shine, but as it stands I'm less than blown away. The price premium for a Blu-Ray film vs. a DVD is anywhere from 50-100% depending on where you buy. So is it worth buying the movie twice to see this upgrade? For me, I'm not there yet. Hopefully the price of Blu-Ray movies come down over the next year as the price of players also fall and become more common place. Another hope of mine is to get a new big screen 1080p set so I can test my theory of the better picture on the newer set. Unfortunately, I don't see that one happening anytime soon :-P

I Voted!

Have you? Today is the big day! If you are registered to vote, haven't voted yet, and are able to get to the polls.... GET GOING!

PS3 and LittleBigPlanet

So after my rant about the lack of good games on the market, I lucked out and received a PlayStation 3 and LittleBigPlanet as gifts. After spending a day playing around with the system and game, I have some initial reactions. First, what a beautiful machine! The PS3 certainly has a professional look to it. It looks right at home among the other A/V equipment on the shelf. The main system interface is a little polluted, but not difficult to learn and navigate. The controller is going to look immediately familiar to anyone who has play a PlayStation 2, as the buttons and layout are identical. The only difference is the cord - a detachable USB cable. The controller that came with my unit is the new DualShock 3 controller, which has both rumble and the six-axis waggle.

After updating to the latest firmware and signing up for a PSN account, I scheduled a bunch of game demos and movie trailers to download. Here is where I think the PlayStation 3 has a real leg up on the Wii. The Wii Channel is meant to give you a way to view trailers and download demos of some DS games. The PlayStation Network (PSN) is so much better. Not only can you get demos for the PSP and PS3, but you can also get trailers for movies and a slew of great content. Downloads can be performed in the background, unlike the Wii where you must complete the download before doing anything else. I got a couple of trailers for Wall-E (I love that movie) as well as the demos for Mirror's Edge, LEGO Batman, and Star Wars: The Force Unleashed. The downloads were huge (over 1GB in the case of Star Wars), but it was nice to be able to do other things while they downloaded. I let the controller charge and went outside with the family while it finished the download.

The first demo I played was for Mirror's Edge. This is a FPS game that has you running and jumping much like a free-runner from rooftop to rooftop. This was also must first taste of the six-axis control, which I found to be grossly inferior to the Wii controllers. Really, if this is the best it can be used for, Sony should just save the cost of the parts and remove it from the controller. The biggest problem is that while holding the controller your hands simply can't move in a natural way to "waggle". Tipping forward and back is about the best you can manage. I was glad to see that none of the games I tried depended on this feature.

Graphically, the PS3 is night and day better than the Wii. This wasn't really a surprise, as the Wii has been described as two GameCubes duct taped together. Still, the system really brought out the best in our HD set. The HD trailers I downloaded looked phenomenal, as did the games. We haven't watched a movie on it yet to see how well it upconverts. I suppose the only drawback is that the crispness and brightness of the picture has me thinking about getting a 1080p set for the basement so I can see the machine perform at the highest resolution (our current set is 1080i).

This brings me to LittleBigPlanet. LittleBigPlanet has gotten a ton of media hype over the last few months. It's a simple platformer with gorgeous graphics. So what makes LBP so special? The interactivity and customizability. From the get-go, LBP is giving you the tools and showing you tricks on how to construct a fun level for a platform jumping game. You can either play the levels created by the game designers - there are 50 of them and the few I've seen are a lot of fun, or you can create your own levels. In addition, you can sign on to your PSN account and play levels that others have created, and other players can join you. It opens the door for some fantastic user-created content, and Sony is really pushing folks to come up with interesting levels. I think this will do wonders for the replayability of this game. The family has given it a try, and everyone is enjoying it so far.

If you have a PS3 and a sense of humor and fun, I can definitely recommend picking up LBP. If you are in the market for a Blu-Ray player and also enjoy games, the PlayStation 3 is a solid appliance. If you are in the market for a gaming system....I haven't seen enough to give a firm recommendation there. Between the Wii, the XBox 360, and the PlayStation 3 (not to mention the DS and PSP), you have a lot of choices to make about your personal preferences and style.


People who enjoy video games have a certain stereo-type:

  • Pale and Pasty
  • Overweight
  • Weak
  • Socially backward
It's not a pretty picture. Fortunately, that image is going through something of a change, thanks in part to the growing popularity of "exer-gaming" titles. Exer-gaming titles are games that require you to move around to play. These games fall into a variety of categories and styles.

Dance Games

There are a variety of dance games out there, but the most popular are the Bemani games published by Konami under the nam

e Dance Dance Revolution (DDR). In these games you must follow a pattern of footsteps displayed on the screen in synchronization to the beat of the music. You can start out light with just a few steps and a slow song, but you can really work up a sweat if you turn up the beat. Many iterations of the game include a workout mode that will count your steps and give you an estimated number of calories burned.

Drumming Games

The Donkey Konga series of games and Taiko Drum Master games utilize a drum / bongos and this can be a nice workout for your arms. The frantic drumming in Donkey Konga makes a heck of a racket, but it is a lot of fun. My son and I will play this together and it doesn't take long before we are both grinning ear to ear and wearing out our arms.

Full Body Workouts

The Wii Fit and the PlayStation Eye Toy both are used in games that encourage a full body workout. In the case of the Wii Fit, the accessory is intended fitness directly. The game that comes with it steps you through a variety of simple exercises and tracks your progress. The eye toy has a variety of uses, but in DDR games it can be used to also track arm movements. In this way you get a full body workout rather than just your legs.

There are a lot of options out there now for folks to change the stereo-type of the gamer.  And guys, if you need a little more encouragement to jump into this, here you go.

Jade Mason