<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>"Assembly Required"</title>
    <link>http://www.sysknowlogy.com/</link>
    <description>Software Development Blog</description>
    <language>en-us</language>
    <copyright>Shannon Braun</copyright>
    <lastBuildDate>Wed, 11 Jul 2012 16:50:41 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>shannon@conceptbench.com</managingEditor>
    <webMaster>shannon@conceptbench.com</webMaster>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=3ea6b451-f05d-4099-a98a-41d02bf30ac9</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,3ea6b451-f05d-4099-a98a-41d02bf30ac9.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,3ea6b451-f05d-4099-a98a-41d02bf30ac9.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3ea6b451-f05d-4099-a98a-41d02bf30ac9</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
How fast should my view load?  
</p>
        <p>
How long is acceptable for logging  into an application? 
</p>
        <p>
When you set out to build an application, it is important to get an idea of how quickly
users expect certain tasks to happen in the application. Before we can do that we
need an understanding of how to dissect UI performance so that we can focus our efforts
on the appropriate part of the application. 
</p>
        <p>
When defining UI performance, it is easier if you look at the performance in three
different ways.  Actual Duration, Perceived Duration, and Tolerance. 
</p>
        <h2>Actual Duration
</h2>
        <p>
Actual Duration is the time it takes between the user’s interaction (clicking a button,
pressing a key) with the application and when the user can consume or interact with
the result. This is the typical performance metrics we gather, for example timing
how long it takes to navigate to a view or populate a list box. 
</p>
        <h2>Perceived Duration
</h2>
        <p>
A view may take 10 seconds to load, but factors may cause that be over or underestimated,
so perceived duration cannot be assumed to be veridical. We get this all of the time
when getting performance reports from a user. You often hear “this app runs too slow”,
“when I click here it takes forever to load”. What actually happens is that action
may take 10 seconds, user perceives it to be around 8 seconds, but he/she is really
willing to tolerate 5 seconds. Typically perceived duration is not accurate, but if
enough users identify the same actions as slow, Perceived Duration can be used to
identify perceived performance hot spots. Keep in mind, these should always be verified
using actual duration before actually setting out to improve the performance. 
</p>
        <h2>Tolerance
</h2>
        <p>
Tolerance applies to how long a user is willing to wait between the moment the user’s
explicit action and the moment information becomes consumable or selectable for the
user. Tolerance is very important as it will help you target the areas of the application
that need the most attention concerning performance during design and development.
Another thing to take in account with Tolerance is the type of user your application
needs to support. A typical user has lower expectations then power users. If your
app is targeted at advanced users, they will expect more.
</p>
        <p>
When determining classifications for tolerance thresholds, the following can be used
for threshold definitions: 
</p>
        <p>
Instantaneous (100 to 200 ms)<br />
Immediate (500 ms to 2 sec)<br />
Continuous (2 to 5 sec)<br />
Captive (6 to 10 sec)
</p>
        <p>
Take these thresholds and map to specific areas in the system based on what a user
would expect. The list I have devised below is a common list of tasks with their expected
performance tolerance. It is not a comprehensive list, but should give an idea of
how the thresholds map to tasks and what their expected performance goal typically
is for most applications. You can extend the list by adding domain specific tasks
with matching performance goals.
</p>
        <p>
 
</p>
        <p>
          <table border="0" cellspacing="0" cellpadding="0">
            <tbody>
              <tr>
                <td valign="top" width="298">
                  <p>
                    <b>Tasks</b>
                    <b>
                    </b>
                  </p>
                </td>
                <td valign="top" width="10">
                  <p>
                    <b>Tolerance</b>
                    <b>
                    </b>
                  </p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
                    <b>Application</b>
                    <b>
                    </b>
                  </p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
 
</p>
                </td>
              </tr>
              <tr>
                <td width="298">
                  <p align="left">
Application Startup time
</p>
                </td>
                <td width="10">
                  <p align="left">
Captive
</p>
                </td>
              </tr>
              <tr>
                <td width="298">
                  <p align="left">
Application Login
</p>
                </td>
                <td width="10">
                  <p align="left">
Continuous
</p>
                </td>
              </tr>
              <tr>
                <td width="298">
                  <p align="left">
 
</p>
                </td>
                <td width="10">
                  <p align="left">
 
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
                    <b>Module / Feature</b>
                    <b>
                    </b>
                  </p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
 
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Navigation Time from View to View
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Immediate
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Search
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Continuous
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Response Time for Common Business Scenarios
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Continuous
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Response Time for Complex Business Scenarios
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Captive
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Displaying of Dialogs
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Immediate
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
 </td>
                <td valign="top" width="10">
 </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
                    <b>Controls</b>
                    <b>
                    </b>
                  </p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
                    <b>
                    </b>
                  </p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Showing of Dropdowns 
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Instantaneous
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Selecting of items in Dropdowns
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Instantaneous
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Changing between tabs
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Immediate
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Checking of checkboxes
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Instantaneous
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Opening of Expanders
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Immediate
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Populating of Listboxes
</p>
                </td>
                <td valign="top" width="10">
                  <p align="left">
Immediate
</p>
                </td>
              </tr>
              <tr>
                <td valign="top" width="298">
                  <p align="left">
Selecting of items from dialogs
</p>
                </td>
                <td valign="top" width="10">
                  <p>
Immediate
</p>
                </td>
              </tr>
            </tbody>
          </table>
        </p>
        <p>
Often the list above is collaboration between the business and technical team. When
working with users I try to explain to them that all tasks cannot be classified as
Immediate. In some situations it is not technically possible to get an immediate response.
However, by classifying tasks in the application you can set expectations with the
business and get an accurate picture of what areas of application are important to
the user from a performance perspective. Sometimes this process involves some investigation
to find out if certain business tasks can be performed in the time the business expects.
If they can’t there are a number of things that you can do to improve the perceived
performance (caching, asynchronous calls, hour glass or status dialog). 
</p>
        <p>
Some of the things that I do to guide the user when working with them to map tolerance
to application tasks are as follows: 
</p>
        <p>
· Remind them that improving performance to the Instantaneous level can be expensive,
so we need to make sure that we identify areas that make the most sense. 
</p>
        <p>
· Areas that are not used a lot should not be core focus for performance improvement
initially. 
</p>
        <p>
· The use of perceived performance can be useful to make the user feel like the application
is responsive. A hourglass or status dialog is a cheap way to improve perceived performance
to an acceptable level. 
</p>
        <p>
By taking the time up front to define UI Performance Goals you can use the findings
to help focus development efforts and spend the time improving performance where it
is needed most.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=3ea6b451-f05d-4099-a98a-41d02bf30ac9" />
      </body>
      <title>Defining UI Performance Goals</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,3ea6b451-f05d-4099-a98a-41d02bf30ac9.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/07/11/DefiningUIPerformanceGoals.aspx</link>
      <pubDate>Wed, 11 Jul 2012 16:50:41 GMT</pubDate>
      <description>&lt;p&gt;
How fast should my view load?&amp;nbsp; 
&lt;p&gt;
How long is acceptable for logging&amp;nbsp; into an application? 
&lt;p&gt;
When you set out to build an application, it is important to get an idea of how quickly
users expect certain tasks to happen in the application. Before we can do that we
need an understanding of how to dissect UI performance so that we can focus our efforts
on the appropriate part of the application. 
&lt;p&gt;
When defining UI performance, it is easier if you look at the performance in three
different ways.&amp;nbsp; Actual Duration, Perceived Duration, and Tolerance. 
&lt;h2&gt;Actual Duration
&lt;/h2&gt;
&lt;p&gt;
Actual Duration is the time it takes between the user’s interaction (clicking a button,
pressing a key) with the application and when the user can consume or interact with
the result. This is the typical performance metrics we gather, for example timing
how long it takes to navigate to a view or populate a list box. 
&lt;h2&gt;Perceived Duration
&lt;/h2&gt;
&lt;p&gt;
A view may take 10 seconds to load, but factors may cause that be over or underestimated,
so perceived duration cannot be assumed to be veridical. We get this all of the time
when getting performance reports from a user. You often hear “this app runs too slow”,
“when I click here it takes forever to load”. What actually happens is that action
may take 10 seconds, user perceives it to be around 8 seconds, but he/she is really
willing to tolerate 5 seconds. Typically perceived duration is not accurate, but if
enough users identify the same actions as slow, Perceived Duration can be used to
identify perceived performance hot spots. Keep in mind, these should always be verified
using actual duration before actually setting out to improve the performance. 
&lt;h2&gt;Tolerance
&lt;/h2&gt;
&lt;p&gt;
Tolerance applies to how long a user is willing to wait between the moment the user’s
explicit action and the moment information becomes consumable or selectable for the
user. Tolerance is very important as it will help you target the areas of the application
that need the most attention concerning performance during design and development.
Another thing to take in account with Tolerance is the type of user your application
needs to support. A typical user has lower expectations then power users. If your
app is targeted at advanced users, they will expect more.
&lt;/p&gt;
&lt;p&gt;
When determining classifications for tolerance thresholds, the following can be used
for threshold definitions: 
&lt;p&gt;
Instantaneous (100 to 200 ms)&lt;br&gt;
Immediate (500 ms to 2 sec)&lt;br&gt;
Continuous (2 to 5 sec)&lt;br&gt;
Captive (6 to 10 sec)
&lt;/p&gt;
&lt;p&gt;
Take these thresholds and map to specific areas in the system based on what a user
would expect. The list I have devised below is a common list of tasks with their expected
performance tolerance. It is not a comprehensive list, but should give an idea of
how the thresholds map to tasks and what their expected performance goal typically
is for most applications. You can extend the list by adding domain specific tasks
with matching performance goals.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;table border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p&gt;
&lt;b&gt;Tasks&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p&gt;
&lt;b&gt;Tolerance&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
&lt;b&gt;Application&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="298"&gt;
&lt;p align="left"&gt;
Application Startup time
&lt;/p&gt;
&lt;/td&gt;
&lt;td width="10"&gt;
&lt;p align="left"&gt;
Captive
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="298"&gt;
&lt;p align="left"&gt;
Application Login
&lt;/p&gt;
&lt;/td&gt;
&lt;td width="10"&gt;
&lt;p align="left"&gt;
Continuous
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="298"&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;td width="10"&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
&lt;b&gt;Module / Feature&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Navigation Time from View to View
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Immediate
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Search
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Continuous
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Response Time for Common Business Scenarios
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Continuous
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Response Time for Complex Business Scenarios
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Captive
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Displaying of Dialogs
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Immediate
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&amp;nbsp;&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
&lt;b&gt;Controls&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Showing of Dropdowns 
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Instantaneous
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Selecting of items in Dropdowns
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Instantaneous
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Changing between tabs
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Immediate
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Checking of checkboxes
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Instantaneous
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Opening of Expanders
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Immediate
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Populating of Listboxes
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p align="left"&gt;
Immediate
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="298"&gt;
&lt;p align="left"&gt;
Selecting of items from dialogs
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="10"&gt;
&lt;p&gt;
Immediate
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;
Often the list above is collaboration between the business and technical team. When
working with users I try to explain to them that all tasks cannot be classified as
Immediate. In some situations it is not technically possible to get an immediate response.
However, by classifying tasks in the application you can set expectations with the
business and get an accurate picture of what areas of application are important to
the user from a performance perspective. Sometimes this process involves some investigation
to find out if certain business tasks can be performed in the time the business expects.
If they can’t there are a number of things that you can do to improve the perceived
performance (caching, asynchronous calls, hour glass or status dialog). 
&lt;p&gt;
Some of the things that I do to guide the user when working with them to map tolerance
to application tasks are as follows: 
&lt;p&gt;
· Remind them that improving performance to the Instantaneous level can be expensive,
so we need to make sure that we identify areas that make the most sense. 
&lt;p&gt;
· Areas that are not used a lot should not be core focus for performance improvement
initially. 
&lt;p&gt;
· The use of perceived performance can be useful to make the user feel like the application
is responsive. A hourglass or status dialog is a cheap way to improve perceived performance
to an acceptable level. 
&lt;p&gt;
By taking the time up front to define UI Performance Goals you can use the findings
to help focus development efforts and spend the time improving performance where it
is needed most.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=3ea6b451-f05d-4099-a98a-41d02bf30ac9" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,3ea6b451-f05d-4099-a98a-41d02bf30ac9.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=fb3f563f-feaf-4b55-af18-2ecf4253dd92</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,fb3f563f-feaf-4b55-af18-2ecf4253dd92.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,fb3f563f-feaf-4b55-af18-2ecf4253dd92.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fb3f563f-feaf-4b55-af18-2ecf4253dd92</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A friend of mine, <a href="http://scottkdavis.com/">Scott Davis</a> has started a
gaming company with a couple of other folks.  The game is <a href="http://qonqr.com/">Qonqr</a>,
check them out, they are on <a href="http://www.kickstarter.com/projects/qonqr/qonqr-world-domination-command-center-game-expansi?utm_source=sd&amp;utm_medium=email&amp;utm_campaign=kickstarter">KickStarter</a>.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=fb3f563f-feaf-4b55-af18-2ecf4253dd92" />
      </body>
      <title>Qonqr is on KickStarter</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,fb3f563f-feaf-4b55-af18-2ecf4253dd92.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/07/11/QonqrIsOnKickStarter.aspx</link>
      <pubDate>Wed, 11 Jul 2012 16:33:48 GMT</pubDate>
      <description>&lt;p&gt;
A friend of mine, &lt;a href="http://scottkdavis.com/"&gt;Scott Davis&lt;/a&gt; has started a
gaming company with a couple of other folks.&amp;nbsp; The game is &lt;a href="http://qonqr.com/"&gt;Qonqr&lt;/a&gt;,
check them out, they are on &lt;a href="http://www.kickstarter.com/projects/qonqr/qonqr-world-domination-command-center-game-expansi?utm_source=sd&amp;amp;utm_medium=email&amp;amp;utm_campaign=kickstarter"&gt;KickStarter&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=fb3f563f-feaf-4b55-af18-2ecf4253dd92" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,fb3f563f-feaf-4b55-af18-2ecf4253dd92.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=2675f01b-9ede-471f-9f5d-de71434bbc23</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,2675f01b-9ede-471f-9f5d-de71434bbc23.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,2675f01b-9ede-471f-9f5d-de71434bbc23.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2675f01b-9ede-471f-9f5d-de71434bbc23</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Looking for some nice Metro style icons that are customizable and free to use. 
Check out <a href="http://www.syncfusion.com/downloads/metrostudio">MetroStudio</a>. 
They supply an app that allows you to customize the icons to the color scheme you
want in addition to the size you need.  They will also supply the xaml source
if you need it.
</p>
        <p>
          <a href="http://www.sysknowlogy.com/content/binary/Windows-Live-Writer/Metro-Style-Icons_13B34/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.sysknowlogy.com/content/binary/Windows-Live-Writer/Metro-Style-Icons_13B34/image_thumb.png" width="244" height="136" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=2675f01b-9ede-471f-9f5d-de71434bbc23" />
      </body>
      <title>Metro Style Icons</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,2675f01b-9ede-471f-9f5d-de71434bbc23.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/07/09/MetroStyleIcons.aspx</link>
      <pubDate>Mon, 09 Jul 2012 03:26:54 GMT</pubDate>
      <description>&lt;p&gt;
Looking for some nice Metro style icons that are customizable and free to use.&amp;nbsp;
Check out &lt;a href="http://www.syncfusion.com/downloads/metrostudio"&gt;MetroStudio&lt;/a&gt;.&amp;nbsp;
They supply an app that allows you to customize the icons to the color scheme you
want in addition to the size you need.&amp;nbsp; They will also supply the xaml source
if you need it.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.sysknowlogy.com/content/binary/Windows-Live-Writer/Metro-Style-Icons_13B34/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.sysknowlogy.com/content/binary/Windows-Live-Writer/Metro-Style-Icons_13B34/image_thumb.png" width="244" height="136"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=2675f01b-9ede-471f-9f5d-de71434bbc23" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,2675f01b-9ede-471f-9f5d-de71434bbc23.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=602a2854-4f9c-44ee-aca7-88015a34ae50</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,602a2854-4f9c-44ee-aca7-88015a34ae50.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,602a2854-4f9c-44ee-aca7-88015a34ae50.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=602a2854-4f9c-44ee-aca7-88015a34ae50</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last week I was traveling.  I came home to find that the drive on my HP SmartMedia
Home Server had died.
</p>
        <p>
Steps were fairly simple to get the server back up and running, but I did have one
problem with configuring remote access.  Here is the process that I followed:
</p>
        <ol>
          <li>
Bought 2 identical 3tb drives.</li>
          <li>
Installed the two drives into HomeServer.</li>
          <li>
Uninstalled the HomeServer Console and the Windows Media Extender.</li>
          <li>
Ran the HP Recovery DVD… for some reason I had to copy it to my hard drive to get
it to work.  It failed the first time I ran it from the DVD drive. It basically
walks you through the steps for recovery and then executes the rest unattended.</li>
          <li>
After the OS is installed, make sure you keep going back to Windows Update until there
is no more updates left to install.  When I tried to register my domain with
Windows HomeServer I kept getting:<br /><br /><em>An unexpeced error has occured communicating with the Windows Live Domains service.
80000190</em></li>
        </ol>
        <blockquote>
          <p>
            <em>
              <font color="#333333">This was resolved by repeating the Windows Update process
until there was no more updates… then configuring the domain name in Settings –&gt;
Remote Access –&gt; Domain name </font>
            </em>
          </p>
        </blockquote>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=602a2854-4f9c-44ee-aca7-88015a34ae50" />
      </body>
      <title>HP SmartMedia HomeServer OS Drive Dies</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,602a2854-4f9c-44ee-aca7-88015a34ae50.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/04/17/HPSmartMediaHomeServerOSDriveDies.aspx</link>
      <pubDate>Tue, 17 Apr 2012 00:46:32 GMT</pubDate>
      <description>&lt;p&gt;
Last week I was traveling.&amp;nbsp; I came home to find that the drive on my HP SmartMedia
Home Server had died.
&lt;/p&gt;
&lt;p&gt;
Steps were fairly simple to get the server back up and running, but I did have one
problem with configuring remote access.&amp;nbsp; Here is the process that I followed:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Bought 2 identical 3tb drives.&lt;/li&gt;
&lt;li&gt;
Installed the two drives into HomeServer.&lt;/li&gt;
&lt;li&gt;
Uninstalled the HomeServer Console and the Windows Media Extender.&lt;/li&gt;
&lt;li&gt;
Ran the HP Recovery DVD… for some reason I had to copy it to my hard drive to get
it to work.&amp;nbsp; It failed the first time I ran it from the DVD drive. It basically
walks you through the steps for recovery and then executes the rest unattended.&lt;/li&gt;
&lt;li&gt;
After the OS is installed, make sure you keep going back to Windows Update until there
is no more updates left to install.&amp;nbsp; When I tried to register my domain with
Windows HomeServer I kept getting:&lt;br&gt;
&lt;br&gt;
&lt;em&gt;An unexpeced error has occured communicating with the Windows Live Domains service.
80000190&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;&lt;font color="#333333"&gt;This was resolved by repeating the Windows Update process
until there was no more updates… then configuring the domain name in Settings –&amp;gt;
Remote Access –&amp;gt; Domain name &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=602a2854-4f9c-44ee-aca7-88015a34ae50" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,602a2854-4f9c-44ee-aca7-88015a34ae50.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=ee13787d-f77f-4555-80c4-5e847453a94b</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,ee13787d-f77f-4555-80c4-5e847453a94b.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,ee13787d-f77f-4555-80c4-5e847453a94b.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ee13787d-f77f-4555-80c4-5e847453a94b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Interesting tool with an <a href="http://zoom.it/pages/api/">API</a> to take snapshots
of your website, which converts them into <a href="http://msdn.microsoft.com/en-us/library/cc645050(v=vs.95).aspx">DeepZoom</a> tiles
that can be displayed on multiple devices.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=ee13787d-f77f-4555-80c4-5e847453a94b" />
      </body>
      <title>Zoom.it–Taking Snapshots of your website</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,ee13787d-f77f-4555-80c4-5e847453a94b.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/04/03/ZoomitTakingSnapshotsOfYourWebsite.aspx</link>
      <pubDate>Tue, 03 Apr 2012 20:59:14 GMT</pubDate>
      <description>&lt;p&gt;
Interesting tool with an &lt;a href="http://zoom.it/pages/api/"&gt;API&lt;/a&gt; to take snapshots
of your website, which converts them into &lt;a href="http://msdn.microsoft.com/en-us/library/cc645050(v=vs.95).aspx"&gt;DeepZoom&lt;/a&gt; tiles
that can be displayed on multiple devices.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=ee13787d-f77f-4555-80c4-5e847453a94b" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,ee13787d-f77f-4555-80c4-5e847453a94b.aspx</comments>
      <category>BookMark</category>
      <category>Code</category>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=be397073-e83f-4d3c-96bf-e99cf8cb678f</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,be397073-e83f-4d3c-96bf-e99cf8cb678f.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,be397073-e83f-4d3c-96bf-e99cf8cb678f.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=be397073-e83f-4d3c-96bf-e99cf8cb678f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Looks like there is a number of new <a href="http://blogs.msdn.com/b/b8/archive/2012/02/29/welcome-to-windows-8-the-consumer-preview.aspx">goodies</a> to
play with from Microsoft.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=be397073-e83f-4d3c-96bf-e99cf8cb678f" />
      </body>
      <title>Windows 8, .NET 4.5 and Visual Studio 11 Beta’s Released</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,be397073-e83f-4d3c-96bf-e99cf8cb678f.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/02/29/Windows8NET45AndVisualStudio11BetasReleased.aspx</link>
      <pubDate>Wed, 29 Feb 2012 19:41:27 GMT</pubDate>
      <description>&lt;p&gt;
Looks like there is a number of new &lt;a href="http://blogs.msdn.com/b/b8/archive/2012/02/29/welcome-to-windows-8-the-consumer-preview.aspx"&gt;goodies&lt;/a&gt; to
play with from Microsoft.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=be397073-e83f-4d3c-96bf-e99cf8cb678f" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,be397073-e83f-4d3c-96bf-e99cf8cb678f.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=c24933a1-45d6-4c8e-afb5-70d844d6b095</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,c24933a1-45d6-4c8e-afb5-70d844d6b095.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,c24933a1-45d6-4c8e-afb5-70d844d6b095.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c24933a1-45d6-4c8e-afb5-70d844d6b095</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is a nice example and gives you the basics of <a href="http://www.codeproject.com/Articles/322715/WPPirates">game
building on Windows 7 Phone</a>.  It is a play on Angry Birds, an addictive game
by Rovio.  
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=c24933a1-45d6-4c8e-afb5-70d844d6b095" />
      </body>
      <title>Pirates for Windows Phone 7</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,c24933a1-45d6-4c8e-afb5-70d844d6b095.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/02/28/PiratesForWindowsPhone7.aspx</link>
      <pubDate>Tue, 28 Feb 2012 04:01:00 GMT</pubDate>
      <description>&lt;p&gt;
This is a nice example and gives you the basics of &lt;a href="http://www.codeproject.com/Articles/322715/WPPirates"&gt;game
building on Windows 7 Phone&lt;/a&gt;.&amp;nbsp; It is a play on Angry Birds, an addictive game
by Rovio.&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=c24933a1-45d6-4c8e-afb5-70d844d6b095" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,c24933a1-45d6-4c8e-afb5-70d844d6b095.aspx</comments>
      <category>Windows Phone</category>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=4a063aaf-7f2f-444c-b177-fbaa92a8c75a</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,4a063aaf-7f2f-444c-b177-fbaa92a8c75a.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,4a063aaf-7f2f-444c-b177-fbaa92a8c75a.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4a063aaf-7f2f-444c-b177-fbaa92a8c75a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been working on <a href="http://www.stickervalue.com/">StickerValue.com</a> to
learn the new Razor View engine introduced in MVC 3.  It looks like now I can
start playing with <a href="http://www.asp.net/mvc/mvc4">MVC4</a> and bring the site
to mobile devices.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=4a063aaf-7f2f-444c-b177-fbaa92a8c75a" />
      </body>
      <title>ASP.NET MVC4 Beta Now Released</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,4a063aaf-7f2f-444c-b177-fbaa92a8c75a.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/02/24/ASPNETMVC4BetaNowReleased.aspx</link>
      <pubDate>Fri, 24 Feb 2012 22:54:45 GMT</pubDate>
      <description>&lt;p&gt;
I have been working on &lt;a href="http://www.stickervalue.com/"&gt;StickerValue.com&lt;/a&gt; to
learn the new Razor View engine introduced in MVC 3.&amp;nbsp; It looks like now I can
start playing with &lt;a href="http://www.asp.net/mvc/mvc4"&gt;MVC4&lt;/a&gt; and bring the site
to mobile devices.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=4a063aaf-7f2f-444c-b177-fbaa92a8c75a" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,4a063aaf-7f2f-444c-b177-fbaa92a8c75a.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=e919dd38-41af-4f12-9cd6-6e844e1a6ed7</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,e919dd38-41af-4f12-9cd6-6e844e1a6ed7.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,e919dd38-41af-4f12-9cd6-6e844e1a6ed7.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e919dd38-41af-4f12-9cd6-6e844e1a6ed7</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was taking a look at the 4.5 .NET Framework docs and it was really happy to see
a generic <a href="http://msdn.microsoft.com/en-us/library/hh199438(v=vs.110).aspx">WeakEventManager</a>. 
I was hoping for a more ergonomic API… but it looks like we are going to be stuck
with the AddHandler / RemoveHandler syntax.  I was hoping they would get a little
more fancy and supply a short-cut syntax much like what we use for subscribing and
unsubscribing from .NET events.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=e919dd38-41af-4f12-9cd6-6e844e1a6ed7" />
      </body>
      <title>Generic WeakEventManager in .NET Framework 4.5</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,e919dd38-41af-4f12-9cd6-6e844e1a6ed7.aspx</guid>
      <link>http://www.sysknowlogy.com/2012/02/24/GenericWeakEventManagerInNETFramework45.aspx</link>
      <pubDate>Fri, 24 Feb 2012 05:40:21 GMT</pubDate>
      <description>&lt;p&gt;
I was taking a look at the 4.5 .NET Framework docs and it was really happy to see
a generic &lt;a href="http://msdn.microsoft.com/en-us/library/hh199438(v=vs.110).aspx"&gt;WeakEventManager&lt;/a&gt;.&amp;nbsp;
I was hoping for a more ergonomic API… but it looks like we are going to be stuck
with the AddHandler / RemoveHandler syntax.&amp;nbsp; I was hoping they would get a little
more fancy and supply a short-cut syntax much like what we use for subscribing and
unsubscribing from .NET events.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=e919dd38-41af-4f12-9cd6-6e844e1a6ed7" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,e919dd38-41af-4f12-9cd6-6e844e1a6ed7.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=4723f92c-870c-408a-9eb8-c87619bfb5bd</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,4723f92c-870c-408a-9eb8-c87619bfb5bd.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,4723f92c-870c-408a-9eb8-c87619bfb5bd.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4723f92c-870c-408a-9eb8-c87619bfb5bd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This post is related to helping someone on the MSDN forum to try to find a memory
leak in their application.  Others may find the technique useful for detecting
memory leaks.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:3f5e8004-ecf7-4544-9c78-ece07a5490db" class="wlWriterEditableSmartContent">
          <p>
          </p>
          <div>
            <a href="http://www.sysknowlogy.com/content/binary/WindowsLiveWriter/DetectingMemoryLeaksinWPF_AC5B/TabControlMemoryLeakTest.zip" target="_self">TabControlMemoryLeakTest.zip</a>
          </div>
        </div>
        <p>
Here is the forum thread:
</p>
        <p>
          <a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/268462f3-ec45-4507-996e-70fb1f00d68f" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/268462f3-ec45-4507-996e-70fb1f00d68f">http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/268462f3-ec45-4507-996e-70fb1f00d68f</a>
        </p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=4723f92c-870c-408a-9eb8-c87619bfb5bd" />
      </body>
      <title>Detecting Memory Leaks in WPF</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,4723f92c-870c-408a-9eb8-c87619bfb5bd.aspx</guid>
      <link>http://www.sysknowlogy.com/2010/11/15/DetectingMemoryLeaksInWPF.aspx</link>
      <pubDate>Mon, 15 Nov 2010 18:15:28 GMT</pubDate>
      <description>&lt;p&gt;
This post is related to helping someone on the MSDN forum to try to find a memory
leak in their application.&amp;nbsp; Others may find the technique useful for detecting
memory leaks.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:3f5e8004-ecf7-4544-9c78-ece07a5490db" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;div&gt;&lt;a href="http://www.sysknowlogy.com/content/binary/WindowsLiveWriter/DetectingMemoryLeaksinWPF_AC5B/TabControlMemoryLeakTest.zip" target="_self"&gt;TabControlMemoryLeakTest.zip&lt;/a&gt;
&lt;/div&gt;
&gt;
&lt;/div&gt;
&lt;p&gt;
Here is the forum thread:
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/268462f3-ec45-4507-996e-70fb1f00d68f" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/268462f3-ec45-4507-996e-70fb1f00d68f"&gt;http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/268462f3-ec45-4507-996e-70fb1f00d68f&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=4723f92c-870c-408a-9eb8-c87619bfb5bd" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,4723f92c-870c-408a-9eb8-c87619bfb5bd.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=819fe207-e6ee-4e50-b9e0-4cc9f26c55c7</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,819fe207-e6ee-4e50-b9e0-4cc9f26c55c7.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,819fe207-e6ee-4e50-b9e0-4cc9f26c55c7.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=819fe207-e6ee-4e50-b9e0-4cc9f26c55c7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is a handy little LINQ extension I use all of the time to recurse through IEnumerable&lt;T&gt;
object graphs.  
</p>
        <pre class="csharpcode">
          <font size="1">
            <span class="rem">/// &lt;summary&gt;</span>
            <span class="rem">///
Traverses the specified source.</span>
            <span class="rem">/// </span>
            <span class="rem">///var
total =</span>
            <span class="rem">/// Application.Current.Resources.MergedDictionaries.Recurse&lt;ResourceDictionary&gt;(</span>
            <span class="rem">///
obj =&gt; obj.MergedDictionaries);</span>
            <span class="rem">/// &lt;/summary&gt;</span>
            <span class="rem">///
&lt;typeparam name="T"&gt;&lt;/typeparam&gt;</span>
            <span class="rem">/// &lt;param
name="source"&gt;Root object.&lt;/param&gt;</span>
            <span class="rem">/// &lt;param
name="fnRecurse"&gt;The function used in recursion&lt;/param&gt;</span>
            <span class="rem">///
&lt;returns&gt;&lt;/returns&gt;</span>
            <span class="kwrd">public</span>
            <span class="kwrd">static</span> IEnumerable&lt;T&gt;
Recurse&lt;T&gt;(<span class="kwrd">this</span> IEnumerable&lt;T&gt; source, Func&lt;T,
IEnumerable&lt;T&gt;&gt; fnRecurse) { <span class="kwrd">foreach</span> (T item <span class="kwrd">in</span> source)
{ <span class="kwrd">yield</span><span class="kwrd">return</span> item; IEnumerable&lt;T&gt;
seqRecurse = fnRecurse(item); <span class="kwrd">if</span> (seqRecurse != <span class="kwrd">null</span>)
{ <span class="kwrd">foreach</span> (T itemRecurse <span class="kwrd">in</span> Recurse(seqRecurse,
fnRecurse)) { <span class="kwrd">yield</span><span class="kwrd">return</span> itemRecurse;
} } } }</font>
        </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=819fe207-e6ee-4e50-b9e0-4cc9f26c55c7" />
      </body>
      <title>Generic Recursion using IEnumerable&lt;T&gt;</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,819fe207-e6ee-4e50-b9e0-4cc9f26c55c7.aspx</guid>
      <link>http://www.sysknowlogy.com/2010/09/16/GenericRecursionUsingIEnumerable.aspx</link>
      <pubDate>Thu, 16 Sep 2010 17:11:25 GMT</pubDate>
      <description>&lt;p&gt;
This is a handy little LINQ extension I use all of the time to recurse through IEnumerable&amp;lt;T&amp;gt;
object graphs.&amp;nbsp; 
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;///
Traverses the specified source.&lt;/span&gt; &lt;span class="rem"&gt;/// &lt;/span&gt; &lt;span class="rem"&gt;///var
total =&lt;/span&gt; &lt;span class="rem"&gt;/// Application.Current.Resources.MergedDictionaries.Recurse&amp;lt;ResourceDictionary&amp;gt;(&lt;/span&gt; &lt;span class="rem"&gt;///
obj =&amp;gt; obj.MergedDictionaries);&lt;/span&gt; &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;///
&amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;/// &amp;lt;param
name="source"&amp;gt;Root object.&amp;lt;/param&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;/// &amp;lt;param
name="fnRecurse"&amp;gt;The function used in recursion&amp;lt;/param&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;///
&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IEnumerable&amp;lt;T&amp;gt;
Recurse&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; IEnumerable&amp;lt;T&amp;gt; source, Func&amp;lt;T,
IEnumerable&amp;lt;T&amp;gt;&amp;gt; fnRecurse) { &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (T item &lt;span class="kwrd"&gt;in&lt;/span&gt; source)
{ &lt;span class="kwrd"&gt;yield&lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; item; IEnumerable&amp;lt;T&amp;gt;
seqRecurse = fnRecurse(item); &lt;span class="kwrd"&gt;if&lt;/span&gt; (seqRecurse != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
{ &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (T itemRecurse &lt;span class="kwrd"&gt;in&lt;/span&gt; Recurse(seqRecurse,
fnRecurse)) { &lt;span class="kwrd"&gt;yield&lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; itemRecurse;
} } } }&lt;/font&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=819fe207-e6ee-4e50-b9e0-4cc9f26c55c7" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,819fe207-e6ee-4e50-b9e0-4cc9f26c55c7.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.sysknowlogy.com/Trackback.aspx?guid=041e6e37-b541-40af-80b2-085bc63428db</trackback:ping>
      <pingback:server>http://www.sysknowlogy.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysknowlogy.com/PermaLink,guid,041e6e37-b541-40af-80b2-085bc63428db.aspx</pingback:target>
      <dc:creator>Shannon Braun</dc:creator>
      <wfw:comment>http://www.sysknowlogy.com/CommentView,guid,041e6e37-b541-40af-80b2-085bc63428db.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysknowlogy.com/SyndicationService.asmx/GetEntryCommentsRss?guid=041e6e37-b541-40af-80b2-085bc63428db</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://jasonbock.net/JB/Default.aspx" target="_blank">Jason Bock</a> just
posted the <a href="http://www.twincitiescodecamp.com/TCCC/Spring2010/Sessions.aspx" target="_blank">sessions</a> for
TCCC8.  Looks like some interesting material… looks like there is going to be
content on developing for Win Mo 7.
</p>
        <img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=041e6e37-b541-40af-80b2-085bc63428db" />
      </body>
      <title>Twin Cities Code Camp – April 2010</title>
      <guid isPermaLink="false">http://www.sysknowlogy.com/PermaLink,guid,041e6e37-b541-40af-80b2-085bc63428db.aspx</guid>
      <link>http://www.sysknowlogy.com/2010/03/11/TwinCitiesCodeCampApril2010.aspx</link>
      <pubDate>Thu, 11 Mar 2010 03:03:42 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://jasonbock.net/JB/Default.aspx" target="_blank"&gt;Jason Bock&lt;/a&gt; just
posted the &lt;a href="http://www.twincitiescodecamp.com/TCCC/Spring2010/Sessions.aspx" target="_blank"&gt;sessions&lt;/a&gt; for
TCCC8.&amp;nbsp; Looks like some interesting material… looks like there is going to be
content on developing for Win Mo 7.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.sysknowlogy.com/aggbug.ashx?id=041e6e37-b541-40af-80b2-085bc63428db" /&gt;</description>
      <comments>http://www.sysknowlogy.com/CommentView,guid,041e6e37-b541-40af-80b2-085bc63428db.aspx</comments>
    </item>
  </channel>
</rss>