<?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>Paul's MCS Developer Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/paulwhit/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/paulwhit/feed.xml</link>
    <description>Sharing and blabbing on my findings as a Microsoft consultant</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:06:53 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>On to new challenges</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/on-to-new-challenges</link>
      <pubDate>Mon, 18 Aug 2014 19:03:11 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2014/08/18/on-to-new-challenges/</guid>
      <description><![CDATA[Hello, I’m leaving Microsoft and will no longer be maintaining this blog. It’s been an honor to wear...]]></description>
      <content:encoded><![CDATA[<p>Hello, I’m leaving Microsoft and will no longer be maintaining this blog. It’s been an honor to wear the badge of MSDN blogger for 6 1/2 years and to attempt to share useful information on career enhancement, SharePoint, InfoPath, .NET, and Windows development.</p>  <p>If you have any questions about any of the content on the blog, feel free to send me a message on Twitter on the handle @paulwhit, or respond in the post’s comments.</p>  <p>Thanks for reading!</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Foundation as a Search API Layer for hobbyist apps</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/sharepoint-foundation-as-a-search-api-layer-for-hobbyist-apps</link>
      <pubDate>Wed, 05 Mar 2014 21:26:30 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2014/03/05/sharepoint-foundation-as-a-search-api-layer-for-hobbyist-apps/</guid>
      <description><![CDATA[I’ve been a SharePoint developer on a variety of customer projects. At least 1/4 of my work has been...]]></description>
      <content:encoded><![CDATA[<p>I’ve been a SharePoint developer on a variety of customer projects. At least 1/4 of my work has been focused on Enterprise Search using SharePoint and previously FAST Search. Most recently, I worked on a common web content management platform using cross-site publishing and extensive UI work involving the SharePoint Search REST API.</p>  <p>I make mobile apps professionally (as a Microsoft consultant, I’ve worked on Windows and mobile web apps) and as a hobby. My primary hobby app, which I maintain as a service for the military enthusiast, survivalist and Army communities, is <a href="http://www.appfeds.com/catalog/US/paul-whitaker/army-field-manuals/">Army Field Manuals</a>. It provides a library of a bunch of PDF files published by the U.S. Army. </p>  <p>I’ve also recently completed my <a href="http://mim.umd.edu/">MIM</a> degree, in which had some close encounters with librarian- and archivist-type people. These are dedicated folks who organize and classify information, and many of them are extremely tech-savvy. This grad school work inspired me to want to do a better job than the Army has done to expose the public contents of Army doctrine. The primary ways I’ve come up with to do this are to integrate a variety of sources, provide some manual classification, and provide a robust search interface.</p>  <p><strong>How do I do full-text search in a mobile (Windows) application?</strong></p>  <p>Search in my app currently only searches the titles (and soon I’ll be adding descriptions). Unlocking the full text of the documents for search requires (at least in Microsoft lingo) an IFilter for PDFs. The technology is built-in with Windows 8.1, which provides hooks through <a href="http://lunarfrog.com/blog/2013/08/16/windows81-contentindex/">IndexableContent</a>,, but since the 3GB of field manuals are only downloaded to the app clients on demand, there’s no way to provide full text searching across the whole corpus.</p>  <p>Enter SharePoint Search. SharePoint can search PDFs natively, can provide full text results with hit highlighting, and can return the metadata associated with the document in context. It can also provide rank tuning (in my case, I might want to do things like rank highly rated documents (<a href="http://www.librarything.com/author/armydepartmentofthe">LibraryThing</a> has some ratings)). So, blending all these ideas I had an epiphany that SharePoint could provide some good value for my app community. So I’ve been figuring out how this might work and be affordable.</p>  <p><strong>What about SharePoint Online for Office 365?</strong></p>  <p>I’ve tried this, but the anonymous site you get seems to preclude using the search API from an anonymous user. When I run this query logged in, it works. As anonymous I get a file not found error. In the SharePoint Foundation solution below it works fine, so I’m assuming this is a specific exclusion of functionality in the public site on Office 365.</p>  <p><font face="Courier New">/_api/search/query?querytext=%27army%27&amp;QueryTemplatePropertiesUrl=%27spfile://webroot/queryparametertemplate.xml%27&amp;SummaryLength=360&amp;KeywordInclusion=%271%27</font></p>  <p><strong>What’s the cheapest way to use SharePoint’s API layer?</strong></p>  <p>Shared hosting of SharePoint Foundation is cheapest. Even though <a href="http://office.microsoft.com/en-us/sharepoint/sharepoint-licensing-overview-collaboration-software-FX103789438.aspx">no CALs are required for External Users</a> in the other versions, you’d need a CAL for yourself at least—and where would you purchase that as a hobbyist developer? And after that, the 3rd party hosting providers charge a lot more money for standard or enterprise licensed SKUs. I’m still discovering the features that SharePoint Foundation can do, since I typically work with the Enterprise SKU of SharePoint. However, I’ve signed up for a 3GB plan (enough to hold all the public Army doctrine PDF documents) on <a href="http://plexhosted.com/billing/aff.php?aff=018">PlexHosted.com</a> (affiliate link) for about $25/mo, and I’ve found that I can add site columns, access the search REST API anonymously, and access the lists API as well. So far so good. The Term Store is not available; I was hoping to use that to help tag content. However, a multiselect lookup will work for what I’m doing in the short term.</p>  <p><strong>What are the limitations?</strong></p>  <p>There’s more to APIs than anonymously exposing metadata and search results. This solution doesn’t do authentication or much of anything in the way of security or protections for the system against abuse. There is some logging, however, so hopefully that could prove useful. Also the system will be on a shared instance to keep the costs manageable. Not sure if that would scale. Another down side that I’ve found is that my search API access is lumped in with some other sites’ anonymous results. That doesn’t have any real impact for me, but it’s definitely not secured across site boundaries.</p>]]></content:encoded>
    </item>
    <item>
      <title>Share rendered XAML content with Share contract and RenderTargetBitmap</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/share-rendered-xaml-content-with-share-contract-and-rendertargetbitmap</link>
      <pubDate>Tue, 15 Oct 2013 07:34:20 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2013/10/15/share-rendered-xaml-content-with-share-contract-and-rendertargetbitmap/</guid>
      <description><![CDATA[A new feature of Windows 8.1 is that developers can render the XAML tree to a bitmap. This can be...]]></description>
      <content:encoded><![CDATA[<p>A new feature of Windows 8.1 is that developers can <a href="http://msdn.microsoft.com/en-us/library/windows/apps/bg182878.aspx#five">render the XAML tree to a bitmap</a>. This can be useful in exposing a screenshot of a part of an application with the image Share <a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx">contract</a>. Note that Windows 8.1 supports sharing a screenshot of any app through <a href="http://surfaceprobro.blogspot.com/2013/07/a-new-way-to-share-metro-screenshots-in.html">a new Share charm option</a>. This is slightly more specific and also lets you control properties like Title.</p>  <p>In order to make this happen, you have to go through a few hoops. Here is a sample event handler that wires up the pieces together including converting to a PNG image to bring the file size down. See MSDN’s <a href="http://msdn.microsoft.com/library/windows/apps/hh871370">“How to share an image” article</a> for configuration.</p>  <p>In this case, we have a ScrollViewer in an ListView control (it’s used in a continuous document viewing section of an app). The method shares what is currently visible on the screen.</p>  <div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);">   <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><span style="color: rgb(0, 0, 255);">private</span> async <span style="color: rgb(0, 0, 255);">void</span> OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)<br />{<br />    var scrollViewer = RecurseChildren&lt;ScrollViewer&gt;(lvImages).FirstOrDefault();<br /><br />    <span style="color: rgb(0, 0, 255);">if</span> (scrollViewer != <span style="color: rgb(0, 0, 255);">null</span>)<br />     {<br />         DataRequest request = e.Request;<br />         request.Data.Properties.Title = <span style="color: rgb(0, 96, 128);">&quot;Clip from an app&quot;</span>;<br /><br />        DataRequestDeferral deferral = request.GetDeferral();<br /><br />        <span style="color: rgb(0, 0, 255);">try</span><br />         {<br />             var bmp = <span style="color: rgb(0, 0, 255);">new</span> RenderTargetBitmap();<br />             await bmp.RenderAsync(scrollViewer);<br /><br />            var pixelBuffer = await bmp.GetPixelsAsync();<br /><br />            var reader = DataReader.FromBuffer(pixelBuffer);<br />             var bytes = <span style="color: rgb(0, 0, 255);">new</span> <span style="color: rgb(0, 0, 255);">byte</span>[pixelBuffer.Length];<br />             reader.ReadBytes(bytes);<br /><br />            var randomAccessStream = <span style="color: rgb(0, 0, 255);">new</span> InMemoryRandomAccessStream();<br />             var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, randomAccessStream);<br />             encoder.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Straight, (<span style="color: rgb(0, 0, 255);">uint</span>)bmp.PixelWidth, (<span style="color: rgb(0, 0, 255);">uint</span>)bmp.PixelHeight, 96, 96, bytes);<br />             await encoder.FlushAsync();<br />             await randomAccessStream.FlushAsync();<br />                         <br />             request.Data.SetBitmap(RandomAccessStreamReference.CreateFromStream(randomAccessStream));<br />         }<br />         <span style="color: rgb(0, 0, 255);">finally</span><br />         {<br />             deferral.Complete();<br />         }<br />     }<br /> }<br /></pre>

  <br /></div>

<p>Here is an example from my Army Field Manuals app. Note that the share item doesn’t include the app border, which is handy in this case:</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/4477.share_rendertargetbitmap_21B6AA08.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/4477.share_5F00_rendertargetbitmap_5F00_21B6AA08.png"><img title="share_rendertargetbitmap" style="display: inline; background-image: none;" border="0" alt="share_rendertargetbitmap" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/3326.share_rendertargetbitmap_thumb_1C67C357.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/3326.share_5F00_rendertargetbitmap_5F00_thumb_5F00_1C67C357.png" width="749" height="420" /></a></p>

<p>Additional references used:</p>

<ul>
  <li><a href="http://geoffwebbercross.blogspot.com/2013/06/windows-81-rendertargetbitmap.html">“Windows 8.1 RenderTargetBitmap”</a> by Geoff Webber-Cross</li>

  <li><a href="http://social.msdn.microsoft.com/Forums/windowsapps/en-US/92d78f27-4a8d-4c2d-b4ed-5d694824113e/how-to-get-byte-from-ibuffer?forum=winappswithcsharp">“How to get byte[] from IBuffer”</a> answered by Min Zhu</li>

  <li><a href="http://code.msdn.microsoft.com/windowsapps/XAML-render-to-bitmap-dd4f549f/sourcecode?fileId=86717&amp;pathId=589460989">XAML render to bitmap sample (Windows 8.1)</a> on MSDN</li>
</ul>

<p>
  <br />Note: This blog post is based on Windows 8.1 RTM and Visual Studio 2013 RC.</p>]]></content:encoded>
    </item>
    <item>
      <title>PDF Viewing Components for Windows Store apps (WinRT) (XAML/C#)</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/pdf-viewing-components-for-windows-store-apps-winrt-xamlc</link>
      <pubDate>Fri, 15 Feb 2013 10:04:58 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2013/02/15/pdf-viewing-components-for-windows-store-apps-winrt-xamlc/</guid>
      <description><![CDATA[Updated 4/7/2014 to reflect Windows 8.1 PDF API capabilities and new SDK samples  Microsoft released...]]></description>
      <content:encoded><![CDATA[<p><em><font color="#ff0000">Updated 4/7/2014 to reflect Windows 8.1 PDF API capabilities and new SDK samples</font></em></p>  <p>Microsoft released a <a href="http://code.msdn.microsoft.com/windowsapps/PDF-viewer-showcase-sample-39ced1e8">componentized, high-performing PDF viewing component</a> for XAML/C# applications on 4/2/2014. Woohoo! This serves as a good reference sample of how this needs to be done (C# front-end with a C++ back-end). </p>  <p align="left">If you want more bells and whistles, a number of third parties add more to the reader experience such as alternate viewing methods (facing page vs. continuous view, etc). Figure 1 shows a breakdown of all the components that I have seen. These are all expensive (from $495 to “if you have to ask, it’s too expensive”), so they might not work well for a hobbyist app developer. But if you have a need in your commercial or LOB application, you may find one of these to be useful.&#160; </p>  <table cellspacing="0" cellpadding="2" width="601" border="1"><tbody>     <tr>       <th width="216">Vendor / Sample App</th>        <th width="100">Rendering</th>        <th width="115">Annotations</th>        <th width="99">Full Text Search</th>        <th width="69">License</th>     </tr>      <tr>       <td valign="top" width="215"><a href="http://www.pdftron.com/pdfnet/mobile/windows8_winrt_pdf_library.html">PDFTron Mobile PDF SDK</a> / <a href="http://apps.microsoft.com/windows/en-us/app/6d65bcd8-8390-4533-af58-307d2e1ec1dd">Drawboard</a></td>        <td width="100">Proprietary</td>        <td valign="top" width="115">Yes</td>        <td valign="top" width="98">Yes</td>        <td valign="top" width="70">$$$$</td>     </tr>      <tr>       <td valign="top" width="215"><a href="http://www.foxitsoftware.com/products/sdk/embedded/winrt/">Foxit Embedded PDF SDK for Windows RT</a> / <a href="http://apps.microsoft.com/windows/en-us/app/2ed4b387-2513-49ee-b292-1613986c7f5c">Foxit Mobile PDF</a></td>        <td width="99">Proprietary</td>        <td valign="top" width="115">Yes</td>        <td valign="top" width="98">Yes</td>        <td valign="top" width="71">$$$$</td>     </tr>      <tr>       <td valign="top" width="215"><a href="http://en.soft-xpansion.eu/products/dev-tools/pdfsdk10/">PDF Xpansion SDK</a> / <a href="http://apps.microsoft.com/windows/en-us/app/a09f6a53-572e-4070-a7c5-8533edfbf1d1">Perfect PDF</a></td>        <td width="99">Proprietary</td>        <td valign="top" width="114">Yes</td>        <td valign="top" width="98">Yes</td>        <td valign="top" width="72">$$$$</td>     </tr>      <tr>       <td valign="top" width="214"><a href="https://www.devexpress.com/Products/NET/Controls/WinRT/">DevExpress Windows 8 XAML Controls</a> / <a href="http://apps.microsoft.com/windows/en-us/app/070c2943-c321-4cea-89d6-c70c3f5d7278">Army Field Manuals</a></td>        <td width="99">Microsoft</td>        <td valign="top" width="114">No</td>        <td valign="top" width="98">No</td>        <td valign="top" width="72">$$</td>     </tr>      <tr>       <td valign="top" width="214"><a href="http://www.componentone.com/SuperProducts/PdfViewerWinRT/">ComponentOne XAML Controls</a> / <a href="http://apps.microsoft.com/windows/en-us/app/6ea17b62-836a-4ece-9498-f1231d110f3b">ComponentOne XAML Controls</a></td>        <td width="99">Microsoft*</td>        <td valign="top" width="114">No</td>        <td valign="top" width="98">No</td>        <td valign="top" width="72">$$</td>     </tr>      <tr>       <td valign="top" width="214"><a href="http://www.syncfusion.com/products/winrt">Syncfusion Essential Studio for WinRT/XAML</a></td>        <td width="99">Proprietary</td>        <td valign="top" width="114">No</td>        <td valign="top" width="98">No</td>        <td valign="top" width="72">$$</td>     </tr>      <tr>       <td valign="top" width="214"><a href="http://code.msdn.microsoft.com/windowsapps/PDF-viewer-sample-85a4bb30">Windows.Data.PDF</a></td>        <td width="99">Microsoft</td>        <td valign="top" width="114">No</td>        <td valign="top" width="98">No</td>        <td valign="top" width="72">MS-LPL</td>     </tr>      <tr>       <td valign="top" width="214"><a href="http://code.msdn.microsoft.com/windowsapps/PDF-viewer-showcase-sample-39ced1e8">PdfShowcase Example</a></td>        <td width="99">Microsoft</td>        <td valign="top" width="114">No</td>        <td valign="top" width="98">No</td>        <td valign="top" width="72">MS-LPL</td>     </tr>      <tr>       <td valign="top" width="214"><a href="http://code.msdn.microsoft.com/windowsapps/Open-PDF-in-Windows-store-0614b58c">MuPDF WinRT</a> / <a href="http://apps.microsoft.com/windows/en-us/app/pdf-touch/c9d9c388-68ca-499b-ae0f-d829f19ad613">PDF Touch</a></td>        <td width="99">Proprietary</td>        <td valign="top" width="114">Yes</td>        <td valign="top" width="98">No?</td>        <td valign="top" width="72">GPL / $$$$</td>     </tr>      <tr>       <td valign="top" width="214">Offline Rasterization w/<a href="http://www.ghostscript.com/download/">Ghostscript</a></td>        <td width="99">Proprietary</td>        <td valign="top" width="114">No</td>        <td valign="top" width="98">No</td>        <td valign="top" width="72">GPL / $$$$</td>     </tr>      <tr>       <td valign="top" width="214">Any .NET Brokered Component**</td>        <td width="101">Proprietary</td>        <td valign="top" width="116">Not Sure</td>        <td valign="top" width="101">Not Sure</td>        <td valign="top" width="74">Varied</td>     </tr>   </tbody></table>  <p align="center">Fig 1. PDF Viewing Components for Windows Store applications</p>  <p>* Offers two rendering modes – one that converts to XAML and another that uses the PDF API   <br />** Windows 8.1 Update offers the ability for enterprise apps to broker desktop components for use in WinRT applications.</p>  <p>If you know of others, please post a reply or send me a tweet <a href="https://twitter.com/paulwhit">@paulwhit</a>. I’m actively monitoring this topic.</p>  <p>Also <a href="https://twitter.com/MCC_Ahmed">Ahmed-Faoud</a> has ported <a href="http://code.msdn.microsoft.com/windowsapps/Open-PDF-in-Windows-store-0614b58c">MuPDF for use in Windows Store applications</a>. This is very fast, but carries a GPL license.</p>  <p>If high performance viewing of large or complex documents isn’t a consideration for your use case, you could provide rasterization to bitmap images either within your application at runtime or on a load event or background task, or by using a batch process like below. You could then load them in a ListView control and you should get pretty good performance. Rasterizing the PDF pages on the fly in a ListView is probably going to be too slow, especially on a low-powered device.</p>  <p>As an example, I’m using some C# code in a batch application to generate thumbnails for my Army Field Manuals app. I’m distributing the images with my app, so there’s no processor use on the client.</p>  <p>To rasterize the first page of a PDF document as a thumbnail, in a Windows Store application, add this to a button click event handler. The “file” variable is a file path. A quick way to access a local file is to put it in your %localappdata%\packages\{app id}\LocalState path and use ApplicationData.Current.LocalFolder to retrieve its file name.</p>  <p><font face="Courier New">var pdfDoc = await PdfDocument.LoadFromFileAsync(file);      <br />var pdfPage = pdfDoc.GetPage(0);</font></p> <font face="Courier New"></font>  <p><font face="Courier New">var pageImageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(      <br /> &quot;sm_&quot; + Path.GetFileNameWithoutExtension(file.Path) + &quot;.scale-100.png&quot;, CreationCollisionOption.ReplaceExisting);       <br />var randomStream = await pageImageFile.OpenAsync(FileAccessMode.ReadWrite);       <br />PdfPageRenderOptions options = new PdfPageRenderOptions();       <br />options.DestinationWidth = 250;       <br /> await pdfPage.RenderToStreamAsync(randomStream, options);       <br /> await randomStream.FlushAsync();</font></p> <font face="Courier New"></font>  <p><font face="Courier New">randomStream.Dispose();      <br />pdfPage.Dispose();</font></p>  <p>There is a team dedicated to the PDF APIs at Microsoft. You can find the PDF API team’s blog led by program manager Shalu Gupta <a href="http://blogs.technet.com/b/pdf_api_blog/">on TechNet</a>.</p>  <p>For the record, I am currently using DevExpress in my <a href="http://www.appfeds.com/catalog/US/paul-whitaker/army-field-manuals/">Army Field Manuals app</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unzipping files with a progress bar in Windows Store applications (XAML/C#)</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/unzipping-files-with-a-progress-bar-in-windows-store-applications-xamlc</link>
      <pubDate>Thu, 24 Jan 2013 16:30:34 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2013/01/24/unzipping-files-with-a-progress-bar-in-windows-store-applications-xamlc/</guid>
      <description><![CDATA[Here’s a method for unzipping a Zip file in a Windows Store application. ZipArchive is part of...]]></description>
      <content:encoded><![CDATA[<p>Here’s a method for unzipping a Zip file in a Windows Store application. ZipArchive is part of System.IO.Compression.</p>  <pre class="csharpcode"><span class="kwrd">private</span> async Task UnzipWithProgress(StorageFolder outFolder, Stream zipFileStream, ProgressBar pb)
{
    <span class="kwrd">bool</span> bDelete = <span class="kwrd">false</span>;

    <span class="kwrd">using</span> (var archive = <span class="kwrd">new</span> ZipArchive(zipFileStream))
    {
        <span class="kwrd">try</span>
        {
            <span class="rem">// Ensure the UI update part runs in the UI thread</span>
            var ignore = <span class="kwrd">this</span>.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =&gt;
            {
                <span class="kwrd">this</span>.tbDownloadStatus.Text = <span class="str">&quot;Unzipping&quot;</span>;
                pb.Value = 0;
                pb.Maximum = archive.Entries.Count;
            });

            <span class="kwrd">foreach</span> (ZipArchiveEntry entry <span class="kwrd">in</span> archive.Entries)
            {
                <span class="kwrd">if</span> (entry.Name != <span class="str">&quot;&quot;</span>)
                {
                    <span class="kwrd">string</span> fileName = entry.FullName.Replace(<span class="str">&quot;/&quot;</span>, @&quot;\&quot;);
                    StorageFile newFile = await CreateFile(outFolder, fileName);
                    Stream newFileStream = await newFile.OpenStreamForWriteAsync();
                    Stream fileData = entry.Open();
                    <span class="kwrd">byte</span>[] data = <span class="kwrd">new</span> <span class="kwrd">byte</span>[entry.Length];
                    <span class="kwrd">int</span> len = await fileData.ReadAsync(data, 0, data.Length);
                    <span class="kwrd">while</span> (len &gt; 0)
                    {
                        await newFileStream.WriteAsync(data, 0, len);
                        len = await fileData.ReadAsync(data, 0, data.Length);
                    }
                    await newFileStream.FlushAsync();

                    var ignore2 = <span class="kwrd">this</span>.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =&gt;
                    {
                        pb.Value++;
                    });
                }
            }

            var itemId = OriginalUriString;
            <span class="kwrd">this</span>.Frame.Navigate(<span class="kwrd">typeof</span>(ItemDetailPage), itemId);
        }
        <span class="kwrd">catch</span> (Exception ex)
        {
            bDelete = <span class="kwrd">true</span>;
        }
        <span class="kwrd">finally</span>
        {
            <span class="kwrd">if</span> (bDelete)
                outFolder.DeleteAsync();
        }
    }
}</pre>


<p>To use it, call it this way. In my case I called it from the LoadState method.</p>

<pre class="csharpcode">StorageFile file;
<span class="kwrd">try</span>
{
    file = await ApplicationData.Current.LocalFolder.GetFileAsync(OriginalUriString);
}
<span class="kwrd">catch</span> (FileNotFoundException)
{
    file = <span class="kwrd">null</span>;
}

<span class="kwrd">if</span> (file != <span class="kwrd">null</span>)
{
    <span class="kwrd">using</span> (var ws = await file.OpenReadAsync())
    <span class="kwrd">using</span> (var forReadRandomStream = ws.AsStreamForRead(0))
    {
        <span class="kwrd">string</span> path = ApplicationData.Current.LocalFolder.Path + <span class="str">@&quot;\&quot; + Path.GetFileNameWithoutExtension(file.Name) + @&quot;</span>\&quot;;
        await UnzipWithProgress(await StorageFolder.GetFolderFromPathAsync(path), forReadRandomStream, progressBar1);
    }
}</pre>

<p>Apologize that this is not a File-&gt;New demo, but I thought it might be useful and <a href="http://www.hanselman.com/blog/YouAreNotYourCode.aspx">Scott Hanselman made me do it</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Office 2013 release day questions</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/office-2013-release-day-questions</link>
      <pubDate>Mon, 16 Jul 2012 19:13:49 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2012/07/16/office-2013-release-day-questions/</guid>
      <description><![CDATA[So, being the good dogfooder that I am, I'm posting this using Word 2013 on release day.
Looks like...]]></description>
      <content:encoded><![CDATA[<p>So, being the good <a href="http://en.wikipedia.org/wiki/Eat_one's_own_dog_food">dogfooder</a> that I am, I'm posting this using Word 2013 on release day.
</p><p>Looks like this may be the future of Windows Live Writer (according to <a href="http://www.liveside.net/2012/07/16/more-on-windows-live-writer-office-2013-and-reading-the-tea-leaves/">the tea leaves</a>). It feels a lot like Writer initially. It can do a lot out of the box but I'll spare you the needless includes from Flickr and other locations. Although I don't see Insert-&gt;Code, maybe cut and paste from Visual Studio is formatted well enough.
</p><p>Even though I'm a Microsoft employee, I haven't been privy to anything with this release—in fact, I don't think I was able to glean anything other than what's been posted online. I'm looking forward to learning more in the next few weeks and months. I'm particularly intrigued by the sync story with Skydrive and the investment in web versions of the apps. Also fascinating to think about is 3<sup>rd</sup> party apps integrated with Office 365, Skydrive, and Office Web Apps. Looks like there's an Office store where folks can acquire these add-ons. 
</p><p>Here are a few questions that I have after an hour working with some of the release. There seems to be a cohesive connected-device picture coming together.
</p><h3><br/>Word 2013 Questions
</h3><ul><li>Will the sharing features (such as blog posting) be available in the web app?
</li><li>Will there be an RSS reader online to compete with Google Reader?
</li><li>Will real-time collaboration be backward compatible with Office 2010?
</li><li>How well does the PDF editor work?
</li></ul><h3><br/>Outlook 2013 Questions
</h3><ul><li>I imported my Google Reader RSS feeds OPML file. Now, when I click on RSS Feeds, it goes to my Google Reader. Is this a fluke?
</li><li>Anything new in people merging? Will my merged contacts sync with the Metro Mail App and Windows Phone? It's a lot of work to redo these associations.
</li><li>I see you can add Facebook and LinkedIn social connectors. Where's Twitter?
</li><li>Are live tiles coming?
</li></ul><h3><br/>OneNote 2013 Questions
</h3><ul><li>Can OneNote edit PDFs like Word can?
</li></ul><h3><br/>Other/Random
</h3><ul><li>Why aren't we seeing the Metro style versions in this beta release?
</li><li>Any new authentication mechanisms planned for Skydrive (Facebook?)
</li></ul><p><br/>I'll probably figure some of this out, but if anyone has some of this information already, feel free to include it in the comments.
</p><p>Thanks!
</p><p>p.s. Man this thing posts a LOT faster than Writer.</p>]]></content:encoded>
    </item>
    <item>
      <title>Vietnam Wall for Windows Phone</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/vietnam-wall-for-windows-phone</link>
      <pubDate>Tue, 12 Jun 2012 19:23:59 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2012/06/12/vietnam-wall-for-windows-phone/</guid>
      <description><![CDATA[Choosing the Platform  I’d been looking into developing an app for Windows Phone since I picked up...]]></description>
      <content:encoded><![CDATA[<h3>Choosing the Platform</h3>  <p>I’d been looking into developing an app for Windows Phone since I picked up the Samsung Focus 18 months ago – to learn the technology and showcase what the platform can do. As a Microsoft employee, I feel tied to the platform, but also felt like it could be approachable since I am familiar with the language and some of the tools already. I also liked what I had heard about the <a href="http://en.wikipedia.org/wiki/Mango_(WP7)#Windows_Phone_7.5">Windows Phone 7.5 update</a> and wanted to try out some of the features. I recently finished a work project using WPF in which I picked up some XAML experience, so I felt energized about wrapping my head around the Silverlight-based development stack, and becoming a published app author.</p>  <h3>Behind the Idea</h3>  <p>So I set out to brainstorm ideas. I figured that good mobile app either has an interesting data set or an interesting algorithm, and is something that is useful away from your computer. I thought about places where you might go and need an app, and somehow remembered about a trip that my dad and I took to the <a href="http://virtualwall.org/aboutwal.htm">Vietnam Veterans Memorial Wall</a> in Washington, DC. While at the Wall, my dad tried to remember some of the folks he knew about who died in the war. We thumbed through some arcane books where the names were listed alphabetically and by hometown, and found one of the fallen GIs. But we had trouble finding others. Given that most of the soldiers, sailors, airmen, marines and coast guardsmen perished or were declared M.I.A. over 40 years ago, it seems like recall could be a problem worth trying to solve.</p>  <h3>The Tiny Wall</h3>  <p>So grew the idea of having a portable version of the Vietnam Wall database. I contacted multiple organizations that maintain the database of names behind the wall (there are a few parallel copies maintained by different organizations). There was a lot of interest. Even though the number of potential users is relatively small compared to iPhone or Android, the consensus was that the additional interest and exposure for the wall, and the memory of those listed on it, would justify the efforts. I chose to partner with the good folks at <a href="http://virtualwall.org/">the Virtual Wall</a>®, who tirelessly maintain a virtual memorial for each war casualty and M.I.A., and provide updates to their copy of the data. With their agreement to provide a regularly-updated dump of the wall names (surprisingly, even after 40 years, the data is updated monthly with dozens of changes), I agreed to develop the app free of charge and not include ads or solicit donations. The focus would be on providing a new way to search the database, and providing additional information about the wall to visitors including a link to The Virtual Wall®’s memorials.</p>  <p>We decided on an initial set of features:</p>  <ul>   <li>Support searching the wall by First and Last Name</li>    <li>Support searching by Home of Record (City/State/Country)</li>    <li>Enable “sounds like” searching for names</li>    <li>When searching by Home of Record, include nearby locations</li>    <li>Indicate where on the wall the name is located</li> </ul>  <p>   <br />I chose some technical requirements in order to make the platform shine:</p>  <ul>   <li>Use the Windows Phone embedded database included with Windows Phone 7.5</li>    <li>Adhere to Metro design language principles as best as possible, and take design cues from others (related, make it look good)</li>    <li>Learn and use the standard tools: Visual Studio, Windows Phone Tools, Expression Blend, various CodePlex projects</li>    <li>Avoid common mistakes: slow scrolling list boxes, inconsistent fonts, ignoring user color choices     <br /></li> </ul>  <h3>The Published App</h3>  <p>After about 200 hours of work, Vietnam Wall was published just after Memorial Day 2012. I was shooting for a release for that holiday, but it didn’t quite get approved in time. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/2502.MainPage_Black_280B8D3E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/2502.MainPage_5F00_Black_5F00_280B8D3E.png"><img title="MainPage_Black" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="MainPage_Black" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/8358.MainPage_Black_thumb_20EEE177.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/8358.MainPage_5F00_Black_5F00_thumb_5F00_20EEE177.png" width="148" height="241" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/2677.FindBy_55230ABD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/2677.FindBy_5F00_55230ABD.png"><img title="FindBy" style="display: inline; background-image: none;" border="0" alt="FindBy" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/6708.FindBy_thumb_7E2DA9B9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/6708.FindBy_5F00_thumb_5F00_7E2DA9B9.png" width="148" height="244" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/5635.ProfilePage_20190C3E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/5635.ProfilePage_5F00_20190C3E.png"><img title="ProfilePage" style="display: inline; background-image: none;" border="0" alt="ProfilePage" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/0435.ProfilePage_thumb_6FF1C17A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/0435.ProfilePage_5F00_thumb_5F00_6FF1C17A.png" width="148" height="244" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/5710.SearchResults_4F6A81C8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/5710.SearchResults_5F00_4F6A81C8.png"><img title="SearchResults" style="display: inline; background-image: none;" border="0" alt="SearchResults" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/07/metablogapi/6862.SearchResults_thumb_662C5A02.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-07-metablogapi/6862.SearchResults_5F00_thumb_5F00_662C5A02.png" width="148" height="244" /></a></p>  <p><a title="http://www.windowsphone.com/en-US/apps/0b758fa2-6414-4381-923e-557172cb3edc?wa=wsignin1.0" href="http://www.windowsphone.com/en-US/apps/0b758fa2-6414-4381-923e-557172cb3edc?wa=wsignin1.0">http://www.windowsphone.com/en-US/apps/0b758fa2-6414-4381-923e-557172cb3edc?wa=wsignin1.0</a></p>  <h3>Tools and Resources</h3>  <p>Here is a collection of tools and resources I used in the process of creating the Vietnam Wall app. In retrospect, I’d say the tools are robust and capable, if you know where to look. In order to create a clean and compelling app, it’s necessary to be conscious about all your pixels. Vietnam Wall isn’t a perfect design by any means, but I think it looks clean and works well, thanks mostly to Scott Hanselman and Jeff Wilcox, as well as the other links I’ve shared below.</p>  <h4>Essential Reading</h4>  <p>These resources are key to getting started and knowing about the tools and processes to develop Windows Phone apps. Scott Hanselman’s volume is quite helpful, although after the 10th or so 6-hour session working on Vietnam Wall, I begin to curse his blog post’s title. Ha!</p>  <ul>   <li><a href="http://www.hanselman.com/blog/FromConceptToCodeIn6HoursShippingMyFirstWindowsPhoneApp.aspx">From Concept to Code in 6 hours: Shipping my first Windows Phone App</a> by Scott Hanselman</li>    <li>Charles Petzold’s free e-Book, <a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx">Programming Windows Phone 7</a></li>    <li><a href="http://forums.create.msdn.com/forums/t/93178.aspx">App Hub community forum’s “look here to find the resources that you need” post</a></li>    <li><a href="http://blogs.infragistics.com/blogs/nick-landry/archive/2012/02/14/80-of-windows-phone-developers-not-using-the-free-tools.aspx">80% of Windows Phone Developers Not Using the Free Tools</a>      <br /></li> </ul>  <h4>Database</h4>  <p>I used a Mango Local database. Turns out it’s not quite SQL CE 3.5, and you have to create and populate it in a very specific way, by creating a Windows Phone app and using the emulator to pump the data in using LINQ-to-SQL, then copying it from local storage to your “real” app. It seems like a rather convoluted process, but it works OK. In the end, it’s nice to have full LINQ access to a data store and not have to distribute any libraries (since the SQLCE drivers are included in the Windows Phone 7.5 OS).</p>  <ul>   <li><a href="http://www.windowsphonegeek.com/tips/Windows-Phone-Mango-Local-Database(SQL-CE)-Introduction">Windows Phone Mango Local Database (SQL CE)</a> by WindowsPhoneGeek (awesome series)</li>    <li><a href="http://www.a2zmenu.com/Blogs/LINQ/LINQ%20to%20SQL%20CompiledQuery.aspx">LINQ-to-SQL CompiledQuery</a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/bb386913.aspx">MSDN: Query Examples (LINQ to SQL)</a></li>    <li><a href="http://erikej.blogspot.com/2010/02/how-to-use-exportsqlce-to-migrate-from.html">How to Migrate/Downsize a SQL Server database to SQL Server Compact 4.0 (and 3.5)</a>      <br /></li> </ul>  <h4>Interface Controls</h4>  <p>I used with Telerik RadControls. As a Microsoft employee, I was able to snag a free (normally $99) license. I was happy with their support and the tile, progress bar and animation helper controls (as part of their custom Root Application Frame) were slick. In particular, I like how transition animations work when paging away from the tile controls (see it in action in Vietnam Wall). I also used their Diagnostics and Picker controls, which I think saved some effort over the CodePlex versions.</p>  <ul>   <li><a href="http://socialebola.wordpress.com/2011/01/29/omni-present-progress-bar-2/">Omni-present progress bar</a> (template for Silverlight)</li>    <li><a href="http://www.windowsphonegeek.com/articles/wp7-longlistselector-in-depth--part2-data-binding-scenarios">WP7 LongListSelector in depth | Part2: Data binding scenarios</a></li>    <li><a href="http://www.telerik.com/community/forums/windows-phone.aspx">Telerik Windows Phone 7 Controls Forums</a></li>    <li><a href="http://www.telerik.com/help/windows-phone/wp7common-introduction.html">Telerik RadControls for Windows Phone documentation</a>      <br /></li> </ul>  <h4>Design</h4>  <p>I figure I spent 60% of my time getting this app to look decent. Jeff Wilcox’s design guides for developers were infinitely helpful here, and I set out to apply his guidance as best I could. I also thought the MSDN resources were decent.</p>  <ul>   <li><a href="http://www.jeff.wilcox.name/2011/03/metro-design-guide-v1/">Jeff Wilcox’s “Metro” design guide for developers, v1.00</a> by Jeff Wilcox</li>    <li><a title="A quick look at MetroRadio- quick spacing, margin, and icon tips for Windows Phone devs" href="http://www.jeff.wilcox.name/2012/01/metroradio-design/">A quick look at MetroRadio- quick spacing, margin, and icon tips for Windows Phone devs</a> by Jeff Wilcox</li>    <li><a title="MetroGridHelper- A helpful debugging assistant for designers and developers alike" href="http://www.jeff.wilcox.name/2011/10/metrogridhelper/">MetroGridHelper- A helpful debugging assistant for designers and developers alike</a> by Jeff Wilcox</li>    <li><a href="http://www.dotnetspeaks.com/DisplayArticle.aspx?ID=220">Windows Phone – Important Design Guidelines</a></li>    <li><a href="http://fragiledevelopment.wordpress.com/2011/03/11/using-wp7-accent-color-effectively/">Using WP7 Accent Color Effectively</a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/hh202884(v=vs.92).aspx">MSDN: Essential Graphics, Visual Indicators and Notifications for Windows Phone</a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/hh202915(v=VS.92).aspx">MSDN: User Experience Design Guidelines for Windows Phone</a></li>    <li><a href="http://cespage.com/silverlight/appbar.html">CESPage.com Windows Phone 7 Icons</a>      <br /></li> </ul>  <h3>Conclusion</h3>  <p>I had a pretty good experience developing my first app for Windows Phone. I bit off a fairly complex project (using a Local DB and providing some advanced search functionality), and ended up spending considerable time learning and applying the Metro design language and various Windows Phone design guidelines. I’d say the tools are fairly easy and good to work with (especially the Visual Studio/Blend pass-off), and the documentation is abundant and easy to find. Now that Vietnam Wall is out the door, developing additional apps will have a lot smaller learning curve.</p>]]></content:encoded>
    </item>
    <item>
      <title>Goal setting at Microsoft</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/goal-setting-at-microsoft</link>
      <pubDate>Wed, 14 Sep 2011 12:56:42 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2011/09/14/goal-setting-at-microsoft/</guid>
      <description><![CDATA[When reading about how Microsoft does business, it&rsquo;s quickly evident that we&rsquo;re a...]]></description>
      <content:encoded><![CDATA[<p>When reading about how Microsoft does business, it&rsquo;s quickly evident that we&rsquo;re a metrics-driven organization. Even my wife, who works in strategic planning, mentioned that the instructor at a recent training class cited Steve Ballmer as a core example of someone who leads by scorecard.</p>
<p>On the surface, one might think this would be frustrating. Feeling micromanaged, like your time revolves around the numbers. If the numbers became out of sync with business reality, or if they were unreasonable, I might feel this way. But Microsoft leadership seems to be responsive to changes and suggestions each year, and the process gets me regularly thinking about creating goals that help grow our business, increase my impact, and help others succeed (among other things).</p>
<p>I work in a super competitive place. My compensation is partially awarded in the context of others in my pay grade, as well as the one above me. This means some very experienced, passionate, and intelligent people are vying for the same recognition that I am.</p>
<p>So each year I sit down a few times with my manager to tweak my &ldquo;<a title="SMART" href="http://en.wikipedia.org/wiki/SMART_criteria">SMART</a>&rdquo; goals to help me stand out above my peers. In some ways, it&rsquo;s a personal exercise rather than an organizational one. For instance, trying to figure out how to put a personal metric on increasing my exposure and influence is a little tough, and the output seems a little goofy. Statements about number of technical discussions outside my immediate team, for instance, represent my intention rather than a metric tied directly to business accomplishments. I think the point is more to consistently think about accomplishing the intention of goals, rather than the language itself.</p>
<p>The process isn&rsquo;t flawless, and some of the metrics that get assigned to me may not fit exactly with my work conditions. Also, the goals are not explicitly examined as if they were an exam, so some aggressive goals I set (such as a new MCITP or MCPD certification) get lost in the shuffle if I don&rsquo;t highlight them specifically. But, generally speaking, goal setting at MCS is a motivational process and has helped lead me down an interesting path towards a more visible presence within my team and at my customers.</p>]]></content:encoded>
    </item>
    <item>
      <title>Career Inspiration at PASS Summit</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/career-inspiration-at-pass-summit</link>
      <pubDate>Thu, 11 Nov 2010 13:29:28 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2010/11/11/career-inspiration-at-pass-summit/</guid>
      <description><![CDATA[I’m at the Professional Association for SQL Server (PASS) Summit, an event that brings together a...]]></description>
      <content:encoded><![CDATA[<p>I’m at the <a title="Professional Association for SQL Server" href="http://www.sqlpass.org/">Professional Association for SQL Server</a> (PASS) Summit, an event that brings together a few thousand professionals that work with Microsoft’s SQL Server for technical training, inspiration and networking. </p>  <p>My justification for attending was mostly technical: to fill some gaps and learn new skills, although I also expected to make new contacts and friends. I’ve done these things, but I also gained some unexpected insight. Namely, I was<strong> inspired to focus and document my career plans</strong>.</p>  <p>This “aha” moment began with a “Birds of a Feather” lunch group. This type of lunch group at PASS involves choosing a lunch table assigned a topic. My choice was “Why you need to distinguish yourself from the rest,” a group facilitated by DBA and professional development guru Edwin Sarmiento (<a href="https://twitter.com/#!/bassplayerdoc">@bassplayerdoc</a>). We discussed the motivations to stand out, and the topic quickly shifted to figuring out how to stand out. We had great discussions about how to change perceptions that others have of you, and how to do some personal branding in order to be recognized for your work.</p>  <p>I attended some great technical presentations, and although all the presenters have impressive backgrounds, two presenters stood out to me as role models for interesting careers and deep focus: Stacia Misner (<a href="https://twitter.com/#!/StaciaMisner">@staciamisner</a>) and Joy Mundy. They both have an intense passion and deep focus on the Business Intelligence stack and many years of experience. </p>  <p>Finally, Andy Warren (<a href="https://twitter.com/#!/sqlandy">@sqlandy</a>) presented on developing a Professional Development Plan. In the talk, he outlined the need to discover and document the resources you plan to use to better your career, and described how to create a written plan. This was excellent and is something I have started working on. Importantly, he made points about balance and avoiding burn-out, and I plan to use this to develop insights into my own development plan.</p>  <p>My head is swimming in new thoughts and ideas, and I’m working to develop a story for my next 5-10 years. I have some role models to keep tabs on and some tools to help me move forward. Thanks PASS!</p>]]></content:encoded>
    </item>
    <item>
      <title>Next steps in learning as a professional consultant</title>
      <link>https://docs.microsoft.com/archive/blogs/paulwhit/next-steps-in-learning-as-a-professional-consultant</link>
      <pubDate>Tue, 22 Jun 2010 16:05:09 GMT</pubDate>
      <dc:creator><![CDATA[paulwhit]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/paulwhit/2010/06/22/next-steps-in-learning-as-a-professional-consultant/</guid>
      <description><![CDATA[I’ve decided to pursue a Master of Information Management (MIM) program from University of Maryland....]]></description>
      <content:encoded><![CDATA[<p>I’ve decided to pursue a <a href="http://ischool.umd.edu/programs/mim.shtml">Master of Information Management (MIM) program</a> from University of Maryland. </p>  <p>As a consultant for Microsoft, I am required to become an expert on technologies as they emerge. Since I work with customers that are sometimes slow to adopt technologies, I need to ramp up on older technologies as well. Continuously learning multiple generations of technology can be a fun challenge, although sometimes daunting!</p>  <p>Microsoft provides me with amazing tools to stay fresh. MCS allows for 4 weeks of paid training per year, and every 18 months, I attend TechReady, a week-long training in Seattle. I also have free access to everything Microsoft Learning and Microsoft Press creates. I try to take full advantage of these tools and always add certification exams to my yearly commitments in order to keep myself on track.</p>  <p>With all the need for me to learn technologies, there seems to be little time to cycle back to foundational knowledge that can help me make broader decisions, and help customers make more impactful technology choices that are led by business needs. </p>  <p>In the next 5 years, my impact will increase. I’ve made my technology skills and aptitude for running with new technology challenges evident on every project I’ve been assigned to, and I plan to continue to do so.</p>  <p>With the knowledge I gain from MIM program as well as my growing impact on the job, I am hoping to position myself to more fully affect change at a higher level. </p>  <p>In the next 5 years, I hope to shift from the “tactical” impact of designing and implementing specific systems to the world of “strategic” thinking, and I think this degree program will help me get to that point.</p>]]></content:encoded>
    </item>
  </channel>
</rss>