<?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>Danny Thorpe &#187; Live Mesh</title>
	<atom:link href="http://dannythorpe.com/tag/live-mesh/feed/" rel="self" type="application/rss+xml" />
	<link>http://dannythorpe.com</link>
	<description></description>
	<lastBuildDate>Mon, 07 Jun 2010 17:57:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Updated Release Notes for Live Framework Tools April CTP</title>
		<link>http://dannythorpe.com/2009/03/19/updated-release-notes-for-live-framework-tools-april-ctp/</link>
		<comments>http://dannythorpe.com/2009/03/19/updated-release-notes-for-live-framework-tools-april-ctp/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 00:57:03 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/03/19/updated-release-notes-for-live-framework-tools-april-ctp/</guid>
		<description><![CDATA[Amidst the fanfare and excitement of Mix09 this week, we&#8217;ve received reports on the discussion forum from a few folks that were having trouble with the Live Framework SDK and Tools April CTP released last week.  Here&#8217;s an update on that issue.
Issue: Visual Studio closes unexpectedly when launching Help: About or when creating or opening [...]]]></description>
			<content:encoded><![CDATA[<p>Amidst the fanfare and excitement of <a href="http://2009.visitmix.com">Mix09</a> this week, we&#8217;ve received reports on the discussion forum from a few folks that were having trouble with the <a href="http://dannythorpe.com/2009/03/12/live-framework-sdk-and-tools-april-ctp-release/">Live Framework SDK and Tools April CTP</a> released last week.  Here&#8217;s an update on that issue.</p>
<p><strong>Issue:</strong> Visual Studio closes unexpectedly when launching Help: About or when creating or opening a Live Mesh project in some non-ENU operating systems.</p>
<p><strong>Workaround:</strong> Modify or add the following registry key to a value of &#8220;False&#8221;:</p>
<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 12" /><meta name="Originator" content="Microsoft Word 12" /></p>
<link href="file:///C:%5CUsers%5Cdthorpe%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" />
<link href="file:///C:%5CUsers%5Cdthorpe%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" />
<link href="file:///C:%5CUsers%5Cdthorpe%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:TrackMoves/>   <w:TrackFormatting/>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:DoNotPromoteQF/>   <w:LidThemeOther>EN-US</w:LidThemeOther>   <w:LidThemeAsian>ZH-TW</w:LidThemeAsian>   <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>    <w:SplitPgBreakAndParaMark/>    <w:DontVertAlignCellWithSp/>    <w:DontBreakConstrainedForcedTables/>    <w:DontVertAlignInTxbx/>    <w:Word11KerningPairs/>    <w:CachedColBalance/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>   <m:mathPr>    <m:mathFont m:val="Cambria Math"/>    <m:brkBin m:val="before"/>    <m:brkBinSub m:val="&#45;-"/>    <m:smallFrac m:val="off"/>    <m:dispDef/>    <m:lMargin m:val="0"/>    <m:rMargin m:val="0"/>    <m:defJc m:val="centerGroup"/>    <m:wrapIndent m:val="1440"/>    <m:intLim m:val="subSup"/>    <m:naryLim m:val="undOvr"/>   </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267">   <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/>   <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>   <w:LsdException Locked="false" Priority="39" Name="toc 1"/>   <w:LsdException Locked="false" Priority="39" Name="toc 2"/>   <w:LsdException Locked="false" Priority="39" Name="toc 3"/>   <w:LsdException Locked="false" Priority="39" Name="toc 4"/>   <w:LsdException Locked="false" Priority="39" Name="toc 5"/>   <w:LsdException Locked="false" Priority="39" Name="toc 6"/>   <w:LsdException Locked="false" Priority="39" Name="toc 7"/>   <w:LsdException Locked="false" Priority="39" Name="toc 8"/>   <w:LsdException Locked="false" Priority="39" Name="toc 9"/>   <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>   <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/>   <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>   <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>   <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/>   <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>   <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>   <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>   <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>   <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/>   <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenU<br />
sed="false" Name="Light Grid Accent 2"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="fals<br />
e" Name="Colorful List Accent 6"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>   <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>   <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>   <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>   <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>   <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>   <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>   <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>  </w:LatentStyles> </xml><![endif]--></p>
<style> <!--  /* Font Definitions */  @font-face 	{font-family:PMingLiU; 	panose-1:2 2 5 0 0 0 0 0 0 0; 	mso-font-alt:????; 	mso-font-charset:136; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611969 684719354 22 0 1048577 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:"\@PMingLiU"; 	panose-1:2 2 5 0 0 0 0 0 0 0; 	mso-font-charset:136; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611969 684719354 22 0 1048577 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:PMingLiU; 	mso-fareast-theme-font:minor-fareast; 	mso-bidi-font-family:"Times New Roman";} p 	{mso-style-noshow:yes; 	mso-style-priority:99; 	mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:PMingLiU; 	mso-fareast-theme-font:minor-fareast;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]></p>
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:PMingLiU; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} </style>
<p> <![endif]--></p>
<p><span style="font-size: 10pt">HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Cloud Computing Tools\Update Notification\AutomaticUpdatesEnabled=&#8221;False&#8221;<o:p></o:p></span></p>
<p>This will resolve the issue so that you can get back to exploring the new tools in VS.</p>
<p>Keep an eye here or on the <a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads">Live Framework discussion forum</a> for further updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/03/19/updated-release-notes-for-live-framework-tools-april-ctp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Framework SDK and Tools April CTP Release</title>
		<link>http://dannythorpe.com/2009/03/12/live-framework-sdk-and-tools-april-ctp-release/</link>
		<comments>http://dannythorpe.com/2009/03/12/live-framework-sdk-and-tools-april-ctp-release/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 23:56:21 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/03/12/live-framework-sdk-and-tools-april-ctp-release/</guid>
		<description><![CDATA[I&#8217;m pleased to announce that we have released our April CTP release of the Live Framwork SDK and Tools in preparation for MIX09 next week.  For full details see the official announcement on the Live Framework blog, but here are the highlights:

You can now run the local client for mesh.com side by side with the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce that we have released our April CTP release of the Live Framwork SDK and Tools in preparation for <a href="http://2009.visitmix.com/">MIX09</a> next week.  For full details see the official announcement on the <a href="http://blogs.msdn.com/liveframework/archive/2009/03/11/live-framework-updated.aspx">Live Framework blog</a>, but here are the highlights:</p>
<ol>
<li>You can now run the local client for mesh.com side by side with the local client for developer.mesh-ctp.com.</li>
<li>Support for Windows 7 and IE8</li>
<li>Single install for the Live Framework SDK and VS Tools &#8211; no more chasing down multiple bits and pieces to install in the right order!</li>
<li>Continuing on that &#8220;chasing down bits&#8221; theme, auto update introduced in the January CTP release will bring this new release to you.  If you enabled auto update in the January CTP release, it should notify you now (in the next 24 hours or so) that the April CTP is available and give you a link to click on to get the update.</li>
</ol>
<p>I say, this whole thing is beginning to feel downright civilized.  Wouldn&#8217;t you agree?</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/03/12/live-framework-sdk-and-tools-april-ctp-release/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Live Framework Tools January 2009 CTP Release</title>
		<link>http://dannythorpe.com/2009/02/02/live-framework-tools-january-2009-ctp-release/</link>
		<comments>http://dannythorpe.com/2009/02/02/live-framework-tools-january-2009-ctp-release/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 19:02:33 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[LiveFX]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/02/02/live-framework-tools-january-2009-ctp-release/</guid>
		<description><![CDATA[The Live Framework Tools team is pleased to announce the January CTP update. This update contains a number of fixes.  Please see below for details. And as always, thank you for using Live Framework.
New in this release
The Live Framework Tools January CTP includes a number of bug fixes.  A few of the most notable fixes [...]]]></description>
			<content:encoded><![CDATA[<p>The Live Framework Tools team is pleased to announce the <a href="https://connect.microsoft.com/liveframework/Downloads/DownloadDetails.aspx?DownloadID=16298">January CTP update</a>. This update contains a number of fixes.  Please see below for details. And as always, thank you for using Live Framework.</p>
<h3>New in this release</h3>
<p>The <a href="https://connect.microsoft.com/liveframework/Downloads/DownloadDetails.aspx?DownloadID=16298">Live Framework Tools January CTP</a> includes a number of bug fixes.  A few of the most notable fixes are listed below:</p>
<ul>
<li>Debugging or running a Mesh-enabled Web Application which contains no changes from previous versions immediately launches the application instead of re-uploading the files. </li>
<li>Mesh-enabled Web Applications created by the Live Framework Tools now have identical offers to those created through the Azure Services Developer Portal, which are generally less restrictive.  This change removes the need for the workaround mentioned in <a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/695f4201-7ab3-4942-bf45-b929f75f2237">this thread</a>. </li>
<li>Projects created by the Live Framework Tools may now contain periods fixing the issue reported in <a href="https://connect.microsoft.com/liveframework/feedback/ViewFeedback.aspx?FeedbackID=384855&amp;wa=wsignin1.0">this bug</a>.</li>
<li>Changes to the application&#8217;s logo.png file will now be reflected in the icon that appears on the Live Desktop fixing the issue reported in <a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/31ed7183-016a-4245-9503-074f572dc77d/">this thread</a>.</li>
<li>Error messages and diagnostics have been improved.  In certain error situations additional information can now be located in the application event log.</li>
</ul>
<p>In addition to the fixes listed above, the January CTP includes a feature that will offer to notify you of any future updates to the Live Framework Tools. </p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/02/02/live-framework-tools-january-2009-ctp-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Mesh Wins &#8220;Best Technology Innovation/Achievement&#8221; Crunchies Award</title>
		<link>http://dannythorpe.com/2009/01/12/live-mesh-wins-best-technology-innovationachievement-crunchies-award/</link>
		<comments>http://dannythorpe.com/2009/01/12/live-mesh-wins-best-technology-innovationachievement-crunchies-award/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:00:29 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[award]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[CoolIris]]></category>
		<category><![CDATA[Crunchies]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[PicLens]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/01/12/live-mesh-wins-best-technology-innovationachievement-crunchies-award/</guid>
		<description><![CDATA[Microsoft&#8217;s Live Mesh was awarded top honors in the &#8220;Best Technology Innovation/Achievement&#8221; category at the Crunchies Awards on Jan 10, beating out other nominees in the category including Facebook Connect and Google Chrome.  Live Mesh is a file sharing application that enables users to access their data from a variety of devices, while online or [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft&#8217;s <a href="http://mesh.com">Live Mesh</a> was <a href="http://blogs.msdn.com/livemesh/archive/2009/01/09/live-mesh-awarded-best-technology-innovation-achievement-crunchie.aspx">awarded top honors</a> in the &#8220;Best Technology Innovation/Achievement&#8221; category at the <a href="http://www.techcrunch.com/2009/01/10/congratulations-to-the-crunchies-winners-facebook-takes-top-prize-for-second-year/">Crunchies Awards on Jan 10</a>, beating out other nominees in the category including Facebook Connect and Google Chrome.  Live Mesh is a file sharing application that enables users to access their data from a variety of devices, while online or offline.</p>
<p>The Crunchies awards are determined by popular vote of the general public. Thank you to everyone who voted!</p>
<p>Congratulations also to my colleagues at <a href="http://cooliris.com">Cooliris</a> for <a href="http://blog.cooliris.com/2009/01/12/cooliris-wins-best-design-at-the-crunchies/">winning the &#8220;Best Design&#8221; Crunchie</a> for the Cooliris (nee PicLens) 3D immersive browser extension! Well done!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/01/12/live-mesh-wins-best-technology-innovationachievement-crunchies-award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Mesh Nominated for Crunchies Award</title>
		<link>http://dannythorpe.com/2008/12/30/live-mesh-nominated-for-crunchies-award/</link>
		<comments>http://dannythorpe.com/2008/12/30/live-mesh-nominated-for-crunchies-award/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 20:08:50 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[award]]></category>
		<category><![CDATA[CoolIris]]></category>
		<category><![CDATA[Crunchies]]></category>
		<category><![CDATA[GigaOm]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PicLens]]></category>
		<category><![CDATA[Silicon Alley Insider]]></category>
		<category><![CDATA[TechCrunch]]></category>
		<category><![CDATA[VentureBeat]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/12/30/live-mesh-nominated-for-crunchies-award/</guid>
		<description><![CDATA[Microsoft&#8217;s Live Mesh platform has been nominated for the 2008 Crunchies &#8220;Best Technology Innovation/Achievement&#8221; award!  The winner will be determined by public vote, so get yourself over to http://crunchies2008.techcrunch.com/votes/ to cast your vote for your favorite technologies of 2008.
The Crunchies competition and award ceremony recognizes and celebrates the most compelling startups, internet and technology innovations of [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft&#8217;s Live Mesh platform has been nominated for the 2008 Crunchies &#8220;Best Technology Innovation/Achievement&#8221; award!  The winner will be determined by public vote, so get yourself over to <a href="http://crunchies2008.techcrunch.com/votes/">http://crunchies2008.techcrunch.com/votes/</a> to cast your vote for your favorite technologies of 2008.</p>
<p>The Crunchies competition and award ceremony recognizes and celebrates the most compelling startups, internet and technology innovations of the year. The Crunchies is co-hosted by <a rel="nofollow" href="http://gigaom.com/">GigaOm</a>, <a rel="nofollow" href="http://venturebeat.com/">VentureBeat</a>, <a rel="nofollow" href="http://alleyinsider.com/">Silicon Alley Insider</a>, and <a rel="nofollow" href="http://techcrunch.com/">TechCrunch</a>. The internet community is invited to choose who wins.</p>
<p>Oh, and my old stomping ground, <a href="http://www.cooliris.com">Cooliris</a> (nee PicLens), has also been nominated for a Crunchy in the &#8221;Best Design&#8221; category. Way to go, Cooliris!</p>
<p>Now, get out there and vote!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/12/30/live-mesh-nominated-for-crunchies-award/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Live Mesh App Development Talk at Bay.NET User Group Meeting December 17 2008</title>
		<link>http://dannythorpe.com/2008/12/15/live-mesh-app-development-talk-at-baynet-user-group-meeting-december-17-2008/</link>
		<comments>http://dannythorpe.com/2008/12/15/live-mesh-app-development-talk-at-baynet-user-group-meeting-december-17-2008/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 19:33:39 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Bay.NET]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[user group]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/12/15/live-mesh-app-development-talk-at-baynet-user-group-meeting-december-17-2008/</guid>
		<description><![CDATA[I&#8217;ll be speaking at the next Bay.NET user group meeting this Wednesday Dec 17 on Live Mesh application development using Live Frameworks.  There will be a few slides, mostly for the infamous but necessary system stack diagrams, but the majority of the session will be spent showing and running code.  I&#8217;ll open by exploring the different types of applications [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be speaking at the next <a href="http://www.baynetug.org/DesktopModules/DetailXEvents.aspx?ItemID=352&amp;mid=49">Bay.NET user group meeting this Wednesday Dec 17</a> on Live Mesh application development using Live Frameworks.  There will be a few slides, mostly for the infamous but necessary system stack diagrams, but the majority of the session will be spent showing and running code.  I&#8217;ll open by exploring the different types of applications that can make use of an end-user&#8217;s mesh data and how they might use such cloud storage, then drill down into data sync and how it enables you to write web apps that can run offline, use data offline, and modify data offline, with changes sync&#8217;ing back to the cloud as soon as connectivity is restored.  The best part is you can write your app to be completely oblivious of network availability.</p>
<p>I&#8217;ve spoken on networking topics on several occasions in recent years, and at least half of them had some sort of hiccup in network service during the presentation.  Demoing Live Services a few years back in a meeting room with no network connection at all was a bit of a challenge! </p>
<p>It will be such a relief to finally be able to show web stuff regardless of whether the network is there or not!</p>
<p>&#8220;Jinx!&#8221; you say?  &#8220;How dare you challenge the demo gods so! They will be most merciless upon your head!&#8221;  Nah.  All you need to discuss Live Mesh development is a pen, whiteboard, and a light (Don&#8217;t forget the light! Demo pixies love power outtages).  In a pinch, even the pen and whiteboard are optional.</p>
<p>If you&#8217;re in the SF Bay area and curious about what we&#8217;re up to with Live Mesh applications, come on out and join us Wednesday evening and get the scoop!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/12/15/live-mesh-app-development-talk-at-baynet-user-group-meeting-december-17-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mesh Your Ride</title>
		<link>http://dannythorpe.com/2008/12/05/mesh-your-ride/</link>
		<comments>http://dannythorpe.com/2008/12/05/mesh-your-ride/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 20:48:11 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[carputer]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Ori Amiga]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/12/05/mesh-your-ride/</guid>
		<description><![CDATA[This may be old news to some, but it just popped up on my radar:  Ori Amiga, frustrated with the lack of truely usable and connected smart devices in the automotive market, built his own custom touchscreen PC console for his Porsche.  It&#8217;s a full-on PC running Vista and loaded up with GPS, WiFI, BlueTooth, [...]]]></description>
			<content:encoded><![CDATA[<p>This <img border="0" vspace="5" align="right" width="215" src="http://blogs.msdn.com/blogfiles/oriamiga/WindowsLiveWriter/bcb2caf513f6_FED/display_2.jpg" hspace="5" alt="Live Mesh enabled car-puter" height="160" />may be old news to some, but it just popped up on my radar:  Ori Amiga, frustrated with the lack of truely usable and connected smart devices in the automotive market, <a href="http://blogs.msdn.com/oriamiga/archive/2008/11/09/introducing-the-meshmobile.aspx">built his own custom touchscreen PC console for his Porsche</a>.  It&#8217;s a full-on PC running Vista and loaded up with GPS, WiFI, BlueTooth, cell phone 3G networking, and just about everything else you can think of. </p>
<p>That&#8217;s kinda neat as gizmos go, but not really earth shattering. </p>
<p>Then Ori worked on software to make that &#8220;<a href="http://en.wikipedia.org/wiki/Carputer">carputer</a>&#8221; mesh-aware, connecting to his mesh data in Live Mesh.  If he drops MP3s into a mesh folder on his PC at the office, it will show up in his playlist in his car, ready to play on the road.  While he&#8217;s driving, the GPS-enabled unit can write GPS tracks into a mesh object, which can be read by family or friends (whoever he&#8217;s given access to read that private mesh object) to see where he is or how late he&#8217;ll be arriving. </p>
<p>Ok, that&#8217;s a bit more interesting.</p>
<p>Here&#8217;s the kicker:  While he did have to write some code for the carputer to move data between the devices built into the carputer and objects in his mesh using the <a href="http://dev.live.com/liveframework/">Live Framework SDK</a>, <strong>none of the code he wrote ever opens a network connection</strong>.  All the network data transfer is handled in the background by Live Mesh&#8217;s automatic data sync.  The code on the carputer reads and writes data in the local mesh running on the carputer, and the local mesh client handles synchronizing data changes to and from the cloud mesh whenever the car has a network connection via WiFi, WiMax, cellphone or whatever.</p>
<p>Now *that&#8217;s* cool. </p>
<p>That&#8217;s what mesh is all about, and shows another example of <a href="http://dannythorpe.com/2008/11/18/client-side-live-operating-environment-whats-it-for/">why the local client is so important</a> as a game-changing facilitator.  Your mesh-enabled web apps and mesh-aware desktop apps or cloud services don&#8217;t have to think in terms of dealing with network connections across unreliable or occasionally connected networks.  They just need to think in terms of data handling and change notifications.</p>
<p>Channel9 did a video segment with Ori about his <a href="http://channel9.msdn.com/posts/Charles/Ori-Amiga-Mesh-Mobile/">meshmobile (&#8220;mesh-mo-beel&#8221;) project</a> back in October.  There&#8217;s a lot of talking heads airtime through most of the video (which has some great info) but they finally get around to showing the goods at the end of the clip.  If you want to see the demo before investing time in the chitchat, skip ahead to about 18:30. </p>
<p>Oh, and by the way - <a href="http://blogs.msdn.com/oriamiga/default.aspx">Ori Amiga</a> is Principal Group Program Manager of the <a href="http://dev.live.com/liveframework/">Live Developer Platform</a> team (the developer side of <a href="http://mesh.com">Live Mesh</a>).  It&#8217;s good to see the leadership having fun with the technology after hours.  Passion rocks.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/12/05/mesh-your-ride/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Batch Processing Live Mesh Data with Windows Azure or Live Framework</title>
		<link>http://dannythorpe.com/2008/11/24/batch-processing-live-mesh-data-with-windows-azure-or-live-framework/</link>
		<comments>http://dannythorpe.com/2008/11/24/batch-processing-live-mesh-data-with-windows-azure-or-live-framework/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 23:25:05 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[delegated authorization]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[LiveID]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/11/24/batch-processing-live-mesh-data-with-windows-azure-or-live-framework/</guid>
		<description><![CDATA[SondreB asks
I’m working on a scenario where I need to process mesh data at intervals. My concern is how I can do delegated authorization in a secure way. How and where do I store the user credentials (or their auth token) in my Windows Azure service? Is there a way of doing interval based processing [...]]]></description>
			<content:encoded><![CDATA[<p>SondreB asks</p>
<blockquote><p>I’m working on a scenario where I need to process mesh data at intervals. My concern is how I can do delegated authorization in a secure way. How and where do I store the user credentials (or their auth token) in my Windows Azure service? Is there a way of doing interval based processing in the cloud other than Windows Azure (excluding offerings from other third parties)?</p></blockquote>
<p>You have three approaches to process data in a user&#8217;s Live Mesh at regular intervals: </p>
<ul>
<li>An application that runs on the client machine</li>
<li>A service that runs on a traditional server</li>
<li>A service that runs in the cloud.</li>
</ul>
<h4>Client Application </h4>
<p>A client application running on the local machine can access the currently logged-in user&#8217;s mesh data.  Your app could be written as a desktop .NET Windows application, using the Live Framework SDK to connect to the user&#8217;s mesh.  Your desktop app will need to present valid authentication credentials to the Live Framework APIs; to avoid having to store and protect the user&#8217;s credentials, use the LiveID SDK.  If the user checks &#8220;remember me&#8221; and &#8220;remember my password&#8221;, your app can login on the user&#8217;s behalf using the LiveID API&#8217;s cached credentials.</p>
<p>You could implement your client app as a mesh-enabled web application, written in HTML+JavaScript or Silverlight.  User authentication is automatic in this situation, since the user must be logged in before they can run your app.  If the user has installed the Live Framework Client on their local machine, they can run your app on their local desktop just as they would a normal desktop app.  When your app is running on the local desktop, it will default to talking to the local cache of mesh data which is synch&#8217;d frequently with the cloud when the machine is connected to the network.</p>
<p>These client-side approaches may be sufficient for simple scenarios.  Client side code is convenient to write and doesn&#8217;t require allocation or management of server resources, but client side code is at the mercy of the local machine and network connection.  If your users tend to leave their machines on most of the time, this might be good enough, but if you need true round-the-clock processing you need a server side solution.</p>
<h4>Traditional Server Application</h4>
<p>You could implement mesh data processing in a traditional web server architecture, such as IIS with ASP.NET or Apache with PHP, Perl, or Python scripting.  This will require delegated authorization, and delegated auth requires that your server have a stable domain name.</p>
<p>Delegated authorization requires that the end user approve or opt-into allowing your application to access (parts of) their mesh data.  This approval must take place using a special Microsoft branded web page, so that the user will know that they are telling <em>Microsoft</em> that it&#8217;s ok for <em>you</em> to access their data. </p>
<p>The flow typically looks something like this:</p>
<ol>
<li>Your web page explains what data you want access to, and what you will do with it, and then forwards the user to a Windows Live authorization page</li>
<li>LiveID login will interject if the user is not already logged in, then forward to the intended page</li>
<li>The user reads the information on the Windows Live web page and chooses to allow or deny access to your site (your domain).</li>
<li>The user&#8217;s response forwards the user back to a landing page on your web site.  If the user allowed access, this response will contain an authorization token.</li>
<li>You store the authorization token in your system, usually paired with the user&#8217;s name within your system so you will know which auth token to use to access this user&#8217;s data in the future. </li>
</ol>
<p>How you store this auth token is up to you, but it should be under physical and network access protection.  At a minimum, you should encrypt whatever table or file you store the auth token in and restrict access to the file to only the administrators and web services that need to access it. You should also avoid transmitting the auth token across the network except when needed, and only via a secure SSL connection.</p>
<p>The auth token cryptographically combines your domain name with the user&#8217;s LiveID username.  The auth token can only be used on requests made from your domain name, can only access that particular user&#8217;s data, and can only access the kinds of data the user gave you access to.  The user can revoke your access (invalidate the auth token) at any time using the Windows Live web site.</p>
<p>Once you have the user&#8217;s authorization to access their data with the auth token, accessing their mesh data is fairly straightforward.  You can use the Live Framework SDK to make data requests of the user&#8217;s mesh data from within an ASP.NET server app, or you can make plain old REST style HTPPS requests to the Live Services cloud using your favorite server scripting tools.  You add the delegated authorization token for the particular user in a header to outgoing requests.</p>
<p>And finally, you can schedule your service to check the user&#8217;s mesh data on regular intervals, using cron or AT or whatever scheduling tool is appropriate.</p>
<h4>Cloud Service</h4>
<p>You can implement your mesh-checking logic in a hosted cloud environment, such as <a href="http://www.microsoft.com/azure/default.mspx">Windows Azure</a>, Amazon EC2, GoogleApp, or a variety of other hosting providers.  You will still need to use delegated authorization as with the traditional server scenario and walk through the same steps to obtain the user&#8217;s permission and be issued an auth token. The code you write to access the user&#8217;s mesh data using the auth token is pretty much the same as what you would write in the traditional server scenario.</p>
<p>Data security is a core requirement of every app, but especially of cloud hosted applications.  I think you&#8217;ll find data security is a core component of Windows Azure cloud data services. You can store the username + auth token in a table in Azure&#8217;s cloud data service.</p>
<p>Scalability and cost management are where running as a cloud service has a distinct advantage over the traditional server scenario.  Scalability is easy: having the option to fire up additional instances of your cloud service by the tens or thousands as needed to meet demand is a key aspect of large scale cloud hosting that traditional servers in the closet or co-lo&#8217;s can&#8217;t begin to touch.</p>
<p>If your application needs to be checking the user&#8217;s mesh data every 5 minutes all day every day, the operational differences between cloud and traditional server will be relatively small, and perhaps offer no cost savings at all. </p>
<p>If your application needs to run only during business hours or only on certain days of the week, you can do something with a cloud service that you can&#8217;t do with a traditional server, hosted VM or co-lo:  You can turn the cloud service off when you don&#8217;t need it, and stop paying for it until you turn it on again.</p>
<p>Anticipating a holiday rush?  You can scale up your customer capacity to massive volume during the holiday shopping crunch, then get rid of it in January and coast by on a shoestring ops budget until the next holiday surge.</p>
<p>If your mesh-checking app needs to check for changes in the user&#8217;s mesh data every 5 minutes, your service will be running pretty much non-stop.  If you only need to check 4 times a day, though, you might just turn your cloud service off until the next update interval.</p>
<p>When designing your mesh-checking architecture, be sure to take a close look at the notification features offered by Live Frameworks.  Notifications and data sync metadata could significantly reduce the frequency and amount of work your app needs to do to detect changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/11/24/batch-processing-live-mesh-data-with-windows-azure-or-live-framework/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How Do I Mesh Thee?  Let Me Count The Ways</title>
		<link>http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/</link>
		<comments>http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 09:40:01 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Google Gears]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/</guid>
		<description><![CDATA[A few folks I&#8217;ve talked to in the Live Frameworks CTP forum or in email have expressed a little bit of confusion or a lot of surprise at what you can do with the Live Mesh platform and Live Frameworks. Let&#8217;s run through a few of scenarios to give you an idea of the breadth of options you have to leverage Live [...]]]></description>
			<content:encoded><![CDATA[<p>A few folks I&#8217;ve talked to in the <a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/">Live Frameworks CTP forum </a>or in email have expressed a little bit of confusion or a lot of surprise at what you can do with the Live Mesh platform and <a href="http://dev.live.com/liveframework/">Live Frameworks</a>. Let&#8217;s run through a few of scenarios to give you an idea of the breadth of options you have to leverage Live Mesh and Live Services in your applications.</p>
<p>First, let&#8217;s look at what kinds of applications can access user data stored in the user&#8217;s mesh (after user consent, of course):</p>
<ol>
<li>Silverlight mesh-enabled web apps</li>
<li>DHTML + JavaScript mesh-enabled web apps</li>
<li>Server-side web applications (<a href="http://www.microsoft.com/azure/windowsazure.mspx">Windows Azure</a>, ASP.NET, Apache, PHP, etc)</li>
<li>Cloud-based web services (Windows Azure, Amazon EC2, Google Apps, etc)</li>
<li>Desktop .NET apps</li>
<li>Win32 apps</li>
<li>Win64 apps</li>
<li>Linux apps</li>
<li>Mac apps</li>
<li>Mobile device apps</li>
<li>Anything that can make HTTP requests, set HTTP request headers, and process XML responses.  With a little bit of code, your Internet-connected lawn sprinker controller can load its watering schedule from a mesh object in your Live Mesh! </li>
</ol>
<p>We provide .NET client libraries to facilitate using the Live Operating Environment (LOE) services in your app, but .NET is not required to talk to the LOE or to specific services in the Live Services cloud &#8211; you can also talk to Live Services (and the LOE) with RESTful HTTP requests built on industry standards such as Atom, RSS, JSON, and XML using whatever programming tools you want, from whatever device or platform you want.</p>
<h4>Mesh Enabled vs Mesh Aware</h4>
<p>A mesh-enabled web app is a DHTML or Silverlight web application that can not only talk to mesh services and access the user&#8217;s mesh data, but the app itself is a mesh object deployed and sync&#8217;d through the cloud to whatever Internet browser enabled device the user has in front of them.</p>
<p>A mesh-aware application is any other kind of app, running on the client device or on the server, which talks to Live Services and can make use of user data stored in their mesh.  These do not get the benefit of automatic deployment or updates orchestrated by the LOE, but they are also not restricted to the security sandbox of a mesh-enabled web app.</p>
<h4>Online and Offline Modes</h4>
<p>The user&#8217;s mesh data can be accessed by applications when the device is online.  If the Live Mesh client is installed on a device, apps can access user mesh data even when the device has no network connection. Data changes written to the local LOE while offline will be sync&#8217;d to the cloud LOE the next time a network connection is available.</p>
<h4>Data Sync</h4>
<p>The Live Framework automatically synchronizes data changes between the local client and the cloud, in both directions.  The user can select which Mesh Objects are sync&#8217;d to which devices in their mesh.  You&#8217;d want to sync photos from your cameraphone / mobile device up to a mesh folder in the cloud, but you would probably not want to sync all of your photos in the cloud down to your phone.</p>
<h4>Mode Transparency</h4>
<p>Mesh-enabled and mesh-aware applications use the same APIs / HTTP request patterns to access user mesh data in the local LOE as to access user data in the cloud LOE.  What changes is the domain name used in the HTTP request (localhost:port versus cloud domain), and that&#8217;s needed only when making the initial connection to the LOE.  After that, all LOE requests are relative to the base URL of the selected LOE.  And if you&#8217;re using the .NET client libraries, nearly all of that local/cloud selection will be taken care of automatically behind the scenes.</p>
<h4>User Authentication, Authorization, and Delegation </h4>
<p>You can use the LiveID SDK to enable users to log into their mesh account from within your mesh-aware desktop or device applications.  You can also use LiveID in your own Windows Azure cloud services: read <a href="http://dev.live.com/blogs/devlive/archive/2008/11/12/432.aspx">Windows Azure Integration with Windows Live ID, Active Directory and OpenID</a>.</p>
<p>You don&#8217;t have to use LiveID.  If your app is a server-side web app or other service that the end user cannot log into directly, you can use Live Service&#8217;s delegated authorization to obtain an authorization token that you can use to access data in the user&#8217;s mesh independent of the user&#8217;s login state.  The user has to opt in to giving you that token, and can revoke your access (invalidate the token) if you don&#8217;t play nice.  The authorization token is cryptographically bound to your domain and the user&#8217;s id. </p>
<p>Mesh-enabled web apps don&#8217;t need to do anything with authentication because the user will have already logged in prior to executing the mesh-enabled web app, and the web app lives &#8220;inside&#8221; that authenticated sandbox context.</p>
<h4>Sharing</h4>
<p>The user can choose to share a Mesh Object with other users.  If your app writes to a particular Mesh Object and the user shares it with others, your app data can be distributed to the social graph without any work on your part.  Your app can also see who has access to or is sharing the Mesh Object. </p>
<h4>A Few Scenarios</h4>
<ul>
<li>A desktop .NET application (written in any .NET language) reading and writing app data to the user&#8217;s mesh. </li>
<li>The same app (same binary executable module) writing data to the user&#8217;s mesh while the machine is offline. (local LOE)</li>
<li>A desktop Win32 application reading and writing from the user&#8217;s contacts. (LiveID SDK + raw HTTP / AtomPub)</li>
<li>A web server app that writes data to a mesh object in the user&#8217;s mesh in response to a button click or form submit. (online)</li>
<li>A headless cloud based web service that updates data in the user&#8217;s mesh every 3 hours. (delegated auth)</li>
<li>A DHTML+JavaScript mesh-enabled web app running in the browser reading and writing data to the user&#8217;s mesh. (online)</li>
<li>A Silverlight mesh-enabled web application running on the local desktop (via Live Mesh client) while offline.  (Offline Silverlight!)</li>
<li>A DHTML+JavaScript mesh-enaabled web application running in any JavaScript-enabled browser on a smartphone. (online)</li>
<li>A Silverlight mesh-enabled web application that displays interactive features on current events, updated continually (daily) with new content and code logic (online/offline, data sync and app sync)</li>
<li>Store your application&#8217;s personalization settings in the user&#8217;s mesh.  The user&#8217;s preferences follow them to any machine they run that app on, regardless of whether your app is a mesh-enabled web app or a traditional installed desktop app.  (Think: student computer lab.  Many machines all configured the same used by many students all demanding to be different)</li>
<li>Same as previous scenario, but now across different kinds of devices.  User&#8217;s preferences and settings sync across PC, Mac, cellphone, etc.</li>
<li>Briefcase application:  Grab a dataset of client leads into your mesh-enabled sales lead app while at the office.  Review client dossiers while offline in transit.  Update sales contacts and enter purchase orders at client site, while offline.  Sync changes and purchase orders to office (to a cloud mesh object shared with and watched by a mesh app at the office) at an Internet cafe in the airport on the way to the next client. Show next client how to enter orders themselves using your purchase order mesh-enabled web app (the same one you have running offline on your PDA-phone) running in their browser. </li>
</ul>
<p>These are just a tiny sampling of the kinds of things you can do with the Live Framework.  There are many more features I haven&#8217;t mentioned that add additional dimentions to the sample matrix:  your mesh-aware and mesh-enabled apps running on the client device can programmatically construct resource scripts (expression trees) which can be executed on a server in the cloud (to move large data around on the server without making a round trip to the client across the network); there&#8217;s a server-side cross-domain proxy service that lets your mesh-enabled web app (executing in the context of a cloud domain name) &#8220;phone home&#8221; to your own web server or domain; and so forth.</p>
<p>If I had to name one thing that sets the Live Framework head and shoulders apart from other products that attempt to bridge the online/offline gap, it has to be Live Framework&#8217;s data synchronization.  Other tools such as Google Gears can help you run your web app offline, but getting your offline data back into the cloud is left as an exercise for the reader.  In Live Framework, synchronization is a fundamental assumption, a cornerstone of the core architecture.</p>
<p>When data automagically appears in all the places it&#8217;s supposed to go, you suddenly find that you have a lot less code to write, debug, and maintain.  You can get back to focusing on business logic and spend a lot less time on infrastructure.</p>
<p>With apologies to &#8216;The Bard&#8217;</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdannythorpe.com%2f2008%2f11%2f14%2fhow-do-i-mesh-thee-let-me-count-the-ways%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdannythorpe.com%2f2008%2f11%2f14%2fhow-do-i-mesh-thee-let-me-count-the-ways%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Live Mesh Wishlist: Paperless Billing Statements</title>
		<link>http://dannythorpe.com/2008/07/29/live-mesh-wishlist-paperless-billing-statements/</link>
		<comments>http://dannythorpe.com/2008/07/29/live-mesh-wishlist-paperless-billing-statements/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 23:02:42 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[digital packrat]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[paperless billing]]></category>
		<category><![CDATA[personal archiving]]></category>
		<category><![CDATA[wishlists]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/07/29/live-mesh-wishlist-paperless-billing-statements/</guid>
		<description><![CDATA[I&#8217;m slowly gaining ground in the war against paper.  I&#8217;m a packrat, which immediately calls into question the structural integrity of my house and garage.  However, I&#8217;ve discovered that technology transcends the limitations of corporeal space.  I can still hoard precious tidbits for posterity in digital form without risking premature burial under collapsing stacks of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m slowly gaining ground in the war against paper.  I&#8217;m a packrat, which immediately calls into question the structural integrity of my house and garage.  However, I&#8217;ve discovered that technology transcends the limitations of corporeal space.  I can still hoard precious tidbits for posterity in digital form without risking premature burial under collapsing stacks of old bills.  I scan the pages that I <em>just know</em> I will need to review again in a few years and store them on a network-attached hard disk.</p>
<p>Welcome to the new me: I&#8217;m a <em>digital</em> packrat.</p>
<p>I hear your smirks and chuckles, but to those who understand packratting, the digital difference cannot be understated. How often do you get to say &#8220;Hey, I didn&#8217;t know we had carpet in here!&#8221;</p>
<p>Digitization is helping to reduce the paper pileup, but it still takes time to do the scanning. Not that storage is really an issue, but pixels that look like text take up a lot more space than actual text. </p>
<p>Why not use paperless billing?  Most of the major credit card vendors now offer some sort of online alternative to sending trees through the mail.  Most of them even offer the documents in PDF format.</p>
<p>What I don&#8217;t like about paperless billing is that it requires that you log into each individual bank&#8217;s web site to retrieve your bill.  It takes time and effort to go get that bill each month, from a different location and menu tree for each bank. Letting the paper bill come to me and scanning it when I get around to it seems like much less of my energy than running all over creation to pluck one apple from every orchard.</p>
<p>Email delivery might work, but then again I&#8217;m a techie who isn&#8217;t afraid of a &#8220;Save Attachment as&#8230;&#8221; dialog. I don&#8217;t know of many banks that offer to send bills electronically by email.</p>
<p>What would be really nice is if the monthly statements for all my recurring bills could be deposited into a storage location of my choice, online or on my local machine or network.  I&#8217;d set up a different &#8220;drop zone&#8221; for each vendor and map that to a location on my hard disk (my home network hard disk, actually).  The vendor could write documents into the drop zone I created for them, but nothing more.  They can&#8217;t read, delete, or modify anything else, and they don&#8217;t have direct access to my local hard disk.  The list of drop zones is only visible to me.  I wouldn&#8217;t have to do anything to receive my monthly statements, store them in location(s) convenient to me, and ensure data safety through redundant storage.  Packrat heaven!</p>
<p>Microsoft&#8217;s <a href="http://www.mesh.com">Live Mesh</a> already implements nearly everything required for this scenario to work. You can define a folder in Live Mesh that is accessible only to certain Live Mesh users, and Live Mesh will take care of replicating that folder to local storage on devices you indicate. So, conceptually, I could create a different Live Mesh folder for each vendor, configure the Live Mesh folder to replicate to a local directory on my home network, and invite the vendors write the monthly statements into their respective folders.  My home network could even be offline at the time a vendor writes a new statement to a Mesh folder &#8211; the mesh will sync up as soon as my network is online again and deliver the new documents that are missing from the local copy.</p>
<p>The missing piece is write-only access to a Mesh folder.  The current public beta of Live Mesh does not appear to support granting someone write only access to a Live Mesh shared object, such as a folder.  If that can be taken care of, then the only remaining piece to solve is to convince my banks and vendors to update their billing systems to deliver monthly statements into my Live Mesh drop zones.  Compared to getting new features into a Microsoft product, that should be a piece of cake.  ;&gt;</p>
<p>Digital packrats of the world, unite!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/07/29/live-mesh-wishlist-paperless-billing-statements/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
