Intern Voice: Kinect-ing the dots in healthcare by Yen Ho


    Being an intern at Microsoft comes with exciting opportunities to learn, experience and be constantly exposed to the latest and greatest technology (aka Microsoft products). One of them being the Xbox Kinect. I’ll admit I wasn’t a keen video gamer prior to my internship, but now I am slightly addicted to Kinect – and for more reasons than one.

    You literally are the controller. Simple as that… there are no controllers because you (your head, hands, feet and all) are in control of the game, providing a gaming experience that amazes the young and old. I always drag another intern to play with me in the office or pull in family and friends at home to show them how our avatar replicates our every move. I am still fascinated with how the Kinect sensor works to capture your movements… it makes it easier for me to set up the game and simply have fun. I first tried Kinect Adventures which includes simple games where you pop bubbles and plug leaks that always amuse 22 year old interns (like me) after a long day of work. Similar to roller coasters in amusement parks, the Kinect sensor takes random pictures of you while you play… you may be jumping up in the air or swinging your arms like crazy, but they are “profile-pic-worthy”.

    I’m now addicted to Kinect Sports and pretty much can spend an hour playing volleyball, bowling, soccer (and boxing when no one else is around)… in a way, it compensates for not having a bowling alley at home. While I still go to the gym to work out, I find it easier to stay home or at work and get fit through these games… you work up a sweat without even knowing it!

    While most people would see Kinect solely as an entertainment device, I learn a few months ago that these systems are contributing to the healthcare industry with its’ controller-free movement sensor technology. CLICK (Child Life Interactive Computers for Kids) is a program where Microsoft Canada works with the Children’s Miracle Network to provide young patients with technology during their stay in the hospital. Other than providing children with Kinect systems for gaming and connection to their family and friends, doctors are also using Kinect for operational and therapy purposes. At Sunnybrook hospital, surgeons have built an application using the Kinect technology to control, move, and adjust x-ray imaging with a wave of their hand – working with the imaging while they’re operating and being more efficient with time.

    I know that when I apply for co-op terms through my school, I look for organizations that are making real contributions… not only are they commended on their reputation within the industry and their products or services, but also for the consistent involvement in the community. For me, knowing the real-world impact Microsoft is making outside of the gaming industry with this technology shows how we want to enhance lives with our innovative solutions and products, and lead the way for more advancements in healthcare.

    Yen Ho

  • Go DevMENTAL

    Hey you. Yeah, you. Wanna Windows Phone?


    Now that I’ve caught your attention with the title of this post, I want to introduce you to a really great promotion we are holding at Microsoft Canada for you as a mobile app developer (by the way, when I write “app”, I actually mean “app or game”).

    One of the biggest comments that I get when talking to people interested in building an app for Windows Phone is that they don’t have a device.  Then they ask me where they can get a Windows Phone.  The easiest answer is to go to your local wireless carrier and purchase a Windows Phone (likely with a data plan) from them.  That isn’t always optimal (hey, I get it – if you’re locked into a plan it’s a tough sell to get another one with your carrier of choice).  The second choice is to purchase a Windows Phone from a distributor like zones.com, where you can purchase a device that is not attached to a data plan, but those phones are typically not subsidized by the distributor or the device manufacturer.

    Now, for those of you that publish 2 or more new, quality apps for Windows Phone, we will actually give you a Windows Phone to keep through the Mango App Challenge.  Feel free to re-read that.  Your eyes are not deceiving you.  There are terms and conditions, of course, but the gist of the offer is that if you create 2 new apps (i.e.: they don’t already exist in the Marketplace) that meet a certain quality bar and you publish them under a Canadian Marketplace account before December 15th, we’ll be delivering you a shiny new Windows Phone with the Windows Phone 7.5 OS (formerly codenamed “Mango”) already installed on it.  It’s that simple.  We’re so confident in your ability to bring some amazing apps to the Marketplace that we have 300 devices total for this offer to give out to developers.

    So, are you interested?  I thought you might be.  For those of you that know Windows Phone development already, chances are you’ve already fired up Visual Studio 2010 and have great ideas ready to be converted into code.  For those of you that have not built apps for Windows Phone, we have you covered as well.  There are tonnes of resources available to you to learn how to build apps for Windows Phone and the tooling is freely downloadable.  The only thing you need to to is register as a developer for Windows Phone (this registration is required to publish apps to the Windows Phone Marketplace). As a student, registration is free through Dreamspark!  Below are some resources to get you started (and they are great for new and seasoned developers alike!).

    How to Get Started Building Apps for Windows Phone and Enter the Mango App Challenge

    • Visit the Microsoft Canada Windows Phone Developer Resource Page:  This is a one-stop link shop for pretty much everything you need to start building for Windows Phone (in fact, the links below this one are included in this Resource page)
    • Download the free developer tools
    • Learn how to develop for Windows Phone with free training like this, this and this
    • Register as a Canadian-based publisher on the App Hub (this will allow you to publish apps to the Marketplace)
    • Build and test your 2 apps.  Then submit your apps for certification in the Marketplace.  When it passes certification, publish your apps.
    • Submit your 2 published apps to the Mango App Challenge before December 15, 2011.
    • If you meet the requirements of the Mango App Challenge and there are still phones available from this offer, then you will be notified that you have scored yourself a free Windows Phone!

    Good luck and happy coding!

  • Go DevMENTAL

    Kinect SDK named by Popular Mechanics as one of the 10 Most Innovative Products


    KinectNergI was kind of surprised but not totally, when I saw that announced in a tweet. Thanksgiving dinner this year at our place culminated in the family taking turns busting a move to Dance Central on Xbox Kinect and both my niece and sister walked away saying “I need one of those”. Sure the games are fun, but when you stop to think about it what’s really amazing is the technology behind it: infrared camera, laser depth sensors, microphone array, all for about $150! Obviously they did something right as Guinness World records confirmed it as the fastest selling consumer electronics device ever. It sold an average 133,333 units a day for a total of 8 million units in 60 days From November 2010 to January 3, 2011.

    That’s the hardware, but what Popular Mechanics is talking about is the software. The software that you and I can write! Because you can download the Software Development Kit. This is where things start to get really cool. Because now we can start using all that amazing hardware to do neat stuff! It’s amazing what people are coming up with: nerf gun cubicle protection, or jazzing up the reception room. This version of the SDK is a beta and has been released so enthusiasts, students and faculties out there can get in and play with the capabilities of the Kinect device. So for now its for research and fun, but the Kinect site does mention they expect to release a commercial version at a later date.

    The SDK has APIs for raw sensor streams to collect data from the depth sensor, color camera sensor, and the microphone array. You can use an API to do skeletal tracking (this one is definitely one of the cooler features to play with). With the microphone array and APIs in the SDK you can do noise suppression and echo cancellation to identify the sound source and integrate with a speech recognition API as well. You can see a fun example using skeletal tracking and speech recognition with a Kinect controlled RoboSapien.

    It’s fun to play with but a lot of universities are doing serious research on what you can do with Kinect as well. Popular Mechanics mentions the UC Davis students who developed 3D videoconferencing, University of Minnesota is using it as a tool to identify autism, ADD, and OCD in kids. There is huge potential when you combine the hardware, the SDK, and the imagination of the worlds developers! The Kinect was so cool that people were hacking it before the SDK was released. Great to see a real SDK out and supported to encourage innovative development.

    The entire SDK is under 100MB. You don’t have to have an Xbox to play with the SDK, you can just buy the Kinect sensor unit and connect it to your PC. I have a Kinect already, and would love to start coding but i guess I’ll have to wait until my son finishes dancing “Don’t Sweat the Technique” first Smile

  • Go DevMENTAL

    Bring your website to the next level…check out pinning!


    I was just preparing a slide deck to talk about IE9 features and realized I really haven’t taken the time to explain what the heck pinned sites are on this blog and how they work. Pinned sites are a fantastic feature of IE9, and as more and more users are discovering them, you want to make sure your website makes the most of this feature. This is a great way to add a little wow to your site!

    Before I get into the technical stuff, let me take a moment to tell you why you want your web site to support pinning. Users who pin your site will visit your site more often, and will spend more time on your site, so if you are building a site for a business: In the words of Martha Stewart “That’s a good thing”. Whether its a simple little website to track your hockey pool you want your users to access easily, or a public site you are supporting to help a business or group we build the site because we want users to spend time there. So if pinning increases the amount of time users spend there, you want pinning.

    If you are using IE9 or higher you can quickly try out pinning right now to see how it works. Open a tab in your browser and visit tsn. Now drag the tab down to your taskbar. You will see a TSN icon appear on your taskbar and you will also notice the TSN website now looks different, the forward and back buttons appear in red to match the logo. The icons on your page have changed from the IE logo to the TSN logo. The icon you see is called a favicon, and you can set the of the forward and back buttons based off the favicon or by specifying specific colors.


    Now let’s take a closer look at that logo you just added to the task bar.  You can close the IE windows with TSN and relaunch the site by clicking on that icon. That’s nice, basically just like you can have icons for launching your desktop applications, you now have an icon to launch a web site. Here’s the really cool part, you can also right click on the icon to go directly to a particular part of the website like the News or TV Schedule. It’s like Browser Favorites but wayyyyy better!


    Nice Eh? And it’s really easy to do. Since its implemented with metatags, you can add the functionality for your users who have IE9 without breaking the website for users on other browsers. You can make your pinned site as simple or as fancy you want, it’s just a matter of how much time you want to spend, 10 minutes to set up a favicon? an hour or a day to add more functionality.

    You can just add a favicon, quick and easy!

    You can add a jumplist to the pinned site just like TSN did, to make it easier for users to navigate the site using a few metatags or JavaScript.

    You can get fancy with thumbnail buttons, and notifications by adding a little more JavaScript.

    Read on to find out how!

    1. Create a favicon

    If you are a talented graphic artist, or have someone on your team who knows how to make .ico files good on you! For the rest of us check out xiconeditor.com. You can import a .JPG, .GIF, .BMP, .PNG, or .ICO file, crop it and xiconeditor will generate a .ico file suitable for pinned sites. That was easy Smile

    2. Add the favicon to your HTML in the <head> section.

    <link rel="shortcut icon" href="favicon.ico"/>

    Now you will see your favicon appear in the browser and on the toolbar if you pin your site. Next you should set up your meta data for the pinned site in the <head> section

    • application-name specifies the name of your pinned application, give it a meaningful name.
    • msapplication-tooltip specifies what will be displayed when you hover over the pinned application in the start menu (not the taskbar)
    • msapplication-starturl specifies the URL to be launched when the pinned website is launched
    • msapplication-window tells IE9 how big to make the browser when it launches the pinned application
    • msapplication-navbutton-color tells IE9 what color to use for your navigation buttons, if you omit this tag, IE9 will take the color from your favicon. Specify any hex color or CSS3 color name.
    <meta name="application-name" content="My Pinned Content" />
    <meta name="msapplication-tooltip" content="Launch My pinned site" />
    <meta name="msapplication-starturl" content="http://localhost:42942/PinnedSites/index.html"/>
    <meta name="msapplication-window" content="width=1024;height=768" />
    <meta name="msapplication-navbutton-color" content="#FF3300" />

    3. Add a Static Jump List

    The Jump List is the context menu that appears when you right click on the pinned site icon on your taskbar. To add a task to the jump list, you need to add a meta tag for msapplication-task. You can add up to 5 static tasks to the jump list. The tasks in the jump list will appear in the same order as you define the tasks in the HTML.

    Msapplication-task indicates this is a task you want to add, in the content attribute you specify

    • name – this is the text that will be displayed in the jump list
    • action-uri this is the URL to open if someone selects this task from the jump list
    • icon-uri specifies the icon to display in the jump list for this task.
    • window-type (optional) specifies if the destination should be opened in a tab (default), self (the current tab) or window (a new pinned site window)
    <meta name="msapplication-task" content="name=View Pictures; 
    action-uri=http://localhost:42942/PinnedSites/pictures.html; icon-uri=favicon.ico" />

    4. Add a Dynamic Jump List (if you want to)

    Use JavaScript to create tasks dynamically on a jumplist, you do not have the 5 task limit with dynamic jump lists. Creating dynamic tasks requires using the following methods

    • window.external.msSiteModeCreateJumpList() to create the dynamic jump list
    • window.external.MsSiteModeAddJumpListItem() to add a task to the dynamic jump list
    • window.external.msSiteModeShowJumpList() to display the jump list
    function AddJumpList()
        if (window.external.msIsSiteMode())
             window.external.msSiteModeCreateJumplist("My Dynamic List");
             window.external.msSiteModeAddJumpListItem("Added with code","http://www.tsn.ca/","favicon.ico");

    So with a few meta tags you can set up your website as a pinned site, with a little JavaScript you can even have a dynamic jump list. If you want to update the jumplists later, no problem! In fact I wrote some blogs explaining How to update a static jumplist, and how to update a dynamic jump list

    5. Go all out and add a thumbnail toolbar (if you want to)

    If your website plays video or audio, or you have other actions you want users to control from their pinned site, in addition to the jump lists you can use JavaScript to add a toolbar of thumbnail buttons! Use it to advance slides, pause and play a video or song. This will actually take a bit more time and work, but it’s pretty cool!

    Use window.external.msSiteModeAddThumbBarButton to add a 16X16 icon to the thumbnail toolbar

    Use window.external.msSiteModeShowThumbBar to display the thumbnail toolbar

    • Create icons for each button you want on the toolbar
    • Add each button to the thumbnail toolbar
    • Define the action you want for each thumbnail toolbar

    You cannot add buttons to a toolbar after the toolbar is visible! (You can hide or disable buttons, but you can’t add or remove them)

    Thumbnail toolbars can hold a maximum of 7 buttons. You can sometimes use one button as a toggle switch between modes e.g. Play and Pause can be one button instead of making a Play and a Stop button

    For example to add a button

    var btnRed = window.external.msSiteModeAddThumbBarButton('red.ico', 'Red');
    var btnBlue = window.external.msSiteModeAddThumbBarButton('blue.ico', 'Blue');
    document.addEventListener('msthumbnailclick', onButtonClicked, false);
    Then add a line of code to display the toolbar

    Create event handlers for the thumbnail toobar to define the actions to take when a button is pressed (As an added bonus if you are using IE9 you can use AddEventListener instead of attachEvent).

    document.addEventListener('msthumbnailclick', onThumbnailButtonClicked, false);
    function onThumbnailButtonClicked(btn) {
              switch (btn.buttonID) {
                  case btnRed:
                      document.bgColor = '#990000';
                  case btnBlue:
                      document.bgColor = '#000099';

    If you want to have a toggle button, for example a play/pause button, on your toolbar, you use window.external.msSiteModeAddButtonStyle to define a style with an alternative icon image and tooltip for a specified button and use window.external.msSiteModeShowButtonStyle to change the icon image and tooltip for the button in your event handler.

    styleColored = 0;  //default style ID, this style was created when you added the button
    styleClear = window.external.msSiteModeAddButtonStyle(btnRed, 'white.ico', "Clear");
    function onThumbnailButtonClicked(btn) {
              switch (btn.buttonID) { 
                 case btnRed:
                 if (document.bgColor != '#990000') 
                      document.bgColor = '#990000';
                      window.external.msSiteModeShowButtonStyle(btnRed, styleClear);
                else {
                      document.bgColor = '#FFFFFF';
                      window.external.msSiteModeShowButtonStyle(btnRed, styleColored);
                  case btnBlue:
                      document.bgColor = '#000099';

    So did you get all that? Don’t worry you don’t have to do everything! I just wanted you to know all your options. Any site can be pinned. If you add a favicon, you make your site look better when its pinned. When you add a jumplist you make it easier for a user to navigate to specific regions in your site. You decide how much functionality makes sense! For more information about pinned sites check out BuildMyPinnedSite.com which has more great information including how to add notifications (those tiny icon overlays, like one in Windows Messenger that shows you if you are signed in), suggestions on how to help users learn how to pin your site, and how to measure the success of your pinned site! Download IE9 and start pinning your site today!

    This blog is also posted on the Developer Connection

  • Go DevMENTAL

    Make Web Not War (this one time at DevCamp…)


    Looking for a chance to geek out with fellow developers? Well if you are in or near Toronto, Montreal, or Vancouver, look no further. Not your usual conference setting, this event is meant to be relaxed but still designed to meet your need for brain food (not brains as food!) ! So it won’t stress your already overworked brain! Instead this is your chance to re-energize! No assignments! No mid-term! No final mark to worry about! This is just a chance to come and hear about some cool stuff going on in the ‘real world’ and scarf down a few free nibbles while you are at it.

    The event is a DevCamp (not Band Camp) sponsored by Make Web Not War. The event is free/complimentary/gratis/no charge/on the house as it were but you do need to register so we know how many of those little hot dogs wrapped in pastry stuck on the end of toothpicks to bring. By the way as an added bonus, there will also be a Raffle for an Xbox and Kinect! If you win, you can do cool stuff like this (as long as you download the Kinect SDK)

    Here’s all the pertinent details about the event so you can pencil it into your calendar (stylus it in? key it in? touch pad it in?)

    The When and Where…

    Toronto October 25th, Toronto Congress Center 650 Dixon Road 6:30PM – 10:00 PM

    Vancouver November 15th, Vancouver Convention Center, 1055 Canada Place 6:30PM - 10PM

    Montreal November 29th, Palais des Congres de Montreal, 159 rue Saint-Antoine Ouest, 9e étage 6:30PM – 10PM

    The Basic Plan…

    6:30pm to 7:00pm Registration, Beverages and Appetizers

    7:00pm to 7:10pm Intro

    7:10pm to 9:50pm Get dirty (TED style talks + break)

    9:50pm to 10:00pm Raffle for Kinect and XBOX!!!!

    10:00pm to 10:10pm Conclusion

    11:00pm Expect the Unexpected


    Want to make sure you know about other cool events, including events just for students? Sign up for the Student Newsletter so you don’t miss out!

Page 63 of 82 (409 items) «6162636465»