Demo Failure: The Answer to the Puzzle

Demo Failure: The Answer to the Puzzle

  • Comments 1

Yesterday I shared the story of the Steve Ballmer keynote demo that was breaking and the urgent call I got to help figure it out.

I left you hanging as to the solution; a few of you posted interesting ideas of what might have gone wrong. But Richard Cooper was the first to figure it out – congratulations!

The answer can be found in the defaultnew-msh.js file. Here’s the relevant function:

(function(){
  if(typeof window.external.msIsSiteMode!="undefined"){
    function d(){
      var o=new Date;
      if(o.getHours()==8||o.getHours()==9||o.getHours()==10||
                 o.getHours()==11||o.getHours()==12||o.getHours()==13){
        window.external.msSiteModeClearJumpList();
        window.external.msSiteModeCreateJumpList("MyPlate Reminder");
        window.external.msSiteModeAddJumpListItem("Track Your Breakfast",
                             "/myplate/","/media/images/ico/bell.ico");
        window.external.msSiteModeSetIconOverlay("/media/images/ico/bell.ico",
                "Reminders");
        window.external.msSiteModeShowJumplist()
      }
      if(o.getHours()== 14||o.getHours()==15||o.getHours()==16||
            o.getHours()==17||o.getHours()==18||o.getHours()==19){
        window.external.msSiteModeClearJumpList();
        window.external.msSiteModeCreateJumpList("MyPlate Reminder");
        window.external.msSiteModeAddJumpListItem("Track Your Lunch",
                             "/myplate/","/media/images/ico/bell.ico");
        window.external.msSiteModeSetIconOverlay("/media/images/ico/bell.ico",
                "Reminders");
        window.external.msSiteModeShowJumplist()
      }
      if(o.getHours()==20||o.getHours()==21||o.getHours()==22||
             o.getHours()==23){
        window.external.msSiteModeClearJumpList();
        window.external.msSiteModeCreateJumpList("MyPlate Reminder");
        window.external.msSiteModeAddJumpListItem("Track Your Dinner",
                             "/myplate/","/media/images/ico/bell.ico");
        window.external.msSiteModeSetIconOverlay("/media/images/ico/bell.ico",
                "Reminders");
        window.external.msSiteModeShowJumplist()
      }
      window.setTimeout(function(){
        d()
      }
      ,3E5)
    }
    d()
  }
})();

Now you can hopefully see that the notifications are set up based on the time: the site authors had designed around certain time windows when users would be tracking breakfast / lunch / dinner. But (by design) there’s no notification between midnight and 8am.

I was tempted to tell the demo team that the demo would magically start working in about half an hour or so, but I decided that was a bit unfair to their blood pressure. They set the clock forward an hour, and the demo ran flawlessly.

It's a good example of how demos can be unpredictable - despite your best efforts to rehearse and prepare, there are so many variables in the system for a keynote demo that you can expect something unexpected.

Photo_EC7F7B0E-1434-BF5B-715F-F6997AB95650I’m sat in the PDC keynote room this morning for the final run-through – we finished rehearsing last night at 1am and we started this morning at 5am. Behind the scenes, there’s a whole conference room full of equipment: video streaming equipment to broadcast the event around the world, a bank of about forty demo machines (primary and backup for each demo), video and lighting control, a slide editing suite and site production services.

There are a whole host of challenges that are only exposed in this scenario: as an example, we need to remote a USB cable from a Windows Phone to a PC backstage (and provide a second one as an emergency backup); we need to provide consistent and reliable networking for myriad devices even when the wifi and cellular networks are saturated; we need to be able to switch between all forty machines from a single demo podium. Last night, we saw a Windows 7 error message that I’d never seen before – we’d exceeded the USB specification by chaining five hubs together in a certain configuration. Given all this, you can probably imagine why demos can fail: ironically, there comes a point where redundancy introduces so much complexity that it actually increases the risk of failure.

Crossing fingers for a demo failure-free morning! Be sure to tune in, won’t you? We’re broadcasting live over the internet.

  • Hey Tim, well done for finding the cause of the stress! I've always wondered how many are back stage at a PDC. Thanks for the short insight.

Page 1 of 1 (1 items)