Joining the Mothership

Posted January 13, 2012 9:31 PM Categories: Channel 9 | Coding4Fun | Microsoft | Personal

imageAt long last I have accepted a full-time position at Microsoft, working on the Channel 9 team, mainly doing Coding4Fun stuffs.  I'll be telecommuting from NY as I have been these past 8 years.  It's hard for me to believe that I've been doing Coding4Fun articles and projects for the team since 2006, but I'm excited that I now get to do it full-time.

Also joining the team is master UX-man Rick Barraza.  He brings a pile of amazing talent and skill that will really allow us to create some fantastic projects.  And, of course, we're joining the existing team of Dan Fernandez and Clint Rutkas, with Greg Duncan heading up the Coding4Fun blog and Kinect Project blog.

Also note that Coding4Fun is looking for a junior developer/program manager.  So, if you want to join the team, now's your chance!

Anyway, I'm very excited to be joining Microsoft, and I'm really looking forward to seeing what we can crank out as a team…

Kinect at Tech Valley .NET User Group

Posted December 6, 2011 1:15 PM Categories: .NET | Events | Kinect | Tech Valley Code Camp

imageFor my fellow Capital District folks, I’ll be giving a session to the Tech Valley .NET Users Group (TVUG) Tuesday, December 13th at 6:30pm on everything that is Kinect and the Kinect for Windows SDK  Here are the details….

Where: Tyler Technologies, Latham, NY
When: Tuesday, December 13th, 2011, 6:30-8:30PM

Join us as Brian Peek demonstrates the basics of using the Kinect for Windows SDK including:  how Kinect works, installing and setting up the Kinect sensor, setting up the development environment, reading camera, depth and skeleton data, understanding what depth data is and how it works, skeletal tracking and working with the Kinect microphone array to record audio and use speech recognition.

Hope to see you all there!

Visual Studio Live! - Orlando

Posted December 1, 2011 12:59 PM Categories: .NET | Events | Multi-touch | 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 1:13 PM 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.

HP TouchSmart 420t Recovery Discs + Software

Posted October 8, 2011 4:53 PM Categories: HP TouchSmart | General | Hardware

imageMy mom desperately needed a new computer (she's still running XP on a very old Dell), so I decided to pick up one of HP's new TouchSmart 420t machines for her, thinking it'll also be a great machine for Windows 8 when it arrives.

HP, in their infinite wisdom, decided that, among other annoyances, one can only create a single set of recovery media from the included Recovery Media Creation application.  Once you make the set, that's it.  If you lose the media, or if you want to make a second set on USB instead of DVDs, you're out of luck, short of ordering the media from HP for a price.

If you are stuck in this situation, there is an easy fix, assuming you still have the Recovery partition available on the hard drive.

  1. Open up an Administrator command prompt window
  2. Change to the D drive (D:)
  3. Change directories to D:\HP\CDCreatorLog (cd \hp\CDCreatorLog)
  4. Delete the ResumeSnapshot.xml file (del ResumeSnapshot.xml)
  5. Restart the Recovery Media Creation application

Alternatively, you could try downloading, saving, and running this batch file as an Administrator: HPRecoveryReset.bat .

A second issue I have is that they don't have their TouchSmart software and other client-side pieces on the driver and software support page on their site.  So, if you want to do a clean install of Windows and then selectively add back certain features, such as the HP TouchSmart shell, or the HP client utilities, you are, once again, out of luck.  However, there is a bit of a workaround.  On the C: drive in the SWSETUP directory, you will find a number of these applications in their installer state so they can be put back on the machine.  Simply copy this directory off somewhere safe, clean install Windows 7, restore this directory, and then install the software and drivers you need/want.

This may (and probably will) work for other models of machines from HP that use the same recovery software and drive setup.  Of course, this is a YMMV fix, but it has worked here without issue.  However, it does make me question purchasing another HP machine in the future.  If anyone from HP happens to stumble upon this, please take this into consideration.  Don't make it difficult for users to restore their machine and/or do a clean install of Windows.  You're not winning people over by making things cumbersome.  Then again, you're out of the hardware business so I suppose it doesn't much matter.

I hope to throw Windows 8 on the machine for a quick spin before I remove it and hand it over to my mom and will report back here if I find anything noteworthy in the install/usage of Win8 on the machine.

My Info

  • View Brian Peek's profile on LinkedIn

Sponsored Ad

My Book

Sponsored Ad

Calendar

<<  February 2012  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar