<?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>The Hogg Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/thehoggblog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/thehoggblog/feed.xml</link>
    <description>Envisaging the Future by Reflecting on the Past</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:31:16 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>30th Anniversary of the Sinclair ZX Spectrum</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/30th-anniversary-of-the-sinclair-zx-spectrum</link>
      <pubDate>Mon, 23 Apr 2012 14:27:09 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2012/04/23/30th-anniversary-of-the-sinclair-zx-spectrum/</guid>
      <description><![CDATA[It is amazing for me to think that it has been 30 years since the ZX Spectrum was released. The BBC...]]></description>
      <content:encoded><![CDATA[<p>It is amazing for me to think that it has been 30 years since the ZX Spectrum was released. The <a href="http://www.bbc.co.uk/news/technology-17776666">BBC</a> has a good interview with two of the designers of the Spectrum which will be interesting for anyone else like <a href="http://blogs.msdn.com/b/thehoggblog/archive/2008/03/22/glory-days-home-computing-in-the-80-s.aspx">myself</a> who cut their teeth peeking and poking on the ZX Spectrum. As I now live in the US it is still amazing to think how much more advanced the British home computing market was than in the US.</p>
<p>Also, as a side note for any die-hard Spectrum&nbsp;fans Manic Miner is actually available&nbsp;to run on your Windows WP7 phones! Enjoy!!!</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/6866.ZX%20SPECTRUM.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28/6866.ZX-SPECTRUM.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/6866.ZX%20SPECTRUM.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28/6866.ZX-SPECTRUM.jpg" /></a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Script Explorer Design Overview</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/script-explorer-design-overview</link>
      <pubDate>Mon, 16 Apr 2012 10:16:00 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2012/04/16/script-explorer-design-overview/</guid>
      <description><![CDATA[In last weeks blog post Creating a Semantic Web for PowerShell I introduce our vision for...]]></description>
      <content:encoded><![CDATA[<p>In last weeks blog post <a href="http://blogs.msdn.com/b/thehoggblog/archive/2012/04/13/creating-a-semantic-powershell-web.aspx">Creating a Semantic Web for PowerShell</a> I introduce our vision for establishing a semantic web in support of PowerShell and some of the benefits it could yield. That lead to the obvious question of what to do until major repositories, blog sites and forums have adopted some of the techniques described in the post &ndash; to which I answered Microsoft Script Explorer was the solution. Hopefully by the end of this post you will have a better understanding of how Script Explorer can help &ndash; and how you can extend Script Explorer to search your blogs / online forums &ndash; and share those extensions with other people.</p>
<p>In the illustration below you can see the high-level design of Script Explorer illustrated. The dotted line in the middle shows the divide between code and repositories that run / exist inside a corporate network vs those outside of the corporate network. One of the most interesting aspects of Script Explorer is something we have called the Aggregation Service. This service takes responsibility for helping us aggregate scripts from different sources based on your requirements. The service is able to take content from any number of repositories, regardless of what protocol they use or what format the scripts are exposed in and then aggregate the functionality and expose that data as an oData based feed.</p>
<p>As you can see in the illustration below there are typically two instances of the Aggregation Service running. The first (on the right-hand side) runs on Windows Azure and is responsible for aggregating feeds from different Internet based repositories such as TechNet or Posh. The second (on the left-hand side) runs along-side Script Explorer and takes responsibility for retrieving scripts from the external aggregation service as well as internal resources such as your local file system and any corporate repositories you want to stand up.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/1185.2678.ScriptExplorerDesign[1].jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28/1185.2678.ScriptExplorerDesign_5B00_1_5D00_.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/1185.2678.ScriptExplorerDesign[1].jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28/1185.2678.ScriptExplorerDesign_5B00_1_5D00_.jpg" /></a></p>
<p>One of questions we have heard is wrt why through the Script Explorer UI have we limited ourselves to just TechNet and Posh repositories &ndash; and the good news is that we haven&rsquo;t. The Aggregation Service includes a standard way to write new providers enabling you to search alternative sources of scripts and have them exposed directly inside Script Explorer simply by changing the configuration file. Another question we hear frequently is why only Bing? To which we obviously respond &ndash; why not Bing &ndash; what other search engine would you ever want to use! :-) Seriously though, for all you AltaVista or Yahoo fans out there &ndash; you can easily create a provider that used a different search engine if you wanted to. Similarly, if you have dedicated hours to posting PowerShell Scripts to your blog and want to enable people to find them &ndash; but don&rsquo;t want to republish all scripts with a schema.org schema (more about this later) describing the Script &ndash; then take a stab at writing your own provider &ndash; and then share it with other folks. For creating a new repository or creating a new provider take a look at the sample posted on <a href="http://scriptexplorer.codeplex.com/">CodePlex</a>. There will be more samples posted there in the coming weeks - plus if you have any questions / requests please make sure to post them there as well.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Creating a semantic “PowerShell” web</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/creating-a-semantic-powershell-web</link>
      <pubDate>Fri, 13 Apr 2012 12:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2012/04/13/creating-a-semantic-powershell-web/</guid>
      <description><![CDATA[A couple of weeks ago we announced that we had just released our first beta of Microsoft Script...]]></description>
      <content:encoded><![CDATA[<p>A couple of weeks ago we announced that we had just released our first beta of <a href="http://blogs.msdn.com/b/thehoggblog/archive/2012/03/13/microsoft-script-explorer-for-windows-powershell-beta-now-available.aspx">Microsoft Script Explorer</a>. The goal for Script Explorer was two-fold. The first was to help people looking for scripts / cmdlets / modules find them &ndash; regardless of where they resided. The second was to help large organizations formalize practices around something I am calling script lifecycle management (more about this in a later post) &ndash; through establishment of centralized repositories of scripts managed within an organization.</p>
<p>In my last blog post I promised to provide an overview of the design of Microsoft Script Explorer. Before I do that it is worth spending a little more time talking about our vision for a semantic web focused in and around PowerShell. In very simplistic terms, a semantic web takes the information that is typically hidden inside product documentation, blog posts, support forums and so forth &ndash; and enables that information to be defined in a predictable manner &ndash; which of course enables discovery of that information. A great example of this is of course a PowerShell Script. Scripts are typically just text hidden inside web pages &ndash; and search engines such as Bing / Google and Yahoo can&rsquo;t discriminate whether a page containing the words &ldquo;PowerShell Script&rdquo; is what you are looking for vs pages that actually contain valid PowerShell scripts.</p>
<p>But the semantic web is much more than that. In addition to being able to define types of information, we also want to specify types of relationships between such information. Having found a web page with a PowerShell script on it &ndash; there are often any number of other links on the page &ndash; some are navigational within the site, some are links to related content and some are advertisements. A lack of clarity around what the links on a page are prevents us from creating great information experiences where we can lead a user from one page to the next in a predictable fashion &ndash; either inside a<br />browser or inside a tool such as the ISE. Ideally we want to be able to take a web page that contains a script supporting a cmdlet such as &ldquo;get-wmiobject&rdquo; and inform the user that if they want an &ldquo;Overview&rdquo; of WMI click this link, or if they want &ldquo;Getting Started&rdquo; guidance click on another link, and if they want more &ldquo;Examples&rdquo; of how this cmdlet can be used for managing user accounts then<br />they should click a third link. It is these explanations of what purpose the serve that will enable richer guidance experiences across information sets.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Semantic_Web">Semantic Web</a> has of course been discussed for a long-time now &ndash; both as an architectural vision and a variety of implementation techniques showing how to realize this vision. Based on our initial set of requirements we have settled on a set of implementation techniques based on the following combination of standards: <a href="http://www.odata.org/">oData</a>, <a href="http://www.w3.org/TR/html5/microdata.html">HTML 5 Micro-Data</a> and <a href="http://schema.org/">schema.org</a> schemas.</p>
<p>The illustration below attempts to illustrate that PowerShell Scripts can be stored in a number of different places &ndash; inside local file systems, network shares, web sites, online forums and script repositories. When the scripts exist inside a web page such as in a blog or a threaded discussion we believe HTML 5&rsquo;s Micro-Data will enable us to include additional meta-data that will describe the specific parts of the page that contain scripts and information related to the scripts name and purpose that will better enable search. For repositories such as TechNet and POSH we believe oData<br />provides a great programmatic means of accessing these repositories.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/Images/1715.SemanticPowerShellWeb.gif" original-url="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28-Images/1715.SemanticPowerShellWeb.gif"><img style="max-width: 550px;" border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/Images/1715.SemanticPowerShellWeb.gif" original-url="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28-Images/1715.SemanticPowerShellWeb.gif" /></a></p>
<p>Makes sense at a high-level &ndash; correct? But any astute PowerShell repository / blog / forum owner will immediately recognize that very few of these sites have standardized on these technologies &ndash; and worse still adoption would require editing and reposting of much of this information. So what can be done in the mean time? The answer is of course Microsoft Script Explorer for Windows PowerShell &ndash; and I will use my next blog post to drill into more detail.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Script Explorer for Windows PowerShell Beta Now Available!</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/microsoft-script-explorer-for-windows-powershell-beta-now-available</link>
      <pubDate>Tue, 13 Mar 2012 07:51:24 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2012/03/13/microsoft-script-explorer-for-windows-powershell-beta-now-available/</guid>
      <description><![CDATA[Well over a year ago our Information Experience team set out to redefine the way Microsoft delivers...]]></description>
      <content:encoded><![CDATA[<p>Well over a year ago our Information Experience team set out to redefine the way Microsoft delivers narrative and executable guidance to customers. We wanted to embrace prevailing trends such as the democratization of information &ndash; especially as it relates to the importance of community contributions -&nbsp;and of course automation with one of the main goals being to increase both the productivity and quality of our audiences contributions.</p>
<p>For our IT Pro audience this meant recognizing that many of the tasks being performed by IT Pro&rsquo;s are now being implemented entirely in PowerShell. We also recognized that many of these tasks are similar across organizations &ndash; which has led to a number of different script repositories existing on the web &ndash; including but not limited to the Microsoft Script Center. After talking with many&nbsp;large customers they recognized the value in these repositories but also wanted to establish internal corporate repositories with scripts and modules that were customized for their organizations and fully trusted for execution within a production environment.</p>
<p>This of course led us to Microsoft&reg; Script Explorer for Windows PowerShell&reg; (Script Explorer). Script Explorer enables you to search for PowerShell scripts on your local computer, your local network and intranet, and of course online script repositories. You are shown available scripts that are organized by category, and &nbsp;can search for scripts from local and trusted community repositories by applying filters based on focus areas.<br />Script search results return information about script usage, code samples, and articles about the scripts. When you find the scripts you that you need, you can download and store the scripts and use them at a later time. Script Explorer isn't just about scripts. It also allows you to find other assets such as modules, script snippets (for use in Windows 8 ISE) and even allows you to view how-to guidance topics from Windows PowerShell commands and community resources such as TechNet wiki pages to get started with Windows PowerShell.</p>
<p>Some of the underlying concepts behind Script Explorer derive from the vision of a semantic web &ndash; one in which information has meaning&ndash; where searching for a PowerShell Script returns only pages that contain<br />PowerShell scripts &ndash; not just pages that contain the words &ldquo;PowerShell Script&rdquo;. This approach will enable tools such as Script Explorer to take advantage of that meaning and provide much richer information experiences. In a future blog post I will touch on the underlying design of Script Explorer and how we are embracing a semantic web&hellip; but for now please give Script Explorer a test drive. For those fortunate to already be running Windows 8 Beta you will be glad to know it runs on both Windows 7 and Windows 8 Beta.</p>
<p>Download the beta of <a href="http://go.microsoft.com/fwlink/?LinkId=246229">Microsoft Script Explorer for Windows PowerShell</a> from here and let us know how it helps you. We would really like to hear from you.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Steve Jobs (CLI – NUI)</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/steve-jobs-cli-nui</link>
      <pubDate>Fri, 07 Oct 2011 13:44:00 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2011/10/07/steve-jobs-cli-nui/</guid>
      <description><![CDATA[Our industry lost one of its great pioneers with the passing of Steve Jobs on Wednesday. As a young...]]></description>
      <content:encoded><![CDATA[<p>Our industry lost one of its great pioneers with the passing of Steve Jobs on Wednesday. As a young computer geek from the 70's and 80's I have followed Steve Job's success for more than 30 years as demonstrated in posts such as <a title="The Glory Days of Home Computing" href="http://blogs.msdn.com/b/thehoggblog/archive/2008/03/22/glory-days-home-computing-in-the-80-s.aspx">The Glory Days of Home Computing</a>. A lot has been said about Steve&rsquo;s contributions, both in terms of the vast numbers of products that he has brought to market and the amazing success that has followed them. One area that has not been touched on in any of the mainstream presses, and something that I believe is much more significant has been Steve&rsquo;s ability to see advances in human-computer interaction technologies and take them mainstream - something that I believe has been a key success factor in the products he has taken to market.&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/3034.stevejobs.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28/3034.stevejobs.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/28/3034.stevejobs.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-28/3034.stevejobs.png" /></a>&nbsp;</p>
<p>Steve has innovated across all three HCI generations:</p>
<ul>
<li>CLI - In 1977 when the Apple II was first introduced we were stuck in the CLI paradigm where humans were forced to learn a strict syntax through which we could interact with our computers.</li>
<li>GUI &ndash; In 1984 the GUI was popularized in the Apple Macintosh. The GUI used metaphors such as the desktop and trashcans to make it simpler for users to explore the capabilities of their computer &ndash; increasing the accessibility of computers to a much broader audience than the CLI.</li>
<li>NUI &ndash; In 2007 the Apple iPhone was first introduced popularizing a radically new style for users to interact with their Mobile phones. This style was based on multi-touch support and gestures, enabling much more natural interactions with the device &ndash; and forcing the phone to have to interpret what the user was requesting using gestures natural to the user &ndash; a major departure from the user having to understand how to interact with the device.</li>
</ul>
<p>Now it is true that Steve Jobs and Apple weren&rsquo;t the first inventors of any of these technologies, but they were incredibly adept at timing the commercialization of these technologies and gaining broad adoption &ndash; something that I believe our industry will miss the most. So rather than pondering what the iPhone 6 would have looked like had Steve been present, I personally believe one of the greatest losses that we may never realize is around the myriad of mundane experiences that we currently take for granted &ndash; any number of which Steve could have chosen to breathe new life into. Best wishes to Steve's family, his friends and everyone at Apple.</p>]]></content:encoded>
    </item>
    <item>
      <title>Help write the PowerShell Survival Guide</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/help-write-the-powershell-survival-guide</link>
      <pubDate>Fri, 28 Jan 2011 18:35:23 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2011/01/28/help-write-the-powershell-survival-guide/</guid>
      <description><![CDATA[My friend Eric Battalio is leading an effort to update the Windows PowerShell Survival Guide on the...]]></description>
      <content:encoded><![CDATA[<p>My friend Eric Battalio is leading an effort to update the Windows PowerShell Survival Guide on the TechNet Wiki. Survival Guides are essentially categorized collections of links + comments around a common theme, scenario or technology - think of them as a Table of Contents for a particular problem domain - with the contents spanning the web. They link to blogs (like yours), forums and other sources to solve a problem or address an issue. As a Survival Guide evolves, it hopefully becomes more complete as content gaps are identified, new sections and links are added, and new content is created in community (and on blogs like yours).</p>
<p>You can help. Volunteer and collaborate with community to evolve the Windows PowerShell Survival Guide and help improve other survival guides. Here is how:</p>
<ol>
<li><strong>Join the TechNet Wiki</strong>. I am sure all of you are already on it, but just in case, head over to the <a href="http://technet.com/wiki" title="Wiki">Wiki</a> and user your Live ID to join.</li>
<li><strong>By February 5th</strong>, review the <a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-powershell-survival-guide.aspx" title="Windows PowerShell Survival Guide ">Windows PowerShell Survival Guide</a> and share your thoughts in the article itself (the article shows you where). Identify missing sections and scenarios. How is it organized? Does it meet the needs of a PowerShell beginner? How about advanced users? </li>
<li><strong>Add missing sections </strong>that you would like us to flush out - simply by modifying the ToC</li>
<li><strong>Participate each week</strong> by identifying great (and missing) content around the given theme. </li>
<li><strong>Share your feedback</strong> and experiences on the wiki itself or just add a comment on this blog post.</li>
</ol>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Why haven’t our Exception Management Practices evolved from the 60’s?</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/why-havent-our-exception-management-practices-evolved-from-the-60s</link>
      <pubDate>Fri, 21 Jan 2011 16:29:54 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2011/01/21/why-havent-our-exception-management-practices-evolved-from-the-60s/</guid>
      <description><![CDATA[It is amazing to think how much has changed over the last decade or so – evolution of the cloud,...]]></description>
      <content:encoded><![CDATA[<p style="MARGIN: 0in 0in 10pt" class=MsoNormal><font size=3 face=Calibri>It is amazing to think how much has changed over the last decade or so – evolution of the cloud, broad adoption of natural user interfaces and general acceptance of agile development techniques – just to name a few. But one thing that causes me no end of frustration is that during this entire period of time we do not appear to have improved our user experiences when exceptions occur. In fact I would argue that they haven’t changed significantly since </font><a href="http://mainframematerials.blogspot.com/2007/09/abends.html"><font color=#0000ff size=3 face=Calibri>abends</font></a><font size=3><font face=Calibri> were incorporated into the IBM OS/360 in 1964. <span style="mso-spacerun: yes">&nbsp;</span><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></font></font></p>
<p style="MARGIN: 0in 0in 10pt" class=MsoNormal><font size=3><font face=Calibri>Before we talk about the solution let me give you some recent examples that have frustrated me. Just to ensure you don’t think I am trying to say Microsoft is any better / worse than anyone else I have cited a Microsoft example as well. <span style="mso-spacerun: yes">&nbsp;</span><o:p></o:p></font></font></p>
<p style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst><span style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"><span style="mso-list: Ignore"><font size=3 face=Calibri>-</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size=3><font face=Calibri>I recently purchased an iTunes card for my dad for Christmas. We entered the card id exactly as was printed on the card but kept receiving an invalid card error message. It didn’t say why it was invalid or what we should do to resolve the problem – it just said the id was invalid. We went into the Apple store and asked the support person for help. First he tried to get us to call support instead but finally under duress he started the process of getting us a replacement card. During that time I mentioned it was urgent because dad was returning to Australia – at which point he goes “aha” – that is the problem - US cards do not work with Australian iTunes accounts! Why didn’t the error inside iTunes provide this information?<o:p></o:p></font></font></p>
<p style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast><span style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"><span style="mso-list: Ignore"><font size=3 face=Calibri>-</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size=3><font face=Calibri>Inside Microsoft we have deployed DirectAccess – which is arguably one of the coolest security innovations in years – allowing us to connect to the Microsoft network remotely without having to use our Smart Cards. However, it doesn’t always work. And when it doesn’t work this is the error you receive “Direct Access Connectivity is not working” – nothing to help you understand what the problem is or how to resolve it. The problem is usually caused by recent security patches not having being installed – but not always.<o:p></o:p></font></font></p>
<p style="MARGIN: 0in 0in 10pt" class=MsoNormal><font size=3><font face=Calibri>So how do we as an industry resolve this? In my opinion there are two changes that have to occur:<o:p></o:p></font></font></p>
<p style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpFirst><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size=3 face=Calibri>1.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size=3><font face=Calibri>Add a “<b style="mso-bidi-font-weight: normal">User Exception Testing</b>” phase to your development lifecycle – As part of code reviews during development we should investigate every single exception that is thrown and triage the user experience as we would any other user interaction. If the user can’t diagnose the error with the information provided then raise a bug. This would have resolved both of the above issues.<o:p></o:p></font></font></p>
<p style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle><o:p><font size=3 face=Calibri>&nbsp;</font></o:p></p>
<p style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpLast><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size=3 face=Calibri>2.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size=3 face=Calibri>Incorporate links to “<b style="mso-bidi-font-weight: normal">Live Troubleshooting Guidance</b>” – In some cases there are legitimate reasons why an exception occurs and occasionally it is possible that it isn’t possible to know all problems and solutions during development and so a more flexible solution is required. A good example of our Information Experience team is now resolving this problem is by allowing certain events from within the Event Viewer to link directly to the </font><a href="http://social.technet.microsoft.com/wiki/tags/troubleshooting/default.aspx"><font color=#0000ff size=3 face=Calibri>TechNet Wiki</font></a><font size=3 face=Calibri> – for example Event ID 100016 redirects to </font><a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-server-2008-event-id-10016-com-security-policy-configuration.aspx"><font color=#0000ff size=3 face=Calibri>here</font></a><font size=3><font face=Calibri> where Microsoft support and community members can update the content as new problems + solutions are identified.<o:p></o:p></font></font></p>
<p style="MARGIN: 0in 0in 10pt" class=MsoNormal><font size=3><font face=Calibri>I would love to hear your thoughts on what needs to occur – plus feel free to use this blog as a way to rant about any specific exceptions that are driving you nuts at the moment. <o:p></o:p></font></font></p>]]></content:encoded>
    </item>
    <item>
      <title>Calling all PowerShell Users...</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/calling-all-powershell-users</link>
      <pubDate>Fri, 21 Jan 2011 11:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2011/01/21/calling-all-powershell-users/</guid>
      <description><![CDATA[We need your help! The Information Experience (iX) team at Microsoft is looking for your help and...]]></description>
      <content:encoded><![CDATA[<p>We need your help! The Information Experience (iX) team at Microsoft is looking for your help and feedback to drive new guidance experiences over the next 6 - 12 months. For those people not familiar with the iX team we are the folks responsible for deliving guidance to support Microsoft products such as Windows Server, Windows Azure, System Center, FIM, WIF and a bunch more products. </p>
<p sizset="98" sizcache="12">There are two ways that we need your help:</p>
<ol>
<li>
<div sizset="98" sizcache="12">There&rsquo;s a regular <a href="http://vp-nri.com/take?i=162411&amp;h=u7DzLZkqQEbm6e5zylI38A" title="survey">survey</a>: &ndash; which this time around primarily about PowerShell. This should take about ten minutes, and will help us better understand the issues you face every day. Whether you are into PowerShell as an IT Professional or, into it as a Power Tool &ndash; any information you can provide helps.</div>
</li>
<li>
<div sizset="98" sizcache="12">We would also like you to join our International Customer Advisory Board. This is where you can tell Microsoft what you think about using and troubleshooting our products? The Microsoft Server &amp; Cloud International Customer Advisory Board wants to hear it. Share your opinions and help shape tomorrow&rsquo;s Windows Server and System Center guidance. See <a href="http://msicab.com/"><span style="color: #0066dd;">http://msicab.com</span></a> for more information and mail <a href="mailto:icabnom@microsoft.com"><span style="color: #0066dd;">icabnom@microsoft.com</span></a> to join.</div>
</li>
</ol>
<p sizset="98" sizcache="12">&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Identity Foundation (WIF) and Azure AppFabric Access Control Service (ACS) Survival Guide</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/windows-identity-foundation-wif-and-azure-appfabric-access-control-service-acs-survival-guide</link>
      <pubDate>Tue, 02 Nov 2010 16:39:11 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2010/11/02/windows-identity-foundation-wif-and-azure-appfabric-access-control-service-acs-survival-guide/</guid>
      <description><![CDATA[My friend Alik&nbsp;just sent me to a pointer to a Survival Guide&nbsp;he is working on for the...]]></description>
      <content:encoded><![CDATA[<p>My friend <a href="http://blogs.msdn.com/b/alikl/">Alik</a>&nbsp;just sent me to a pointer to a Survival Guide&nbsp;he is working on for the Azure ACS.&nbsp;The <a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-identity-foundation-wif-and-azure-appfabric-access-control-service-acs-survival-guide.aspx#GettingStarted">survival guide</a> is intended to help provide a standardized means of organizing topics related to a particular domain such as access control. Looks like a good start for anyone working with ACS. Best part is that Alik is using the TechNet wiki - so if you have additional articles / topics that you think are relevant I am sure Alik would be grateful if you add them to the wiki.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>A (Re)Introduction to Patterns</title>
      <link>https://docs.microsoft.com/archive/blogs/thehoggblog/a-reintroduction-to-patterns</link>
      <pubDate>Mon, 12 Jul 2010 21:43:52 GMT</pubDate>
      <dc:creator><![CDATA[Jason Hogg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thehoggblog/2010/07/12/a-reintroduction-to-patterns/</guid>
      <description><![CDATA[A couple of people have asked me why I haven't responded to this initial post on the SE Insight...]]></description>
      <content:encoded><![CDATA[<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">A couple of people have asked me why I haven't responded to this initial post on the SE Insight site. Partially it was because I recently changed teams and this has just meant that I am crazy busy at the moment. One of the top asks was for a list of good pattern guides - so I figured I would repost this blog and extend it to include a starting point for people interested in seeing patterns in different domains. Read on... and sorry for the duplication if you already read this the first time around. </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">The recent discussions about Software + Services and Cloud computing have in my mind reemphasized the critical role that patterns play in helping our industry capture proven practices across all disciplines from software architecture, infrastructure architecture through to business architecture.&nbsp;</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Patterns and the &ldquo;Cloud&rdquo;<o:p></o:p></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">While many people look at cloud computing as a major paradigm shift requiring us to think completely differently about how we design our applications, I like to think of cloud computing as establishing a new set of design requirements (a different context) that requires us to select a different set of patterns than we might have chosen in the past.&nbsp;</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">While the solution design may be different, the patterns you draw from and use in this new solution design have for the most part existed for a long time. For example,&nbsp; many of the patterns that you must now consider when designing a client application that interacts with remote Services provided by third parties with uncertain availability levels have being used for a long time when creating mobile applications where network connectivity could never be guaranteed.&nbsp;</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Two Audiences<o:p></o:p></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Usually it is about this point in any pattern presentation that I can break the room into two groups of people. Those that are rolling their eyes and claiming that patterns are academic and not useful to folks solving real problems where time is off the essence and the other folks claiming quite the opposite.&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Moving forward with this column on SEInsight I am going to attempt to serve both audiences - using this blog to discuss a number of topics relating to creation, evaluation and application of patterns.<o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">We&rsquo;ll cover patterns from two main perspectives. </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Concepts:</span></p>
<ul type="disc">
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Patterns vs. guidance.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Why is a pattern different from other guidance? <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Vision for patterns.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Who is this Christopher Alexander guy anyway and what was his vision for patterns and pattern languages <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Resources.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Resources on software patterns. <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Best Practices when writing patterns.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Hints for pattern authors <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Visual Notation.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> We&rsquo;ll cover a a visual notation for patterns and how it&rsquo;s useful<o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Pattern Combination.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Combining patterns together to solve systematic issues <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Reference Architectures.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> The role that reference architectures play prescribing combinations of patterns for specific scenarios<o:p></o:p></span></li>
</ul>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Application of patterns:<o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Draft patterns for feedback.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Myself and member of my team are going to start posting "draft" patterns for you to review and provide feedback <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Virtual Workshops.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> We are going to attempt to host some virtual pattern workshops for members of the field / public to participate in <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Pattern use in p&amp;p.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Talk about the role that patterns played in the p&amp;p software factories<o:p></o:p></span></li>
</ul>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Why is a pattern different from other forms of guidance?<o:p></o:p></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">For this first weeks post I am going to focus on the topic of why a pattern is different from other guidance. This seems extremely timely because there are a large number of books / white papers / guidance hitting the press most of which will confuse the concepts listed below - and leave you no better off when the next major paradigm shift occurs - and leave you feeling like you have to relearn everything you thought you already knew. <o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">When asked what a pattern is the standard answer you will get from a pattern geek is something along these lines: </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">&nbsp;&nbsp;&nbsp;&nbsp; <em>"A pattern is a proven solution to a problem, described in context"</em></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><em></em></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">As a one liner this is reasonable - but it doesn't really help you understand what the qualities of a pattern are that separate them from other forms of guidance - nor does it help you discern a good pattern from a bad pattern.&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span></b>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Considerations when Writing and Reviewing Patterns<o:p></o:p></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Here are a couple of considerations that I look for when writing or reviewing patterns.<o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Actual Solution. </span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">A pattern describes an actual solution to a problem - it isn't just an abstract principle <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Based on Proven experience.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> The solution is based on proven experience - ie it is something that has been tried, tested and refined over a number of solutions at a number of different organizations <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Platform Independent. </span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">The solution is described in a platform independent manner - ie independent of implementation - hence it is durable. This would allow the same logical solution to be considered regardless of what version of a platform you are running on, or potentially even what platform you are running on. <o:p></o:p></span>
<ul type="circle">
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Note that the pattern on its own may not be useful to many folks - which is why many pattern guides will have a separate piece of guidance demonstrating how to implement that pattern on a specific platform - thus increasing the relevance and applicability for that pattern. <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">patterns &amp; practices used to call these implementation patterns - I personally think a "How To" style of document is sufficient. <o:p></o:p></span></li>
</ul>
</li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Include Tradeoffs.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Patterns should include architectural tradeoffs that you must consider when selecting the pattern <o:p></o:p></span>
<ul type="circle">
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">The forces that steer you towards using the pattern or away from using the pattern <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Benefits and considerations that you must consider if you do apply the pattern <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 1.0in"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Relationships to other patterns that might be good substitutes or might well be used in addition to this pattern <o:p></o:p></span></li>
</ul>
</li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Atomic.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> Patterns are also typically atomic - following the Single Responsibility principle. If you see a pattern solving a number of problems it is usually a sign that the pattern should have been split into multiple patterns. <o:p></o:p></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'">Named.</span></b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN; mso-fareast-font-family: 'Times New Roman'"> And of course the pattern has a name, that if well thought out will establish a vocabulary for our industry.<o:p></o:p></span></li>
</ul>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Getting Feedback &ndash; &ldquo;WorkShopping&rdquo; Process<o:p></o:p></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Now there is one last and very important point that separates a pattern from any other content and that is the <i>work shopping </i>process that a pattern should go through before publication. In short a pattern workshop is a usability study whereby a pattern author must silently observe (as if behind a one way mirror) a group of peers walking through the draft of a pattern - listening as their peers attempt to reconcile the description of the pattern statement, the solution and associated tradeoffs against their own experience. </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span>&nbsp;</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Having been through this process a number of times it is amazing how you as an author might think you have captured the perfect pattern - something that is so elegant that it will surely have the same timeliness as famous patterns such as the Model View Controller pattern has - but as you observe your peers struggling to get past the introduction content you soon realize that many assumptions that you have made don't resonate with your peers. </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Learn More<o:p></o:p></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">If you are interested in learning more about running a <a href="http://hillside.net/component/content/article/65-how-to-run-plop/235-how-to-hold-a-writers-workshop">pattern writers workshop </a>or in reading more about what the <a href="http://hillside.net/component/content/article/50-patterns/222-design-pattern-definition">characteristics </a>of a good pattern are take a look at these invaluable resources from the <a href="http://hillside.net/">Hillside Group</a>. <o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Anyway - that&rsquo;s it for this week. As we progress I am also interested in linking out to patterns that you may be writing and generating discussion. Feel free to post links to your patterns on this blog or email me at jason.hogg(at)microsoft.com.</span><span lang="EN" style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><b><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Patterns Guides</span></b></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Here is a quick run down on some pattern guides which I refer to constantly. I have tried to provide a cross section of a number of domains so hopefully there is something for everyone in here. I haven't included links but let me know if you have problems finding any and I will post the links... </span></p>
<ul>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Design Patterns: Elements of Reusable Object-Oriented Software - The original...</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Patterns of Software Architecture&nbsp;- Volumes 1 - 5 - Focus in topics such as Architectural Patterns, Patterns for Concurrent Systems, Patterns for Resource Management and Patterns of Distributed Computing</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Enterprise Patterns by Fowler</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Integration Patterns by Hohpe</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Integration Patterns by Trowbridge</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">SOA Patterns</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Web Service Security Patterns by Hogg et al (couldn't resist)</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Designing Social Interfaces - Principles and Patterns</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Workflow Patterns</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Ajax Patterns</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">Design Patterns in Communications Software</span></div>
</li>
<li>
<div class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN">and the list goes on...</span></div>
</li>
</ul>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><span lang="EN" style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN"></span></p>]]></content:encoded>
    </item>
  </channel>
</rss>