<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Rule's Roost</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jrule/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jrule/feed.xml</link>
    <description>Jeremy Rule&amp;#039;s blog</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:22:03 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Podcast on Premier Support for Developers and Surface!</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/podcast-on-premier-support-for-developers-and-surface</link>
      <pubDate>Mon, 12 Nov 2012 09:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Jeremy Rule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2012/11/12/podcast-on-premier-support-for-developers-and-surface/</guid>
      <description><![CDATA[Yesterday TechNet Radio posted an episode of their podcast that featured Premier Support for...]]></description>
      <content:encoded><![CDATA[<p>Yesterday TechNet Radio posted an episode of their podcast that featured Premier Support for Developers and Surface. I partnered with Lex Thomas on the podcast and shared some of the support options available for developers from Microsoft.</p>
<p>&nbsp;</p>
<p><strong><a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Taste-of-Premier-Premier-Support-for-Developers--Surface-Surface-Surface">https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Taste-of-Premier-Premier-Support-for-Developers--Surface-Surface-Surface</a></strong></p>
<p>Please check it out and leave a comment on the Channel 9 site. </p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Creating video for Surface in Adobe Premiere CS6</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/creating-video-for-surface-in-adobe-premiere-cs6</link>
      <pubDate>Sat, 03 Nov 2012 15:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Jeremy Rule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2012/11/03/creating-video-for-surface-in-adobe-premiere-cs6/</guid>
      <description><![CDATA[The Adobe Media Encoder included with Adobe Premiere CS6 allows you to target multiple platforms....]]></description>
      <content:encoded><![CDATA[<p>The Adobe Media Encoder included with <a title="Adobe Premiere CS6" href="https://www.adobe.com/products/premiere.html">Adobe Premiere CS6</a> allows you to target multiple platforms. For example, the video you create, you might want to render the final video&nbsp;for Youtube, Facebook, iPhone, Windows Phone, Android, and Blu-Ray.</p>
<p><a title="Surface" href="https://www.surface.com">Surface</a> came out well after CS6 so the list of presets does not include Surface. This week I created the football highlight film for my son's junior football team and I wanted to load it onto my Surface at the best&nbsp;possible resolution for playback. I also wanted to create Blu-Rays to pass out to&nbsp;the parents. Here is what I came up with for targeting the&nbsp;Surface.</p>
<p>In Adobe Media Encoder, create a new Preset by clicking the <em>plus</em> button in the <em>Preset Browser</em>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/34/87/2654.premiere1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-34-87/2654.premiere1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/34/87/2654.premiere1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x659/__key/communityserver-blogs-components-weblogfiles/00-00-00-34-87/2654.premiere1.png" alt="" border="0" /></a></p>
<p>Name the new preset <em>Surface</em> and the only settings you really need to choose are the Format (set to Windows Media), and the resolution (set to Surface's <strong>1366 by 768</strong>).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/34/87/5773.premier2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-34-87/5773.premier2.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/34/87/5773.premier2.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/448x661/__key/communityserver-blogs-components-weblogfiles/00-00-00-34-87/5773.premier2.png" alt="" border="0" /></a></p>
<p>There are two scenarios you might want to use this new setting for:</p>
<ol>
<li>You've created a video in Premiere and used the <em>Export Media</em> into the encoder and want to render to Surface.</li>
<li>You have a video you want to re-encode so it look great on your Surface. In that case chose <em>File | Add Source </em>from the Encoder and select the video file on your computer. It does not have to be a Premiere project.</li>
</ol>
<p>To actually get the encoding to start, <strong>drag the new Surface preset from the Preset Browser to the Queue</strong> and hit the green start button. Adobe Media Encoder will allocate a core to each output format so don't be shy about queuing up multiple outputs.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Using Cloud Services from Second Life</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/using-cloud-services-from-second-life</link>
      <pubDate>Wed, 22 Apr 2009 19:02:32 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2009/04/22/using-cloud-services-from-second-life/</guid>
      <description><![CDATA[I was playing around with building scripted objects in Second Life and ran across a function to...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/online_small_2.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/online_small_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="online_small" border="0" alt="online_small" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/online_small_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/online_small_thumb.jpg" width="197" height="244" /></a> </p>  <p>I was playing around with building scripted objects in <a href="https://secondlife.com/">Second Life</a> and ran across a function to pull text from the web. I thought it might be neat to create Live Messenger buddy object in Second Life that showed whether I was online or offline. I figured I could query the <a href="https://msdn.microsoft.com/en-us/library/bb936688.aspx">Windows Live Presence API</a> directly from script and be done. Unfortunately it turns out there is a bit of a gap between Second Life and Windows Live. The Presence API serves up information by way of <a href="https://en.wikipedia.org/wiki/JSON">JSON</a>. Second Life does not know what to do with JSON file coming back as the payload and gives an error.</p>  <p>Given this gap, I thought <a href="https://www.microsoft.com/azure/default.mspx">Azure</a> might make a nice bridge. I could call the Live Presence API from a cloud based service, reproduce the information in a very simple format for Second Life, and then consume the new service with an HTTP call in Second Life. </p>  <p>I had to accomplish three things in order to get everything wired up.</p>  <ol>   <li>Put something in the cloud to provide a simple service&#160; </li>    <li>Consume JSON from server code instead of a browser </li>    <li>Connect Second Life to Azure </li> </ol>  <p>To get started, I registered for the <a href="https://www.microsoft.com/azure/register.mspx">Azure Community Technical Preview</a>. This gave me a sandbox in the cloud to play with and I downloaded the free <a href="https://www.microsoft.com/express/vwd/">Visual Studio 2008 Web Developer 2008</a> which provided all the power I needed for this little project. Once in Visual Studio I created a new Web Cloud Service and used the following code. </p>  <div id="codeSnippetWrapper">   <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">     <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">using</span> System.Net;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> <span style="color: #0000ff">using</span> System.IO;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span> <span style="color: #0000ff">using</span> System.Text;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span> <span style="color: #0000ff">using</span> System.Runtime.Serialization.Json; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum5">   5:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum6">   6:</span> <span style="color: #0000ff">namespace</span> SecondLife_WebRole</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum7">   7:</span> {</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum8">   8:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum9">   9:</span>     [Serializable]</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum10">  10:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> Presence</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum11">  11:</span>     {</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum12">  12:</span>         <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> status;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum13">  13:</span>         <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> displayName;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum14">  14:</span>     }</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum15">  15:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum16">  16:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">partial</span> <span style="color: #0000ff">class</span> _Default : System.Web.UI.Page</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum17">  17:</span>     {</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum18">  18:</span>         <span style="color: #0000ff">string</span> LiveUrl = </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum19">  19:</span>          <span style="color: #006080">&quot;https://messenger.services.live.com/users/5a11680377739a32@apps.messenger.live.com/presence&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum20">  20:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum21">  21:</span>         <span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> Page_Load(<span style="color: #0000ff">object</span> sender, EventArgs e)</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum22">  22:</span>         {</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum23">  23:</span>             <span style="color: #008000">// Make a web request to Live service</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum24">  24:</span>             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(LiveUrl);</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum25">  25:</span>             HttpWebResponse response = (HttpWebResponse)request.GetResponse();</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum26">  26:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum27">  27:</span>             <span style="color: #008000">// Hydrate a .Net object from the JSON response</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum28">  28:</span>             Stream receiveStream = response.GetResponseStream();</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum29">  29:</span>             DataContractJsonSerializer ser = <span style="color: #0000ff">new</span> DataContractJsonSerializer(<span style="color: #0000ff">typeof</span>(Presence));</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum30">  30:</span>             Presence presence = ser.ReadObject(receiveStream) <span style="color: #0000ff">as</span> Presence;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum31">  31:</span>&#160; </pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum32">  32:</span>             <span style="color: #008000">// Output very simple text so Second Life can consume it</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum33">  33:</span>             Response.Clear();</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum34">  34:</span>             Response.ContentType = <span style="color: #006080">&quot;text/plain&quot;</span>;</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum35">  35:</span>             Response.Write(presence.status + <span style="color: #006080">&quot;\n&quot;</span>);</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum36">  36:</span>             Response.Write(presence.displayName + <span style="color: #006080">&quot;\n&quot;</span>);</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum37">  37:</span>         }</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum38">  38:</span>     }</pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum39">  39:</span> }</pre>
<!--CRLF--></div>
</div>

<p>I was pretty happy that the .NET Framework had a JSON helper class and a rich language with C# to work with the data. This code worked fine from an ASP.Net application but not from a cloud application. Turns out I needed to set enableNativeCodeExecution to true so that the stream classes would not hit a security exception. </p>

<div id="codeSnippetWrapper">
  <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">&lt;?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">=&quot;1.0&quot;</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">=&quot;utf-8&quot;</span>?<span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">ServiceDefinition</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;SecondLife&quot;</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">=&quot;https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition&quot;</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span>   <span style="color: #0000ff">&lt;</span><span style="color: #800000">WebRole</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;WebRole&quot;</span> <strong><span style="color: #ff0000">enableNativeCodeExecution</span><span style="color: #0000ff">=&quot;true&quot;</span></strong><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">InputEndpoints</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum5">   5:</span>       <span style="color: #008000">&lt;!-- Must use port 80 for http and port 443 for https when running in the cloud --&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum6">   6:</span>       <span style="color: #0000ff">&lt;</span><span style="color: #800000">InputEndpoint</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;HttpIn&quot;</span> <span style="color: #ff0000">protocol</span><span style="color: #0000ff">=&quot;http&quot;</span> <span style="color: #ff0000">port</span><span style="color: #0000ff">=&quot;80&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum7">   7:</span>     <span style="color: #0000ff">&lt;/</span><span style="color: #800000">InputEndpoints</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum8">   8:</span>   <span style="color: #0000ff">&lt;/</span><span style="color: #800000">WebRole</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF-->

    <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum9">   9:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">ServiceDefinition</span><span style="color: #0000ff">&gt;</span></pre>
<!--CRLF--></div>
</div>

<p>Once I had that working, I used the cloud deploy feature of Azure to get the service hosted. It worked and my service was now serving something easily consumable by Second Life:</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/browser_2.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/browser_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="browser" border="0" alt="browser" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/browser_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/browser_thumb.jpg" width="779" height="318" /></a> </p>

<p>Finally I went into Second Life and added script to a buddy object created all in-game.&#160; The Second Life script simply makes an HTTP request to the cloud service and returns the very-simple-to-parse name and status. If I am online, i set the object to light blue and glowing and if I am offline, I dim the object and use a darker color.</p>

<div>
  <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #008000">// Use an Azure service in the cloud to get Live Messenger status</span><br /><br /><span style="color: #0000ff">string</span> AZUREHOST = <span style="color: #006080">&quot;https://secondlife.cloudapp.net/Default.aspx&quot;</span>;<br />key http_request_id;<br /><br /><span style="color: #0000ff">default</span><br />{<br /><br />    touch_start(integer total_number)<br />    {<br />        llSetText(<span style="color: #006080">&quot;&quot;</span>, &lt;1,1,1&gt;, 1.0);<br />        <span style="color: #0000ff">string</span> response = <span style="color: #006080">&quot;&quot;</span>;<br />        http_request_id = llHTTPRequest(AZUREHOST, [], <span style="color: #006080">&quot;&quot;</span>);<br />    }<br />    <br />    http_response(key request_id, integer status, list metadata, <span style="color: #0000ff">string</span> body)<br />    {<br />        <span style="color: #0000ff">if</span> (request_id == http_request_id)<br />        {<br />            list lines = llParseString2List(body, [<span style="color: #006080">&quot;\n&quot;</span>], []);<br />            <span style="color: #0000ff">string</span> status = llList2String(lines, 0);<br />            <span style="color: #0000ff">string</span> name = llList2String(lines, 1);<br />  <br />            <span style="color: #0000ff">if</span> (status == <span style="color: #006080">&quot;Online&quot;</span>)<br />            {<br />                llSetText(name + <span style="color: #006080">&quot; is Online&quot;</span>, &lt;0,0,1&gt;, 1);<br />                llSetLinkColor(LINK_SET, &lt;0.15686, 0.58039, 1.00000&gt;, ALL_SIDES);<br />                llSetLinkPrimitiveParams(LINK_SET, [PRIM_GLOW, ALL_SIDES, .1] );<br />                llSetLinkPrimitiveParams(LINK_SET, [PRIM_BUMP_SHINY, ALL_SIDES, PRIM_SHINY_LOW, PRIM_BUMP_BRIGHT] );<br /><br />            }<br />            <span style="color: #0000ff">else</span> <span style="color: #008000">// user offline</span><br />            {<br />                llSetText(<span style="color: #006080">&quot;User Offline&quot;</span>, &lt;0,0,1&gt;, 1);<br />                llSetLinkColor(LINK_SET, &lt;0.38824, 0.38824, .38824&gt;, ALL_SIDES);<br />                llSetLinkPrimitiveParams(LINK_SET, [PRIM_GLOW, ALL_SIDES, 0] );<br />                llSetLinkPrimitiveParams(LINK_SET, [PRIM_BUMP_SHINY, ALL_SIDES, PRIM_SHINY_NONE, PRIM_BUMP_NONE] );<br />                <br />            }               <br />            <br />        }<br />    }<br />    <br />}<br /></pre>
</div>

<div>&#160;</div>

<div>The Messenger buddy in second life is darker with no glow if I am logged out of Messenger. For Second Life builders, buddy is 10 prims big: 
  <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Offline_2.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Offline_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Offline" border="0" alt="Offline" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Offline_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Offline_thumb.jpg" width="752" height="566" /></a></div>

<p>… but when I’m logged into Messenger, buddy lights up like a Christmas light:</p>

<p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Online_2.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Online_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Online" border="0" alt="Online" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Online_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/jrule/WindowsLiveWriter/UsingCloudServicesfromSecondLife_C227/Online_thumb.jpg" width="752" height="666" /></a> </p>

<p>&#160;</p>

<p>So what's the big deal? Why use Azure for such a little thing? I think the answer is that it is such a &quot;little thing.&quot; As a developer I just wanted to get my service online and working. I didn't want to have to go find a hosting provider, sign up and spend a bunch of money, and then take a few days trying to get everything working. I'd rather just spend time on getting the code to work. If I add significant features later on, or make the service public, I am confident Azure will scale with me. Again, I can just focus on the functionality of the service and not worry about scale and configuration.</p>

<p>When I account for my time on this project, I’m pretty happy with the breakdown. Much of the time was spent on community: <a href="https://social.msdn.microsoft.com/Forums/en-US/user?user=Ben%20Williams%20-%20MSFT">Ben Williams</a> pointed me towards the Windows Live Presence API. <a href="https://blogs.msdn.com/jimoneil/">Jim O’Neil</a> gave me a rough architecture by suggesting I try a WebRequest and then use the JSON Serializer.&#160; The venerable <a href="https://blog.smarx.com/">Steve Marx</a> helped me debug by showing me the enableNativeCodeExecution flag. Second Life resident and coffee machine builder, <a href="https://slurl.com/secondlife/0031%20Boerderij/111/116/22">amira Mathilde</a> helped me craft the “buddy” object so it wasn’t terrible looking. </p>

<p>My Second Life resident is “Macaw Roogus” so say hi to me if you see me online and maybe we can find some more interesting things to build.</p>]]></content:encoded>
    </item>
    <item>
      <title>The Ingenuity Point Contest</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/the-ingenuity-point-contest</link>
      <pubDate>Tue, 21 Aug 2007 19:20:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2007/08/21/the-ingenuity-point-contest/</guid>
      <description><![CDATA[June 26 - October 31 2007
https://www.theingenuitypoint.com/main/default.aspx
Microsoft is holding...]]></description>
      <content:encoded><![CDATA[<P>June 26 - October 31 2007</P>
<P><A href="https://www.theingenuitypoint.com/main/default.aspx">https://www.theingenuitypoint.com/main/default.aspx</A></P>
<P>Microsoft is holding a contest to showcase applications written for healthcare, clean technology, and education. Just looking through the People's Choice Gallery... some neat entries and pretty good odds of winning a trip to France.</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Looking for a Solutions Architect in the SF Bay Area</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/looking-for-a-solutions-architect-in-the-sf-bay-area</link>
      <pubDate>Tue, 17 Jul 2007 13:39:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2007/07/17/looking-for-a-solutions-architect-in-the-sf-bay-area/</guid>
      <description><![CDATA[https://members.microsoft.com/careers/search/details.aspx?JobID=DCDAF7C0-9826-4DD3-B8AD-11B7F4EC41E1...]]></description>
      <content:encoded><![CDATA[<P><A href="https://members.microsoft.com/careers/search/details.aspx?JobID=DCDAF7C0-9826-4DD3-B8AD-11B7F4EC41E1">https://members.microsoft.com/careers/search/details.aspx?JobID=DCDAF7C0-9826-4DD3-B8AD-11B7F4EC41E1</A></P>
<P>Drop me a note with your resume if you are interested!</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft SQL Server 2005 Administrator's Companion</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/microsoft-sql-server-2005-administrators-companion</link>
      <pubDate>Wed, 03 Jan 2007 18:22:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2007/01/03/microsoft-sql-server-2005-administrators-companion/</guid>
      <description><![CDATA[&nbsp;My friend Burzin Patel co-authored a book on SQL Server. Get all your SQL Server knobs...]]></description>
      <content:encoded><![CDATA[<P><A title="SQL Server 2005 Administrator's Companion" href="https://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=9780735621985" mce_href="https://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=9780735621985"><IMG style="WIDTH: 148px; HEIGHT: 180px" src="https://images.barnesandnoble.com/images/32620000/32622585.JPG" width=148 height=180 mce_src="https://images.barnesandnoble.com/images/32620000/32622585.JPG"></A></P>
<P>&nbsp;My friend Burzin Patel co-authored a book on SQL Server. Get all your SQL Server knobs turned in the right direction with this book.&nbsp;</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Prolog.NET? You bet!</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/prolog-net-you-bet</link>
      <pubDate>Tue, 03 Jan 2006 12:15:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2006/01/03/prolog-net-you-bet/</guid>
      <description><![CDATA[Eugene Asahara has launched SoftCodedLogic.com. The same idea of soft coding UI and data has been...]]></description>
      <content:encoded><![CDATA[<P>Eugene Asahara has launched <A href="https://www.SoftCodedLogic.com">SoftCodedLogic.com</A>. The same idea of soft coding UI and data has been extended to program logic. Eugene's implementation is a clever update to prolog to bring it into the world of SQL,&nbsp;XML, and&nbsp;.NET. </P>
<P>&nbsp;</P>
<P>&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Build Master: Microsoft's Software Configuration Management Best Practices</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/build-master-microsofts-software-configuration-management-best-practices</link>
      <pubDate>Tue, 08 Nov 2005 22:32:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2005/11/08/build-master-microsofts-software-configuration-management-best-practices/</guid>
      <description><![CDATA[My colleague, Vince Maraia, has come out with a book on configuration management called The Build...]]></description>
      <content:encoded><![CDATA[<P>My colleague, Vince Maraia, has come out with a book on configuration management called <A href="https://search.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=uG0UkwwBwW&amp;isbn=0321332059&amp;itm=2">The Build Master</A>.</P>
<P><IMG src="https://ec3.images-amazon.com/images/P/0321332059.01._AA240_SCLZZZZZZZ_.jpg"> </P>]]></content:encoded>
    </item>
    <item>
      <title>Windows for Musicians</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/windows-for-musicians</link>
      <pubDate>Mon, 31 Oct 2005 17:54:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2005/10/31/windows-for-musicians/</guid>
      <description><![CDATA[Jim Owen, a Technical Account Manager at Microsoft, made a clever song using keyboards and the...]]></description>
      <content:encoded><![CDATA[<P>Jim Owen, a Technical Account Manager at Microsoft, made a clever song using keyboards and the Windows sounds. </P>
<P><A href="https://www.songfight.org/music/welcome_to/jimofseattle_wt.mp3">Have a listen.</A></P>
<P>&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Partner Services Hiring - Bay Area - App. Dev. Consultant</title>
      <link>https://docs.microsoft.com/archive/blogs/jrule/partner-services-hiring-bay-area-app-dev-consultant</link>
      <pubDate>Tue, 19 Apr 2005 15:22:00 GMT</pubDate>
      <dc:creator><![CDATA[jrule]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jrule/2005/04/19/partner-services-hiring-bay-area-app-dev-consultant/</guid>
      <description><![CDATA[Are you gosu with .NET? Email me your resume. I'll get the full job description posted on the...]]></description>
      <content:encoded><![CDATA[<P>Are you gosu with .NET? <A href="mailto:jrule@microsoft.com">Email me your resume</A>. I'll get the full job description posted on the microsoft.com careers site soon.</P>
<P><FONT face=Arial size=2><SPAN>Deep .Net development expertise</SPAN></FONT></P><FONT face=Arial size=2><SPAN>
<P class=MsoNormal><FONT face=Wingdings size=2><SPAN>n</SPAN></FONT><FONT size=1><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face=Arial size=2><SPAN>C#, J# if possible</SPAN></FONT></P>
<P class=MsoNormal><FONT face=Wingdings size=2><SPAN>n</SPAN></FONT><FONT size=1><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face=Arial size=2><SPAN>Extensive experience with performance testing and optimization of .Net applications, and ASP.Net on IIS optimization</SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN>o</SPAN></FONT><FONT size=1><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face=Arial size=2><SPAN>Profiling</SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN>o</SPAN></FONT><FONT size=1><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face=Arial size=2><SPAN>Debugging with symbols and trouble shooting application bottlenecks</SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN>o</SPAN></FONT><FONT size=1><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face=Arial size=2><SPAN>Analysis of performance data</SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN>o</SPAN></FONT><FONT size=1><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face=Arial size=2><SPAN>Expertise with a myriad of testing/profiling tools</SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN></SPAN></FONT>&nbsp;</P></SPAN></FONT>]]></content:encoded>
    </item>
  </channel>
</rss>