<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XAML Wonderland</title>
	<atom:link href="http://blog.wpfwonderland.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wpfwonderland.com</link>
	<description>XAML and UI, whever it is found.  Phone, Surface, Silverlight or WPF</description>
	<lastBuildDate>Wed, 11 Jan 2012 06:23:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Expression Blend 4, MRU location</title>
		<link>http://blog.wpfwonderland.com/2012/01/10/expression-blend-4-mru-location/</link>
		<comments>http://blog.wpfwonderland.com/2012/01/10/expression-blend-4-mru-location/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 06:20:34 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[Blend]]></category>
		<category><![CDATA[Blend Tips]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2012/01/10/expression-blend-4-mru-location/</guid>
		<description><![CDATA[I&#8217;m working on my book for O&#8217;Reilly this month (HLSL and Pixel Shaders for XAML Developers).&#160; If you&#8217;ve written books or articles yourself you know there is a lot of prep involved in getting your machine into a clean state for screenshots.&#160; You don&#8217;t want to show a list of client project names to the [...]<!-- Easy AdSense V2.51 -->
<!-- Post[count: 2] -->
<div class="ezAdsense adsense adsense-leadout" style="float:left;margin:12px; border:#00FFFF solid 1px"  onmouseover="this.style.border='#FF0000 solid 1px'" onmouseout="this.style.border='#00FFFF solid 1px'"><script type="text/javascript"><!--
google_ad_client = "pub-7194001785119580";
/* blog.wpfwonderland 300x250, created 6/16/09 */
google_ad_slot = "2567713628";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on my book for O&#8217;Reilly this month (HLSL and Pixel Shaders for XAML Developers).&#160; If you&#8217;ve written books or articles yourself you know there is a lot of prep involved in getting your machine into a clean state for screenshots.&#160; You don&#8217;t want to show a list of client project names to the readers, for example, when taking a screenshot of the Open Projects list in Visual Studio.</p>
<p>Today I am doing screenshots for the Getting Started chapter.&#160; One of the examples uses Expression Blend 4.&#160; Here is what my current MRU list looks like in Blend.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2012/01/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2012/01/image_thumb.png" width="454" height="655" /></a></p>
<p>Nothing incriminating or confidential in that list, but I still want to trim it down to a few apps.&#160; I&#8217;ll keep Shazzam on the list, as I&#8217;m using it for many of the HLSL examples.&#160; But the throwaway projects like WfpApplication2 are on their way to the electronic dustbin.</p>
<p>Some applications, like Visual Studio, keep their MRU data in the registry.&#160; Expression Blend is a newer application, it keeps the data in a XML config file located in my profile folder.</p>
<p>On my computer the config file is located at:</p>
<p><em><strong>C:\Users\WaltRitscher\AppData\Roaming\Microsoft\Expression\Blend 4\user.config</strong></em></p>
<p>When you open the config file in your favorite text editor you see a bunch of &lt;ConfigurationService&gt; elements. In my case, the element I am looking for has a name property = &quot;RecentProjects&quot;. It&#8217;s on line 99 in this screenshot.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2012/01/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2012/01/image_thumb1.png" width="454" height="300" /></a></p>
<p>If you look closely you can see a pipe delimited list of file names.</p>
<ul>
<li>M:\CodeDemos\WpfApplication2\WpfApplication2.sln| </li>
<li>E:\Projects\Shazzam\Shazzam.sln| </li>
<li>E:\Projects\PhoneApps\QuietPlease\QuietPlease.sln| </li>
</ul>
<p>Edit that list and save the file.&#160; Take your usual precaution for backing up the file before changing the content.</p>
<p>Now look at that clean screenshot.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2012/01/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2012/01/image_thumb2.png" width="454" height="655" /></a></p>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/" rel="bookmark" class="crp_title">Customize Windows 7 Preview pane for XAML files</a></li><li><a href="http://blog.wpfwonderland.com/2010/09/30/accented-characters-in-the-windows-phone-7-keyboard/" rel="bookmark" class="crp_title">Accented characters in the Windows Phone 7 keyboard</a></li><li><a href="http://blog.wpfwonderland.com/2009/08/12/easy-way-to-create-imagebrush-in-expression-blend-3/" rel="bookmark" class="crp_title">Easy Way to Create ImageBrush in Expression Blend 3</a></li><li><a href="http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/" rel="bookmark" class="crp_title">Where is that #% symbol key in Windows Phone 7</a></li><li><a href="http://blog.wpfwonderland.com/2009/11/13/shadergallery-free-effects-add-in-for-expression-blend/" rel="bookmark" class="crp_title">ShaderGallery &ndash; Free effects add-in for Expression Blend</a></li><li><a href="http://blog.wpfwonderland.com/2009/11/13/seeking-wpf-pixel-shader-effects-samples-for-shadergallery/" rel="bookmark" class="crp_title">Seeking WPF pixel shader effects samples for ShaderGallery</a></li><li><a href="http://blog.wpfwonderland.com/2010/01/18/use-reflector-to-determine-what-net-namespaces-are-aliased-to-silverlight-xaml-namespace/" rel="bookmark" class="crp_title">Use Reflector to determine what .NET namespaces are aliased to Silverlight XAML namespace</a></li></ul></div><!-- Easy AdSense V2.51 -->
<!-- Post[count: 3] -->
<div class="ezAdsense adsense adsense-leadout" style="float:left;margin:12px; border:#00FFFF solid 1px"  onmouseover="this.style.border='#FF0000 solid 1px'" onmouseout="this.style.border='#00FFFF solid 1px'"><script type="text/javascript"><!--
google_ad_client = "pub-7194001785119580";
/* blog.wpfwonderland 300x250, created 6/16/09 */
google_ad_slot = "2567713628";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2012/01/10/expression-blend-4-mru-location/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tracking Expression Blend 4 version numbers</title>
		<link>http://blog.wpfwonderland.com/2012/01/09/tracking-expression-blend-4-version-numbers/</link>
		<comments>http://blog.wpfwonderland.com/2012/01/09/tracking-expression-blend-4-version-numbers/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 00:13:22 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[Blend]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2012/01/09/tracking-expression-blend-4-version-numbers/</guid>
		<description><![CDATA[It&#8217;s a bit hard to know the version numbers for Expression Blend releases as the information is scattered about the Internet. Version Name Number Release Date Expression Blend 4, original release 4.0 June 7, 2010 Expression Blend 4 Service Pack 1 (SP1) 4.0.20901.0 Sept 7, 2010 Windows Phone SDK 7.1 version 4.0.30816.0 Sept 28,2011 Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a bit hard to know the version numbers for Expression Blend releases as the information is scattered about the Internet.</p>
<p>
<table border="1" cellspacing="0" cellpadding="2" width="504">
<tbody>
<tr>
<td valign="top" width="300"><strong>Version Name</strong></td>
<td valign="top" width="43"><strong>Number</strong></td>
<td valign="top" width="159"><strong>Release Date</strong></td>
</tr>
<tr>
<td valign="top" width="300">Expression Blend 4, original release</td>
<td valign="top" width="43">4.0</td>
<td valign="top" width="159">June 7, 2010</td>
</tr>
<tr>
<td valign="top" width="300">Expression Blend 4 Service Pack 1 (SP1)</td>
<td valign="top" width="43">4.0.20901.0</td>
<td valign="top" width="159">Sept 7, 2010</td>
</tr>
<tr>
<td valign="top" width="300">Windows Phone SDK 7.1 version</td>
<td valign="top" width="43">
<p>4.0.30816.0</p>
</td>
<td valign="top" width="159">Sept 28,2011</td>
</tr>
<tr>
<td valign="top" width="300">Microsoft Expression Blend Preview for Silverlight 5</td>
<td valign="top" width="43">4.1.10819.0</td>
<td valign="top" width="159">Sept 9, 2011</td>
</tr>
</tbody>
</table>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2011/10/01/speed-boosts-are-real-in-windows-phone-75-mango/" rel="bookmark" class="crp_title">Speed boosts are real in Windows phone 7.5 (Mango)</a></li><li><a href="http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/" rel="bookmark" class="crp_title">Mango adds Beta and Private Marketplaces to Windows Phone 7 and neglects Enterprise</a></li><li><a href="http://blog.wpfwonderland.com/2009/07/10/trouble-installing-silverlight-3-on-developer-computer/" rel="bookmark" class="crp_title">Install Error &#8211;  Silverlight 3 on Developer Computer</a></li><li><a href="http://blog.wpfwonderland.com/2007/01/28/comparing-wpf-applications-and-xbap-whats-the-difference/" rel="bookmark" class="crp_title">Comparing WPF applications and XBAP &#8211; What&#8217;s the difference?</a></li><li><a href="http://blog.wpfwonderland.com/2009/06/26/arranging-shapes-in-circle-with-expression-blend-part-one/" rel="bookmark" class="crp_title">Arranging Shapes in a Circle with Expression Blend &ndash; Part One</a></li><li><a href="http://blog.wpfwonderland.com/2007/01/04/installing-net-30-creating-a-wpf-application/" rel="bookmark" class="crp_title">Installing .NET 3.0 &#8211; Creating a WPF application</a></li><li><a href="http://blog.wpfwonderland.com/2009/06/30/arranging-shapes-in-circle-with-expression-blend-part-2/" rel="bookmark" class="crp_title">Arranging Shapes in a Circle with Expression Blend &ndash; Part 2</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2012/01/09/tracking-expression-blend-4-version-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Win one million ad impressions for your Windows Phone 7.5 app</title>
		<link>http://blog.wpfwonderland.com/2011/10/19/win-one-million-ad-impressions-for-your-windows-phone-75-app/</link>
		<comments>http://blog.wpfwonderland.com/2011/10/19/win-one-million-ad-impressions-for-your-windows-phone-75-app/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 03:35:24 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/10/19/win-one-million-ad-impressions-for-your-windows-phone-75-app/</guid>
		<description><![CDATA[Microsoft is starting their fall marketing campaigns for Windows Phone developers.&#160;&#160; They have announced a number of contests.&#160; This one caught my eye. If you publish a quality Windows phone app to the phone marketplace and submit you app to this contest you could win ONE MILLION AD IMPRESSIONS.&#160;&#160; Doing the numbers So how much [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft is starting their fall marketing campaigns for Windows Phone developers.&#160;&#160; They have announced a number of contests.&#160; This one caught my eye.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/10/image.png"><img style="display: inline" title="image" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2011/10/image-thumb.png" width="500" height="367" /></a></p>
<p>If you publish a quality Windows phone app to the phone marketplace and submit you app to this contest you could win ONE MILLION AD IMPRESSIONS.&#160;&#160; </p>
<h2>Doing the numbers</h2>
<p>So how much money would that net you?&#160;&#160; Let&#8217;s run some calculations.</p>
<p>I hear the conversion rates for apps in other ad campaigns is around 4%. That&#8217;s about 40,000 units sold.&#160; If you set your price at 2.99 (it is a quality app right, why would you sell it for .99 cents?) that works out to ~$120,000 gross sales.&#160; After Microsoft&#8217;s 30% cut you&#8217;d net about $84,000.&#160; And that&#8217;s on top of your other sales via other marketing efforts.&#160; Of course I could be off on the numbers, so don&#8217;t be mad at me if you sales are less! </p>
<h2>FAQs</h2>
<p>Be sure and read the contest rules to see if you qualify.&#160; Learn more about the contest at </p>
<p><a title="https://windowsphone.promo.eprize.com/appdevelopercontest/" href="https://windowsphone.promo.eprize.com/appdevelopercontest/">https://windowsphone.promo.eprize.com/appdevelopercontest/</a>&#160;</p>
<p>This contest awards quality, your app will be judged against other entries.&#160;&#160; Submitting a flashlight app is not going help you win this contest.</p>
<h2>Entering this and other contests</h2>
<p>Sign up for other phone contests at <a href="http://bit.ly/MangoOffer">http://</a><a href="http://bit.ly/MangoOffer">bit.ly/MangoOffer</a></p>
<p>You&#8217;ll need a promo code to enter the contest. Here&#8217;s my promo code.&#160; Feel free to use it when entering. WRITS</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/10/image1.png"><img style="display: inline" title="image" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2011/10/image-thumb1.png" width="292" height="480" /></a></p>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/" rel="bookmark" class="crp_title">Customize Windows 7 Preview pane for XAML files</a></li><li><a href="http://blog.wpfwonderland.com/2010/09/18/windows-phone-7-resources-for-rtm/" rel="bookmark" class="crp_title">Windows Phone 7 Resources for RTM</a></li><li><a href="http://blog.wpfwonderland.com/2010/09/30/accented-characters-in-the-windows-phone-7-keyboard/" rel="bookmark" class="crp_title">Accented characters in the Windows Phone 7 keyboard</a></li><li><a href="http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/" rel="bookmark" class="crp_title">Where is that #% symbol key in Windows Phone 7</a></li><li><a href="http://blog.wpfwonderland.com/2009/02/10/win-5000-for-best-silverlight-game/" rel="bookmark" class="crp_title">Win $5000 for best Silverlight Game</a></li><li><a href="http://blog.wpfwonderland.com/2010/08/20/zune-marketplace-100-growth-in-the-windows-phone-7-sector/" rel="bookmark" class="crp_title">Zune Marketplace 100% growth in the Windows Phone 7 sector</a></li><li><a href="http://blog.wpfwonderland.com/2010/11/09/press-and-hold-technique-enter-punctuation-characters-for-windows-phone-7/" rel="bookmark" class="crp_title">Press and Hold technique: Enter punctuation characters for Windows Phone 7</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/10/19/win-one-million-ad-impressions-for-your-windows-phone-75-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed boosts are real in Windows phone 7.5 (Mango)</title>
		<link>http://blog.wpfwonderland.com/2011/10/01/speed-boosts-are-real-in-windows-phone-75-mango/</link>
		<comments>http://blog.wpfwonderland.com/2011/10/01/speed-boosts-are-real-in-windows-phone-75-mango/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 21:13:58 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/10/01/speed-boosts-are-real-in-windows-phone-75-mango/</guid>
		<description><![CDATA[I seems that the performance claims from Microsoft that Windows Phone 7.5 is faster than the 7.0 version are true.&#160; I&#8217;ve heard from several of my friends that their benchmarks prove that Mango is faster.&#160; I didn&#8217;t profile my phone before updating so I don&#8217;t have my own numbers to share. Here are some stats [...]]]></description>
			<content:encoded><![CDATA[<p>I seems that the performance claims from Microsoft that Windows Phone 7.5 is faster than the 7.0 version are true.&#160; I&#8217;ve heard from several of my friends that their benchmarks prove that Mango is faster.&#160; I didn&#8217;t profile my phone before updating so I don&#8217;t have my own numbers to share.</p>
<p>Here are some stats from <a href="http://wp7lab.com/news/windows-phone-7-5-vs-wp-bench/">WP7 Labs</a>.&#160; They benchmarked the Mango upgrade with the <a href="http://social.zune.net/redirect?type=phoneApp&amp;id=e447e949-01c0-43f1-8b65-76d752d7d305&amp;source=WP7Lab">WP 7 Bench</a> application.</p>
<p>Wow.&#160; Look at the Data Storage throughput!&#160; Over 250% improvement.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="125">
<h4><font style="font-weight: bold">Test</font><font style="font-weight: bold"> Type</font></h4>
</td>
<td valign="top" width="108">
<h4><font style="font-weight: bold">v.7.0</font></h4>
</td>
<td valign="top" width="93">
<h4><font style="font-weight: bold">v.7.5</font></h4>
</td>
<td valign="top" width="152">
<h4><font style="font-weight: bold">Improvement</font></h4>
</td>
</tr>
<tr>
<td valign="top" width="125">
<p>Sequential CPU</p>
</td>
<td valign="top" width="108">
<p>11,353 ms</p>
</td>
<td valign="top" width="93">
<p>8,297 ms</p>
</td>
<td valign="top" width="152">
<p>36%</p>
</td>
</tr>
<tr>
<td valign="top" width="125">
<p>Parallel CPU</p>
</td>
<td valign="top" width="108">
<p>10,921 ms</p>
</td>
<td valign="top" width="93">
<p>7,873 ms</p>
</td>
<td valign="top" width="152">
<p>39%</p>
</td>
</tr>
<tr>
<td valign="top" width="125">&nbsp;</td>
<td valign="top" width="108">&nbsp;</td>
<td valign="top" width="93">&nbsp;</td>
<td valign="top" width="152">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="125">
<p>Data Storage</p>
</td>
<td valign="top" width="108">
<p>4.9 Mb/s</p>
</td>
<td valign="top" width="93">
<p>13.07 Mb/s</p>
</td>
<td valign="top" width="152">
<p>267%</p>
</td>
</tr>
<tr>
<td valign="top" width="125">&nbsp;</td>
<td valign="top" width="108">&nbsp;</td>
<td valign="top" width="93">&nbsp;</td>
<td valign="top" width="152">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="125">
<p>GPU</p>
</td>
<td valign="top" width="108">
<p>22 FPS</p>
</td>
<td valign="top" width="93">
<p>23 FPS</p>
</td>
<td valign="top" width="152">
<p>5%</p>
</td>
</tr>
</tbody>
</table>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2012/01/09/tracking-expression-blend-4-version-numbers/" rel="bookmark" class="crp_title">Tracking Expression Blend 4 version numbers</a></li><li><a href="http://blog.wpfwonderland.com/2009/07/10/trouble-installing-silverlight-3-on-developer-computer/" rel="bookmark" class="crp_title">Install Error &#8211;  Silverlight 3 on Developer Computer</a></li><li><a href="http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/" rel="bookmark" class="crp_title">Mango adds Beta and Private Marketplaces to Windows Phone 7 and neglects Enterprise</a></li><li><a href="http://blog.wpfwonderland.com/2007/01/28/comparing-wpf-applications-and-xbap-whats-the-difference/" rel="bookmark" class="crp_title">Comparing WPF applications and XBAP &#8211; What&#8217;s the difference?</a></li><li><a href="http://blog.wpfwonderland.com/2009/06/26/arranging-shapes-in-circle-with-expression-blend-part-one/" rel="bookmark" class="crp_title">Arranging Shapes in a Circle with Expression Blend &ndash; Part One</a></li><li><a href="http://blog.wpfwonderland.com/2009/06/30/arranging-shapes-in-circle-with-expression-blend-part-2/" rel="bookmark" class="crp_title">Arranging Shapes in a Circle with Expression Blend &ndash; Part 2</a></li><li><a href="http://blog.wpfwonderland.com/2009/01/30/data-visualization-toolkit-for-silverlight-descry/" rel="bookmark" class="crp_title">Data Visualization Toolkit for Silverlight &#8211; Descry</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/10/01/speed-boosts-are-real-in-windows-phone-75-mango/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shifting the order of IEnumerable group with LINQ</title>
		<link>http://blog.wpfwonderland.com/2011/09/21/shifting-the-order-of-ienumerable-group-with-linq/</link>
		<comments>http://blog.wpfwonderland.com/2011/09/21/shifting-the-order-of-ienumerable-group-with-linq/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 04:45:48 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[.Net]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/09/21/shifting-the-order-of-ienumerable-group-with-linq/</guid>
		<description><![CDATA[Here&#8217;s a problem that comes up occasionally.&#160;&#160; I have a list of words&#160; that are in a specific order. apple, banana, cherry, durian,&#160; eggplant, fig, grape, honey, ice, jam I need to preserve the order, but start the list with a item found later in the list. eggplant, fig, grape, honey, ice, jam, apple, banana, [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a problem that comes up occasionally.&#160;&#160; I have a list of words&#160; that are in a specific order.</p>
<p><strong>apple, banana, cherry, durian,&#160; eggplant, fig, grape, honey, ice, jam</strong></p>
<p>I need to preserve the order, but start the list with a item found later in the list.</p>
<p><strong>eggplant, fig, grape, honey, ice, jam,</strong> <strong>apple, banana, cherry, durian.</strong></p>
<p>As you can see the original list started with apple, and the new list starts with eggplant.&#160; The words that were at the beginning are now appended after the former last word (<strong>jam</strong>). </p>
<p>Stated another way, I need to shift the data in the list.&#160; I&#8217;ve used different techniques in the past to solve the problem but this time I decided to try LINQ to Objects.</p>
<h2>Using LINQ to solve the problem</h2>
<p>I love using LINQ to Objects to query and manipulate my data.&#160;&#160; Thinking about my application data from a query perspective is so liberating.&#160; LINQ is not always the best choice, at times you need to consider performance, but I thought I would see if I could write a LINQ query to solve this problem.</p>
<h2>Using LINQPad</h2>
<p>I suspect you know about LINQPad.&#160; This free tool is the best utility I know for exploring LINQ syntax.&#160; I&#8217;ll be using it for the screenshots in this article.</p>
<p><a title="http://www.linqpad.net/" href="http://www.linqpad.net/">http://www.linqpad.net/</a></p>
<h2>Better Version</h2>
<p>Update [September 24th, 2011]</p>
<p>@ianmercer on twitter suggested an elegant solution to the problem. Shorter and simpler than my version. Here it his code.</p>
<pre class="code"><span style="color: blue">string</span><span style="color: black">[] words = { </span><span style="color: #dc1414">&quot;apple&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;banana&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;cherry&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;durian&quot;</span><span style="color: black">,
                                                        </span><span style="color: #dc1414">&quot;eggplant&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;fig&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;grape&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;honey&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;ice&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;jam&quot; </span><span style="color: black">};

    </span><span style="color: blue">var </span><span style="color: black">offset  = </span><span style="color: #c81efa">3</span><span style="color: black">;

    words.Skip(offset).Concat(words.Take(offset));</span></pre>
<p>I&#8217;ve left the original content below, for context, but I suggest you use this improved version.</p>
<p>&#160;</p>
<h2>Indexing into a List</h2>
<p><em>[Original solution]</em>[</p>
<p>There is a simple technique in LINQ for indexing into another list.&#160; I'll use it in my final query.&#160; Here are the basics of how it works.</p>
<p>First I create the source list.</p>
<pre class="code"><span style="color: blue">string</span><span style="color: black">[] words = { </span><span style="color: #dc1414">&quot;apple&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;banana&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;cherry&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;durian&quot;</span><span style="color: black">,
                            </span><span style="color: #dc1414">&quot;eggplant&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;fig&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;grape&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;honey&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;ice&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;jam&quot; </span><span style="color: black">};</span></pre>
<p>Then I create an integer array that specifies the preferred order of the data.</p>
<pre class="code"><span style="color: green">// this integer array contains my preferred order for the word list
</span><span style="color: blue">int</span><span style="color: black">[] preferredOrder = { </span><span style="color: #c81efa">2</span><span style="color: black">, </span><span style="color: #c81efa">4</span><span style="color: black">, </span><span style="color: #c81efa">6</span><span style="color: black">, </span><span style="color: #c81efa">8</span><span style="color: black">, </span><span style="color: #c81efa">0</span><span style="color: black">, </span><span style="color: #c81efa">9</span><span style="color: black">,</span><span style="color: #c81efa">7</span><span style="color: black">,</span><span style="color: #c81efa">5</span><span style="color: black">,</span><span style="color: #c81efa">3 </span><span style="color: black">};</span></pre>
<p>Now I'll use this simple LINQ query to get the data and project it into an anonymous type.</p>
<pre class="code"><span style="color: blue">var </span><span style="color: black">q =  </span><span style="color: blue">from </span><span style="color: black">index </span><span style="color: blue">in </span><span style="color: black">preferredOrder
            </span><span style="color: blue">select new</span><span style="color: black">{Position=index, Word=words[index]};</span></pre>
<p>And here are the results.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/09/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2011/09/image-thumb.png" width="554" height="433" /></a></p>
<p>As you can see the word are presented in the order I chose.</p>
<h2>Shifting the list</h2>
<p>I use the similar technique to shift the list.&#160; I start by creating the same source list as before.&#160; Next I generate a list of integers, one for each item in the source list.&#160; Note that the integer array starts at zero. </p>
<pre class="code"><span style="color: blue">int</span><span style="color: black">[] preferredOrder = Enumerable.Range(</span><span style="color: #c81efa">0</span><span style="color: black">,words.Length).ToArray();</span></pre>
<p>&#160;<a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/09/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2011/09/image-thumb1.png" width="554" height="329" /></a></p>
<p>Now I use an orderby clause and the mod operator to shift the data.</p>
<pre class="code"><span style="color: blue">var </span><span style="color: black">offset = </span><span style="color: #c81efa">0</span><span style="color: black">;

</span><span style="color: blue">var </span><span style="color: black">q1 =  </span><span style="color: blue">from </span><span style="color: black">n </span><span style="color: blue">in </span><span style="color: black">preferredOrder
</span><span style="color: blue">orderby </span><span style="color: black">((n + offset)  % preferredOrder.Length)
</span><span style="color: blue">select new</span><span style="color: black">{Position=n, Word=words[n]};</span></pre>
<pre class="code"><span style="color: black"></span></pre>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/09/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.wpfwonderland.com/wp-content/uploads/2011/09/image-thumb2.png" width="554" height="634" /></a> </p>
<p>Problem solved!</p>
<p><strong><font color="#c0504d">UPDATE</font></strong></p>
<p>September 22.</p>
<p>Here's another approach to the problem from @AbdouMoumen (Twitter).</p>
<p>&#160;</p>
<pre class="code"><span style="color: blue">string</span><span style="color: black">[] words = { </span><span style="color: #dc1414">&quot;apple&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;banana&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;cherry&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;durian&quot;</span><span style="color: black">,
                     </span><span style="color: #dc1414">&quot;eggplant&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;fig&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;grape&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;honey&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;ice&quot;</span><span style="color: black">, </span><span style="color: #dc1414">&quot;jam&quot; </span><span style="color: black">};
</span><span style="color: blue">var </span><span style="color: black">result = words
                      .Select (
                               (item,index) =&gt;</span><span style="color: blue">new </span><span style="color: black">{
                                Item=item,
                                Index=index
                                                   })
                  .OrderBy( indexedItem =&gt; (indexedItem.Index + </span><span style="color: #c81efa">6 </span><span style="color: black">) % words.Length )
                  .Select ( indexedItem =&gt; indexedItem.Item );
result.Dump();</span></pre>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2008/02/17/mysterious-argumentnullexception-with-windowsformshost/" rel="bookmark" class="crp_title">Mysterious ArgumentNullException with WindowsFormsHost</a></li><li><a href="http://blog.wpfwonderland.com/2010/10/04/incorrect-path-to-winphone-backgroundpng-in-visual-studio/" rel="bookmark" class="crp_title">Incorrect Path to WinPhone Background.png in Visual Studio</a></li><li><a href="http://blog.wpfwonderland.com/2010/01/05/why-is-my-silverlight-usercontrol-background-always-white/" rel="bookmark" class="crp_title">Why is my Silverlight Usercontrol background always White?</a></li><li><a href="http://blog.wpfwonderland.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/" rel="bookmark" class="crp_title">Mixing external MergedDictionaries with local resources in App.xaml</a></li><li><a href="http://blog.wpfwonderland.com/2008/10/10/linq-get-members-on-type-not-base-types/" rel="bookmark" class="crp_title">LINQ &#8211; Get members on type (not base types)</a></li><li><a href="http://blog.wpfwonderland.com/2008/08/11/linq-query-to-get-all-framework-elements/" rel="bookmark" class="crp_title">Linq query to get all Framework elements</a></li><li><a href="http://blog.wpfwonderland.com/2010/06/02/looking-for-silverlight-bidi-or-rtl-use-the-flowdirection-property/" rel="bookmark" class="crp_title">Looking for Silverlight BiDi or RTL? Use the FlowDirection property</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/09/21/shifting-the-order-of-ienumerable-group-with-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mango adds Beta and Private Marketplaces to Windows Phone 7 and neglects Enterprise</title>
		<link>http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/</link>
		<comments>http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 19:14:09 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[MIX]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/</guid>
		<description><![CDATA[Corporations will not create internal Windows Phone 7 applications unless they have a way to restrict deployment of their apps to controlled list of registered phones.&#160; As it stands today, it is not possible to do private deployments.&#160; The next version of Windows Phone 7, known as Mango, aims to change that.&#160; Microsoft previewed the [...]]]></description>
			<content:encoded><![CDATA[<p>Corporations will not create internal Windows Phone 7 applications unless they have a way to restrict deployment of their apps to controlled list of registered phones.&#160; As it stands today, it is not possible to do private deployments.&#160; The next version of Windows Phone 7, known as Mango, aims to change that.&#160; Microsoft previewed the upcoming changes to the Marketplace at their web conference (Mix11).&#160;&#160; There will be three areas to deploy apps: Public Marketplace , Private Marketplace and Beta Marketplace. Be sure and read the details below but be aware:&#160; Private Marketplace as envisioned by Microsoft <strong>is not the much anticipated Enterprise Marketplace</strong>.</p>
<p>It&#8217;s still early times, Mango will not ship before September 2011, so realize that the details many change as we get closer to ship date.</p>
<h3>Public Marketplace</h3>
<p>Let&#8217;s start with the current marketplace offering. In Mango terms this is called Public Marketplace. To deploy an app to the phone currently you must do one of the following.</p>
<p><strong>Developer Account:&#160; </strong>Sign up for a developer account at <a href="http://create.msdn.com/">AppHub</a> ($99 USD).&#160; Unlock your developer phones and sideload the app.&#160; Limited to 10 sideloaded apps on the phone at any one time. </p>
<p><strong>Jailbreak:</strong> Find a way to jail break your phone, then side load apps.</p>
<p><strong>Public Marketplace:</strong>&#160; Sign up for a developer account at AppHub.&#160; Upload your app to the AppHub server.&#160; The app will go through the certification process and if approved it is published to the marketplace.</p>
<p>Public apps are available for anyone with a phone and can be discovered by searching the Zune Marketplace.&#160; The apps must pass certification before being published.&#160; </p>
<h3>Beta Marketplace</h3>
<p>Currently if you want to test a new WP7 app you email a few of your developer friends and ask them if they will sideload your XAP onto their phone.&#160; The new Beta Marketplace will make testing pre-release apps easier.</p>
<p>With Beta Marketplace you solicit testers for your upcoming release. These users can be company employees, or they can come from from the general public. If they volunteer they must provide you with their LiveIDs.&#160; You can have up to 100 testers per beta marketplace.&#160; The developer adds the tester LiveIDs to the beta marketplace and sends an invitation email to the tester. The invitation email includes a deep link to the beta XAP.&#160; </p>
<p>Tester must login to Zune before they can install the beta application. If they are not on the approved list, they will not be able to install the application.</p>
<p>This is good.&#160; The tester does not have to be a developer, doesn&#8217;t have to an unlocked phone and Microsoft controls the whether they can install the application.</p>
<p>Each beta marketplace is open for 90 days and then is automatically closed.&#160; Though not stated by Microsoft I believe you can create more than one beta marketplace( to add more than 100 users). Obviously you can create other beta marketplaces as you release improved versions of your beta app.</p>
<p>Since you are releasing a beta, Microsoft doesn&#8217;t require the app to go through certification.&#160; That means you can upload the XAP and instantly have it available to your tester community.</p>
<h3>Private Marketplace</h3>
<p>Some would call this the Enterprise Marketplace.&#160; I&#8217;d say that they need to listen to what Microsoft said at Mix11.</p>
<blockquote><p>&quot;It is not an enterprise software distribution mechanism, by any means, but it is a way of distributing applications and games to a set of users &quot;&#160; -Todd Brix</p>
</blockquote>
<p>The only difference between a Private and Public marketplace is the ease of discoverability to the general public.&#160; Because the app in not listed in the Zune marketplace, you cannot search and find the app. Therefore, in order to distribute the app you must send a deep link to your intended audience.&#160; </p>
<p>Other than the discoverability difference your app is handled the same as a public marketplace app. It must pass certification. It can be updated to a new version and users will automatically received update notifications.&#160; You can create a free or paid version of your app.&#160; </p>
<p>You can share the app deep link with friends, magazine writers, bloggers etc. and they can preview and use the application.&#160; Since the app is certified, you can easily change it to public at a later time.&#160; </p>
<h3>Enterprise Marketplace</h3>
<p>Microsoft has not announced an Enterprise marketplace yet.&#160; That hasn&#8217;t stopped some people from assuming that the Private marketplace is the enterprise solution however. In fact I made the same mistake when I was live tweeting the Mix11 event this week.</p>
<p>Here is what make Private marketplaces unsuitable for enterprise distribution.</p>
<h4>Private by obscurity</h4>
<p>You give your users a deep link to the the application that takes them to the install page.&#160; The app is not listed in the Marketplace, or findable through marketplace search. But if they share the deep link with with another phone user, then that friend can install that app too.&#160; My guess it that the community will figure out how to find private deep links within days of the release of Mango.</p>
<h4>No access control:&#160; </h4>
<p>Any phone user can install your application, provided they can find the deep link.&#160; There is no way to restrict access to a set of users, like in the beta marketplace.</p>
<h3>Summary</h3>
<p>I&#8217;m really excited about the Beta marketplace as it makes it easy to test and share applications with a list of users.&#160; I don&#8217;t see much benefit from Private marketplaces yet, perhaps I don&#8217;t understand the use case for them.</p>
<p>I&#8217;m severely disappointed that Microsoft hasn&#8217;t produced a better enterprise story.&#160; I hope they are waiting until later in the Mango lifecycle to share there plans for real enterprise deployment.&#160; </p>
<p>Here is a table that summarizes the differences between the proposed new marketplaces.</p>
<table border="0" cellspacing="0" cellpadding="2" width="565">
<tbody>
<tr>
<td valign="top" width="161"><strong>Details</strong></td>
<td valign="top" width="81"><strong>Public</strong></td>
<td valign="top" width="113"><strong>Private</strong></td>
<td valign="top" width="208"><strong>Beta</strong></td>
</tr>
<tr>
<td valign="top" width="161"><strong># of Users</strong></td>
<td valign="top" width="81">Unlimited</td>
<td valign="top" width="113">Unlimited</td>
<td valign="top" width="208">100</td>
</tr>
<tr>
<td valign="top" width="161"><strong>App Price</strong></td>
<td valign="top" width="81">Free, Paid</td>
<td valign="top" width="113">Free, Paid</td>
<td valign="top" width="208">Free</td>
</tr>
<tr>
<td valign="top" width="161"><strong>Lifetime</strong></td>
<td valign="top" width="81">Forever</td>
<td valign="top" width="113">Forever</td>
<td valign="top" width="208">Closed after 90 days</td>
</tr>
<tr>
<td valign="top" width="161"><strong>Updateable</strong></td>
<td valign="top" width="81">Yes</td>
<td valign="top" width="113">Yes</td>
<td valign="top" width="208">No</td>
</tr>
<tr>
<td valign="top" width="161"><strong>Publicly Discoverable</strong></td>
<td valign="top" width="81">Yes</td>
<td valign="top" width="113">No</td>
<td valign="top" width="208">No</td>
</tr>
<tr>
<td valign="top" width="161"><strong>Access Control</strong></td>
<td valign="top" width="81">None</td>
<td valign="top" width="113">None</td>
<td valign="top" width="208">Restricted to published list of Live ID&#8217;s</td>
</tr>
<tr>
<td valign="top" width="161"><strong>Certification Required</strong></td>
<td valign="top" width="81">Yes</td>
<td valign="top" width="113">Yes</td>
<td valign="top" width="208">No</td>
</tr>
<tr>
<td valign="top" width="161">&nbsp;</td>
<td valign="top" width="81">&nbsp;</td>
<td valign="top" width="113">&nbsp;</td>
<td valign="top" width="208">&nbsp;</td>
</tr>
</tbody>
</table>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2012/01/09/tracking-expression-blend-4-version-numbers/" rel="bookmark" class="crp_title">Tracking Expression Blend 4 version numbers</a></li><li><a href="http://blog.wpfwonderland.com/2011/10/01/speed-boosts-are-real-in-windows-phone-75-mango/" rel="bookmark" class="crp_title">Speed boosts are real in Windows phone 7.5 (Mango)</a></li><li><a href="http://blog.wpfwonderland.com/2009/07/10/trouble-installing-silverlight-3-on-developer-computer/" rel="bookmark" class="crp_title">Install Error &#8211;  Silverlight 3 on Developer Computer</a></li><li><a href="http://blog.wpfwonderland.com/2007/01/28/comparing-wpf-applications-and-xbap-whats-the-difference/" rel="bookmark" class="crp_title">Comparing WPF applications and XBAP &#8211; What&#8217;s the difference?</a></li><li><a href="http://blog.wpfwonderland.com/2010/04/14/windows-phone-7-tidbit-3-required-hardware-camera/" rel="bookmark" class="crp_title">Windows Phone 7 &ndash; Tidbit #3: Required Hardware Camera</a></li><li><a href="http://blog.wpfwonderland.com/2010/04/12/window-phone-7-tidbit-1-hardware-buttons/" rel="bookmark" class="crp_title">Window Phone 7 &ndash; Tidbit #1: Hardware Buttons</a></li><li><a href="http://blog.wpfwonderland.com/2007/01/04/installing-net-30-creating-a-wpf-application/" rel="bookmark" class="crp_title">Installing .NET 3.0 &#8211; Creating a WPF application</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Open Source Fest at Mix11</title>
		<link>http://blog.wpfwonderland.com/2011/04/15/open-source-fest-at-mix11/</link>
		<comments>http://blog.wpfwonderland.com/2011/04/15/open-source-fest-at-mix11/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 16:27:42 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[MIX]]></category>
		<category><![CDATA[Shazzam]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/04/15/open-source-fest-at-mix11/</guid>
		<description><![CDATA[Trade conferences are a steady companion for the tech industry. And it not just for tech people. Gathering together in crowd for annual events is a human need.&#160; We all do it.&#160; Look at the thousands of different conference held each year.&#160;&#160; Las Vegas&#8217;s economy is anchored to this obvious pattern.&#160; Well, Vegas also caters [...]]]></description>
			<content:encoded><![CDATA[<p>Trade conferences are a steady companion for the tech industry. And it not just for tech people. Gathering together in crowd for annual events is a human need.&#160; We all do it.&#160; Look at the thousands of different conference held each year.&#160;&#160; Las Vegas&#8217;s economy is anchored to this obvious pattern.&#160; Well, Vegas also caters to other human needs like gambling but you get the point.</p>
<p>What happens at conferences changes over time though.&#160; For example, in the last few years the lightning session has appeared.&#160;&#160; The idea: gather a handful of speakers, give each one a short time slot ( say 10 minutes), auto run the PowerPoint&#8217;s and have some fun. </p>
<h3>Mix adds new event</h3>
<p>So what about MIX11? I participated in one of these new ideas Monday night at Mix11, at least its new for a major Microsoft conference.&#160; Microsoft hosted an pre-conference event call Open Source Fest.&#160; </p>
<blockquote><p>Open Source Fest is an event for open source project leaders to come and show off their great open source projects.&#160; It will be <strong>open to all MIX11 attendees </strong>and those in attendance can vote on their favorite open source projects. The winners will get a prize and some recognition at MIX11, but the key is the chance to showcase the open source projects by the community, stir the collective brainpower, and network. There will be food, drinks, a fun atmosphere, and a chance to meet many of the MIX11 speakers and attendees. Voting results will be announced at MIX11</p>
</blockquote>
<p>About three weeks before the show John Papa extended an invitation to .NET based open source project owner to participated in the event. Fifty people volunteered to show their open source project during the evening.&#160;&#160; I decided to show my <a href="http://shazzam-tool.com/">Shazzam Shader Editor</a>. </p>
<p>Microsoft sponsored the event, provided the space, loaded a buffet table with free food and stocked the bar with free drinks. No one knew what to expect, as this was the debut for an event of this type.&#160; It was a great success, 500 people showed up and spent the evening seeing .NET projects and talking to the project developers.</p>
<h2>Positive Buzz</h2>
<p>I heard a lot of buzz about the event over the next couple days.&#160; The number one comment I heard was &quot;I couldn&#8217;t believe how many great projects there were in the room.&quot; The attendees seemed to think it was a great event. Here&#8217;s why I think that is true.</p>
<p>1. Developer to Developer.&#160; The people attending were overwhelmingly programmers or part of the software industry.&#160; The presenters, were developers too.&#160; I had wonderful conversations about how I implemented features or how to use Shazzam in attendees own projects.</p>
<p>2. Passion.&#160; Every presenter I talked to was crazy happy to talk about their project.&#160; You could feel the love for their work.&#160; And the feeling multiplied throughout the evening.&#160; Walk 5 feet to the next table and hear another impassioned&#160; developer describing his application.</p>
<p>3. No sales.&#160; These were not vendor tables.&#160; No pressure to look at a tool and hear a sales pitch.</p>
<p>4. Real users.&#160; I had many people tell me that they used our tool and were grateful that it was there.&#160; Putting real faces on the people that use your tool is heartwarming.</p>
<p>I&#8217;d love to see this event next year at Mix12.</p>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2007/04/24/bloggers-welcomed-with-open-arms-at-mix07-las-vegas/" rel="bookmark" class="crp_title">Bloggers welcomed with open arms at Mix07 Las Vegas</a></li><li><a href="http://blog.wpfwonderland.com/2007/04/29/mix07-non-microsoft-speakers-dave-winer-miguel-de-icaza-and-whurley-on-stage/" rel="bookmark" class="crp_title">Mix07 &#8211; Non Microsoft speakers (Dave Winer, Miguel de Icaza and whurley) on stage</a></li><li><a href="http://blog.wpfwonderland.com/2007/03/25/standing-room-only-wpf-talks/" rel="bookmark" class="crp_title">Standing room only &#8211; WPF talks</a></li><li><a href="http://blog.wpfwonderland.com/2011/04/15/mango-adds-beta-and-private-marketplaces-to-windows-phone-7-and-neglects-enterprise/" rel="bookmark" class="crp_title">Mango adds Beta and Private Marketplaces to Windows Phone 7 and neglects Enterprise</a></li><li><a href="http://blog.wpfwonderland.com/2007/04/26/wintellect-at-mix07/" rel="bookmark" class="crp_title">Wintellect at Mix07</a></li><li><a href="http://blog.wpfwonderland.com/2007/11/18/using-popfly-explorer-for-visual-studio/" rel="bookmark" class="crp_title">Using Popfly Explorer for Visual Studio</a></li><li><a href="http://blog.wpfwonderland.com/2009/02/23/silverlightcontrib-nice-open-source-library/" rel="bookmark" class="crp_title">SilverlightContrib &#8211; Nice Open Source Library</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/04/15/open-source-fest-at-mix11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Images and memory leaks in Windows Phone 7</title>
		<link>http://blog.wpfwonderland.com/2011/01/17/images-and-memory-leaks-in-windows-phone-7/</link>
		<comments>http://blog.wpfwonderland.com/2011/01/17/images-and-memory-leaks-in-windows-phone-7/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 07:00:12 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/01/17/images-and-memory-leaks-in-windows-phone-7/</guid>
		<description><![CDATA[Conserving memory is a huge issue in Windows Phone 7 programming.&#160; You must be diligent in checking your memory footprint during development for obvious reasons.&#160;&#160; For one, your application is destined to run on a limited resource device.&#160; For another, Microsoft will refuse to certify your app if you exceed the memory limits.&#160; Here&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p>Conserving memory is a huge issue in Windows Phone 7 programming.&#160; You must be diligent in checking your memory footprint during development for obvious reasons.&#160;&#160; For one, your application is destined to run on a limited resource device.&#160; For another, Microsoft will refuse to certify your app if you exceed the memory limits.&#160; Here&#8217;s the relevant section of the certification guidelines.</p>
<blockquote><p>5.2.5&#160; Memory Consumption      <br />An application must not exceed 90 MB of RAM usage, except on devices that have more than 256 MB of memory. You can use the DeviceExtendedProperties class to query the amount of memory that is available on the device and modify the application behavior at runtime to take advantage of       <br />additional memory.</p>
</blockquote>
<h2><font color="#666666">Keeping an eye on memory</font></h2>
<p><font color="#666666"></font>As stated above, you can use the DeviceExtendedProperties to check memory use.&#160; Like many tools you have to be careful how you use it.&#160; For example, you may not want to use it on release builds because it adds another capability requirement to your phone manifest.&#160; The good news is someone (Peter Torr) has build a nice wrapper for this functionality.</p>
<p>I use Peter Torr&#8217;s MemoryDiagnosticsHelper in my applications.&#160;&#160; It monitors memory, shows an additional memory counter during debugging and uses Debug.Assert to alert you when you exceed the 90MB ceiling.&#160; Read more <a href="https://blogs.msdn.com/b/ptorr/archive/2010/10/30/that-memory-thing-i-promised-you.aspx">about his too</a>l at his blog.</p>
<h2>Leaking memory with images</h2>
<p>I&#8217;m working on a application that has a ton of images.&#160; I don&#8217;t have the luxury of lazy loading the images from a server for this application and the images are constantly being swapped and animated on the screen.</p>
<p>Images are memory hogs on the phone.&#160; You might think that your 85K .PNG file is small.&#160; But when it get placed into your application memory it is much larger that 85K.&#160; I&#8217;ve heard that even these small files can consume as much as 2MB in memory. Short story, you need to ensure that images are removed from your app memory if they are not in use.</p>
<p><font color="#333333">For me I found that sometimes I need to specifically remove an image from its panel before the memory can be garbage collected.&#160; In my app, when I made the following change I dropped ~20MB in memory usage.</font></p>
<p>&#160;</p>
<pre class="code">grid1.Children.Remove(image1);
image1 = <span style="color: blue">null</span>;</pre>
<pre class="code"><font face="Verdana">Hope this helps.</font></pre>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2010/10/07/debug-memory-counters-on-windows-phone-7/" rel="bookmark" class="crp_title">Debug Memory counters on Windows Phone 7</a></li><li><a href="http://blog.wpfwonderland.com/2009/11/02/october-2009-version-of-composite-wpfprism-released/" rel="bookmark" class="crp_title">October 2009 version of Composite WPF(Prism) released</a></li><li><a href="http://blog.wpfwonderland.com/2007/04/10/the-complexity-behind-wpf-3d/" rel="bookmark" class="crp_title">The complexity behind WPF 3D</a></li><li><a href="http://blog.wpfwonderland.com/2010/10/29/fix-for-adcontrol-failure-on-windows-phone-7/" rel="bookmark" class="crp_title">Fix for AdControl failure on Windows Phone 7</a></li><li><a href="http://blog.wpfwonderland.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/" rel="bookmark" class="crp_title">Mixing external MergedDictionaries with local resources in App.xaml</a></li><li><a href="http://blog.wpfwonderland.com/2010/11/01/using-microsoftadvertisingmobileui-increases-your-security-footprint/" rel="bookmark" class="crp_title">Using Microsoft.advertising.Mobile.UI increases your security footprint</a></li><li><a href="http://blog.wpfwonderland.com/2007/01/01/wpfe-example-the-game-of-life/" rel="bookmark" class="crp_title">WPFe (Silverlight) Example &#8211; the game of life</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/01/17/images-and-memory-leaks-in-windows-phone-7/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Customize Windows 7 Preview pane for XAML files</title>
		<link>http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/</link>
		<comments>http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 20:33:42 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/</guid>
		<description><![CDATA[There are times when I want to preview file content in Windows Explorer.&#160; The Preview pane in Explorer makes this a simple task.&#160; Just click the Preview pane button and select the file as shown in Figure 1 and Figure 2. Figure 1: The preview pane button. &#160; Figure 2: Viewing a .txt file. In [...]]]></description>
			<content:encoded><![CDATA[<p>There are times when I want to preview file content in Windows Explorer.&#160; The Preview pane in Explorer makes this a simple task.&#160; Just click the Preview pane button and select the file as shown in Figure 1 and Figure 2.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/01/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2011/01/image-thumb.png" width="404" height="346" /></a></p>
<p>Figure 1: The preview pane button.</p>
<p>&#160;</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/01/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2011/01/image-thumb1.png" width="404" height="291" /></a></p>
<p>Figure 2: Viewing a .txt file.</p>
<p>In this example I am previewing a .txt file.&#160;&#160; Use the Ctrl + mouse wheel to change the zoom level on the text. Also, ALT+P toggles the preview pane.</p>
<h2>Adding your own extensions</h2>
<p>Making a simple registry edit allows you to see other files, like .csproj and .xaml, in the preview pane.</p>
<p>Here&#8217;s how I did the XAML extension (see Figure 3).&#160;&#160; </p>
<ul>
<li>Open the HKEY_CLASSES_ROOT\.xaml key in Regedit.&#160; </li>
<li>Add a string key named PerceivedType. </li>
<li>Set the value of the PerceivedType key to &#8216;text&#8217;.</li>
</ul>
<p>&#160;</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/01/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2011/01/image-thumb2.png" width="404" height="147" /></a></p>
<p>Figure 3:&#160; Adding a registry key.</p>
<p>&#160;</p>
<p>Now you can preview the content. </p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2011/01/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2011/01/image-thumb3.png" width="404" height="282" /></a></p>
<p>Figure 4: Viewing the .xaml file</p>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/" rel="bookmark" class="crp_title">Where is that #% symbol key in Windows Phone 7</a></li><li><a href="http://blog.wpfwonderland.com/2009/08/12/easy-way-to-create-imagebrush-in-expression-blend-3/" rel="bookmark" class="crp_title">Easy Way to Create ImageBrush in Expression Blend 3</a></li><li><a href="http://blog.wpfwonderland.com/2012/01/10/expression-blend-4-mru-location/" rel="bookmark" class="crp_title">Expression Blend 4, MRU location</a></li><li><a href="http://blog.wpfwonderland.com/2010/09/30/accented-characters-in-the-windows-phone-7-keyboard/" rel="bookmark" class="crp_title">Accented characters in the Windows Phone 7 keyboard</a></li><li><a href="http://blog.wpfwonderland.com/2009/06/29/disable-autoplay-on-silverlight-video-in-expression-encoder-2-sp1/" rel="bookmark" class="crp_title">Disable Autoplay on Silverlight Video in Expression Encoder 2 SP1</a></li><li><a href="http://blog.wpfwonderland.com/2010/10/04/sizeable-yet-square-content-control/" rel="bookmark" class="crp_title">Sizeable, yet square, content control</a></li><li><a href="http://blog.wpfwonderland.com/2011/09/21/shifting-the-order-of-ienumerable-group-with-linq/" rel="bookmark" class="crp_title">Shifting the order of IEnumerable group with LINQ</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Where is that #% symbol key in Windows Phone 7</title>
		<link>http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/</link>
		<comments>http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 22:40:20 +0000</pubDate>
		<dc:creator>Walt Ritscher</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/</guid>
		<description><![CDATA[Microsoft created a compact on-screen keyboard for the Windows Phone 7.&#160; The keyboard is winning praise among users for being fast and easy to use, even if you have big fingers.&#160; But there is one task that seems to stump a lot of new users ; how to find certain symbol keys&#160; on the keyboard. [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft created a compact on-screen keyboard for the Windows Phone 7.&#160; The keyboard is winning praise among users for being fast and easy to use, even if you have big fingers.&#160; But there is one task that seems to stump a lot of new users ; how to find certain symbol keys&#160; on the keyboard.</p>
<p>I know from my own experience, it happened to me when I first started using the phone.&#160; I needed to enter a passcode for a locked wireless network while in Europe a few weeks ago.&#160; I couldn&#8217;t find the underscore key.&#160; Until I remembered that the phone has two pages of symbols.</p>
<p>&#160;</p>
<p>Finding the symbol keyboard is easy. Most people guess that you press the &#8216;&amp;123&#8242; key.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2010/11/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2010/11/image-thumb1.png" width="354" height="250" /></a>&#160;&#160; </p>
<p>Figure 1:&#160; The main alpha keyboard.</p>
<p>&#160;</p>
<p>That takes you to the number/symbol page as show in Figure 2.</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2010/11/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2010/11/image-thumb2.png" width="354" height="304" /></a></p>
<p>Figure 2:&#160; The number/symbol keyboard.</p>
<p>&#160;</p>
<p>This is where people start getting panicky.&#160;&#160; Where are the square braces?&#160; What about the underscore or equal sign?&#160; </p>
<p>They are on the second page of the number/symbol keyboard.&#160; Just click the -&gt; arrow in the lower left to see the second page (Figure 3).</p>
<p><a href="http://blog.wpfwonderland.com/wp-content/uploads/2010/11/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 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://blog.wpfwonderland.com/wp-content/uploads/2010/11/image-thumb3.png" width="354" height="248" /></a></p>
<p>Figure 3:&#160; Alternate number/symbol keyboard.</p>
<p>&#160;</p>
<p>Click the&#160; &lt;- arrow to return to the first symbol page.</p>
<p>&#160;</p>
<h3>See my other keyboard tips</h3>
<p><a href="http://blog.wpfwonderland.com/2010/09/30/accented-characters-in-the-windows-phone-7-keyboard/">Accented characters on the Keyboard</a></p>
<p><a href="http://blog.wpfwonderland.com/2010/11/09/press-and-hold-technique-enter-punctuation-characters-for-windows-phone-7/">Punctuation shortcuts on the Keyboard</a></p>
<p>&#160;</p>
<p>===========================</p>
<p>Learn about Silverlight with <a href="http://lynda.com/waltritscher">online Silverlight videos</a>.&#160; What are you waiting for?</p>
<div id="crp_related"><h3>Additional Reading: Similar Posts</h3><ul><li><a href="http://blog.wpfwonderland.com/2010/11/09/press-and-hold-technique-enter-punctuation-characters-for-windows-phone-7/" rel="bookmark" class="crp_title">Press and Hold technique: Enter punctuation characters for Windows Phone 7</a></li><li><a href="http://blog.wpfwonderland.com/2010/09/30/accented-characters-in-the-windows-phone-7-keyboard/" rel="bookmark" class="crp_title">Accented characters in the Windows Phone 7 keyboard</a></li><li><a href="http://blog.wpfwonderland.com/2011/01/15/customize-windows-7-preview-pane-for-xaml-files/" rel="bookmark" class="crp_title">Customize Windows 7 Preview pane for XAML files</a></li><li><a href="http://blog.wpfwonderland.com/2010/04/12/window-phone-7-tidbit-1-hardware-buttons/" rel="bookmark" class="crp_title">Window Phone 7 &ndash; Tidbit #1: Hardware Buttons</a></li><li><a href="http://blog.wpfwonderland.com/2009/06/29/disable-autoplay-on-silverlight-video-in-expression-encoder-2-sp1/" rel="bookmark" class="crp_title">Disable Autoplay on Silverlight Video in Expression Encoder 2 SP1</a></li><li><a href="http://blog.wpfwonderland.com/2010/09/18/windows-phone-7-resources-for-rtm/" rel="bookmark" class="crp_title">Windows Phone 7 Resources for RTM</a></li><li><a href="http://blog.wpfwonderland.com/2010/08/20/zune-marketplace-100-growth-in-the-windows-phone-7-sector/" rel="bookmark" class="crp_title">Zune Marketplace 100% growth in the Windows Phone 7 sector</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://blog.wpfwonderland.com/2010/11/12/where-is-that-symbol-key-in-windows-phone-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

