Channel 9

Microsoft podcasts

genre: Science & Technology/Computers

Channel 9 keeps you up to date with videos from people behind the scenes building products at Microsoft.

Official Website

Report a Concern

© 

Episodes

  • Visual Studio Toolbox: Debugger Canvas | Visual Studio Toolbox Video

    5/23/2012

    Download

    Duration: 42:35

    In this episode, Kael Rowan of Microsoft Research joins us and shows the Debugger Canvas. Debugger Canvas is a power tool for Visual Studio 2010 Ultimate that pulls together the code you're exploring onto a single pan-and-zoom display. As you hit breakpoints or step into code, Debugger Canvas shows the methods that you're debugging, including call lines and local variables, to help you see the bigger picture as well as the details.

  • Defrag: WHS+MC, Error 1325, Using Onboard VGA+PCI Video | The Defrag Show Video

    5/23/2012

    Download

    Duration: 23:18

    Microsoft tech troubleshooter extraordinaire Gov Maharaj and I help walk you through troubleshooting solutions to your tech support problems. If you have a problem you want to send us, you can use the Problem Step Recorder in Windows 7 (see this for details on how) and send us the zip file to DefragShow@microsoft.com. We will also be checking comments for problems, but the email address will let us contact you if needed.[00:15] - Can Windows Home Server run Media Center. [link] [link][03:40] - Junction on folder using Skydrive. [05:01] - Preventing Skydrive from copying large files to local PC. [link][06:30] - Why icons refresh after adding a bookmark. [07:20] - Error 1325 <username> is not a valid short file name. [09:35] - What * actually does in a Windows Explorer search.[12:54] - Clicking on any menu item crashes apps. [15:09] - Can onboard VGA be used along with a PCI video card. [17:44] - Way to get an icon's right click properties from Task Bar. [18:37] - Pick of the Week: New line of Lenovo laptops. [link]

  • Project Detroit: Lighting System

    5/21/2012

    Download

    Duration: Not Available

    In this article, we give a detailed look into the external lighting system of Project Detroit, the Microsoft-West Coast Custom Mustang creation. If you're not already familiar with this project, you can find more information here.OverviewThe external lighting system for Project Detroit is run on a web server on a Netduino Plus, which uses the .NET Micro Framework (NETMF). To get an accelerated start, we leveraged code from the CodePlex project Netduino Helpers to control the AdaFruit LPD8806 LED strip, and the web server base code from the Netduino forums. They have been tweaked slightly for our project.Controllers, Routes, RESTful oh my!We wanted the NETMF web server to have the exact same routes as the full-blown REST service layer in Detroit. With compiler conditionals, this allowed the same code to use the same routes on both the full .NET stack and NETMF. Since we couldn't use the ASP.NET MVC framework here, we had to make something close to it.ControllersControllers implement an interface with a method named ExecuteAction. When GetController is called, we return the correct controller but cast as the interface IController. This lets us figure out what controller should be executing the request and continue to work generically in the context of the request connection thread. If new functionality is needed, we create a new controller that inherits from IController and update GetController: private static void RequestReceived(Request request) { // url comes in as /foo/bar/12345?style=255 // // /CONTROLLER/ACTION/ // // LIGHTING SAMPLE URL: /0/1/?r=255&g=255&b=255&zone=EnumAsInt // /0/... 0 = NetduinoControllerType.Lighting var validResponse = false; try { Logger.WriteLine("Start: " + request.Url + " at " + DateTime.Now); var urlInParts = request.Url.TrimStart(UriPathSeparator).Split(new[] {'?'}, 2); string[] uriSubParts = null; string[] queryStringSubParts = null; if (urlInParts.Length > 0) uriSubParts = urlInParts[0].Split(UriPathSeparator); if (urlInParts.Length > 1) queryStringSubParts = urlInParts[1].Split(QueryStringSeparator); if (uriSubParts != null && uriSubParts.Length > 1) { var targetController = GetController(uriSubParts[0]); if (targetController != null) { var action = (uriSubParts.Length >= 2) ? uriSubParts[1] : string.Empty; var result = targetController.ExecuteAction(action, queryStringSubParts); validResponse = true; request.SendResponse(result.ToString()); Logger.WriteLine("Result: " + result + " from " + request.Url + " at " + DateTime.Now); } } if (!validResponse) { SendIndexHtml(request); } } catch(Exception ex0) { Logger.WriteLine(ex0.ToString()); } } Routes, strings and enums on NETMFNETMF can't parse an enum from a string, which is something that can be done in the full .NET Framework. But what does this actually mean? It means the routes for the NETMF web server are a bit unreadable. Here is the same route but with the parsing issue exposed:Detroit's REST service route with ASP.NET MVC:http://…/Lighting/Solid/?zone=all&r=255&g=0&b=0Detroit's NETMF route:http://…/0/3/?zone=0&r=255&g=0&b=0This issue made direct device debugging a bit harder.Parsing the Action and query stringParsing the route is broken into two parts. The first is determines what controller to target. For Project Detroit, that meant the lighting system or the rear glass system. Once we know the controller, we still need to parse the query string and action into something more useful: #if NETMF private static readonly char[] QueryStringParamSeparator = new[] { '=' }; public static LightingData ParseQueryStringValues(string action, params string[] queryStringParameters) #else public static LightingData ParseQueryStringValues(string action, Dictionary<string, object> queryStringParameters) #endif { var data = new LightingData {LightingZone = LightingZoneType.All, LightingAction = ParseLightingActionType(action)}; #if NETMF if (queryStringParameters != null) { foreach (var queryString in queryStringParameters) { var valueKey = queryString.Split(QueryStringParamSeparator); if (valueKey.Length != 2) continue; var key = valueKey[0]; var value = valueKey[1]; #else foreach(var key in queryStringParameters.Keys) { var value = queryStringParameters[key].ToString(); #endif switch (key.ToLower()) { case ZoneHuman: case ZoneComputer: data.LightingZone = ParseLightingZoneType(value); break; // more stuff } } #if NETMF } #endif // more stuff return data; } Turning on the lightsIndividually addressable LED strips allow us to tell each individual LED what color to be. To adjust the colors of the LED lights, we loop through all the LEDs, set their color value, and then call LedRefresh() on our LED strip. There's no need to set all of them, only the ones being updated: private static void SolidAnimationWorker() { var leds = GetLedsToIlluminate(); var dataCopy = _data; for (var i = 0; i < leds.Length; i++) SetLed(leds[i], dataCopy.Red, dataCopy.Green, dataCopy.Blue); LedRefresh(); } Zones / Animation ThreadsA solid color is boring, but we can use procedural animations to add some flair. The current code supports the following animations:Solid - A single solid color. Fill - Goes from black to the desired color. The color stays lit. Much like filling a glass of liquid. Random - LEDs are set to a random value. Pulse - A glowing effect from bright to black. Snake - A one way lighting effect with a fading tail that moves left to right. Sweep - This effect was inspired by KITT and a Cylon robot and is similar to a snake pattern. The effect can also handle being split in two while maintaining a continual line for items such as the grill or the wheels. Police - Each side flashes a red and blue light. Since we know the LED strip is a single strand, we can be clever with offsets and create groupings. By having a dedicated animation thread in each zone, we can have the grill of the car in Police Mode while the bottom fades to red and the vents fill to blue at different refresh rates.To run an animation, we need to first kill the old animation thread, spin up a new thread, mark LEDs in the "All LED" zone as do not touch, and execute the new pattern. Without a way to mark the LEDs as "bad" in the "All" zone, the two animation threads would compete for setting the color and result in a flickering effect. Other zones don't have to worry about this since there is zero overlap of LEDs:  public bool ExecuteAction(string action, params string[] queryStringParameters) { var data = LightingDataHelper.ParseQueryStringValues(action, queryStringParameters); SignalToEndAnimationThread(data.LightingZone); int counter = 0; while (counter++ < 5 && IsThreadAlive(data.LightingZone)) Thread.Sleep(10); if (IsThreadAlive(data.LightingZone)) AbortAnimationThread(data.LightingZone); // moving data bucket into public so new threads can leverage it _data = data; if (_data.LightingAction == LightingActionType.Police || _data.LightingAction == LightingActionType.Sweep) { _data.LightingZone = LightingZoneType.Grill; if (IsThreadAlive(_data.LightingZone)) AbortAnimationThread(_data.LightingZone); } // cleaning up just incase if (data.LightingZone != LightingZoneType.All) { for (var i = 0; i < _zoneAllAnimation.Length; i++) { var leds = GetLedsToIlluminate(); for (var z = 0; z < leds.Length; z++) { // flagging item as bad in animation lib if (_zoneAllAnimation[i] == leds[z]) _zoneAllAnimation[i] = -1; } } } switch (_data.LightingAction) { case LightingActionType.Solid: Debug.Print("Solid"); ExecuteThread(SolidAnimationWorker); break; // more patterns } return true; } We can now do something more interesting, like Police Mode: private static void PoliceModeAnimationWorker() { var leds = GetLedsToIlluminate(); var dataCopy = _data; var length = leds.Length; var half = length / 2; var index = 0; while (IsThreadSignaledToBeAlive(dataCopy.LightingZone)) { int redIntensity = (index == 0) ? 255 : 0; int blueIntensity = (index == 0) ? 0 : 255; for (var i = 0; i < half; i++) SetLed(leds[i], redIntensity, 0, 0); for (var i = half; i < length; i++) SetLed(leds[i], 0, 0, blueIntensity); LedRefresh(); index++; index %= 2; Thread.Sleep(100); } } ImprovementsHindsight is 20/20. Nothing is ever perfect and there are of course items we'd love to change. At the start, the goal was to make this fairly generic and not Project Detroit "aware." As you can see by looking at the source, that wasn't accomplished due to time constraints.We would use a different LED system for two reasons: data transfer speed and power. The longer the LED strip is, the longer it takes to address an item further down the line. Project Detroit, having 15 meters of lighting in it, was impacted by this issue. It works well, just not as well as we hoped. The voltage requirements of the LEDs are another consideration. They are 5V, while a car uses 12V. Had we used 12V LEDs, our wiring would have been far simpler and wouldn't have required multiple transformers to get the required amperage needed at the correct voltage.ConclusionWe think the lighting solution, coupled with the time and material constraints, worked out pretty well.  Project Detroit was a ton of fun to build out and working with West Coast Customs was the chance of a lifetime.

  • Herb Sutter: Visual C++ for Windows 8 | Developing Windows 8 Metro style apps with C++ Video

    5/22/2012

    Download

    Duration: 1:6:32

    Want to know how to write cool tablet apps using Visual C++? To kick off our day of Metro style programming in VC++, this talk will begin with an overview of how the WinRT type system is projected in Visual C++, then delve into how easy it is to use fast and portable C++, UIs built using XAML or DirectX or both, and powerful parallel computation from std::async and PPL to automatic vectorization and C++ AMP to harness powerful mobile GPUs... and use any or all of those tools together easily in any combination within the same Visual C++ application, delivering beautiful and responsive results on today's mainstream mobile hardware.

  • Ping 142: Siri speaks, Xbox in the den, E3, Microsoft at the races | Ping! Video

    5/22/2012

    Download

    Duration: 16:35

    "The Lightbulb", Larry Larson, stopped by again to share his unique and always entertaining thoughts on these stories and more:Siri love  [03:18]Xbox is winning the living room  [13:15]What's E3 up to?  [06:58]Microsoft goes to the races  [10:40]

  • Building Metro style apps with XAML and C++ | Developing Windows 8 Metro style apps with C++ Video

    5/23/2012

    Download

    Duration: 1:13:36

    With the introduction of Metro style apps for C++ developers, Microsoft now brings the XAML UI platform to native code!  I will take you through a lap around creating a Metro style app in XAML and C++.  I'll introduce the fundamentals of the XAML platform in WinRT and how C++ developers can easily write applications with a consistent, touch-friendly UI framework.  I'll walk through the developer experience in Visual Studio for creating these apps, noting how (and why) code is structured in the project system.  I will also demonstrate some of the powerful benefits of XAML in databinding and custom control development. Finally, I will introduce the developer tools that enable you to design XAML in a graphical way within Visual Studio as well as Blend.

  • The Windows Runtime Library (WRL) | Developing Windows 8 Metro style apps with C++ Video

    5/22/2012

    Download

    Duration: 42:42

    What is WRL and how does it help you write Metro Apps? Learn what is involved in consuming and authoring WinRT objects with WRL.

  • Kinect for Windows SDK 1.5 - Face Tracking, Seated Skeletal Tracking, Kinect Studio, & More Video

    5/21/2012

    Download

    Duration: 16:51

    Rob Relyea, a Principal Program Manager on the Kinect for Windows team joins us again on Channel 9 to discuss all of the new features with the 1.5 release of the Kinect for Windows SDK.Download the 1.5 Release at KinectforWindows.com [00:33] Overview of the Kinect for Windows SDK 1.5 Release[03:00] Improvements to the Kinect Explorer Sample[03:38] Using the Kinect Explorer sample with Seated Skeletal Tracking[04:37] Kinect Avatar/XNA sample that demonstrates the new support for skeletal joint orientation[06:47] Face Tracking sample that locates and orients a face, along with 70+ vertices to track eyes, eyebrows, mouth, etc[08:49] Kinect Studio developer tool that shows how to record and playback Kinect data in your application[11:26] Green screen sample shows background separation [12:03] Rob discusses the improved synchronization of depth and color data and improved performance in mapping color to depth pixels [13:34] Direct 3D Demo that shows a 3D Point cloud visualization of Kinect data[14:50] Speech Basics demo for navigating a turtle by voice[15:40] Kinect language packs now support English (US, Australia, Canada, Great Britain, Ireland, New Zealand, French (Canada and France), Spanish (Spain, Mexico), Italian, and Japanese

  • Building Windows Runtime Components with C++ | Developing Windows 8 Metro style apps with C++ Video

    5/21/2012

    Download

    Duration: 34:12

    The Windows Runtime enables developers from a variety of languages – JavaScript, C#, Visual Basic and C++ - to use the Windows APIs in a natural and familiar way. But did you know that you can build your own components that project into those same languages for use in your Metro style apps? Watch this session to learn how to build your own Windows Runtime components with C++ that can be used across languages in Metro style applications.

  • TWC9: C9 Gets MSDN, VS11 SDK Beta, Win8 Camp in a Box, Faces for WP7 and more | This Week On Channel 9 Video

    5/19/2012

    Download

    Duration: 15:26

    This week on Channel 9, Dan and Brian discuss the week's top developer news, including:[0:41] Announcing MSDN Profile Integration (Geoffrey, karstenj, Mike Sampson) [1:26] .NET 4.5 Improvements for Cloud and Server Applications (Soma Somasegar) [2:27] My Favorite Features: Improved Tooling in Visual Studio 11 for JavaScript Developers (Jason Zander) [5:29] Microsoft Visual Studio 11 Beta SDK [5:50] ASP.NET Web API: Introducing IApiExplorer/ApiExplorer (Yao) [7:23] Being productive when your Win8 Metro app is offscreen (Hari Pulapaka) [8:58] Windows 8 Camp in a Box, Consumer Preview Edition, http://devcamps.ms/windows  [10:12] Array Visualizer VS Extension (Amir Liberman) [11:39] Microsoft Research Face SDK Beta for Windows Phone [Found Via: Alvin Ashcraft's Morning Dew - Dew Drop – May 16, 2012 (#1,328)] Picks of the Week!Brian's Pick of the Week:[12:35] Pixar studio stories - The movie vanishes (full) Dan's Pick of the Week:[13:54] Building Battling Bots with DumbBots.Net

  • Getting the most out of the C++ compiler | Developing Windows 8 Metro style apps with C++ Video

    5/22/2012

    Download

    Duration: 13:34

    The C++ compiler in Visual Studio 11 includes a new feature, called auto-vectorization.  It analyses the loops in C++ code and tries to make them run faster by using the vector registers, and instruction, inside the processor.  This short talk explains what's going on.[This session was pre-recorded]

  • Defrag: WPA2, Virtual Desktops, Cool KB's | The Defrag Show Video

    5/16/2012

    Download

    Duration: 19:22

    Microsoft tech troubleshooter extraordinaire Gov Maharaj and I help walk you through troubleshooting solutions to your tech support problems. If you have a problem you want to send us, you can use the Problem Step Recorder in Windows 7 (see this for details on how) and send us the zip file to DefragShow@microsoft.com. We will also be checking comments for problems, but the email address will let us contact you if needed.[00:28] - Wifi shows an unsecured router but it is set to use WPA2 [link][02:50] - Is there a way to exclude file types from Start Menu index[04:24] - Question about Gov's version of Bing [link][07:30] - EvilDictaitor shout out on KB2694771 [link][09:00] - Windows Update limited screen resolution [10:36] - Is there a way to kill the Virtual PC Host process[11:36] - SSD changed from Drive0 to Drive1, can DiskPart change back[12:20] - Pick of the Week - Dexpot Beta 16 [link][15:50] - Pick of the Week - Hotfix KB2617858 [link]

  • Walkthrough: Designing Metro style apps with XAML Designer in VS and Blend | Developing Windows 8 Metro style apps with C++ Video

    5/21/2012

    Download

    Duration: 16:26

    If you want your Metro style app to delight users you'll want to start with a great UX design. In this session, I will show you some of the key features of XAML designer in Visual Studio and Blend to design and build a C++ Metro style app that is both visually appealing and easy to use.[This session was pre-recorded]

  • Stephan T. Lavavej: Core C++, 1 of n | Going Deep Video

    5/16/2012

    Download

    Duration: 44:48

    Stephan T. Lavavej, aka STL, is back on C9! This time, STL will take us on a journey of discovery within the exciting world of Core C++. We know lots of folks are either coming back to C++, coming to C++, or have never left C++. This lecture series, in n parts, is for all of you! Only STL can make that work (novice, intermediate, and advanced all bundled together and presented in a way only STL can do.) Thank you, STL. We're so delighted to have you back!In part 1, STL focuses on Name Lookup, which is a surprisingly complex process.Remember Herb Sutter's great GotW post (#30, to be precise) on Name Lookup? Here's the problem from that post, to refresh your memory (Thanks to Herb for providing information like this on GotW!):In the following code, which functions are called? Why? Analyze the implications? namespace A { struct X; struct Y; void f( int ); void g( X ); } namespace B { void f( int i ) { f( i ); // which f()? } void g( A::X x ) { g( x ); // which g()? } void h( A::Y y ) { h( y ); // which h()? } } We recommend you watch this entire episode before playing around with Herb's sample above (and don't read the GotW answer, either! That's cheating. Learn from STL. He's an outstanding teacher, as you know.) Please supply feedback on this thread, especially as it relates to what you'd like STL to focus on in subsequent episodes. For part 2, STL will focus on Template Argument Deduction. Tune in. Enjoy. Learn.

  • Managed Exceptions - 06 | .NET Debugging Starter Kit: for the Production Environment Video

    5/1/2012

    Download

    Duration: 25:30

    Some exceptions don't cause your application to crash.  Some do.  Either way, developers should work to rid their applications of exceptions for both stability and performance reasons.  Special guest Mario Hewardt joins us as we discuss how to detect the presence of these exceptions, how to gather vital data on them in a relatively non-intrusive fashion, and how to find root cause.  And since this is all done in the production environment, we won't have Visual Studio available. .NET Debugging Starter Kit for the Production Environment, Part 1 .NET Debugging Starter Kit for the Production Environment, Part 2 .NET Debugging Starter Kit for the Production Environment, Part 3 .NET Debugging Starter Kit for the Production Environment, Part 4 .NET Debugging Starter Kit for the Production Environment, Part 5

  • Inside Windows Phone #38 | Nikola Mihaylov, the Developer Behind Fantasia Painter | Inside Windows Phone Video

    5/21/2012

    Download

    Duration: 24:22

    Today we talked to Nikola Mihaylov, a developer in the Expression Blend team. Nikola is the developer of Fantasia Painter, an extremely highly ranked photo editing app for Windows Phone.Nikola walked us through his app, and talked a bit about how he implemented various aspects of the app. He describes himself as 'obsessed with performance,' and had a few very interesting practices to share in that regard.Per our usual practices, here are some relevant and interesting links:Fantasia Painter in the Windows Phone Marketplace, (Free and Paid)Performance Considerations for Windows Phone Developers in the MSDN LibraryMike Battista's recent posts on WP app optimization:     Optimize Startup Time     Reduce Memory Usage     Responding to User InputPratap Lakshman's recent posts on using the WP Profiler     Memory Profiling for Application Performance     Memory Profiling - Launching, Graphs and Markers     Memory Profiling - The Heap Summary ViewLet us know if you have any questionsLarry Lieberman, @larryalieberman

  • node.js on Azure | Patterns & Practices Symposium Online 2012 Video

    4/23/2012

    Download

    Duration: 47:10

    Yavor Georgiev, Program Manager on the Azure Application Platform, covers how to use node.js on the Windows Azure platform. Starting with an introduction into node.js, some examples of how it can be used, and then digging into exactly how node.js works with Windows Azure. Check out http://www.windowsazure.com/en-us/develop/nodejs/ for more information.

Image: Sign up for free

podcast reviews

Date /frag/MediaReviewBlock/?_saveReviewKey=&ztext_c_mediaReview_Hidden=&_mediaReview_title=&MediaId=1c4976fb-b5f6-44a6-8e93-0055199e86fe&MediaType=PodcastSeries&SortBy=ModifiedDate&SortOrder=Asc&IsFullPage=&ShowHeader=&_deleteReviewKey=&_comments_hidDelete=&PageSize=&PageIndex=&StartMarker=&EndMarker=&PrevClicked=&blockName=MediaReviewBlock&id=_podcastListenerReview& Usefulness /frag/MediaReviewBlock/?_saveReviewKey=&ztext_c_mediaReview_Hidden=&_mediaReview_title=&MediaId=1c4976fb-b5f6-44a6-8e93-0055199e86fe&MediaType=PodcastSeries&SortBy=Feedback&SortOrder=&IsFullPage=&ShowHeader=&_deleteReviewKey=&_comments_hidDelete=&PageSize=&PageIndex=&StartMarker=&EndMarker=&PrevClicked=&blockName=MediaReviewBlock&id=_podcastListenerReview&
Share your knowledge and opinions about this podcast.

Stream full songs, free with Zune Pass. Sign in or sign up free