<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Phil Cockfield - My Mental Model</title>
	<atom:link href="http://phil.cockfield.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://phil.cockfield.net</link>
	<description>Interaction Design, Development and the Adventures of a Kiwi Abroad</description>
	<lastBuildDate>Sun, 31 May 2009 00:16:34 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/01ea8c172883c7f0cfd0bc65fd99ab29?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Phil Cockfield - My Mental Model</title>
		<link>http://phil.cockfield.net</link>
	</image>
			<item>
		<title>Silverlight as the View of Full-Trust applications</title>
		<link>http://phil.cockfield.net/2009/05/31/silverlight-as-the-view-of-full-trust-applications/</link>
		<comments>http://phil.cockfield.net/2009/05/31/silverlight-as-the-view-of-full-trust-applications/#comments</comments>
		<pubDate>Sun, 31 May 2009 00:16:34 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/?p=111</guid>
		<description><![CDATA[I recently read a great post by Ward Bell on &#8220;multi-headed&#8221; platform development&#8230;making your app work with WPF and Silverlight.  This is a topic that is of interest to me in the enterprise setting&#8230;and I have done a little playing around with it.  I left a long-ish comment on his blog with an idea that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=111&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>I recently read a great post by <a href="http://bit.ly/Swy1n">Ward Bell on &#8220;multi-headed&#8221; platform development</a>&#8230;making your app work with WPF and Silverlight.  This is a topic that is of interest to me in the enterprise setting&#8230;and I have done a little playing around with it.  I left a long-ish comment on his blog with an idea that I&#8217;m hoping to get feedback and opinion on, and so though I&#8217;d repost here with the possibility of getting other&#8217;s ideas.<br />
</em></p>
<p><em>Wards post is here: <a href="http://bit.ly/Swy1n">http://bit.ly/Swy1n</a></em></p>
<p>Here&#8217;s my thoughts:</p>
<p>In business apps, generally the argument for writing something in WPF is to have the local access to services (printer, hardware etc), not to get &#8220;3D&#8221; and other WPF niceties. Silverlight 3 (IMO) is ready for LOB app development&#8230;more than ready.</p>
<p>&#8212; IDEA &#8212;</p>
<p>So, if that is the case (which I believe it is), for the &#8220;I need a bar code reader&#8221; type scenarios I&#8217;m considering an approach where you &#8220;host&#8221; SL within a rich-client container, and through a JavaScript bridge access your full-trust code which is locally installed. You app is installed locally, you have full-trust assemblies, so can do the local manipulation of the system or access to printers, scanners, barcode readers etc.</p>
<p>[NB: This is not the same as the FIT client install, because your getting access to a full-trust installation that you setup. The FIT client install is still in the sandbox]</p>
<p>This would essentially boil down to having the local, full trust container look-n-feel like a service endpoint&#8230;you&#8217;d be making calls to methods by serializing parameters (via DataContract) and passing them through JS as strings. Far from this being a down-side, I could see how this might force good architectural design&#8230;ensuring the UI really is View&#8230;and not tangled up with stuff that should be there.</p>
<p>Now, the hypothesis (unproven at this stage) is that the effort of setting up this container (once) would be less than the ongoing development friction and maintenance woes of cross compilation and incompatibilities that Ward describes. You also get the ability to use the same UI (or parts of it, if it&#8217;s nicely modularized a la PRISM) in the browser &#8211; and instead of accessing the local-full trust code via the JS bridge you hot-swap to calling a web-service.</p>
<p>&#8212;</p>
<p>I would love to hear people either beat up on this idea and tell me why this is crazy, or offer other opinions and insights.</p>
<p>I&#8217;ve done a bit of dual-WPF/SL development (mainly building out PRISM examples) and it&#8217;s has a bit of a smell to it. I&#8217;m optimistic that a surgical containment strategy may be a smart move? What do you think??</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=111&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2009/05/31/silverlight-as-the-view-of-full-trust-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>
	</item>
		<item>
		<title>Silverlight Development Dashboard</title>
		<link>http://phil.cockfield.net/2009/05/09/silverlight-development-dashboard/</link>
		<comments>http://phil.cockfield.net/2009/05/09/silverlight-development-dashboard/#comments</comments>
		<pubDate>Sat, 09 May 2009 04:58:56 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/?p=80</guid>
		<description><![CDATA[For as long as I can remember, my approach to UI development has been centered around carving a UI up into it&#8217;s logical pieces (&#8221;controls&#8221; you might say) and hosting them in some kind of test harness, where I can manipulate their API&#8217;s as I continue to craft them.
I&#8217;m sure this is common practice&#8230;it&#8217;s such [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=80&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For as long as I can remember, my approach to UI development has been centered around carving a UI up into it&#8217;s logical pieces (&#8221;controls&#8221; you might say) and hosting them in some kind of test harness, where I can manipulate their API&#8217;s as I continue to craft them.</p>
<p>I&#8217;m sure this is common practice&#8230;it&#8217;s such an obvious thing to do.  I think it&#8217;s possibly not as wide spread as it might be as it&#8217;s a lot harder to do in the web (with HTML) than it is with a rich client&#8230;.until now that is (read on to find out why).</p>
<p>For me the important design goals when building a tool to assist here are making this both ridiculously <span style="color:#993300;"><strong>easy </strong></span>AND the outcome <span style="color:#993300;"><strong>permanent</strong></span>.</p>
<p><span style="color:#993300;"><strong>Permanent </strong></span>in that the tests hang around.  All too often make-shift harnesses are erected while a control is under development, then thrown away, abandoned or lost.  But unit-testing taught us that having a long lived set of tests that can be run at any time (and often) provides increasing returns over the long run.</p>
<p>And <span style="color:#993300;"><strong>Easy </strong></span>in that it&#8217;s simpler and faster to build your control this way that it is hacking anything else up.  It needs to be no trouble so that you actually do it.</p>
<p><img class="aligncenter size-full wp-image-83" title="Turtles" src="http://philcockfield.files.wordpress.com/2009/05/turtles1.jpg?w=447&#038;h=296" alt="Turtles" width="447" height="296" /></p>
<p><strong>For me, with UI it&#8217;s turtles all the way up and all the way down. </strong> &#8220;Controls&#8221; can sit on a spectrum anywhere from super primitive (a button, a checkbox) up to the root of the application&#8217;s UI&#8230;the super aggregate of all controls, and all modules that make it up.  I like to be able to bring up any piece of the UI &#8211; strip it&#8217;s behavior away, or turn it back on, hand it a mock, prod it and pock it.  This in the same spirit that leads one to the set of patterns represented by the &#8220;<a href="http://en.wikipedia.org/wiki/Composite_application">Composite Application</a>&#8221; approach (<em>or see <a href="http://msdn.microsoft.com/en-us/library/dd458809.aspx">here</a> for a great set of tool and guidance to this</em>).</p>
<p>Now, you may of course be be much smarter than me (you probably are), but if I can&#8217;t do this, if I can&#8217;t factor out UI development in this clean, super decoupled fashion, I just know where I&#8217;m heading, and heading fast&#8230;..<strong>to a horrific realm of fear and loathing.</strong></p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-85" title="Fear and Loathing" src="http://philcockfield.files.wordpress.com/2009/05/2-steadman.jpg?w=250&#038;h=340" alt="Fear and Loathing" width="250" height="340" /></p>
<p style="text-align:center;">
<p>But the world need not be such an ugly place&#8230;.no! Not if you have a &#8220;<strong>Development Dashboard</strong>&#8221; (this the fancy name my friend John came up with for &#8220;Test Harness&#8221;).  And with the advent of <a href="http://en.wikipedia.org/wiki/Silverlight">Silverlight </a>I&#8217;ve been at it again&#8230;building a test-harness to make building beautiful UI easy and fun and joyful, and I&#8217;d like to share with you some of this work-in-progress.  Here&#8217;s what it looks like:</p>
<p><img class="aligncenter size-full wp-image-106" title="Dasboard" src="http://philcockfield.files.wordpress.com/2009/05/dasboard1.jpg?w=450&#038;h=303" alt="Dasboard" width="450" height="303" /></p>
<p>The approach of writing visual-tests against a UI control enduces many of the benefits found in classic <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD </a>(or <a href="http://en.wikipedia.org/wiki/Behavior_driven_development">BDD</a>), only with the particular slant being on UI componentry.  It’s the same basic mind bend going on, namely: write the code that consumes the system first, then write the actual system.  And the wonderful miracle that occurs from this seemingly counter-intuitive move is that the emergent code just tends to be cleaner, lighter, more de-coupled, and more sensible from the <span style="color:#800000;">user</span>’s perspective… In other words, better designed.</p>
<p><em>[Please note, by “<span style="color:#800000;">user</span>” here I mean the next developer working with the control…I’m not saying anything about the interaction-design or usability…that’s another story].</em></p>
<p>To get a test up in the Dashboard, all you need to do is adorn it with an attribute [<strong>ViewTestClass</strong>]</p>
<p style="text-align:center;"><img class="size-full wp-image-92 aligncenter" title="class 1" src="http://philcockfield.files.wordpress.com/2009/05/class-1.jpg?w=185&#038;h=77" alt="class 1" width="185" height="77" /></p>
<p>The ViewTestClass attribute signals that this is a class that contains tests to host within the <strong>Dashboard</strong>.  The developer then selects the assembly that contains the test using the Dashboard’s <strong>Module Chooser</strong>:</p>
<p><em><img class="aligncenter size-full wp-image-93" title="Module Chooser" src="http://philcockfield.files.wordpress.com/2009/05/module-chooser.jpg?w=437&#038;h=346" alt="Module Chooser" width="437" height="346" /></em></p>
<p>The assembly is now loaded into the dashboard, and our new <strong>ViewTestClass</strong> name &#8216;<strong>MyControlTest&#8217;</strong> is listed.  Notice that we did not have to muck around with configuration files and mapping or anything like that.  We just created a simple class using minimal native syntax the developer is used to, and whamo, it shows up…no fuss.</p>
<p><img class="aligncenter size-full wp-image-95" title="Listing" src="http://philcockfield.files.wordpress.com/2009/05/listing1.jpg?w=385&#038;h=291" alt="Listing" width="385" height="291" /></p>
<p>Also, now that this assembly is loaded, the Dashboard remembers it as a possible point of interest to test with, and stores a reference to it making it available each time the dashboard is loaded.  It does not, however, load the assembly into memory until a test control is asked for – important for saving resources and keeping the experience light and fast.  When the assembly is no longer under test it can be removed by using the “Eject” button.</p>
<p>Once the <strong>ViewTestClass </strong>is selected, it is added to the ‘<strong>Recent Selections</strong>’ list.  As you know, the development process is a loop of micro-iterations.  Write-code =&gt; test =&gt; write-code … (repeat).</p>
<p>The last set of test classes is positioned in a stable part of the screen, the &#8220;Recent Selections&#8221; list.  Muscle memory kicks in, and no cognitive friction is incurred getting to the test control of interest, meaning the developer can remain totally in the flow with their UI problem.</p>
<p><img class="aligncenter size-full wp-image-96" title="Selected" src="http://philcockfield.files.wordpress.com/2009/05/selected.jpg?w=386&#038;h=320" alt="Selected" width="386" height="320" /></p>
<p>Now, here&#8217;s the interesting part.  To get a control into the test, we simply add a method decorated with the [<strong>ViewTest</strong>] attribute.</p>
<p style="text-align:center;"><img class="size-full wp-image-97 aligncenter" title="TestMethod" src="http://philcockfield.files.wordpress.com/2009/05/testmethod.jpg?w=340&#038;h=142" alt="TestMethod" width="340" height="142" /></p>
<p>The type of the parameter, in this case a ‘Placeholder’ control, determines what control will be hosted within the Dashboard&#8217;s test surface.  With this <strong>ViewTest</strong> in place we now have this to work with:</p>
<p><img class="aligncenter size-full wp-image-98" title="Test In Dashbaord" src="http://philcockfield.files.wordpress.com/2009/05/test-in-dashbaord.jpg?w=412&#038;h=287" alt="Test In Dashbaord" width="412" height="287" /></p>
<p>The ‘<strong>My Test Control</strong>’ becomes a clickable option, and the control we are testing (a ‘<strong>Placeholder</strong>’ control which is our arbitrary example) is shown on the test surface.  The test method would typically manipulate the control is some interesting way, exercising the API and allowing the developer to see what’s going on, what needs fixing, and what next creative moves to make.</p>
<p>At this point you may also create a View-Model instance and bind the control to it if you&#8217;re using the <a href="http://joshsmithonwpf.wordpress.com/2009/01/27/my-mvvm-article-in-msdn-magazine/">MVVM </a>design pattern.  You can inject stub model&#8217;s into the V-M, and generally engage in the full gamut of testing-goodness.</p>
<p>If we need to test more than one control at a time, because we’re interested in the interaction between multiple different controls, we simply add more parameters to our test method.</p>
<p style="text-align:center;"><img class="size-full wp-image-99 aligncenter" title="Multiple controls" src="http://philcockfield.files.wordpress.com/2009/05/multiple-controls.jpg?w=574&#038;h=153" alt="Multiple controls" width="574" height="153" /></p>
<p>…and the Dashboard lays them all out in on the test surface.</p>
<p><img class="aligncenter size-full wp-image-100" title="Multiple Controls in Dashboard" src="http://philcockfield.files.wordpress.com/2009/05/multiple-controls-in-dashboard.jpg?w=433&#038;h=266" alt="Multiple Controls in Dashboard" width="433" height="266" /></p>
<p><span id="more-80"></span></p>
<p>And that&#8217;s it.  Thank you for getting to the end of my brief overview of the <strong>Silverlight Development Dashboard</strong> (even if you just scrolled down and looked at the pretty pictures&#8230;I still say thanks!).</p>
<p>A couple of final comments.</p>
<p>Firstly these are not the same as unit-tests.  I still write automated unit-tests, in particular against the model&#8217;s and view-models.  I&#8217;m using the Microsoft unit-testing system developed by <a href="http://www.jeff.wilcox.name/">Jeff Wilcox</a> (mostly because I&#8217;m betting on MS improving this and rolling it into Visual Studio somehow&#8230;unit-testing is not a solved problem for Silverlight by any stretch).  I see <strong>View-Tests </strong>as entirely complimentary to <strong>Unit-Tests</strong>.</p>
<p>Secondly, this is early stages, and I&#8217;m still working out how best to open this up and share it as a tool with other fine and friendly developers that might find it useful.  Stay tuned for that.</p>
<p><strong>Many thanks!</strong></p>
<p><em><br />
</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=80&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2009/05/09/silverlight-development-dashboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/turtles1.jpg" medium="image">
			<media:title type="html">Turtles</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/2-steadman.jpg" medium="image">
			<media:title type="html">Fear and Loathing</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/dasboard1.jpg" medium="image">
			<media:title type="html">Dasboard</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/class-1.jpg" medium="image">
			<media:title type="html">class 1</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/module-chooser.jpg" medium="image">
			<media:title type="html">Module Chooser</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/listing1.jpg" medium="image">
			<media:title type="html">Listing</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/selected.jpg" medium="image">
			<media:title type="html">Selected</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/testmethod.jpg" medium="image">
			<media:title type="html">TestMethod</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/test-in-dashbaord.jpg" medium="image">
			<media:title type="html">Test In Dashbaord</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/multiple-controls.jpg" medium="image">
			<media:title type="html">Multiple controls</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/05/multiple-controls-in-dashboard.jpg" medium="image">
			<media:title type="html">Multiple Controls in Dashboard</media:title>
		</media:content>
	</item>
		<item>
		<title>MVVM described by Fowler (as Presentation Model)</title>
		<link>http://phil.cockfield.net/2009/04/14/mvvm-described-by-fowler-as-presentation-model/</link>
		<comments>http://phil.cockfield.net/2009/04/14/mvvm-described-by-fowler-as-presentation-model/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 18:18:48 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/2009/04/14/mvvm-described-by-fowler-as-presentation-model/</guid>
		<description><![CDATA[A great design-pattern description by Martin Fowler entitled &#8220;Presentation Model&#8221;.
In WPF/Silverlight terms, this would be MVVM &#8211; and is a great statement of what&#8217;s going on.
http://www.martinfowler.com/eaaDev/PresentationModel.html
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=77&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A great design-pattern description by Martin Fowler entitled &#8220;Presentation Model&#8221;.</p>
<p>In WPF/Silverlight terms, this would be MVVM &#8211; and is a great statement of what&#8217;s going on.</p>
<p><a href="http://www.martinfowler.com/eaaDev/PresentationModel.html">http://www.martinfowler.com/eaaDev/PresentationModel.html</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=77&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2009/04/14/mvvm-described-by-fowler-as-presentation-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>
	</item>
		<item>
		<title>Thread Safety in a (Property)Changing World</title>
		<link>http://phil.cockfield.net/2009/03/08/thread-safety-from-silverlight-models/</link>
		<comments>http://phil.cockfield.net/2009/03/08/thread-safety-from-silverlight-models/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 22:49:32 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/?p=66</guid>
		<description><![CDATA[ 
I&#8217;m really loving the power and simplicity of MVVM (Model View View-Model).  The View-Model communicates changes to the binding system via the &#8216;PropertyChanged&#8216; event of INotifyPropertyChanged.  I also like to communicate changes from the Model to the View-Model via this event.
But there is a potential rub here.  Whenever you do some work on a background [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=66&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> </p>
<p>I&#8217;m really loving the power and simplicity of <strong>MVVM </strong>(Model View View-Model).  The View-Model communicates changes to the binding system via the &#8216;<span style="color:#800000;">PropertyChanged</span>&#8216; event of <strong>INotifyPropertyChanged</strong>.  I also like to communicate changes from the Model to the View-Model via this event.</p>
<p>But there is a potential rub here.  Whenever you do some work on a background thread, you need to make sure you pass execution back to the UI thread if the resulting activity ends up changing the UI (a foregone conclusion really when firing <span style="color:#800000;">PropertyChanged</span>).  It&#8217;s a real drag having to invoke the <strong>Dispather </strong>whereever you know (or suspect) firing the event will cause a threading exception because an attempt is made to update the UI on a background thread.</p>
<p>Well, after poking through <a href="http://projects.nikhilk.net/SilverlightFX">Nikhil&#8217;s excellent framework/sample</a> &#8211; I found a great way to remove this drag from my life (and your life) forever!  Below is a base class you can use to derive model&#8217;s and view-models on that will always fire the <span style="color:#800000;">PropertyChanged </span>event over on the UI thread.  Dispatcher arbitrage is now a gone-burger.</p>
<p> </p>
<p><img class="aligncenter size-full wp-image-67" title="NotifyPropertyChangedBase" src="http://philcockfield.files.wordpress.com/2009/03/picture-3.jpg?w=449&#038;h=420" alt="NotifyPropertyChangedBase" width="449" height="420" /></p>
<p> </p>
<p>And for good measure, here&#8217;s an asynchronous unit test that verifies this behavior:</p>
<p> </p>
<p><img class="aligncenter size-full wp-image-71" title="Thread Safe NotifyPropertyChanged - UnitTest" src="http://philcockfield.files.wordpress.com/2009/03/picture-5.jpg?w=450&#038;h=362" alt="Thread Safe NotifyPropertyChanged - UnitTest" width="450" height="362" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=66&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2009/03/08/thread-safety-from-silverlight-models/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/03/picture-3.jpg" medium="image">
			<media:title type="html">NotifyPropertyChangedBase</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/03/picture-5.jpg" medium="image">
			<media:title type="html">Thread Safe NotifyPropertyChanged - UnitTest</media:title>
		</media:content>
	</item>
		<item>
		<title>Office in Silverlight&#8230;I thought so!</title>
		<link>http://phil.cockfield.net/2009/03/07/officesee-i-told-you/</link>
		<comments>http://phil.cockfield.net/2009/03/07/officesee-i-told-you/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 23:15:28 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/?p=58</guid>
		<description><![CDATA[Well, it&#8217;s been so shockingly long since I&#8217;ve been posting that I only have to go back four entries to point out a prediction I made ways-a-way back in Oct 2007:  Office will port to Silverlight (or words to that effect).
I know, scrolling 4 posts down is going to be cumbersome, so here&#8217;s a link [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=58&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, it&#8217;s been so shockingly long since I&#8217;ve been posting that I only have to go back four entries to point out a prediction I made ways-a-way back in Oct 2007:  Office will port to Silverlight (or words to that effect).</p>
<p>I know, scrolling 4 posts down is going to be cumbersome, so here&#8217;s a <a href="http://phil.cockfield.net/2007/10/09/towards-a-total-eclipse-of-the-desktop/">link too</a>.</p>
<p>Well, it seemed obvious back then to me, and now it turns out it&#8217;s well on it&#8217;s way.  <a href="http://channel9.msdn.com/posts/PDCNews/First-Look-Office-14-for-Web/">Here</a>&#8217;s a somewhat limited video on Channel 9, but there&#8217;s enough in there to see what&#8217;s a cookin.</p>
<p><img class="aligncenter size-full wp-image-59" title="Excel in Silverlight" src="http://philcockfield.files.wordpress.com/2009/03/picture-4.jpg?w=424&#038;h=316" alt="Excel in Silverlight" width="424" height="316" /></p>
<p style="text-align:center;"><a href="http://channel9.msdn.com/posts/PDCNews/First-Look-Office-14-for-Web/">http://channel9.msdn.com/posts/PDCNews/First-Look-Office-14-for-Web/</a></p>
<p>Big emphasis on the real-time collaboration aspects, which is the right thing to do of course.  But what&#8217;s interesting to me is in the demo they only showed editing in Excel and OneOne, not in Word.</p>
<p>Why?  Is this too hard to do?  The RichTextBox has not been developed for Silverlight yet (although some 3rd party ones have sprung up recently).  I assumed MS was staying clear of RichText for the same reason the browser editing control (IMO) got stunted in it&#8217;s development ascent&#8230;.so that it wouldn&#8217;t compete with Word.  So, what&#8217;s going on?  Is it just that it was an early demo and they hadn&#8217;t done it yet, OR is the editing surface fundamentally too hard to replicate in Silverlight, OR are they making it a read only experience to avoid other nasty competitive issues by having that technology developed and floating around in Silverlight land?</p>
<p>Most important to me is that this shows large commitment my MS to Silverlight, and that it will become a dominant platform in line-of-business, enterprise app space. And, of course, that the platform is grunty enough to support some serious interaction developments.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=58&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2009/03/07/officesee-i-told-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/03/picture-4.jpg" medium="image">
			<media:title type="html">Excel in Silverlight</media:title>
		</media:content>
	</item>
		<item>
		<title>History of the Internet</title>
		<link>http://phil.cockfield.net/2009/03/07/46/</link>
		<comments>http://phil.cockfield.net/2009/03/07/46/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 22:54:59 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/?p=46</guid>
		<description><![CDATA[Here&#8217;s a wonderful history of the Internet in a visually light and delightful form.

http://vimeo.com/2696386
I&#8217;m not sure about the initial impression given of mainframes just before time-sharing kicked in.  It wasn&#8217;t a step back to go to mainframes, because there wasn&#8217;t any kind of accessable &#8216;interactive&#8217; computer prior to that&#8230;it was all punch cards, which was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=46&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Here&#8217;s a wonderful history of the Internet in a visually light and delightful form.</p>
<p><img class="aligncenter size-full wp-image-49" title="History of the Internet (Video)" src="http://philcockfield.files.wordpress.com/2009/03/historyofinternet.jpg?w=360&#038;h=212" alt="History of the Internet (Video)" width="360" height="212" /></p>
<p style="text-align:center;"><a href="http://vimeo.com/2696386">http://vimeo.com/2696386</a></p>
<p>I&#8217;m not sure about the initial impression given of mainframes just before time-sharing kicked in.  It wasn&#8217;t a step back to go to mainframes, because there wasn&#8217;t any kind of accessable &#8216;interactive&#8217; computer prior to that&#8230;it was all punch cards, which was shockingly hard to develop in from all accounts (and no Google&#8230;how did they do it?).</p>
<p>On this general theme of computer history, one of my favorite reads of late was:</p>
<blockquote>
<h1 class="parseasinTitle"><a href="http://www.amazon.com/What-Dormouse-Said-Counterculture-Personal/dp/0670033820"></a><a>What the Dormouse Said: How the 60s Counterculture Shaped the Personal Computer</a></h1>
</blockquote>
<p>Typically accounts of modern computer history (the PC) start at around 1970 with Apple and the usual suspects. What is interesting about this book is that it concentrates on the 2 decades prior to this, and details the pioneering work of Englebart (Human Augmentation Lab), McCarthy (SAIL, Stanfard Artificial Intelligence Laboratory) and a slew of other characters that emerged from the 60&#8217;s counter culture and shaped what became one of the most significant developments in modern history&#8230;the &#8220;personal&#8221; computer.  What&#8217;s exciting about this read, for me, was that by all account many of the pioneering ideas have yet to be implemented.  Certainly Alan Kay said the same thing to Doug, Scott and I as we drove him up to LAX last year, &#8220;go back and read Englebart!  It&#8217;s all there.&#8221;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=46&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2009/03/07/46/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2009/03/historyofinternet.jpg" medium="image">
			<media:title type="html">History of the Internet (Video)</media:title>
		</media:content>
	</item>
		<item>
		<title>Hometime</title>
		<link>http://phil.cockfield.net/2007/12/23/animals/</link>
		<comments>http://phil.cockfield.net/2007/12/23/animals/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 04:09:09 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/2007/12/23/animals/</guid>
		<description><![CDATA[
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=45&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="text-align:center; display: block;"><a href="http://phil.cockfield.net/2007/12/23/animals/"><img src="http://img.youtube.com/vi/-PspijEYN6A/2.jpg" alt="" /></a></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/philcockfield.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/philcockfield.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=45&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2007/12/23/animals/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/-PspijEYN6A/2.jpg" medium="image" />
	</item>
		<item>
		<title>Mapping Concepts</title>
		<link>http://phil.cockfield.net/2007/11/02/mapping-concepts/</link>
		<comments>http://phil.cockfield.net/2007/11/02/mapping-concepts/#comments</comments>
		<pubDate>Fri, 02 Nov 2007 16:09:16 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Creativity]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/2007/11/02/mapping-concepts/</guid>
		<description><![CDATA[&#8220;As indicated earlier, we defined concept as a perceived regularity (or  pattern) in events or objects, or records of events or objects, designated by  label. It is coming to be generally  recognized now that the meaningful learning processes described above are the  same processes used by scientists and mathematicians, or experts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=42&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><font>&#8220;As indicated earlier, we defined concept as a <em>perceived regularity (or  patt<font color="#000000">ern) in events or objects, or records of events or objects, designated by  label</font></em><span style="font-style:normal;"><font color="#000000">. It is coming to be generally  recognized now that the </font><font color="#000000">meaningful learning processes described above are the  same processes used by scientists and mathematicians, or experts in any  discipline, to construct new knowledge.<strong> </strong>In</font> fact, Novak has argued that new  </span><font color="#0178ac"><strong><em>knowledge creation</em></strong></font><span style="font-style:normal;"><font color="#0178ac"><strong> is nothing  more than a relatively high level of meaningful learning accomplished by  individuals who have a well organized knowledge structure in the particular area  of knowledge, and also a strong emotional commitment to persist in finding new  meanings</strong></font> </span>(Novak, 1977, 1993, 1998). <em>Epistemology</em><span style="font-style:normal;"> is that branch of philosophy that deals with the  nature of knowledge and new knowledge creation. There is an important  relationship between the psychology of learning, as we understand it today, and  the growing consensus among philosophers and epistemologists that new knowledge  creation is a constructive process involving both our knowledge and our emotions  or the drive to create new meanings and new ways to represent these meanings&#8221; &#8211; <a href="http://cmap.ihmc.us/Publications/ResearchPapers/TheoryCmaps/TheoryUnderlyingConceptMaps.htm">Source</a></span></font></p>
<p><font><span style="font-style:normal;"> </span></font></p>
<p>Concept maps are a fascinating alternative to mind-maps.  I live in mind-maps, but am branching out into concept maps.  What is interesting to me is that whilst mind-maps quite often become idiosyncratic to their creator, and are more an aid in personal thinking that in conveying data, concept maps play a surprisingly effective role in conveying information in educational settings.  They have their theoretical roots in the work of <a href="/w/index.php?title=Joseph_D._Novak&amp;action=edit" class="new" title="Joseph D. Novak">Joseph D. Novak</a> working at Cornell University in the 70&#8217;s.  The paper sited above is a very interesting discussion on the research and theory behind concept maps, and how to effectively create them.</p>
<p>Here&#8217;s an example of one I just created.  Seasoned concept-mappers may notice problems with my form here, but it&#8217;s a start.  You read the map from top to bottom.  A boxed item is a &#8220;concept&#8221;, and a boxed item with one or more named arrows is a &#8220;proposition&#8221;:</p>
<p align="center"><a href="http://philcockfield.files.wordpress.com/2007/11/1.gif" title="1.gif"><img src="http://philcockfield.files.wordpress.com/2007/11/1.gif" alt="1.gif" border="0" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/philcockfield.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/philcockfield.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=42&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2007/11/02/mapping-concepts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2007/11/1.gif" medium="image">
			<media:title type="html">1.gif</media:title>
		</media:content>
	</item>
		<item>
		<title>Towards a total eclipse of the desktop</title>
		<link>http://phil.cockfield.net/2007/10/09/towards-a-total-eclipse-of-the-desktop/</link>
		<comments>http://phil.cockfield.net/2007/10/09/towards-a-total-eclipse-of-the-desktop/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 16:48:55 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interaction Design]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/2007/10/09/towards-a-total-eclipse-of-the-desktop/</guid>
		<description><![CDATA[The new version of Outlook Web Access is a freak of nature.  It&#8217;s so good it&#8217;s astounding. ASTOUNDING.  The skill required to pull this feat off using blunt tools like the HTML DOM, AJAX and JScript is awe inspiring:

This will (I predict) be redone in Silverlight 1.1 when it&#8217;s released&#8230;and from there some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=39&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The new version of Outlook Web Access is a freak of nature.  It&#8217;s so good it&#8217;s astounding. ASTOUNDING.  The skill required to pull this feat off using blunt tools like the HTML DOM, AJAX and JScript is awe inspiring:</p>
<p align="center"><a href="http://philcockfield.files.wordpress.com/2007/10/webaccess.jpg" title="webaccess.jpg"><img src="http://philcockfield.files.wordpress.com/2007/10/webaccess.jpg" alt="webaccess.jpg" border="0" /></a></p>
<p>This will (I predict) be redone in Silverlight 1.1 when it&#8217;s released&#8230;and from there some interesting thoughts arise:</p>
<ol>
<li>This could eclipse the native Office experience.  It easily could.</li>
<li> And if so, this would beg the question: why doesn&#8217;t the entire Office suite get redone in Silverlight?</li>
</ol>
<p>I think it&#8217;s inevitable that a rich Office experience is delivered in Silverlight&#8230;one day.  But seeing Outlook Web Access, and the obvious development path they&#8217;ll take towards Silverlight, this could accelerate pace towards that day when we&#8217;re really using Office in a browser (and actually liking it).</p>
<p>This radical departure from a client install might also offer Microsoft the perfect excuse for why, when rewriting Office from the ground up, it&#8217;s feature set is cut-back.  People would wear that because it&#8217;s a &#8220;new&#8221; product&#8230;not an &#8220;downgrade&#8221; wearing &#8220;upgrade&#8221; clothes.  Who knows, we might even get some collaboration tools in there that aren&#8217;t embarrassingly  hacked on afterthoughts atop that smoldering pile of old code.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/philcockfield.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/philcockfield.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=39&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2007/10/09/towards-a-total-eclipse-of-the-desktop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2007/10/webaccess.jpg" medium="image">
			<media:title type="html">webaccess.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Spreading Marmite</title>
		<link>http://phil.cockfield.net/2007/09/08/spreading-marmite/</link>
		<comments>http://phil.cockfield.net/2007/09/08/spreading-marmite/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 18:21:00 +0000</pubDate>
		<dc:creator>Phil Cockfield</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Food]]></category>
		<category><![CDATA[New Zealand]]></category>

		<guid isPermaLink="false">http://phil.cockfield.net/2007/09/08/spreading-marmite/</guid>
		<description><![CDATA[The eagle eyed Doug Wright spotted the shipment of Marmite sitting on my desk this week.  Being a culinary connoisseur of eclectic range, this delicacy of far away lands peaked his interest.   As scarce and valuable as Marmite is around these parts I was more than happy to share the love, knowing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=37&subd=philcockfield&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The eagle eyed Doug Wright spotted the shipment of Marmite sitting on my desk this week.  Being a culinary connoisseur of eclectic range, this delicacy of far away lands peaked his interest.   As scarce and valuable as Marmite is around these parts I was more than happy to share the love, knowing full well Doug&#8217;s capacity to apprehend and appreciate the subtleties of fine food!</p>
<p><a href="http://en.wikipedia.org/wiki/Marmite">After acquiring the historical context of this spread of the gods</a>, we set forth on a tasting test at the Quest cafeteria.  To fully experience the breadth of this not-so-subtle, yet nuanced, flavor it was essential to cover three staples: Marmite on toast, the Marmite and cheese sandwhich, and finally the taste of my first day of school, the Marmite and chip sandwhich.</p>
<p><a href="http://philcockfield.files.wordpress.com/2007/09/1.jpg" title="The Connoisseur Convert"></a></p>
<p style="text-align:center;"><a href="http://philcockfield.files.wordpress.com/2007/09/1.jpg" title="The Connoisseur Convert"><img src="http://philcockfield.files.wordpress.com/2007/09/1.jpg" alt="The Connoisseur Convert" border="0" /></a></p>
<p align="center">This demanding American palette agrees&#8230;we Kiwi&#8217;s know what&#8217;s good.</p>
<p align="center">Now, when are they going to start stocking Vogels over here?</p>
<p align="center">&nbsp;</p>
<p align="center">&#8212;&#8212;&#8212;&#8211;</p>
<p align="left">Word just in from Dave5 &#8211; Marmite&#8217;s arch enemy &#8220;Vegemite&#8221; has been banned from the US.  So no problem bringing in the real McCoy.  <a href="http://www.saintzeno.com/blog/2006/10/22/a-victory-for-marmite-fans-everywhere">See here</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/philcockfield.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/philcockfield.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/philcockfield.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/philcockfield.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/philcockfield.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/philcockfield.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/philcockfield.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/philcockfield.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/philcockfield.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/philcockfield.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/philcockfield.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/philcockfield.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phil.cockfield.net&blog=746586&post=37&subd=philcockfield&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://phil.cockfield.net/2007/09/08/spreading-marmite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/99d0b4f26c68a563507c9e5a3d724126?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Phil</media:title>
		</media:content>

		<media:content url="http://philcockfield.files.wordpress.com/2007/09/1.jpg" medium="image">
			<media:title type="html">The Connoisseur Convert</media:title>
		</media:content>
	</item>
	</channel>
</rss>