Visual Studio Live! - New York

Posted April 17, 2012 9:22 AM Categories: Async | Events | Kinect | VSLive New York | XNA

I will be speaking at Visual Studio Live! in New York this May 14-17.  The conference is a full 4 day event and there’s still time to register!  The three sessions I’m presenting are:

W01 – Get Connected with Kinect 
Date: Wednesday, May 16, 2012
Time: 9:15 AM – 10:30 AM 
Level: Introductory

By now we’ve all probably tried Kinect, Microsoft’s revolutionary motion control device for the Xbox 360. But what about developing software to use the device? With the release of the official Kinect for Windows SDK from Microsoft, developers can now use this device like any other hardware peripheral from code. This session will introduce developers to the Kinect device itself, how it works, and will offer an overview of the API provided by Microsoft to retrieve image, depth, skeletal, audio, and audio position information from the device. The session will also cover some interesting uses for this information, and how it can be used in traditional applications for easier navigation to provide a more natural user interface.

W12 – Advanced XNA Games for Windows Phone
Date: Wednesday, May 16, 2012
Time: 1:30 PM – 2:45 PM 
Level: Intermediate to Advanced

XNA is an extremely powerful platform that extends far beyond simple 2D sprite-based games. In this session, learn how to build 3D games and the deal with the complexities that come with moving to the third dimension. The session will consist of building a very simple 3D game for Windows Phone. Specifically, attendees will learn how to import pre-built 3D models, animate them, and display them in 3D space. Additionally, the session will cover shader-based effects, handling user input, playing sounds and music, and putting it all together for submission to the Marketplace.

TH16 - Writing Asynchronous Code Using .NET 4.5 and C# 5.0
Date: Thursday, May 17, 2012
Time: 1:30 PM – 2:45 PM 
Level: Introductory

A variety of new features were added to the .NET 4.5 Framework, including support for easily writing asynchronous code. This session will introduce the concepts of asynchronous programming, .NET Tasks, how to ensure your UI remains responsive, and how to do all of this properly in your own applications using the new async and await keywords. If you’re looking for ways to provide a better, smoother experience for your users, don’t miss this session!

As always, I will be hosting another round of Developer Duel on Tuesday night during the VSLive After Dark event.  Join us for the event and have a chance to win fabulous prizes while playing a game similar to one you’ve seen on TV for the past 30 years…

394959_10150508695749475_190107439474_9124612_1504117249_n

Get more information on the conference at:

Hope to see you all there!

Visual Studio Live! - Las Vegas

Posted February 8, 2012 6:20 AM Categories: Async | Events | VSLive Vegas | Windows 8 | XNA

I will be speaking at Visual Studio Live! in Las Vegas this March 26-30.  The conference is a full 5 day event and there’s still time to register!  If you use code VLSPK21, you can save a nice chunk of cash off the all-access Best Value Conference Package. The three sessions I’m presenting are:

T05 - Windows 8 Metro-style Application Contracts and Extensibility
Date: Tuesday, March 27, 2012
Time: 10:45 AM – 12:00 PM 
Level: Intermediate

Contracts are a new feature of Windows 8 Metro-style applications that allow applications to interact with the operating system and other Metro-style applications in a standard way. With contracts, applications can implement interfaces to allow searching, sharing, settings, app-to-app file picking, and more. In this session, we will explore these contracts and how they can be used in any Windows 8 Metro-style application to provide a seamless, integrated experience for users.

W04 - XNA Games for Windows Phone
Date: Wednesday, March 28, 2012
Time: 9:15 AM – 10:30 AM 
Level: Introductory to Intermediate

You have Silverlight on Windows Phone 7 under control, but what about XNA? If you're looking to create a more advanced game with better performance than Silverlight, XNA is the platform for you. In this session, developers will learn how to build an XNA game targeted for Windows Phone 7. The basics of the platform will be demonstrated while building a simple Space Invaders-type game that would be Marketplace acceptable. Specifically, this session will cover how to deal with user input, play sound effects and music, display animated 2D graphics, and how to create a game that's ready to be sold on the Marketplace.

TH09 - Writing Asynchronous Code Using .NET 4.5 and C# 5.0
Date: Thursday, March 29, 2012
Time: 11:00 AM – 12:15 PM
Level: Introductory

A variety of new features were added to the .NET 4.5 Framework, including support for easily writing asynchronous code. This session will introduce the concepts of asynchronous programming, .NET Tasks, how to ensure your UI remains responsive, and how to do all of this properly in your own applications using the new async and await keywords. If you’re looking for ways to provide a better, smoother experience for your users, don’t miss this session!

As always. I will be hosting another round of Developer Duel on Wednesday night during the Wild Wednesday event.  Join us for the event and have a chance to win fabulous prizes while playing a game similar to one you’ve seen on TV for the past 30 years…

image

Get more information on the conference at:

Hope to see you all there!

Visual Studio Live! - Orlando

Posted December 1, 2011 7:59 AM Categories: .NET | Events | Multitouch | VSLive Orlando | Windows Phone | XNA

imageI will be speaking at Visual Studio Live! in Orlando this December 5-9.  The conference is a full 5 day event and there’s still time to register!  The two sessions I’m presenting are:

TH2 - XNA Games for Windows Phone 7
Date: Thursday, December 8, 2011
Time: 8:00 AM – 9:15 AM 
Level: Introductory to Intermediate

You have Silverlight on Windows Phone 7 under control, but what about XNA? If you're looking to create a more advanced game with better performance than Silverlight, XNA is the platform for you. In this session, developers will learn how to build an XNA game targeted for Windows Phone 7. The basics of the platform will be demonstrated while building a simple Space Invaders-type game that would be Marketplace acceptable. Specifically, this session will cover how to deal with user input, play sound effects and music, display animated 2D graphics, and how to create a game that's ready to be sold on the Marketplace.

TH12 - Multi-touch Madness!
Date: Thursday, December 8, 2011 
Time: 11:00 AM – 12:15 PM 
Level: Introductory to Intermediate

Multi-touch technology is popping up everywhere, most recently in Windows 7 and various .NET technologies. Windows 7 has been designed from the ground-up with multi-touch in mind, and the newest versions of WPF and Silverlight are multi-touch capable as well. In this session I will take you through the 4 biggest areas of Microsoft multi-touch technology: Windows 7, WPF 4, Silverlight, and Surface, including the forthcoming Surface Toolkit for Windows Touch. You will learn how to make your applications multi-touch aware and capable using each of these platforms, how to handle gestures and manipulations properly across platforms, and learn where multi-touch is heading in the future with regard to Microsoft development.

We will also be playing another round of Developer Duel on Wednesday night during the Wild Wednesday event.  Join us for the event and have a chance to win fabulous prizes while playing a game similar to one you’ve seen on TV for the past 30 years…

Get more information on the conference at:

Hope to see you all there!

Kinect for Windows SDK + XNA

Posted November 21, 2011 8:13 AM Categories: .NET | C# | Kinect | XNA

imageI have seen a few people talk about using the Kinect for Windows SDK with XNA lately, and many of those projects aren't using the SDK how it's intended to be used from a framework such as this.

When I had a hand in working on the managed SDK, I made a point that the API should allow for both an "eventing" model, and a polling model.  In the land of WPF and WinForms, an eventing model makes perfect sense.  In these frameworks, the SDK is intended to be used thusly:

private Nui.Runtime _kinect = Nui.Runtime.Kinects[0];

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    _kinect.DepthFrameReady += DepthFrameReady;
    _kinect.SkeletonFrameReady += SkeletonFrameReady;
}

void DepthFrameReady(object sender, ImageFrameReadyEventArgs e)
{
    // do something with the depth frame
}

void SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    // do something with the skeleton frame
}

But, in the land of XNA, where all of your code is shared between the Update and Draw methods, and where events don't really exist in the normal flow of things, trying to synchronize the Kinect events and the data they provide with the Update and Draw loop can be difficult, and can lead to conditions where data is being updated from an event while you're touching it in the Update method.  Sure, you could use locks to help synchronize things, but there's an easier way.

To help with this, the API contains methods to directly poll for the latest data, such as the current depth frame or skeleton frame.  These methods can be used as shown:

private Runtime _kinect = Runtime.Kinects[0];
private SkeletonFrame _skeletonFrame;
private ImageFrame _depthFrame;

protected override void Update(GameTime gameTime)
{
    _skeletonFrame = _kinect.SkeletonEngine.GetNextFrame(0);
    _depthFrame = _kinect.DepthStream.GetNextFrame(0);

    base.Update(gameTime);
}

protected override void Draw(GameTime gameTime)
{
    // do something with _skeletonFrame and/or _depthFrame
    // such as, draw it to the screen
    
    base.Draw(gameTime);
}

So, if you're using XNA in tandem with the Kinect for Windows SDK, be sure to use the API as it was intended.  It will likely save you some debugging headaches later on.

MJPEG Decoder v1.1

Posted May 7, 2011 9:25 PM Categories: C# | Coding4Fun | MJPEG | Silverlight | Windows Phone | WPF | XNA

A quick update to my Motion JPEG Decoder is now available at CodePlex.  Version 1.1 adds the ability to specify username/password credentials for cameras that require a login.  For example:

MjpegDecoder _mjpeg;

_mjpeg = new MjpegDecoder();
_mjpeg.FrameReady += mjpeg_FrameReady;

_mjpeg.ParseStream(new Uri("http://192.168.2.200/img/video.mjpeg"), "user", "password");

As always, questions/comments welcome.  Enjoy!

My Info

  • View Brian Peek's profile on LinkedIn

Sponsored Ad

My Book

Sponsored Ad