<?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>Loosely Coupled Thinking</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jevdemon/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jevdemon/feed.xml</link>
    <description>Cloud Computing, SOA &amp;amp; other trendy stuff...</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:12:37 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Blog moved</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/blog-moved</link>
      <pubDate>Wed, 02 Jul 2014 14:45:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2014/07/02/blog-moved/</guid>
      <description><![CDATA[I'm finally starting to blog again but I've decided to move to a different platform.
My new blog is...]]></description>
      <content:encoded><![CDATA[<p>I'm <strong><em>finally </em></strong>starting to blog again but I've decided to move to a different platform.</p>
<p>My new blog is at <a href="http://looselycoupledthinking.com">http://looselycoupledthinking.com</a>&nbsp;and has two formats:</p>
<ul>
<li>A <a href="http://looselycoupledthinking.com/2014/05/13/#a1400008714">Noteblog</a></li>
<li>Traditional <a href="http://blog.looselycoupledthinking.com/">long-form blog</a></li>
</ul>
<p>Most of my Twitter posts are available on&nbsp;my&nbsp;<a href="http://radio2.evdemon.org/linkblog.html">Link Blog</a>.&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Quick braindump on apps, services and components</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/quick-braindump-on-apps-services-and-components</link>
      <pubDate>Tue, 11 Mar 2014 16:09:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2014/03/11/quick-braindump-on-apps-services-and-components/</guid>
      <description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="http://level343.com/article_archive/wp-content/uploads/Brain-Dump.jpg" alt="" /></p>
<p><span style="font-size: x-small;">&nbsp;<em>Also posted to my new "blog-in-progress" <a href="http://looselycoupledthinking.com/2014/03/11/quickBrainDumpOnAppsServicesAndComponents.html">here</a></em></span></p>
<p>Someone asked me for a quick email on apps, services and components. Feedback and flames welcome.</p>
<p>An app is a logical grouping of components and services to perform a business objective.&nbsp;</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logical because the components may not all be owned by or located within the organization that built the app</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; An app is built to change by swapping and versioning the services and components that make it up</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See below for suggested definitions of component and service</p>
<p>&nbsp;</p>
<p>Services are lightweight, loosely coupled black boxes of reusable functionality that are accessed via a standardized interface.</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Services are built to last</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Once deployed, a service's contract should not be changed &ndash; it is usually better to version a contract than completely replace it (especially if your service supports multiple consumers)</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Services are not necessarily web services &ndash; a web service is merely one way in which a service can be implemented</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Services can be composed into larger constructs referred to as Apps.&nbsp;</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fine-grained services result in greater reuse but may be more difficult to design</p>
<ul>
<li>Fine-grained services support a single, simple piece of functionality</li>
<li>Fine-grained services typically result from a bottom-up approach</li>
</ul>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Coarse-grained services typically support higher/more complex functionality &nbsp;&nbsp;</p>
<ul>
<li>Coarse-grained services are typically composed of two or more fine-grained services</li>
<li>Coarse -grained services typically result from a top-down approach</li>
</ul>
<p>&nbsp;</p>
<p>Components are similar to services are more tightly coupled to a specific platform or technology in terms of their implementation.</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components are typically built to last but may expose parameters or configurations that affect its behavior</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components have very specific requirements for usage &ndash; typically in the form of libraries, dlls or databases (e.g. stored procedures)</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components may yield better performance or throughput due to their tightly coupled nature</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Versioning components tends to be more difficult due to their tightly coupled nature</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Like services, components can be fine-grained or coarse-grained</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components can be combined with services into larger constructs referred to as Apps</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>What is Modern Architecture?</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/what-is-modern-architecture</link>
      <pubDate>Fri, 14 Feb 2014 09:27:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2014/02/14/what-is-modern-architecture/</guid>
      <description><![CDATA[Note: I'm in the process of moving to an awesome new blogging platform by the insanely great Dave...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/33/32/1616.ma_64[1].jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-33-32/1616.ma_5F00_64_5B00_1_5D00_.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/33/32/1616.ma_64[1].jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-33-32/1616.ma_5F00_64_5B00_1_5D00_.jpg" alt="" border="0" /></a></p>
<p><em><strong>Note:</strong></em> <em>I'm in the process of moving to an <a href="http://scripting.com/2014/02/09/whyFargo2TechnologyIsExciting.html">awesome new blogging platform</a> by the insanely great <a href="http://davewiner.com/">Dave Winer</a>. If you blog I highly encourage you to look into <a href="http://fargo.io/">Fargo</a>.&nbsp; My new blog can be found at <a href="http://looselycoupledthinking.com">http://looselycoupledthinking.com</a>. </em></p>
<p>I'm hearing the term "modern architecture" used quite a bit but haven't seen much clarification about what it actually means.&nbsp; Here are some principles and capabilities that I would expect to see in "modern architecture":</p>
<ol>
<li>Cloud first</li>
<li>Loosely coupled, distributed services</li>
<li>Support Postel's Law</li>
<li>Distributed storage and caching</li>
<li>Weak/Eventual Consistency (CAP) - committed reads</li>
<li>REST APIs where appropriate</li>
<li>Scale out, not up</li>
<li>Stateless</li>
<li>No apparent downtime</li>
<li>No biz logic in sprocs (prefer no sprocs at all)</li>
<li>No ref integrity in db - enforce in service/app if needed</li>
<li>No distributed txns</li>
<li>Simple data abstractions for data access</li>
<li>Multiple service versions in production&nbsp;</li>
<li>Active-active failovers across DCs where appropriate</li>
<li>No singletons, at least 4 instances of a service running in prod (2 per DC)</li>
<li>Consistent approach to monitoring/logging/SLE threshold compliance&bull;</li>
<li>Real-time access to service health/activity</li>
<li>Design for/expect failure - degrade gracefully</li>
<li>Test in production</li>
<li>No reporting from txn data - keep OLTP and OLAP separate</li>
<li>Asynchronous user experiences (no blocking)</li>
<li>Avoid designing for a single device or form factor (user-scalable=0 is evil)</li>
</ol>
<p>I'll plan to drill into more detail on several of these topics over the next couple of posts.</p>
<p>What do you think is missing from this list?&nbsp; What shouldn't be in this list?</p>
<p>&nbsp;<strong><em>Updates:</em></strong></p>
<ul>
<li><a href="http://www.kavistechnology.com/blog/">Mike Kavis</a> suggested via FB that "Modern solutions have a combo of SQL, nosql, cache, CDN, and many other data and storage technologies under the hood".&nbsp; I'd interpret this as: <strong>Data stores should be abstracted without regard to where/how they should be accessed.&nbsp;</strong>&nbsp;The abstraction hands off to a more granular access component/service with specific awareness to location/access requirements/etc.</li>
</ul>
<p>BTW I'm currently reading <a href="http://www.amazon.com/Architecting-Cloud-Decisions-Computing-Service/dp/1118617614/ref=tmm_hrd_title_0?ie=UTF8&amp;qid=1392426691&amp;sr=8-1-spell">Mike's new book</a>.&nbsp; I'm liking what I've read thus far - I'll post a full review when I've finally finished it.&nbsp;&nbsp;&nbsp;&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Durability vs. Reliability</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/durability-vs-reliability</link>
      <pubDate>Wed, 29 May 2013 18:49:45 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2013/05/29/durability-vs-reliability/</guid>
      <description><![CDATA[Many people tend to either confuse these concepts or assume they are the same.&#160; This is a quick...]]></description>
      <content:encoded><![CDATA[<p>Many people tend to either confuse these concepts or assume they are the same.&#160; This is a quick write up to clarify that these are two fundamentally different yet critical concepts.</p>  <p>Message reliability focuses on the <strong><em>delivery </em></strong>of messages. Message reliability means a message needs to be delivered at least once with possible duplicates or at most once with no duplicates.&#160; Reliability also dictates whether messages must be delivered in the same order they were sent or can be delivered out of order. </p>  <p>Message durability focuses on the <strong><em>management </em></strong>of messages.&#160; Message durability dictates whether a message can be simply kept in-memory or if it must be saved to persisted storage to avoid message loss (in-memory messages are lost during system, network or power failures).&#160; Durable messaging also enables operations to resolve issues in an much easier manner than relying solely upon reliable messaging.&#160; When a durable messaging solution experiences an exception or outage it is much easier to determine the state of the transactions and restore/replay messages from a known state without losing any messages. </p>  <p>Now you know.</p>  <p align="center"><img src="http://4.bp.blogspot.com/-PYhrzREL3-0/TfkWAGmMZ6I/AAAAAAAAMUc/ySW5olR-AKc/s1600/and%2Bnow%2Byou%2Bknow.jpg">&#160;</img></p>]]></content:encoded>
    </item>
    <item>
      <title>Standardizing the Internet of Things</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/standardizing-the-internet-of-things</link>
      <pubDate>Sat, 27 Apr 2013 10:00:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2013/04/27/standardizing-the-internet-of-things/</guid>
      <description><![CDATA[Sorry about the lack of embedded links below - I blogged this on a tablet from notepad. Can anyone...]]></description>
      <content:encoded><![CDATA[<center><img src="http://mob234.photobucket.com/albums/ee260/DeLayneJack/Addams-Family-tv-06.jpg" alt="" /></center>
<p>Sorry about the lack of embedded links below - I blogged this on a tablet from notepad. Can anyone recommend a good mobile blogging app?</p>
<p>I spent a few minutes this morning reviewing the OASIS MQTT spec (see <a title="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt" href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt">https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt</a> ). MQTT hopes to become the standard for communication on the "Internet of things". (I use the term "Internet" instead of "web" here because it uses ip, not http. ) Given the long legacy of proprietary sensor networks (medical devices, vendor managed inventory sensors, RFID scanners, etc) it's good to see some effort to standardize things and make it easier for multi-deviceintegration. The spec itself is pub/sub based (thank goodness). There isn't any concept of XML or REST here - devices are typically very lightweight with limited resources (think bits over ip). MQTT could be "REST-like" in terms of identifying/requesting resources (not via URIs apparently). The qos semantics are fairly straightforward but the spec doesn't provide any guidance on ensuring an implementation is aligned with semantics (out of scope, apparently). Message durability doesn't seem to be addressed. It's early though and these areas might be addressed as the TC evolves the spec. Regardless of how things turn out it's still good to see standards emerge in this space.</p>
<p>Related: Phil Windley (<a href="http://www.windley.com/">http://www.windley.com/</a>) is doing some interesting stuff on his Kynetx platform (<a href="http://www.kynetx.com">http://www.kynetx.com</a>) related to the "Internet of things" - check out SquareTag (<a href="https://squaretag.com/">https://squaretag.com/</a> ). SquareTag obviously isn't MQTT (uses QR Codes) but it does enable the "Internet of things" concept in a highly relatable and useful way.</p>
<p>Update: just learned of an open source implementation of MQTT called <a href="http://mosquitto.org">Mosquitto</a></p>]]></content:encoded>
    </item>
    <item>
      <title>BUSted! A quick comparison of Azure Service Bus and Service Bus for Windows Server</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/busted-a-quick-comparison-of-azure-service-bus-and-service-bus-for-windows-server</link>
      <pubDate>Wed, 24 Apr 2013 18:22:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2013/04/24/busted-a-quick-comparison-of-azure-service-bus-and-service-bus-for-windows-server/</guid>
      <description><![CDATA[&nbsp;
A while ago I was asked to do a simple comparison between Service Bus for Windows Server...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>A while ago I was asked to do a simple comparison between <a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx">Service Bus for Windows Server</a> (SBWS) and <a href="http://msdn.microsoft.com/en-us/library/ee732537.aspx">Azure Service Bus</a> (ASB) so I thought I&rsquo;d share this with you all.&nbsp;&nbsp; Most of this stuff is probably obvious.&nbsp; A more detailed comparison is <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx">available here</a> and is well worth a read.</p>
<p>Installation and support<img style="margin: 6px; float: right; display: inline;" src="http://www.schoolbusdriver.org/pimp_school_bus~0.jpg" alt="" width="294" height="181" align="right" /></p>
<ul>
<li>ASB: Since ASB is a cloud-based service there is no software to install and support is provided by Microsoft. OS and application patching and updating is also handled by Microsoft. Storage is provided by and managed by Microsoft. Backups and business continuity of ASB itself is managed by Microsoft.</li>
<li>SBWS: SBWS runs on-premises and must be installed and configured on a Server 2013 or Server 2008 R2 machine (you can also install it on Win7 or Win8 for individual developer usage). SQL Server 2012 or 2008 is also required (Enterprise or Express versions). OS and application patching and updating must be handled by a local support team. Storage is provided by SQL Server and must be managed by a local support team. Backups and business continuity must be managed by a local support team.</li>
</ul>
<p>Message Relays</p>
<ul>
<li>ASB: ASB&rsquo;s relay service supports direct one-way messaging, request/response messaging, and peer-to-peer messaging.</li>
<li>SBWS: At the time of this writing SBWS did not support relayed messaging.</li>
</ul>
<p>Security</p>
<ul>
<li>ASB: Solutions deployed in Azure using ASB can make use of Azure&rsquo;s security token service known as ACS (<a href="http://msdn.microsoft.com/en-us/library/hh147631.aspx">Access Control Service</a>). ACS is a cloud-based authentication and authorization service that integrates with standards-based identity providers such as enterprise Active Directory, and web identities like Windows Live ID, Google, Yahoo!, and Facebook.</li>
<li>SBWS: Solutions deployed on-premises using SBWS can make use of the <a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193003(v=azure.10).aspx">Service</a>&nbsp;<a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193003(v=azure.10).aspx">Bus Security Token Service (SBSTS)</a> which is fully integrated with the Windows security model. SBSTS can issue self-signed Simple Web Tokens (SWTs) using Windows identities.</li>
</ul>
<p>Quotas/runtime settings</p>
<ul>
<li>ASB: Options regarding message and queue sizes are fixed due to the multi-tenant nature of ASB.&nbsp; ASB Queue/Topic sizes can be up to 5 GB.&nbsp; Messages can be up to 256K.&nbsp; <a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee732538.aspx">See here</a> for specifics on ASB quotas.</li>
<li>SBWS: SBWS provides much greater freedom for configuring runtime settings and message and queue sizes.&nbsp;&nbsp;&nbsp;SBWS Queue/Topic sizes can be up to&nbsp;10 GB.&nbsp; Messages can be up to&nbsp;50MB.&nbsp; &nbsp; <a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193026(v=azure.10).aspx">See here</a> for specifics on SBWS quotas.</li>
</ul>
<p>Network latency</p>
<ul>
<li>ASB: Network and security latencies may impact performance, especially when moving messages from on-premises to cloud or cloud to on-premises. Throughput could also be impacted by unexpected spikes in unrelated internet traffic.</li>
<li>SBWS: Administrators have much more control over their own network&rsquo;s traffic and routing, thereby enabling more efficient bandwidth usage and throughput.</li>
</ul>
<p>Addressing schemas</p>
<ul>
<li>ASB: ASB Namespaces are fixed &ndash; all endpoints have a Service Bus postfix added to the URL to ensure uniqueness.</li>
<li>SBWS: SBWS uses fully qualified domain names (FQDN) or a mapped DNS entry to represent service namespaces.</li>
</ul>
<p>Instances</p>
<ul>
<li>ASB: In ASB there is only one "instance" of the service available and it is managed by Microsoft.</li>
<li>SBWS: With SBWS it is possible to have several on-premises SBWS servers via self-hosted servers or third-party providers.</li>
</ul>
<p><img style="margin-right: auto; margin-left: auto; float: none; display: block;" src="http://2.bp.blogspot.com/-iTS8a7p5ngw/T9Cg44FJ_-I/AAAAAAAA71Q/YMsRW17VQY4/s1600/Magic-School-Bus-Photos.jpg" alt="" width="206" height="145" /></p>]]></content:encoded>
    </item>
    <item>
      <title>Are Cloud Taxonomies Simple or Complex?</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/are-cloud-taxonomies-simple-or-complex</link>
      <pubDate>Fri, 30 Nov 2012 09:11:46 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2012/11/30/are-cloud-taxonomies-simple-or-complex/</guid>
      <description><![CDATA[Much has been written about the different types of cloud taxonomies.&#160; In some ways it reminds...]]></description>
      <content:encoded><![CDATA[<p><font size="2">Much has been written about the different types of cloud taxonomies.&#160; In some ways it reminds me of the SOA confusion from 5-8 years ago where everyone was trying to label something as being “SOA” and “not SOA”.&#160; As an architect I favor simplicity – this includes cloud taxonomies.&#160; Thus, I view cloud taxonomies as follows:</font></p>  <p><font size="2">Cloud taxonomies consist of a <strong>Service model</strong> and a <strong>Hosting Model</strong>.</font></p>  <ul>   <li><font size="2">Service model - There are three service models: SAAS, IAAS and PAAS.&#160; </font></li>    <ul>     <li><font size="2">Everything else is a scenario that falls into one of these three models (e.g. *AAS)</font></li>   </ul>    <li><font size="2">Hosting model - There are two hosting models: Public and Private.</font></li>    <ul>     <li><font size="2">Virtualization is an implementation choice within one of these models.</font></li>   </ul> </ul>  <p><font size="2">Your feedback and flames are welcome…</font></p>  <p><img style="margin-right: auto; margin-left: auto; float: none; display: block;" src="http://www.gamasutra.com/db_area/images/news2001/29676/question_mark_cloud_road.gif" width="259" height="259" /></p>]]></content:encoded>
    </item>
    <item>
      <title>UX is not UI</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/ux-is-not-ui</link>
      <pubDate>Tue, 13 Nov 2012 09:13:37 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2012/11/13/ux-is-not-ui/</guid>
      <description><![CDATA[Many people seem to confuse UX (User Experience) with UI (User Interface).&#160; These are very...]]></description>
      <content:encoded><![CDATA[<p>Many people seem to confuse UX (User Experience) with UI (User Interface).&#160; These are very different things and confusing the two are likely to result in unhappy users.&#160; </p>  <p>Many people who “design UX” seem to spend the bulk of their time focusing on the screen layout, controls and behavior of various elements on the screen. Many weeks can be spent conducting user studies, analyzing feedback and reviewing various fonts and color schemes in an attempt to provide the most aesthetically pleasing user experience.&#160; These are important things to focus on but something obvious usually goes missing – <strong><em>what about the data</em></strong>?&#160; Where is the data coming from?&#160; How must the data be transformed or manipulated prior to displaying it to the user?&#160; These critical questions are frequently an afterthought as design engineers focus instead upon the look and feel of a given screen.&#160; Focusing on the look, layout and behavior of individual controls on the screen is UI, not UX.&#160; UX should require that designers consider potential latencies due to data retrieval, security and other background processes that impact the overall performance of the user experience.&#160; A beautifully designed screen that performs poorly always results in a poor user experience.&#160; </p>  <p>So how should one design a great UX?&#160; I’m not a UX expert but I’d suggest you start by understanding the data that the screen is to display or work with.&#160; List all of the fields or data elements that the screen must display or accept from the user.&#160; Try to answer the following questions:</p>  <ul>   <li>Where is the data coming from?</li>    <li>How long will it take to retrieve the data to display to the user?</li>    <li>What relationships (if any) are inherent in the data to be displayed or processed?</li>    <li>Is the data in a format that is presentable to the user or must it be transformed?</li>    <li>For data entry try to invoke the validation rules as close as possible the actual data entry experience</li>    <li>Is it possible to retrieve the data proactively via a background process? </li>    <li>How can we “distract” the user while their data is being retrieved/transformed/validated or otherwise processed?</li> </ul>  <p>Avoid blocking, especially if the data must be retrieved or processed by a slow/remote network location or an underperforming back end system.&#160; Users have become accustomed to asynchronous experiences - blocking users with an hourglass, spinner or some other form of “dancing monkey” is insufficient.&#160; </p>  <p>Design engineers should work closely with architects or developers to become intimately familiar with the data and its associated service level expectations (SLEs).&#160; Understanding data behaviors can help design engineers avoid designing a Ferrari that performs like a Yugo.</p>  <p>&#160;</p>  <p><img title="" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="A simple UX from a simpler time..." src="http://www.ibm.com/developerworks/websphere/techjournal/1109_col_barosa/images/image002.jpg" /></p>]]></content:encoded>
    </item>
    <item>
      <title>Meeting Mindset</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/meeting-mindset</link>
      <pubDate>Fri, 12 Oct 2012 16:04:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2012/10/12/meeting-mindset/</guid>
      <description><![CDATA[This was ingrained into me years ago when I did strategy consulting.&nbsp; I still find it...]]></description>
      <content:encoded><![CDATA[<p>This was ingrained into me years ago when I did strategy consulting.&nbsp; I still find it useful.</p>
<p>Calling a meeting:</p>
<ul>
<li>Always specify three things in the invite:</li>
<ul>
<li>Objective</li>
<li>Agenda (ideally timeboxing each agenda item)</li>
<ul>
<li>Last agenda item is always summing up/next steps</li>
</ul>
<li>Expected Outcomes</li>
</ul>
<ul><!--StartFragment--></ul>
<li>Failure to include these items means:</li>
<ul>
<li>people you invite should consider themselves optional attendees</li>
<li>you cannot hold people accountable that choose to skip your meeting</li>
</ul>
<li>Being an optional attendee to any meeting means you can skip it</li>
<li>Always ask invitees to suggest an alternate date/time if they cannot attend</li>
<li>If an invitee rejects your invite without suggesting an alternate date/time they are not interested in attending and will reject future invitations, even if you reschedule the meeting</li>
<li>All this stuff makes calling a meeting difficult &ndash; forcing you to think about whether you really need it</li>
</ul>
<p>Showing Up:</p>
<ul>
<li>Early is On Time</li>
<li>On Time is Late</li>
<li>Late is Unacceptable</li>
<ul>
<li>My employer used to lock the meeting room door when the meeting started. Late attendees would have to knock to gain entry (and were usually ignored)</li>
</ul>
</ul>
<p>Leaving the meeting:</p>
<ul>
<li>If the meeting starts running over attendees can get up and leave, regardless of what&rsquo;s happening in the meeting</li>
<li>Keep your laptop closed unless you&rsquo;re using it to take notes or doing something related to the meeting</li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Windows 8 Shortcut Keys</title>
      <link>https://docs.microsoft.com/archive/blogs/jevdemon/windows-8-shortcut-keys</link>
      <pubDate>Wed, 19 Sep 2012 16:00:00 GMT</pubDate>
      <dc:creator><![CDATA[John_Evdemon]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jevdemon/2012/09/19/windows-8-shortcut-keys/</guid>
      <description><![CDATA[Haven’t seen this posted anywhere just yet so I thought I’d park it here.&#160;   Enjoy.     Windows...]]></description>
      <content:encoded><![CDATA[<p>Haven’t seen this posted anywhere just yet so I thought I’d park it here.&#160; </p>  <p>Enjoy.</p>  <blockquote>   <p>Windows logo key+spacebar Switch input language and keyboard layout     <br />Windows logo key+O Locks device orientation      <br />Windows logo key+Y Temporarily peeks at the desktop      <br />Windows logo key+V Cycles through toasts      <br />Windows logo key+Shift+V Cycles through toasts in reverse order      <br />Windows logo key+Enter Launches Narrator      <br />Windows logo key+PgUp Moves Metro style apps to the monitor on the left      <br />Windows logo key+PgDown Moves Metro style apps to the monitor on the right      <br />Windows logo key+Shift+. Moves the gutter to the left (snaps an application)      <br />Windows logo key+. Moves the gutter to the right (snaps an application)      <br />Windows logo key+C Opens Charms bar      <br />Windows logo key+I Opens Settings charm      <br />Windows logo key+K Opens Connect charm      <br />Windows logo key+H Opens Share charm      <br />Windows logo key+Q Opens Search pane      <br />Windows logo key+W Opens Settings Search app      <br />Windows logo key+F Opens File Search app      <br />Windows logo key+Tab Cycles through Metro style apps      <br />Windows logo key+Shift+Tab Cycles through Metro style apps in reverse order      <br />Windows logo key+Ctrl+Tab Cycles through Metro style apps and snaps them as they are cycled      <br />Windows logo key+Z Opens App Bar</p></blockquote>]]></content:encoded>
    </item>
  </channel>
</rss>