<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>William J. Steele's WebLog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/wsteele/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/wsteele/feed.xml</link>
    <description>An Effort At Communication!</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:27:23 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Silverlight Game Development webcasts</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/silverlight-game-development-webcasts</link>
      <pubDate>Fri, 22 Apr 2011 07:07:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2011/04/22/silverlight-game-development-webcasts/</guid>
      <description><![CDATA[Did you know that you can build games in Silverlight for Windows Phone 7?&nbsp; I'm doing a series...]]></description>
      <content:encoded><![CDATA[<p>Did you know that you can build games in Silverlight for Windows Phone 7?&nbsp; I'm doing a series of webcasts detailing how I build a very simple Tic Tac Toe like game.</p>
<p>You can watch the previously recorded sessions as well as the upcoming sessions here:</p>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="text-decoration: underline;">On-Demand Sessions:</span></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><a target="_blank" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032483698&amp;culture=en-US">MSDN Webcast: Silverlight Game Development for Windows Phone 7 (Part 1 of 6): System Setup and Tools (Level 200)</a></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><a target="_blank" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032483700&amp;culture=en-US">MSDN Webcast: Silverlight Game Development for Windows Phone 7 (Part 2 of 6): Game Core Concepts (Level 200)</a></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><a target="_blank" href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032483703&amp;CountryCode=US">MSDN Webcast: Silverlight Game Development for Windows Phone 7 (Part 3 of 6): Handling Input and Logic (Level 200)</a></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><br /></span></span>
<p><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="text-decoration: underline;">Upcoming Live&nbsp;Sessions:<br /></span></span></span><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #333333;">4/27 1:00 PM Eastern: </span><a target="_blank" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032483807&amp;culture=en-US">MSDN Webcast: Silverlight Game Development for Windows Phone 7 (Part 4 of 6): Scoring and Collision Testing (Level 200)</a></span></span><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #333333;"><br />5/4 1:00 PM Eastern: </span><a target="_blank" href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032483810&amp;EventCategory=4&amp;culture=en-US&amp;CountryCode=US">MSDN Webcast: Silverlight Game Development for Windows Phone 7 (Part 5 of 6): Advanced Graphics (Level 200)</a></span></span><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #333333;"><br />5/11 1:00 PM Eastern: </span><a target="_blank" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032483812&amp;culture=en-US">MSDN Webcast: Silverlight Game Development for Windows Phone 7 (Part 6 of 6): Final Polishing and Game Publishing (Level 200)</a></span></span>&nbsp;&nbsp;</p>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><br />In addition, I'm going to be starting a new series immediately after that, so stay tuned.<br /></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><br /><br />Bill</span></span></div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Saving Recorded Audio to IsolatedStorage</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/saving-recorded-audio-to-isolatedstorage</link>
      <pubDate>Mon, 08 Nov 2010 17:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2010/11/08/saving-recorded-audio-to-isolatedstorage/</guid>
      <description><![CDATA[So, after the Windows Phone 7 Developer Launch events, I've had several questions about how someone...]]></description>
      <content:encoded><![CDATA[<p>So, after the Windows Phone 7 Developer Launch events, I've had several questions about how someone should store audio captured from the microphone for later playback.&nbsp; I said IsolatedStorage was the way to do it, but I left it to the attendees to figure it out.&nbsp; </p>
<p>It turns out some folks were having a little difficulty&nbsp;figuring it out, so here's a little cheater code&nbsp;for you.&nbsp; </p>
<p>This is a very simple bit of code that does three things... one, it allows you to record audio... two, it allows you to save that audio in IsolatedStorage and three, it allows you to play that audio back from IsolatedStorage.</p>
<p>I was going to write a tremendously long blog post about how to do this... however, the code is already commented very well... so here are the three important methods instead (plus the delegate handler.) &nbsp;:-)</p>
<p><code class="csharp"><span style="font-size: x-small;"></span></code><span style="font-size: x-small;">&nbsp;</span></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void startBtn_Click(object sender, RoutedEventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Don't start if we are already recording<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (recording == false)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // We're recording 1/10th of a second buffers at a time<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; microphone.BufferDuration = TimeSpan.FromMilliseconds(100);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Here we size our byte array to hold the audio<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer = new byte[microphone.GetSampleSizeInBytes(microphone.BufferDuration)];<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // This is our delegate handler for when the buffer get's full<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; microphone.BufferReady += new EventHandler&lt;EventArgs&gt;(microphone_BufferReady);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // yep... we're recording now!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recording = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Activate the Microphone<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; microphone.Start();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // This is our delegate (event) handler for when the buffer get's full<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void microphone_BufferReady(object sender, EventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // copy the microphone data into our buffer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; microphone.GetData(buffer);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // tell the dispatcher to run this<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Dispatcher.BeginInvoke(() =&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // copy it to our stream (remember, we need the stream to pass to the audio player)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stream.Write(buffer, 0, buffer.Length);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void stopBtn_Click(object sender, RoutedEventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ok user doesn't want to record anymore<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (microphone.State == MicrophoneState.Started)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // so, if we were recording, we're not going to be after this line!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; microphone.Stop();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ok... no longer recording<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recording = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ok, here is where we store the file<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // first, we grab the current apps isolated storage handle<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // we give our file a filename<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strSaveName = "MyRecording.wav";<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if that file exists...&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isf.FileExists(strSaveName))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // then delete it<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isf.DeleteFile(strSaveName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // now we set up an isolated storage stream to point to store our data<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsolatedStorageFileStream isfStream = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new IsolatedStorageFileStream(strSaveName, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileMode.Create, IsolatedStorageFile.GetUserStoreForApplication());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // tell it to actually write it out (remember, it's just raw data)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isfStream.Write(stream.ToArray(), 0, stream.ToArray().Length);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ok, done with isolated storage... so close it<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isfStream.Close();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // magic method<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void playBtn_Click(object sender, RoutedEventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // again, grab the current apps isolated storage<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // yep... we want to play the same file we recorded<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strFileName = "MyRecording.wav";<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // let's reverse what we did earlier... so we still need to get a <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // file stream from isolated storage... but it's read mode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsolatedStorageFileStream isfStream = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new IsolatedStorageFileStream(strFileName, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileMode.Open, IsolatedStorageFile.GetUserStoreForApplication());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // remember, our data is raw, so we need to create a new buffer again <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // to hold it (big enough to hold everything)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] b = new byte[isfStream.Length];<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // now we copy our file back in to our buffer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isfStream.Read(b, 0, b.Length);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // then we can pass it into our sound effect object... <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // but tell it current samplerate and audio channels from the current hardware<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // NOTE: if you wanted to get adventerous and have a mechanism where you play these on a different machine,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // you'll also need to encode the samplerate and audiochannels in your file store and restore them as well<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // because those settings might be different for a different piece of hardware (phone)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // luckily, since we're using the same hardware, the settings won't change<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SoundEffect se = new SoundEffect(b.ToArray(), microphone.SampleRate, AudioChannels.Mono);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // lastly... a miracle occurs<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; se.Play();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>Note, the form is really simple... it looks like this.</p>
<p>&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/39/31/5584.SoundSaverPic.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-39-31/5584.SoundSaverPic.jpg" border="0" /></p>
<p>The only other thing I had to do was follow the instructions to hook up the XNA Dispatcher to Silverlight here.</p>
<p><a href="http://www.silverlightshow.net/items/Exploring-Silverlight-XNA-integration-on-Windows-Phone-7.aspx">http://www.silverlightshow.net/items/Exploring-Silverlight-XNA-integration-on-Windows-Phone-7.aspx</a></p>
<p>Naturally, I've attached the code to this post... Have fun!</p>
<p>Bill</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/08/79/38/SoundSaver.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-08-79-38/SoundSaver.zip">SoundSaver.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Important Info for WP7 Application Developers</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/important-info-for-wp7-application-developers</link>
      <pubDate>Fri, 15 Oct 2010 02:48:52 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2010/10/15/important-info-for-wp7-application-developers/</guid>
      <description><![CDATA[If you are developing an application for Windows Phone 7 and are hoping to get your application...]]></description>
      <content:encoded><![CDATA[<div class="post-content clear-block">
<p><a jquery1287135855652="11" href="http://chriskoenig.net/wp-content/uploads/2010/10/Picture1.png"><img height="240" width="127" src="http://chriskoenig.net/wp-content/uploads/2010/10/Picture1_thumb.png" align="right" alt="Picture1" border="0" title="Picture1" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border-width: 0px;" /></a>If you are developing an application for Windows Phone 7 and are hoping to get your application published into the marketplace &ndash; then you need to read this post!</p>
<p>Straight from the WP7 Marketplace gurus, here are the top things to consider before submitting an application for certification to help increase the chances the application will pass testing the first time.&nbsp; This list is based on some of the experiences we&rsquo;ve had working with some of our early adoption partners who are busy building the applications you&rsquo;ve seen us talk about at some of our Bootcamps and Launch Events.</p>
<p>1) <b>READ the docs!!!&nbsp; </b>Understand the application policies that represent the requirements all applications need to meet in order to pass certification testing. Here are links for your convenience</p>
<ul>
<li><a modo="false" href="http://windowsteamblog.com/Windows_Phone/b/wpdev/archive/2010/03/18/windows-phone-7-series-ui-design-amp-interaction-guide.aspx">Windows Phone 7 Series UI Design and Interaction Guide [PDF]</a> <br />This document is all about the design of your application. Do you have a Pivot Control stacked inside a Panorama Control?&nbsp; That would be bad.&nbsp; Are you using the Windows Phone 7 built-in styles to display text and highlights? If not, it could raise some additional questions. PLEASE read this first one thoroughly (it&rsquo;s a long read) to make sure you understand what METRO is all about, and what the design checkers will be looking for. </li>
<li><a modo="false" href="http://go.microsoft.com/?linkid=9730558">Windows Phone 7 Application Certification Requirements [PDF]</a> <br />This document is a short, easy to read explanation of the application certification process and the requirements behind it.&nbsp; At less than 30 pages, this one is one you also want to start off with because there are some very specific requirements that you&rsquo;ll have to include in your applications depending on what your application does.&nbsp; Using the Location Sensor? Do you ask the user if that&rsquo;s OK to do? Do you have a way to turn it off? Will your application &ldquo;work&rdquo; with the Location Sensor turned off?&nbsp; This is the kind of information in this document and it&rsquo;s critical that you read it before you submit your application. <!--endfragment--></!--endfragment--></li>
</ul>
<p>2) <b>Know your iconography.</b> <b></b></p>
<ul>
<li><b>Test Case 4.6 -</b> Screen shots should encompass the full 480&nbsp; x 800 dimension, must be a direct capture of the phone screen or emulator and needs to represent the correct aspect ratio.<b></b> </li>
<li><b>Test Case 4.5 &ndash; </b>Avoid using the default Windows Mobile icons.<b></b> </li>
<li>Including a panorama background image is optional, but recommended. This will enable Microsoft to potentially feature your panorama image on the Marketplace catalog to help improve your application&rsquo;s visibility with the likely result of more downloads. </li>
</ul>
<p>3) <b>Support Information &ndash; Test Case 5.6.</b></p>
<ul>
<li>Until 10/31/2010, it is recommended that applications include the version number or support information (for example a URL or email), which is easily discoverable by end-users. </li>
<li>Modify your applications now to help plan for 11/1/2010 when this test case will be enforced. </li>
</ul>
<p>4) <b>Toast Notification &ndash; Test Case 6.2</b></p>
<ul>
<li>There must be the ability for the user to disable toast notification. </li>
<li>On first use of HttpNotificationChannel.BindtoShellToast method, the application must ask the user for explicit permission to receive a toast notification. </li>
</ul>
<p>5) <b>Applications Running Under a Locked Screen &ndash; Test Case 6.3</b></p>
<ul>
<li>This only applies to applications that continue to execute when running under the locked screen and does not apply to applications in a suspended state. </li>
<li>Prompt the user for explicit permission to run under a locked screen upon first use of ApplicationIdleDetectionMode. </li>
</ul>
<p>6) <b>Back Button &ndash; Test Case 5.2.4</b></p>
<ul>
<li>Back button behavior is one of the most typical failures. </li>
<li>A common failure is pressing the back button during application runtime exits the application, instead of returning the application to a previous page or closing the presented menu or dialog. </li>
</ul>
<p>7) <b>Themes &ndash; Test Case 5.1.1. </b>Avoid controls and text washing-out by testing applications with the Theme Background set to &ldquo;light&rdquo;. <b></b></p>
<p><img src="http://chriskoenig.net/wp-includes/images/smilies/icon_cool.gif" alt="8)" class="wp-smiley" /> <b>Languages. </b>Be sure that the application description and the text the application displays to end users is localized appropriately in the target language.<b></b></p>
<p>9) <b>Failures upon Upload to the Marketplace. </b>There is a validation tool that assesses your application upon upload to the Marketplace. Some common failures are:<b></b></p>
<ul>
<li><b>Error 1029 &ndash; Your XAP in missing an interop manifest. </b>Make sure the interop syntax is specified in the manifest file. If the account does not have permissions to run interop, this error message will also be generated.<b></b> </li>
</ul>
<p>10) <b>Windows Phone Developer Tools. </b>Be sure to use the RTM version of the Windows Phone Developer Tools as applications built on previous tool versions will fail testing.</p>
<ul>
<li>There were some important changes between the two versions, so make sure you re-test your application on the RTM bits to makes sure everything is cool. </li>
</ul>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Developing for the ZuneHD with XNA</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/developing-for-the-zunehd-with-xna</link>
      <pubDate>Thu, 17 Sep 2009 10:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2009/09/17/developing-for-the-zunehd-with-xna/</guid>
      <description><![CDATA[So, I've been playing with the ZuneHD for a while now and I thought I'd pass on to all of you how to...]]></description>
      <content:encoded><![CDATA[<p>So, I've been playing with the <a href="http://www.zune.net/en-us/products/zunehd/default.htm" title="Zune HD Site">ZuneHD</a> for a while now and I thought I'd pass on to all of you how to utilize the Accelerometer and Touch APIs from the new <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=48f7ba37-8ba7-4d16-8873-0b7f83ef77f9&amp;displaylang=en" title="Zune HD Extensions">XNA 3.1 ZuneHD Extensions</a>.</p>
<p>I'd love to get your feed back on this "pilot" episode of a tutorial series for building apps/games for the ZuneHD.</p>
<p>The plan is to start off simple and get more advanced at the series progresses.&nbsp; I'd love to get your feedback on if this would be valuable for you.</p>
<p>Anyway, here are the files you can download and use:&nbsp; <a href="http://www.joyofflight.com/XNAZuneHDDemoBlog.wmv" title="Video of XNA ZuneHD Demo">Video</a> and <a href="http://www.joyofflight.com/ZuneHDDemo.zip" title="XNA ZuneHD Demo Source Code">Demo Code</a></p>
<p>(EDIT: Added new demo code for Media Player Integration Sample: <a href="http://joyofflight.com/ZuneHDDemo2.zip" title="New Demo Code">New Demo Code</a>)</p>
<p>And this is the embedded video (WMV in Media Player.)</p>
<p>
<object height="375" width="576" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="WMPEmbed" style="width: 576px; height: 375px;">
<param value="http://www.joyofflight.com/XNAZuneHDDemoBlog.wmv" name="URL" />
<param value="1" name="rate" />
<param value="0" name="balance" />
<param value="0" name="currentPosition" />
<param name="defaultFrame" />
<param value="1" name="playCount" />
<param value="0" name="autoStart" />
<param value="0" name="currentMarker" />
<param value="-1" name="invokeURLs" />
<param name="baseURL" />
<param value="50" name="volume" />
<param value="0" name="mute" />
<param value="full" name="uiMode" />
<param value="0" name="stretchToFit" />
<param value="0" name="windowlessVideo" />
<param value="-1" name="enabled" />
<param value="-1" name="enableContextMenu" />
<param value="0" name="fullScreen" />
<param name="SAMIStyle" />
<param name="SAMILang" />
<param name="SAMIFilename" />
<param name="captioningID" />
<param value="0" name="enableErrorDialogs" />
<param value="15240" name="_cx" />
<param value="9921" name="_cy" />
</object>
</p>
<p>Enjoy!</p>
<p>Bill</p>
<p><a href="http://www.joyofflight.com/XNAZuneHDDemoBlog.wmv">http://www.joyofflight.com/XNAZuneHDDemoBlog.wmv</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Upcoming MSDN Events</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/upcoming-msdn-events</link>
      <pubDate>Wed, 05 Aug 2009 20:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2009/08/05/upcoming-msdn-events/</guid>
      <description><![CDATA[Ok, folks.&nbsp; For some reason we're not getting our upcoming MSDN events published on the MSDN...]]></description>
      <content:encoded><![CDATA[<P>Ok, folks.&nbsp; For some reason we're not getting our upcoming MSDN events published on the MSDN Events website.</P>
<P>So... here's a rundown of all the events in the area that you might be interested in.</P>
<P>
<TABLE style="MARGIN: auto auto auto -0.55pt; WIDTH: 190pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" class=MsoNormalTable border=0 cellSpacing=0 cellPadding=0 width=253 class="MsoNormalTable">
<TBODY>
<TR style="HEIGHT: 38.4pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD style="BORDER-BOTTOM: #f0f0f0; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; HEIGHT: 38.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="COLOR: black; FONT-SIZE: 8pt"><FONT face=Calibri>City<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></B></P></TD>
<TD style="BORDER-BOTTOM: #f0f0f0; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; HEIGHT: 38.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="COLOR: black; FONT-SIZE: 8pt"><FONT face=Calibri>Date<o:p></o:p></FONT></SPAN></B></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 1">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Columbus<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">18-Aug-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 2">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Downers Grove<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">19-Aug-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 3">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Mason<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">19-Aug-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 4">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Indianapolis<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">20-Aug-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 5">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Grand Rapids<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">16-Sep-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 6">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Southfield <o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">17-Sep-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 7">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Bloomington<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">22-Sep-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 8">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Independence<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">22-Sep-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 9">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Nashville<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">29-Sep-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 10">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Knoxville<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">30-Sep-09<o:p></o:p></SPAN></P></TD></TR>
<TR style="HEIGHT: 0.2in; mso-yfti-irow: 11; mso-yfti-lastrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 78pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=104 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">Chicago <o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 56pt; PADDING-RIGHT: 5.4pt; BACKGROUND: white; HEIGHT: 0.2in; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=bottom width=75 noWrap>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: black; FONT-SIZE: 8pt">1-Oct-09<o:p></o:p></SPAN></P></TD></TR></TBODY></TABLE></P>
<P>And here is what we're talking about:</P>
<P>
<TABLE border=0>
<TBODY>
<TR>
<TD>
<DIV class=eventdetails><SPAN id=lblEventDescription>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt">By now most developers and architects are aware of cloud computing and several people have heard of Microsoft Azure, which was announced at PDC 2008 last November. While many of the fundamental concepts are relatively easy to understand, lingering issues relate pertaining to how to apply cloud computing to specific scenarios. What is it? When should I use it? How does it apply to my job? Join us as we review some of the lessons Microsoft IT has learned through Project Austin, an incubation project dogfooding the use of Microsoft Azure as a platform for supporting internal line-of-business applications.<BR><BR></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt">In this event we will start by reviewing cloud computing architectures in general and the Azure architecture in particular. We will then dive deeper into several aspects of Azure from the developer’s and architect’s perspective. We will review the Azure roles (web, web service and worker); discuss several Azure storage options; review Azure security and identity options; review how Azure-based applications can be integrated with on-premise applications; discuss configuration, deployment and scaling Azure-based applications; and highlight how development teams can optimize their applications for better management and monitoring.</SPAN></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt"></SPAN>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt"></SPAN>&nbsp;</P></SPAN></SPAN></DIV></TD></TR></TBODY></TABLE>To sign up for these events, simply check the <A href="http://www.microsoft.com/events">http://www.microsoft.com/events</A> site and search for "Developer" event in your area.</P>
<P>See you there!</P>
<P>Bill</P>]]></content:encoded>
    </item>
    <item>
      <title>The thrill of a lifetime... I flew a P-51!!!</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/the-thrill-of-a-lifetime-i-flew-a-p-51</link>
      <pubDate>Wed, 24 Jun 2009 15:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2009/06/24/the-thrill-of-a-lifetime-i-flew-a-p-51/</guid>
      <description><![CDATA[Ok, so I have to gloat for a bit.&nbsp; This weekend, I got the chance of a lifetime to fly a P-51...]]></description>
      <content:encoded><![CDATA[<P><IMG style="WIDTH: 211px; HEIGHT: 164px" title="Stallion 51 P-51 Mustang" border=0 hspace=2 alt="Stallion 51 P-51 Mustang" vspace=2 align=right src="http://www.joyofflight.com/images/Stallion51.jpg">Ok, so I have to gloat for a bit.&nbsp; This weekend, I got the chance of a lifetime to <A title="Stallion 51 P-51 Mustang" href="http://stallion51.com/aircraft/aircraft-crazyh2.aspx" mce_href="http://stallion51.com/aircraft/aircraft-crazyh2.aspx">fly a P-51 Mustang</A>.&nbsp; If you're a pilot, you know what the Mustang is.&nbsp; If not, the P-51 is the finest fighter produced in WWII.&nbsp; It was built by North American Aviation and, combined with the awesome Rolls Royce Merlin engine, was just about the best plane ever.&nbsp; In my mind, it is the most beautiful plane ever produced as well.</P>
<P>My hats off go to several people for giving me this chance.&nbsp; First off, Lee Lauderback, for being the finest pilot I've ever flown with.&nbsp; His calm and cool voice (that's him in the front of the plane) is very re-assuring, especially considering he was letting me fly <STRONG>HIS $3.5 Million</STRONG> dollar plane!!!&nbsp; He obviously wasn't going to let me break his plane but he never once seemed concerned (well there was that one time when I was taxiing out, but it sounded like he was more concerned about the lights then the plane.)</P>
<P>Secondly, I'd like to thank the guys at <A title="Forward Vision" href="http://www.forward-vision.net/" mce_href="http://www.forward-vision.net">Forward Vision</A>... for inviting me to the dinner where I won the "grand door prize."&nbsp; Rick and Pat have been going to that dinner for several years and this was my first time... literally, five minutes after I walked into the place, I won the door prize.&nbsp; Naturally, they were pleased that I won it on my&nbsp;first time attending the dinner.&nbsp; Thanks for inviting me&nbsp;Little Tricky Uncle Ricky!!!</P>
<P>Lastly, the prize was given away by <A title="Plane and Pilot Magazine" href="http://www.planeandpilotmag.com/" mce_href="http://www.planeandpilotmag.com/">Plane and Pilot</A> magazine.&nbsp; Mike McMahon and his team produce one of the finest magazines in the aviation industry and this door prize was&nbsp;from&nbsp;them.&nbsp; (By the way, <A title=VirtualHUD href="http://www.virtualhud.com/" mce_href="http://www.virtualhud.com">VirtualHUD</A> will also be featured in this next months issue (August 09.)&nbsp; If you happen to go to <A title="EAA Oshkosh AirVenture 2009" href="http://www.airventure.org/" mce_href="http://www.airventure.org">Oshkosh</A> this year, stop by our booth and see the article in the magazine... oh, and don't forget to check out the actual VirtualHUD units, too!</P>
<P>Ok, now about the video.&nbsp; The Mustang we were in is actually not a P-51D, but it was at one time.&nbsp; It was built in 1944 as a P-51D, but since then, it's been modified into the TF-51 trainer by removing the rear fuel tank and adding my seat and controls.&nbsp; It is a full dual control plane with all the instruments in both seats.&nbsp; This video starts off with Lee and I on board, both with full parachute systems and strapped into our 5 point harnesses.&nbsp; As we taxi out, he let's me taxi almost the entire way... which is actually harder then it seems because from the rear seat, you see nothing.&nbsp; Now one thing to understand, I've actually never flown a tail wheel plane, which means nothing in the air, but on the ground, the handling is very different and the Mustang actually has an interesting setup where the tailwheel is sometimes connected to the rudder and sometimes not depending on how you have the stick positioned.&nbsp; It's a cool design but you definitely have to get used to it.</P>
<P><IMG style="WIDTH: 158px; HEIGHT: 102px" title="Bill's Beechcraft Skipper" border=2 hspace=4 alt="Bill's Beechcraft Skipper" vspace=1 align=left src="http://www.wjsteele.com/images/beechskipper.jpg" width=162 height=106 mce_src="http://www.wjsteele.com/images/beechskipper.jpg">Once airborne, the Mustang is a dream.&nbsp; It's very responsive, even though it weighs 8,500 lbs.&nbsp; Just for comparison, my <A title="Beechcraft Skipper" href="http://www.wjsteele.com/images/beechskipper.jpg" mce_href="http://www.wjsteele.com/images/beechskipper.jpg">Beechcraft Skipper</A> grosses out at 1,670 lbs and the&nbsp;F-16 weighs much more... like 20,000 lbs empty.&nbsp; We did a high performance climb out and he immediately gave me the plane.</P>
<P>We had a thorough preflight briefing and knew exactly what we were going to do for the full hour.&nbsp; We didn't skip or miss anything, but I did add one additional stall in there.&nbsp; The first thing we did was fly to our aerobatic box.&nbsp; Once there I flew the plane around to get the feel for it and then we did some slow flight.&nbsp; Stalls were mild (except the first one which I sort of dove upside down&nbsp;into... totally my fault.)&nbsp; I'm not used to such a heavy plane stalling so mildly... it's actually an amazing wing on that plane.&nbsp; Also, you'll&nbsp;hear us talk about the pre-stall buffet, which is an indicator to the pilot that the plane is approaching departure.&nbsp; You also hear Lee tell me a lot of times to put in more rudder... with 1650 horsepower turning a 400 pound propeller, you get a lot of what we call p-factor, where the propeller likes to turn the plane and using the rudder compensates for that.&nbsp; Did I mention 1650 horsepower... thats more than 14 times the horsepower of my Skipper and they both only seat two!!!</P>
<P>Anyway, once slow flight was over, we started into the real fun stuff... Wing Overs, Aileron Rolls and Barrel Rolls.&nbsp; Lee is a great instructor and he knows his plane very well.&nbsp; Really well... it's very impressive.&nbsp; By the way, Lee is an instructor in the P-51 and an airshow stunt&nbsp;pilot.&nbsp; He has more than 6,000 hours in the P-51 alone... most people don't ever get that many hours in a lifetime of flying.</P>
<P>Back to flying... after the first few fun stunts, we then went into the vertical, with Loops, Cuban 8s and an Immelmann.&nbsp; The Mustang really shines here... that 1650 horsepower and that huge 11 ft propeller (or <A title=VirtualHUD href="http://www.virtualhud.com/" mce_href="http://www.virtualhud.com">HUD</A> as I see it) pulls that plane effortlessly through anything we wanted to do to it.</P>
<P>After a little break, we did a couple more rolls and finished it up with a four point roll.&nbsp; Which is a standard aileron roll, but you stop the roll at four points (like on a compass.)&nbsp; When you're upside down, you can feel the gentle tug of gravity as you're completely upside down at that point.</P>
<P>Speaking of gravity, the Mustang is considered an 8G plane.&nbsp; Which means it can put 8 times the force of gravity on you.&nbsp; We only got up to about 3+ in it during the loops, which was fun just the same.&nbsp; No G suit required.&nbsp; Also, since we were under 12,000 feet, we didn't need oxygen masks either, but the Mustang is equipped with an oxygen system if needed.&nbsp; (During war time, the Mustang is capable of a whole lot more than we put on it... infact, fully loaded, it would weigh over 12,500 lbs and fly at over 30,000 ft escorting the B-17 bombers into Germany.&nbsp; It could also fly at over 450 mph, though we only hit about 345 in our flying.)</P>
<P>When we were done, we flew back to Kissimmee, where to my surprise, Lee let me land his (did I mention $3.5 Million) plane!!!&nbsp; Remember, I've never flew a tailwheel plane... ever!&nbsp; I did fine for my first three tailwheel landings.&nbsp; Pilots understand the joke there.&nbsp; Anyway, once we were one the ground, that tailwheel mechanism kicked in and locked the wheel into place which kind of surprised me... which is why Lee needed to give me a little help with the rudder.&nbsp; But other than that, it was a fantastic flight.&nbsp; I learned a lot and I now I know why I love Mustang... not only is it the most beautiful plane ever made... it's also the finest flying machine I've ever had the chance to fly.&nbsp; Thanks everybody for giving me that chance!&nbsp;</P>
<P mce_keep="true">Here's the video... watch and enjoy.&nbsp; Warning... it's an hour long, so it might be good to just skip around... at least 38 minutes or so into it to see some fun stuff.</P>
<OBJECT style="WIDTH: 576px; HEIGHT: 375px" id=WMPEmbed classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6 width=576 height=375><PARAM NAME="URL" VALUE="http://www.virtualhud.com/virtualhud/images/P51RideMovie.wmv"><PARAM NAME="rate" VALUE="1"><PARAM NAME="balance" VALUE="0"><PARAM NAME="currentPosition" VALUE="0"><PARAM NAME="defaultFrame" VALUE=""><PARAM NAME="playCount" VALUE="1"><PARAM NAME="autoStart" VALUE="0"><PARAM NAME="currentMarker" VALUE="0"><PARAM NAME="invokeURLs" VALUE="-1"><PARAM NAME="baseURL" VALUE=""><PARAM NAME="volume" VALUE="50"><PARAM NAME="mute" VALUE="0"><PARAM NAME="uiMode" VALUE="full"><PARAM NAME="stretchToFit" VALUE="0"><PARAM NAME="windowlessVideo" VALUE="0"><PARAM NAME="enabled" VALUE="-1"><PARAM NAME="enableContextMenu" VALUE="-1"><PARAM NAME="fullScreen" VALUE="0"><PARAM NAME="SAMIStyle" VALUE=""><PARAM NAME="SAMILang" VALUE=""><PARAM NAME="SAMIFilename" VALUE=""><PARAM NAME="captioningID" VALUE=""><PARAM NAME="enableErrorDialogs" VALUE="0"><PARAM NAME="_cx" VALUE="15240"><PARAM NAME="_cy" VALUE="9921">
');   ');      <P>Bill</P><p mce_keep="true" mce_keep="true">&nbsp</p>
<p mce_keep="true" mce_keep="true">&nbsp</p></OBJECT>]]></content:encoded>
    </item>
    <item>
      <title>The Terrafugia flies!!!</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/the-terrafugia-flies</link>
      <pubDate>Wed, 18 Mar 2009 07:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2009/03/18/the-terrafugia-flies/</guid>
      <description><![CDATA[My congratulations go out to my buddy, Carl Detrich, of Terrafugia.&nbsp; On March 5th, their new...]]></description>
      <content:encoded><![CDATA[<P>My congratulations go out to my buddy, Carl Detrich, of <A href="http://www.terrafugia.com/">Terrafugia</A>.&nbsp; On March 5th, their new "roadable aircraft," the "Transition" flew for the first time.</P>
<P mce_keep="true">
<OBJECT width=425 height=349><PARAM NAME="movie" VALUE="https://www.youtube.com/v/EHXnLCIgNug&amp;border=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;hl=en&amp;feature=player_embedded&amp;fs=1"><PARAM NAME="allowFullScreen" VALUE="true">
<embed src="https://www.youtube.com/v/EHXnLCIgNug&border=1&color1=0x2b405b&color2=0x6b8ab6&hl=en&feature=player_embedded&fs=1" mce_src="https://www.youtube.com/v/EHXnLCIgNug&border=1&color1=0x2b405b&color2=0x6b8ab6&hl=en&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="349"></embed></OBJECT></P>
<P>As you can see, the Transition isn't your average everyday airplane.&nbsp; It is, in fact, an aircraft that can fold up it's wings and drive on normal roads.&nbsp; It's a very cool concept that has been tried in the past by some like Molt Taylor with little success.&nbsp; The difference this time&nbsp;is that Carl and his team are taking advantage of the new Light Sport rules, and thus, less strict regulations, combined with modern technologies, like Carbon Fiber Composite Structures to build a light weight, but very strong cabin that can withstand standard road abuse, but still be able to fly.</P>
<P>I've been following Carl's efforts since I first met him several years ago at Oshkosh.&nbsp; It's great to see it "get off the ground" so to speak!</P>
<P>Congratulations, Carl!!!&nbsp; Fantastic job!</P>
<P>Bill</P>]]></content:encoded>
    </item>
    <item>
      <title>Older "Soup to Nuts" Webcasts are expired.</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/older-soup-to-nuts-webcasts-are-expired</link>
      <pubDate>Tue, 03 Mar 2009 10:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2009/03/03/older-soup-to-nuts-webcasts-are-expired/</guid>
      <description><![CDATA[Well, it seems that the webcasts that I did a while back, the VB Soup To Nuts, ASP.NET Soup To Nuts...]]></description>
      <content:encoded><![CDATA[<P>Well, it seems that the webcasts that I did a while back, the VB Soup To Nuts, ASP.NET Soup To Nuts and C# Soup To Nuts webcasts have expired.&nbsp; Some of these webcasts were&nbsp;4 years old!!!</P>
<P>What that means is that they've been in our webcast engine so long that they automatically drop out of the queue of available webcasts to make room for the new webcasts.</P>
<P>So, what's the solution, you ask?&nbsp; Simple, I will rerecord them and start them over, but modernize them.&nbsp; In fact, some of these were based on Visual Studio 2003... and none targeted the current VS2008.&nbsp; The new webcasts will also include new language features like LINQ and even things like Generics, which were not available back then.</P>
<P>The next question is when will I start?&nbsp; The simple answer would be as soon as possible, but the real answer is that it will take a little time to update the material for today's world of development, including the practices and tools, so as soon as I get done with that, I'll begin scheduling them.&nbsp; Most likely, I'll start in the July timeframe.</P>
<P>Now, the question for you is, which ones should I do first?&nbsp; I'll let your votes determine the order I present in.&nbsp; I know both the VB and C# Soup to Nuts series were exteremly well received.&nbsp; The plan is to do both of them at the same time along the same time frames, but what about WPF and ASP.NET?&nbsp; (By the way, I've had over 20,000 views to the VB and C# series each!!!)</P>
<P>Let me know!</P>
<P>Bill</P>]]></content:encoded>
    </item>
    <item>
      <title>VirtualHUD announced at the Light Sport Plane expo</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/virtualhud-announced-at-the-light-sport-plane-expo</link>
      <pubDate>Sun, 08 Feb 2009 11:11:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2009/02/08/virtualhud-announced-at-the-light-sport-plane-expo/</guid>
      <description><![CDATA[Well, I know a lot of you have been wondering what my little avionics project has been up to lately,...]]></description>
      <content:encoded><![CDATA[<P>Well, I know a lot of you have been wondering what my little avionics project has been up to lately, so here's the scoop.</P>
<P><IMG style="WIDTH: 160px; HEIGHT: 104px" title="VirtualHUD NightVU" hspace=5 alt="VirtualHUD NightVU" vspace=5 align=left src="http://www.virtualhud.com/virtualhud/images/NightVU_Medium.jpg" width=165 height=109 mce_src="http://www.virtualhud.com/virtualhud/images/NightVU_Medium.jpg">On January 22nd, in Sebring, Florida, I attended the Light Sport Plane Expo for our first public&nbsp;showing of my "VirtualHUD" Heads Up Display for small aircraft.&nbsp; If you remember, or for those of you who don't know, I invented a new type of heads up display for small aircraft that projects the HUD images on to the surface created by the spinning propeller.&nbsp; I've been working on this little side project for about 3 years now, which was a follow on into my own "glass panel" development that I was doing for a research project.</P>
<P>Anyway, at the show, we announced our first product, the NightVU, which is a portable Heads Up Display that contains all it's own navigation and attitude sensors.&nbsp; It's a hand held unit the uses a standard suction cup style mount to attach to the windshield.&nbsp; The unit points forward and projects the HUD data out the windshield and onto the back of the spinning propeller.&nbsp; The reception and responses we received from the everybody who saw it was tremendous and let us know that we are on exactly the right track.</P>
<P>The first unit is only designed for night time use, but we've partnered with Forward.Vision to include cool support for their Forward Looking Infrared Camera, the EVS-100.&nbsp; Now, pilots can fly into total darkness, but still see directly in front of them via the combination of the EVS-100 and the NightVU.&nbsp; It essentially turns the propeller into a window of visibility in front of the pilot.&nbsp; Smoke, Fog, Haze, Rain, Snow or Darkness all become "visible" via the combination.&nbsp; It works amazingly well. The following is a video from our demo unit:</P>
<OBJECT width=250><PARAM NAME="movie" VALUE="https://www.youtube.com/v/HhD7RDb0sm8&amp;hl=en&amp;fs=1"><PARAM NAME="allowFullScreen" VALUE="true"><PARAM NAME="allowscriptaccess" VALUE="always">
<embed src="https://www.youtube.com/v/HhD7RDb0sm8&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></OBJECT>
<P>We plan on attending Sun-n-Fun and Oshkosh, as well as a few other smaller events year.&nbsp; We also have a couple of other products in the works, but they're kind of secret at this point.&nbsp; However, I will give you a hint, there are two obvious other products we "should" be working on... a daytime version and a built in and/or certified unit. ;-)</P>
<P>It's been a very cool journey fostering this little research project and I've met some very talented people, in fact, I even hired a few to help me out, so we'll all get to see the fruits of their labor soon.&nbsp; If you're interested in learning more about the VirtualHUD, feel free to ping me or check out our website at <A href="http://www.virtualhud.com/">http://www.virtualhud.com/</A>.</P>
<P>Oh, and before you ask, yes, we have several aircraft manufactures that would like to include this in their planes and no, I have absolutly no plans to leave Microsoft... I love my job way too much for that. ;-)</P>
<P>Bill</P>]]></content:encoded>
    </item>
    <item>
      <title>Unfortunate Times for Eclipse Aviation</title>
      <link>https://docs.microsoft.com/archive/blogs/wsteele/unfortunate-times-for-eclipse-aviation</link>
      <pubDate>Thu, 13 Nov 2008 15:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Wm Steele]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/wsteele/2008/11/13/unfortunate-times-for-eclipse-aviation/</guid>
      <description><![CDATA[Eclipse Aviation suffered a serious blow earlier today.&nbsp; They were apparently&nbsp;unable to...]]></description>
      <content:encoded><![CDATA[<P><A href="http://eclipseaviation.com/" mce_href="http://eclipseaviation.com/">Eclipse Aviation</A> suffered a serious blow earlier today.&nbsp; They were <A href="http://kob.com/article/stories/S659886.shtml?cat=500" mce_href="http://kob.com/article/stories/S659886.shtml?cat=500">apparently&nbsp;unable to meet payroll</A> and notified their employees... some of whom apparently left rather abruptly this morning.</P>
<P>I've always been a fan of <A href="http://eclipseaviation.com/" mce_href="http://eclipseaviation.com/">Eclipse Aviation</A>, makers of the <A href="http://eclipseaviation.com/#/eclipse500/style/" mce_href="http://eclipseaviation.com/#/eclipse500/style/">Eclipse 500 Very Light Jet</A>.&nbsp; They have had some problems over the past few years with certification, avionics, etc, that have really let them down, however.</P>
<P>Their jet was one of the first VLJ's on the market and was supposed to be the mainstay of the Air Taxi concept from the <A href="http://www.nasa.gov/vision/earth/improvingflight/satsdanville.html" mce_href="http://www.nasa.gov/vision/earth/improvingflight/satsdanville.html">NASA SATS vision</A>.&nbsp; In fact, Eclipse was a great partner in the <A href="http://ncam-sats.org/" mce_href="http://ncam-sats.org/">SATS</A> program.&nbsp; Their jet utilized much of the technology from the <A href="http://www.nasa.gov/centers/langley/news/factsheets/AGATE.html" mce_href="http://www.nasa.gov/centers/langley/news/factsheets/AGATE.html">AGATE</A> and SATS programs.</P>
<P>I hope for the best for the employees and for Eclipse Aviation.&nbsp; I would love to see them make through this extremely tough time and finally fullfill their vision.</P>
<P>Bill</P>]]></content:encoded>
    </item>
  </channel>
</rss>