<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-22828128</id><updated>2012-01-13T00:18:46.605+11:00</updated><category term='Home Theatre'/><category term='Resharper'/><category term='LINQ'/><category term='TomTom'/><category term='walking'/><category term='milawa'/><category term='bright'/><category term='wangaratta'/><category term='vacation'/><category term='Photography'/><category term='XBMC'/><category term='Wine'/><category term='accommodation'/><category term='Falls Creek'/><category term='C#'/><category term='Games'/><category term='Firefox'/><category term='gourmet'/><category term='Google Desktop'/><category term='Travel'/><category term='Food'/><category term='Dell'/><category term='Flickr'/><category term='Tools'/><category term='Movies'/><category term='brown brothers'/><category term='WPF'/><category term='Mount Beauty'/><category term='.NET'/><title type='text'>Jon's Musings</title><subtitle type='html'>Musings on Coding, Tech, Gaming, Travel, Photography, and more.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22828128.post-2112367835960371377</id><published>2011-08-30T11:29:00.001+10:00</published><updated>2011-08-30T11:29:13.323+10:00</updated><title type='text'>Using Robocopy in Visual Studio Post Build Events</title><content type='html'>&lt;p&gt;There are plenty of blog posts out there on this but I just tried following one and ran in to an issue I thought I’d write a quick post about.&lt;/p&gt;  &lt;p&gt;I was trying to follow &lt;a href="http://skimedic.com/blog/post/2009/03/18/Using-RoboCopy-in-Visual-Studio-Build-Events.aspx" target="_blank"&gt;this blog post&lt;/a&gt; but the problem I ran in to is robocopy treats a trailing backslash as an escape character when it’s followed by a closing quote and my $(TargetDir) had spaces in it.&amp;#160; The solution I discovered has &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/details/585089/visual-studio-2010-does-not-parse-variables-correctly-in-build-event-scripts-when-path-contains-spaces" target="_blank"&gt;already been documented&lt;/a&gt; is to add a space after the variable.&lt;/p&gt;  &lt;p&gt;So I ended up with the following code to copy the results of my build in to my Dropbox folder so my build gets synced from my notebook in Melbourne directly to the test PC setup in Los Angeles.&lt;/p&gt;  &lt;blockquote style="background-color: #000000"&gt;   &lt;p&gt;robocopy &amp;quot;$(TargetDir) &amp;quot; &amp;quot;C:\Users\Jonathan Benson\Documents\My Dropbox\Uppercut\UC3&amp;quot; /MIR /XF *.pdb *.xml *.vshost.* /NP /NJH      &lt;br /&gt;if errorlevel 4 goto BuildEventFailed       &lt;br /&gt;if errorlevel 0 goto end       &lt;br /&gt;:BuildEventFailed echo FILECOPY for $(ProjectName) FAILED       &lt;br /&gt;exit 1       &lt;br /&gt;:end echo FILECOPY for $(ProjectName) COMPLETED OK       &lt;br /&gt;exit 0&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-2112367835960371377?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/2112367835960371377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=2112367835960371377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/2112367835960371377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/2112367835960371377'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2011/08/using-robocopy-in-visual-studio-post.html' title='Using Robocopy in Visual Studio Post Build Events'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-7716438504681724692</id><published>2011-06-28T13:52:00.001+10:00</published><updated>2011-06-28T14:03:16.172+10:00</updated><title type='text'>Adding scripting support to a WPF application with IronPython including syntax highlighting with the AvalonEdit control</title><content type='html'>&lt;p&gt;So I decided I wanted to allow the end user to write some script for a button/s in my application and started doing some research.&amp;#160; A day and a half later I’ve added a syntax highlighted editor to my test application with &lt;a href="http://www.ironpython.net/" target="_blank"&gt;IronPython&lt;/a&gt; and &lt;a href="http://bit.ly/2w8biW" target="_blank"&gt;AvalonEdit&lt;/a&gt;.&amp;#160; There is a lot of out-dated and mixed information out there so I thought I’d condense some of it in to a single blog post.&lt;/p&gt;  &lt;p&gt;Most of the information I ended up using came from a few links in the end:    &lt;br /&gt;&lt;a href="http://www.voidspace.org.uk/ironpython/scripted_turtle.shtml" target="_blank"&gt;The Python Powered Turtle&lt;/a&gt; – shows how to add scripting support with IronPython     &lt;br /&gt;&lt;a href="http://coolthingoftheday.blogspot.com/2011/01/nuget-your-avalon-sharpdevelops.html" target="_blank"&gt;NuGet your Avalon&lt;/a&gt; – gives details on easily adding AvalonEdit via &lt;a href="http://nuget.codeplex.com/" target="_blank"&gt;NuGet&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://download.polytechnic.edu.na/pub4/download.sourceforge.net/pub/sourceforge/n/project/no/notepad-x/Highlighters/ICSharpCode.PythonBinding.Resources.Python.xshd" target="_blank"&gt;Python.xshd&lt;/a&gt; – Is a file used to add syntax highlighting to AvalonEdit&lt;/p&gt;  &lt;p&gt;NOTE:&amp;#160; I won’t pretend to know Python/IronPython so I’m not sure how great the Syntax Highlighting is, but it’s better than nothing.&amp;#160; Eg I did notice it highlighted the Add method of an ObservableCollection&amp;lt;T&amp;gt; I had, which didn’t seem right.&lt;/p&gt;  &lt;p&gt;Anyway, if you don’t want to read the other links and figure things out for yourself it comes down to relatively few lines of code to get everything working once you’ve installed IronPython, added the relevant references to your project, and installed/referenced AvalonEdit (via NuGet).&lt;/p&gt;  &lt;p&gt;First the XAML.&amp;#160; Just add a reference to the namespace:&lt;/p&gt;  &lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt;xmlns&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt;avalonedit&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute Value"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;http://icsharpcode.net/sharpdevelop/avalonedit&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;Then add your control for the editor:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="XAML Name"&gt;&lt;font color="#d6d694"&gt;&amp;lt;avalonedit&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Name"&gt;&lt;font color="#d6d694"&gt;TextEditor&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt; Name&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute Value"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;CodeTextEditor&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt; FontFamily&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute Value"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;Consolas&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt; FontSize&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute Value"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;10pt&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute"&gt;&lt;font color="#009b00"&gt;ShowLineNumbers&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Attribute Value"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;True&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XAML Delimiter"&gt;&lt;font color="#a1b070"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;By adding ShowLineNumbers the user will have an easy reference if the script throws an error.&lt;/p&gt;

&lt;p&gt;Now in the code behind we have…&lt;/p&gt;

&lt;p&gt;A few using statements:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Microsoft&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Scripting&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Microsoft&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Scripting&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Hosting&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;IronPython&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Hosting&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ICSharpCode&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;AvalonEdit&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Highlighting&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ICSharpCode&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;AvalonEdit&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Highlighting&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Xshd&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;System&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Xml&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;The first 3 are for IronPython, the later 3 are used for AvalonEdit (System.Xml for the XmlTextReader).&lt;/p&gt;

&lt;p&gt;We need a couple of fields in our MainWindow:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;ScriptEngine&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_engine&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;ScriptScope&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_scope&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;Then we hook things up in our Window_Initialized handler (NOT in the constructor like so many bad examples show you, since any exception thrown would get swallowed by a XAML parser exception):&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Window_Initialized&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;sender&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;e&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;)&lt;br /&gt;{&lt;br /&gt;&lt;/font&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_engine&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Python&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CreateEngine&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_scope&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_engine&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CreateScope&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;runtime&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_engine&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Runtime&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;runtime&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;LoadAssembly&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;)&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Assembly&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;runtime&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;LoadAssembly&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Uri&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;)&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Assembly&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;runtime&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;LoadAssembly&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Source&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;)&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Assembly&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;const&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;sampleScript&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;@&amp;quot;from RCS.Uppercut.Entities import *&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;myText = 'ROCK'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;uc.SetSourceLabel(2,'ON')&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;uc.Sources[0].Label= myText&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;uc.Sources[0].IsOnProgram = 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;uc.Sources[1].IsOnPreview = 1&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;for source in uc.Sources:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;source.Label = 'IN' + source.Id.ToString('d2')&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;if ( source.IsOnProgram):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;source.Label += ' True'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;else:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;source.Label += ' False'&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;newSource = Source()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;newSource.Id = len(uc.Sources) + 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;newSource.Label = 'NewSource'&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="String(C# @ Verbatim)"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;uc.Sources.Add( newSource )&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CodeTextEditor&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Text&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;sampleScript&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CodeTextEditor&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SyntaxHighlighting&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;HighlightingLoader&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Load&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;XmlTextReader&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="string"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;ICSharpCode.PythonBinding.Resources.Python.xshd&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; ),&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;HighlightingManager&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Instance&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;I’ve left some of my test script in there for you to see how I’ve used a custom type (RCS.Uppercut.Entities.Source).&lt;/p&gt;

&lt;p&gt;And finally the code to execute our script in the button click event handler:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ExecuteButton_Click&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;sender&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;RoutedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;e&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_scope&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SetVariable&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="string"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;uc&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;UppercutService&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;code&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CodeTextEditor&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Text&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;try&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;source&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_engine&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CreateScriptSourceFromString&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;code&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;SourceCodeKind&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Statements&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;source&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Execute&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_scope&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;catch&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ( &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Exception&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ex&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;eo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_engine&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetService&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;ExceptionOperations&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;error&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;eo&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;FormatException&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ex&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;MessageBox&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Show&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;error&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="string"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;There was an Error&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;MessageBoxButton&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;OK&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;MessageBoxImage&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Error&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#a79a86" size="2"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;Yes it’s really THAT simple!&lt;/p&gt;

&lt;p&gt;The end result for my test app can be seen below with a before/after shot:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-2Gc8HGMXbu4/TglP8WBzp1I/AAAAAAAALBo/3eWxS2VF2uw/s1600-h/MyTestApp%25255B8%25255D.png"&gt;&lt;img style="display: inline" title="MyTestApp" alt="MyTestApp" src="http://lh5.ggpht.com/-zvQpBRKNgi8/TglP95Rg_XI/AAAAAAAALBs/Wun2IBmyk7I/MyTestApp_thumb%25255B6%25255D.png?imgmax=800" width="640" height="441" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-7716438504681724692?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/7716438504681724692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=7716438504681724692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7716438504681724692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7716438504681724692'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2011/06/adding-scripting-support-to-wpf.html' title='Adding scripting support to a WPF application with IronPython including syntax highlighting with the AvalonEdit control'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-zvQpBRKNgi8/TglP95Rg_XI/AAAAAAAALBs/Wun2IBmyk7I/s72-c/MyTestApp_thumb%25255B6%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-2770981733706816703</id><published>2011-06-21T09:00:00.001+10:00</published><updated>2011-06-29T04:00:30.114+10:00</updated><title type='text'>Using .NET Reflection to copy the Properties of one class instance to another</title><content type='html'>&lt;p&gt;I just spend the last hour trying to recall how I’d done this in the past and was disappointed to discover I hadn’t written a blog entry on it or sent anyone an email about it.&amp;#160; So here is a blog entry.&lt;/p&gt;  &lt;p&gt;I’ve often found myself wanting to update an instance of a class based on another instance.&amp;#160; Writing something to copy each property one at a time is one option but it can bloat the code and you risk forgetting to update the code if you add a new property to the class.&amp;#160; Renaming or Deleting a property isn’t quite as bad as you’ll at least get an error at compile time.&lt;/p&gt;  &lt;p&gt;So some example code:&lt;/p&gt;  &lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedInput&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_router&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Inputs&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Where&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; )&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;First&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;();&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedInput&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Label&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Label&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedInput&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Color&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Color&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;As you can see if I decide to add a property (such as Image) I have to make sure I add it to this code or the method this snippet is taken from will fail to copy the Image property.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The better way, in my opinion, is to use reflection to copy the properties.&amp;#160; When I first needed to do this I came across a tutorial by Robbe Morris entitled &lt;a href="http://bit.ly/lno4Ml" target="_blank"&gt;.NET Reflection - Copy Class Properties&lt;/a&gt;.&amp;#160; This gave me the framework for what I needed to do and I even posted a comment on his blog with some of the code I used.&lt;/p&gt;

&lt;p&gt;An updated version of his PropertyHandler class is pasted below:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#413e2e"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;///&lt;/span&gt;&lt;/font&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt; Used to copy properties from one instance of a class to another using System.Reflection&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyHandler&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt; Sets the properties.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;fromFields&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;From fields.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;toFields&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;To fields.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;fromRecord&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;From record.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;toRecord&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;To record.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SetProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;[] &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;[] &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromRecord&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toRecord&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; (&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; (&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;foreach&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ( &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;in&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField1&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedToFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toFields&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Where&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toField&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField1&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Name&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toField&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Name&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ( &lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;!&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedToFields&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Any&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;() )&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;continue&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedToFields&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;First&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;()&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SetValue&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toRecord&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetValue&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromRecord&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ), &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt; Sets the properties.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;fromFields&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;From fields.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;fromRecord&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;From record.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;toRecord&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;To record.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SetProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;[] &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromRecord&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toRecord&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;) &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; (&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;foreach&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ( &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;in&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SetValue&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;toRecord&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromField&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetValue&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromRecord&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ), &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt; Gets the settable properties of the given class&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;type&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;The type.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;[] &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetSettableProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Type&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;|&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Instance&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;list&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Length&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;list&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;AddRange&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;fromFields&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Where&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;info&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;info&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;CanWrite&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; ) );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;list&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ToArray&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#a79a86" size="2"&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;I simply removed the redundant try/catch blocks and simplified the code a bit from his original.&amp;#160; I also added a helper method that returns an array of PropertyInfo (needed for the fromFields) based on a given type.&lt;/p&gt;

&lt;p&gt;The following is a sample class that is then using this to do it’s magic:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#413e2e"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;///&lt;/span&gt;&lt;/font&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&amp;#160; Class to represent an Output of the Router&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;[&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;DataContract&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Namespace&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="string"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;http://realitychecksystems.com/2011/05/schemas&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; )]&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Output&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; : &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Input&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;readonly&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;[] &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;OutputSettableProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyHandler&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetSettableProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Output&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;) );&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;?&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_routedInputId&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&amp;#160; Gets or sets the routed input id.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;value&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;The routed input id.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;DataMember&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Order&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="number"&gt;&lt;font color="#00ffff"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;IsRequired&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )]&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;?&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;RoutedInputId&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; { &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_routedInputId&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_routedInputId&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_routedInputId&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;InvokePropertyChanged&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="string"&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;RoutedInputId&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; );&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt; Gets the settable properties for this class.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;protected&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;override&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;[] &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetSettableProperties&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt;()&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;OutputSettableProperties&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#a79a86" size="2"&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;h1&gt;THE IMPORTANT BIT&lt;/h1&gt;

&lt;p&gt;The key thing to note here is the PropertyHandler.GetSettableProperties is a static method which will only execute once, via the field initializer of OutputSettableProperties, when the first instance of Output is created.&amp;#160; This ensures the “heavy lifting” of using reflection to get the properties is only done once.&lt;/p&gt;

&lt;p&gt;The local GetSettableProperties method is used by the UpdateValues method of the parent class as follows:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#413e2e"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;///&lt;/span&gt;&lt;/font&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt; Updates the values of this instance based on another instance.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#413e2e"&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="XML Doc Tag"&gt;///&lt;/span&gt;&lt;/font&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;param name=&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Attribute"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;&amp;quot;input&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Comment"&gt;&lt;font color="#756f51"&gt;&lt;strong&gt;The input.&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="XML Doc Tag"&gt;&lt;font color="#413e2e"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;UpdateValues&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#a79a86"&gt; )&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;PropertyHandler&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;SetProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;GetSettableProperties&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(), &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;this&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#a79a86" size="2"&gt; );&lt;br /&gt;}&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;This means both my parent class (Input) and the child (Output) can take advantage of the magic.&lt;/p&gt;

&lt;p&gt;So the code example given earlier is now as follows:&lt;/p&gt;

&lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;font size="2"&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedInput&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;_router&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Inputs&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Where&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;==&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; )&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;First&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;();&lt;/font&gt;&lt;br /&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;matchedInput&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;UpdateValues&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; );&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;Not only is the resulting code simpler to read it’s going to work even if I add, remove, or rename properties.&amp;#160; &lt;/p&gt;

&lt;p&gt;As usual, there may be better approaches out there, but this is working for me.&amp;#160; If you have any suggested improvements feel free to pass them along in the comments below.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-2770981733706816703?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/2770981733706816703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=2770981733706816703' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/2770981733706816703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/2770981733706816703'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2011/06/using-net-reflection-to-copy-properties.html' title='Using .NET Reflection to copy the Properties of one class instance to another'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6181654281605973449</id><published>2011-05-27T06:36:00.002+10:00</published><updated>2011-05-27T06:46:40.565+10:00</updated><title type='text'>WPF Invisible Window</title><content type='html'>&lt;p&gt;Since it took me a while searching, and trial/error to find out how to do this I thought I’d post a code snippet.&amp;#160; My initial attempt gave a small circle, and later attempts a black dot.&amp;#160; Eventually I came across an &lt;a href="http://wrb.home.xs4all.nl/Articles_2010/Article_WPFWinBorderless_01.htm" target="_blank"&gt;article on creating a borderless window&lt;/a&gt; that did the trick.&lt;/p&gt;  &lt;p&gt;So here’s the final code snippet:&lt;/p&gt;  &lt;pre style="line-height: normal; font-family: ; background: #10100d; color: "&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;&lt;font style="font-size: 12pt"&gt;var&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;tempParent&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Window&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Height&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="number"&gt;&lt;font color="#00ffff"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Width&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="number"&gt;&lt;font color="#00ffff"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Top&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="number"&gt;&lt;font color="#00ffff"&gt;200&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Left&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="number"&gt;&lt;font color="#00ffff"&gt;200&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;WindowStartupLocation&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;WindowStartupLocation&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Manual&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;WindowStyle&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types(Enums)"&gt;&lt;font color="#f07b21"&gt;WindowStyle&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;None&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;ShowInTaskbar&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;false&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Background&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="User Types"&gt;&lt;font color="#009b00"&gt;Brushes&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;Transparent&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: " class="identifier"&gt;&lt;font color="#e8e8e8"&gt;AllowsTransparency&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="operator"&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;&amp;#160;&lt;/font&gt;&lt;span style="color: " class="keyword"&gt;&lt;font color="#d6d694"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#a79a86"&gt;};&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;Top/Left/WindowStartupLocation aren’t needed.&amp;#160; I was using them to try positioning an OpenFileDialog relative to this invisible Window.&amp;#160; The trick works on Windows 7, but sadly not on XP, which still opens the dialog centre screen.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6181654281605973449?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6181654281605973449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6181654281605973449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6181654281605973449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6181654281605973449'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2011/05/wpf-invisible-window.html' title='WPF Invisible Window'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-3396253026980738069</id><published>2011-05-25T06:41:00.001+10:00</published><updated>2011-05-25T06:41:05.784+10:00</updated><title type='text'>Hosting a WCF service within a WPF application</title><content type='html'>&lt;p&gt;I’m currently investigating hosting a WCF service within a WPF application for a project I’m working on and was struggling to find any good examples.&amp;#160; Then I came across &lt;a href="http://wcfguidanceforwpf.codeplex.com/" target="_blank"&gt;WCF Guidance for WPF Developers&lt;/a&gt;.&amp;#160; I’ve only just started reading the white paper from the site and must say it appears to be what I’ve been wanting all along.&amp;#160; The site even has template projects and videos.&lt;/p&gt;  &lt;p&gt;The white paper contains explanations that are aimed at a WPF developer, and the author (&lt;a href="http://www.michelelerouxbustamante.com/" target="_blank"&gt;Michele Leroux Bustamante&lt;/a&gt; aka &lt;a href="http://www.dasblonde.net/" target="_blank"&gt;DasBlonde&lt;/a&gt;), does a great job of pointing out differences between what you want to do in real code versus what you might see given in examples.&amp;#160; I’ve used WCF in the past but have been firmly WPF focused for over a year now, so this site seems like the perfect fit.&amp;#160; I’ll spend a few days absorbing the information presented but can already say that it’s worth checking out if you find yourself in a similar situation.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-3396253026980738069?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/3396253026980738069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=3396253026980738069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3396253026980738069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3396253026980738069'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2011/05/hosting-wcf-service-within-wpf.html' title='Hosting a WCF service within a WPF application'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-941941508010305190</id><published>2010-11-22T19:38:00.001+11:00</published><updated>2010-11-22T19:38:26.905+11:00</updated><title type='text'>Visual Studio 2010–Missing Class.zip class template</title><content type='html'>&lt;p&gt;Just a quick one in case someone else has the problem.&amp;#160; I was just met with this error and the suggested solutions online didn’t work.&amp;#160; It occurred to me that the only thing I’d done recently was try a new extension and ended up disabling it.&amp;#160; The extension at fault was &lt;a title="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef" href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef" target="_blank"&gt;Productivity Power Tools&lt;/a&gt;.&amp;#160; Once enabled again I could create a class.&lt;/p&gt;  &lt;p&gt;I guess I’ll have to see if I can get used to it’s features and use it after all.&amp;#160; At least the latest version lets you disable individual features.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-941941508010305190?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/941941508010305190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=941941508010305190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/941941508010305190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/941941508010305190'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/11/visual-studio-2010missing-classzip.html' title='Visual Studio 2010–Missing Class.zip class template'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6733755384965226843</id><published>2010-11-16T17:11:00.001+11:00</published><updated>2011-07-06T07:04:29.637+10:00</updated><title type='text'>The WPF marquee text ordeal or watch your DispatchTimer usage!</title><content type='html'>&lt;p&gt;Last Friday I set myself a simple enough task.&amp;#160; Modify my asset browser dialog so that it would scroll the text if it was too wide.&amp;#160; This turned out to be simple enough in the end, but it certainly took me long enough to figure out what was going wrong so I thought I’d put a quick blog up about it.&amp;#160; For those that can’t be bothered reading the whole thing, check the work you’re doing in any DispatchTimer tick handlers!&lt;/p&gt;  &lt;p&gt;Here is a screenshot of the end result.&amp;#160; Basically it’s allowing the user to browse for video clips on a device (&lt;a href="http://www.grassvalley.com/products/k2_solo" target="_blank"&gt;K2 Solo&lt;/a&gt;) using thumbnails of the clips.&amp;#160; It’s used in a library I wrote and in the application I spend most of my life developing called &lt;a href="http://www.realityx.com/index.php/portfolio/mlbn_flashcam?category=uppercut" target="_blank"&gt;Uppercut&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://tardis1.tinygrab.com/grabs/505de67c2cfdba58d0af82002281ab6b.png" /&gt;&lt;/p&gt;  &lt;p&gt;Of course I started by Googling for various solutions out there.&amp;#160; The two I worked from were:    &lt;br /&gt;&lt;a title="http://msdnbangladesh.net/blogs/razan/archive/2009/08/02/creating-marquee-scrolling-text-in-wpf.aspx" href="http://msdnbangladesh.net/blogs/razan/archive/2009/08/02/creating-marquee-scrolling-text-in-wpf.aspx"&gt;http://msdnbangladesh.net/blogs/razan/archive/2009/08/02/creating-marquee-scrolling-text-in-wpf.aspx&lt;/a&gt;     &lt;br /&gt;and     &lt;br /&gt;&lt;a title="http://jobijoy.blogspot.com/2008/08/wpf-custom-controls-marquee-control.html" href="http://jobijoy.blogspot.com/2008/08/wpf-custom-controls-marquee-control.html"&gt;http://jobijoy.blogspot.com/2008/08/wpf-custom-controls-marquee-control.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My first mistake was to try doing this in XAML rather than code, but on the bright side I learnt a lot in the process.&amp;#160; I managed to get a simple example working in &lt;a href="http://kaxaml.com/" target="_blank"&gt;Kaxaml&lt;/a&gt; and proceeded to wire things up to be far more complicated than they needed to be.&lt;/p&gt;  &lt;p align="left"&gt;I setup a DataConverter to set the To parameter on the animation from the ActualWidth of the TextBlock as it needed to Negate it.&amp;#160; Interestingly enough I did find a handy &lt;a href="http://josheinstein.com/blog/index.php/2010/06/a-multi-purpose-negateconverter-for-wpfsilverlight/" target="_blank"&gt;NegateConverter&lt;/a&gt; that handles a lot of types you might want to negate.&amp;#160; This worked, but I had two problems.&amp;#160; The animations were jerky, and everything was animating, not just the text that was too wide to fit.&lt;/p&gt;  &lt;p align="left"&gt;So I set out to dynamically trigger the animation.&amp;#160; I ended up creating a MultiConverter to compare the width of the TextBlock and the Canvas surrounding it and used the result to trigger the animation via a DataTrigger in a DataTemplate.&amp;#160; The problem was that as soon as I ran my code I got an error I’d never seen before… &amp;quot;Cannot freeze this Storyboard timeline tree for use across threads”.&amp;#160; Some more time with Google and it turns out that if I’m going to dynamically trigger the storyboard this way then it’s arguments (the From/To) have to be static so I couldn’t use my DataBinding.&amp;#160; If I hard coded the widths this approach would work, but the dialog is a useable with different sized buttons/images so that wasn’t an option.&lt;/p&gt;  &lt;p align="left"&gt;So I finally admitted defeat and reverted to using code behind after all, like in the original solutions linked above.&amp;#160; I did make things a bit more complex with two DoubleAnimations but that’s just because I’m picky about things like that.&amp;#160; The resulting code is here:&lt;/p&gt;  &lt;div style="font-family: ; background: #10100d"&gt;   &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;MarqueeTextBlock_OnLoaded&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;sender&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;RoutedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;e&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; )&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font color="#a79a86" face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;sender&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;as&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;TextBlock&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font color="#a79a86" face="Courier New"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ( &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;!=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;&amp;amp;&amp;amp;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;ActualWidth&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ((&lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;Canvas&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;)&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Parent&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;)&lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Width&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; )&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font color="#a79a86" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim1&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;DoubleAnimation&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#00ffff"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;-&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;ActualWidth&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#ff8080"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;FromSeconds&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#00ffff"&gt;6&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ) );&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim2&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;DoubleAnimation&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;ActualWidth&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#00ffff"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#ff8080"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;FromSeconds&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#00ffff"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ) )&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;BeginTime&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff8080"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;FromSeconds&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#00ffff"&gt;6&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; )};&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font color="#a79a86" face="Courier New"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;sb&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;Storyboard&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; {&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;RepeatBehavior&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff8080"&gt;RepeatBehavior&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Forever&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;};&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;sb&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Children&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Add&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim1&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;sb&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Children&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Add&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim2&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;Storyboard&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;SetTarget&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim1&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;Storyboard&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;SetTargetProperty&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim1&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;PropertyPath&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;( &lt;/font&gt;&lt;span&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;(Canvas.Left)&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; ) );&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;Storyboard&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;SetTarget&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim2&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;textBlock&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;Storyboard&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;SetTargetProperty&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;anim2&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#d6d694"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#009b00"&gt;PropertyPath&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#44b1e3"&gt;&lt;strong&gt;&amp;quot;(Canvas.Left)&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;));&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a79a86"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;sb&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#80ff00"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#e8e8e8"&gt;Begin&lt;/font&gt;&lt;/span&gt;&lt;font color="#a79a86"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font color="#a79a86" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;font color="#a79a86" face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p align="left"&gt;And that worked nicely, except the animation was still jerky. So I went back to Googling, and end up downloading and trying out the &lt;a href="http://blogs.msdn.com/b/jgoldb/archive/2010/05/25/wpfperf-performance-profiling-tools-for-wpf-4-is-now-available.aspx" target="_blank"&gt;WPF Performance Toolkit&lt;/a&gt;.&amp;#160; Sadly things seemed just fine there.&amp;#160; My storyboards were now freezeable, the regions I’d expect were being redrawn, software rendering wasn’t being used, and barely any of my CPU was in use.&amp;#160; I’d now been at this for almost 2 days and was starting to think I was insane for trying it.&amp;#160; Though again, I’d now learnt about the toolkit which I’m sure I’ll use again in the future.&lt;/p&gt;  &lt;p align="left"&gt;Then I had a breakthrough.&amp;#160; The VPN connection I was using timed out whilst I was running the application and my test app threw an exception.&amp;#160; Where it happened to throw it was in a timer routine that receives updates from the K2 Solo.&amp;#160; I’d used a DispatcherTimer for that to keep my life simple.&amp;#160; After all, who wants the headache of cross threading if you can avoid it?&amp;#160;&amp;#160; Of course, it turns out this was the culprit of my jerky animations.&amp;#160; It was firing every 300ms and sending a request, via the VPN, from Melbourne (Australia) to Los Angeles for any updates.&amp;#160; Needless to say this was taking longer than it would on a LAN, something I’m finding is a great way to test my network code, and therefore preventing the UI rendering.&lt;/p&gt;  &lt;p align="left"&gt;So in the end the solution for the jerky animation was simple enough.&amp;#160; Disable the timer while the dialog was in use, and enable it again afterwards.&amp;#160; I also reduced the timer to fire every 1 second and lowered it’s priority for good measure.&lt;/p&gt;  &lt;p align="left"&gt;The end result was a lot more time spent, a lot of learning, and thankfully a reusable dialog that does just what I wanted.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6733755384965226843?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6733755384965226843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6733755384965226843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6733755384965226843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6733755384965226843'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/11/wpf-marquee-text-ordeal-or-watch-your.html' title='The WPF marquee text ordeal or watch your DispatchTimer usage!'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-739138134351754463</id><published>2010-09-12T16:19:00.001+10:00</published><updated>2010-09-12T16:47:48.222+10:00</updated><title type='text'>Windows 7, Android (Froyo) and XBMC Upgrades</title><content type='html'>&lt;p&gt;So I’ve spent most of my weekend fiddling, with very little sleep.&amp;#160; But this time it’s for a good, fun (for a geek anyway), reason.&amp;#160; I thought I’d document some of what I’ve done here as I’ve come across a few helpful hints along the way.&amp;#160; There were three main things I’ve spent my time on.&lt;/p&gt;  &lt;h2&gt;1. Installing Android on my HTC HD2&lt;/h2&gt;  &lt;p&gt;I’ve been using a custom Windows Mobile 6.5.5 ROM on my &lt;a href="http://forum.xda-developers.com/wiki/index.php?title=HTC_Leo" target="_blank"&gt;HTC HD2&lt;/a&gt; for a while now.&amp;#160; There are plenty of ROMs to be had and a lot more information on the wonderful &lt;a href="http://forum.xda-developers.com/forumdisplay.php?f=534" target="_blank"&gt;xda-developers.com&lt;/a&gt;.&amp;#160; The developer of the ROM I was using (&lt;a href="http://forum.xda-developers.com/showthread.php?t=629409" target="_blank"&gt;OzROM&lt;/a&gt;) recently released a bare bones ROM (&lt;a href="http://forum.xda-developers.com/showthread.php?t=774417" target="_blank"&gt;OzDroid&lt;/a&gt;) intended to be used to boot one of the various Android ROMs (search &lt;a href="http://forum.xda-developers.com/forumdisplay.php?f=735" target="_blank"&gt;this thread&lt;/a&gt; for [BUILD]) that are now at a somewhat, read on, useable stage.&amp;#160; I decided to give it a try along with the Android ROM he was already using (&lt;a href="http://forum.xda-developers.com/showthread.php?t=736545" target="_blank"&gt;mattc Leo + Froyo w/Sense 1.7&lt;/a&gt;) and set at it.&lt;/p&gt;  &lt;p&gt;The developers on the forum have been at this for a while and most of the issues with running Android like this (ie from a SD card on top of Windows Mobile) have now been fixed.&amp;#160; There are still known issues with the most annoying one being the touchscreen becoming unresponsive for 10-20 seconds when resuming from standby, and the odd lockup requiring a reboot, but for the most part it’s useable.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: inline" align="right" src="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=135x135&amp;amp;chl=market://details?id=nl.rogro.GScriptLite" /&gt;&lt;/p&gt;  &lt;p&gt;I did find various suggested fixes for the touchscreen issue but neither seem to have fully solved the issue for me.&amp;#160; One was simply turning off animations (Menu –&amp;gt; Settings –&amp;gt; Display –&amp;gt; Animation) and the other involved disabling the G-Sensor via &lt;a href="http://cid-63ee5c256d29ea78.office.live.com/self.aspx/Public/gscript.7z" target="_blank"&gt;a couple of scripts&lt;/a&gt; with an app called &lt;a href="http://www.androlib.com/android.application.nl-rogro-gscriptlite-qCm.aspx" target="_blank"&gt;G-Script Lite&lt;/a&gt; (that’s the &lt;a href="http://en.wikipedia.org/wiki/QR_Code" target="_blank"&gt;QR Code&lt;/a&gt; over on the right and you can scan it using &lt;a href="http://www.quickmark.cn/En/Info/android.asp" target="_blank"&gt;QuickMark&lt;/a&gt;).&amp;#160; They obviously work for some people and I must admit I’ve been unable to reproduce the issue whilst writing this blog post so perhaps it’s helped for me too.&lt;/p&gt;  &lt;p&gt;So far I’m loving Android.&amp;#160; Since I’m using a HTC Sense based build it’s quite similar to Windows Mobile and, for the most part, I’ve been able to find my way around it just fine.&amp;#160; The main thing I have to get used to is using the hardware buttons which Android makes heavy use of but Windows Mobile (as of 6.5.5) had virtually done away with.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: inline" align="right" src="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=135x135&amp;amp;chl=market://details?id=com.siriusapplications.quickboot" /&gt;There are plenty of apps on the Android Marketplace and I’ve managed to find replacements for most of what I had under Windows Mobile.&amp;#160; I had a full featured calculator in &lt;a href="http://www.pocketgear.com/en/usd/2142281,product-details,Panoramic-Calc-Pro.html" target="_blank"&gt;Panoramic Calc Pro&lt;/a&gt; (paid app) that I haven’t yet found an equivalent of, and TomTom isn’t available (I’d be surprised if they don’t release something eventually) and the alternatives sound rather poor based on my research.&amp;#160; Thankfully with the setup I’m using I can easily reboot the phone (using &lt;a href="http://www.androlib.com/android.application.com-siriusapplications-quickboot-jDpx.aspx" target="_blank"&gt;QuickBoot&lt;/a&gt;) and run Windows Mobile instead to launch those if I need them.&amp;#160; &lt;/p&gt;  &lt;p&gt;So what am I loving about Android so far.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Gmail integration.&amp;#160; I use Gmail, Google Docs, Google Calendar, etc and have just recently tried switching to Chrome (more on that later).&amp;#160; The integration with Android is just that much smoother, from the labels support in the Gmail app, to the ability to sync with multiple calendars. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.trillian.im/" target="_blank"&gt;Trillian&lt;/a&gt;.&amp;#160; I’ve been using Trillian for years on my PC, and to have it on my mobile phone, albeit without Skype support, is definitely a welcome addition, at least with &lt;a href="http://forum.xda-developers.com/showthread.php?t=687056" target="_blank"&gt;Swype for a keyboard&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;App support.&amp;#160; Lately everything seems to come out for iPhone, then Android, and maybe Windows Mobile.&amp;#160; With Windows Mobile 7 on the horizon the days of new apps for Windows Mobile 6.5.5. are numbered (it’s my understanding that Windows Mobile 7 will not run previous version Windows Mobile applications). &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;In conclusion I’ll be trying it for a few more days and if they can solve the freezing issue I’ll probably stick with it.&lt;/p&gt;  &lt;h2&gt;2. Upgrading my main PC to Windows 7&lt;/h2&gt;  &lt;p&gt;A while back I bought a Windows 7 Home Premium Upgrade Family Pack (3 upgrade licenses) as I have two PCs and a notebook I wanted to upgrade.&amp;#160; I rebuilt the notebook but not the PCs.&amp;#160; This weekend I finally got around to backing up my main PC and upgrading it.&lt;/p&gt;  &lt;p&gt;There are a couple of things I came across that are worth mentioning.&amp;#160; The article “&lt;a href="http://www.lifehacker.com.au/2010/09/top-10-things-to-do-with-a-new-windows-7-system/" target="_blank"&gt;Top 10 things to do with a new Windows 7 System&lt;/a&gt;” has a few tips but the top two are especially worth mentioning:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Ninite.com is a site that lets you download an installer that automates downloading and installing various common utilities.&amp;#160; More details in the &lt;a href="http://www.lifehacker.com.au/2010/06/lifehacker-pack-2010-our-list-of-essential-windows-downloads/" target="_blank"&gt;Lifehacker Pack 2010&lt;/a&gt; article. &lt;/li&gt;    &lt;li&gt;New shortcuts!&amp;#160; I love me some shortcuts and Windows 7 has even more to help take the tedium out of life.&amp;#160; &lt;a href="http://www.lifehacker.com.au/2009/10/the-master-list-of-new-windows-7-shortcuts/" target="_blank"&gt;The Master List of Windows 7 Shortcuts&lt;/a&gt; details them, and a few more in the comments. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The following is a list of what I’ve installed that is on Ninite.com:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Chrome – I’d normally install Firefox with Vimperator too, but am giving Chrome a trial for the moment. &lt;/li&gt;    &lt;li&gt;Skype &lt;/li&gt;    &lt;li&gt;K-Lite Codecs * &lt;/li&gt;    &lt;li&gt;Paint.NET * &lt;/li&gt;    &lt;li&gt;Picasa &lt;/li&gt;    &lt;li&gt;Adobe Reader &lt;/li&gt;    &lt;li&gt;Avast &lt;/li&gt;    &lt;li&gt;Flash &lt;/li&gt;    &lt;li&gt;Java &lt;/li&gt;    &lt;li&gt;Silverlight &lt;/li&gt;    &lt;li&gt;uTorrent &lt;/li&gt;    &lt;li&gt;Dropbox – I haven’t used this yet but noticed there is an Android app for it so figured I’d try it &lt;/li&gt;    &lt;li&gt;KeePass – I used Windows Live Sync to sync my database for this across PCs &lt;/li&gt;    &lt;li&gt;Steam &lt;/li&gt;    &lt;li&gt;ImgBurn * &lt;/li&gt;    &lt;li&gt;CCleaner &lt;/li&gt;    &lt;li&gt;TeraCopy &lt;/li&gt;    &lt;li&gt;Recuva * &lt;/li&gt;    &lt;li&gt;Revo * &lt;/li&gt;    &lt;li&gt;7-Zip &lt;/li&gt;    &lt;li&gt;JDK – &lt;a href="http://androidcommander.com/" target="_blank"&gt;Android Commander&lt;/a&gt; needed it. &lt;/li&gt;    &lt;li&gt;Putty &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="1"&gt;* I hadn’t used these before but since they’re on Ninite I thought I’d give them a go.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;What I’ve installed that’s not on there:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Trillian &lt;/li&gt;    &lt;li&gt;Vim &lt;/li&gt;    &lt;li&gt;Ember Media Manager &lt;/li&gt;    &lt;li&gt;Windows Live Essentials Beta – Sync and Writer anyway &lt;/li&gt;    &lt;li&gt;O&amp;amp;O Defrag 12 &lt;/li&gt;    &lt;li&gt;Daemon Tools Lite &lt;/li&gt;    &lt;li&gt;Various Drivers &lt;/li&gt;    &lt;li&gt;&lt;a href="https://mozy.com/?ref=LUD2PF" target="_blank"&gt;Mozy&lt;/a&gt; – Free 2GB online backup I figured I’d give a go&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As part of the rebuild I’d normally setup Windows to auto-login, but since my new Alienware M17x came with facial recognition software I thought I’d see if it was available.&amp;#160; Turns out the same software, though presented different is available for my Logitech webcam, though I only managed to download it via the Features section for another model, the &lt;a href="http://www.logitech.com/en-za/webcam-communications/webcams/devices/6816" target="_blank"&gt;Logitech HD Pro Webcam C910&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;As an added bonus I’ve enabled the “Continuous security” option and it acts as a good monitor for my posture, since when I start to slouch it fails to recognize my face and starts to warn me it’s going to lock the screen.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;I should note I did find mention of alternatives.&amp;#160; &lt;a href="http://www.luxand.com/blink/" target="_blank"&gt;Blink!&lt;/a&gt; in particular looked reasonable, but since the Logitech bundled option is essentially the same as the Alienware one I went with it.&lt;/p&gt;  &lt;h2&gt;3. XBMC Upgrade&lt;/h2&gt;  &lt;p&gt;&lt;img style="display: inline" align="right" src="http://xbmc.org/wp-content/uploads/2010/07/qrcode.png" /&gt;Finally I’ll briefly mention that Beta 1 of the new build of XBMC (Dharma) is now out and I decided, since the Android XBMC remote app reminded me of it, to try it out.&lt;/p&gt;  &lt;p&gt;So far it’s not as stable as XBMC 9.11 and my favourite skin hasn’t been ported yet, but it does do DXVA acceleration (just 2% CPU usage now playing back a 1080p video with DTS audio), and has a much nicer integration of addons.&lt;/p&gt;  &lt;p&gt;I’ll stop babbling for now.&amp;#160; Hopefully someone out there finds something useful in my ramblings.&amp;#160; :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-739138134351754463?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/739138134351754463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=739138134351754463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/739138134351754463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/739138134351754463'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/09/windows-7-android-froyo-and-xbmc.html' title='Windows 7, Android (Froyo) and XBMC Upgrades'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6212868524881276126</id><published>2010-06-29T16:29:00.001+10:00</published><updated>2010-06-29T16:30:21.138+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>WPF creating and binding RadioButtons based on an Enum</title><content type='html'>&lt;p&gt;Today I came across a problem I’d previously worked around but knew there had to be a better way to handle.&amp;#160; What I wanted to do was both generate a series of RadioButtons based on an Enum and bind the IsChecked property of the RadioButtons to a property, in this case of another control, of the Enum type.&lt;/p&gt;  &lt;p&gt;Google shows there is a LOT of information out there but nothing I could find covered exactly what I wanted to do.&amp;#160; In the end I managed to come up with a combination of various solutions I’d seen suggested that works well for me.&amp;#160; So what follows are the details on what I discovered.&lt;/p&gt;  &lt;p&gt;If you want to skip the details and just view the solution yourself you can get &lt;a href="http://cid-63ee5c256d29ea78.office.live.com/self.aspx/Public/WpfEnumBinding.7z"&gt;the Visual Studio 2010 solution from my SkyDrive&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;To keep this as short as possible I won’t cover what didn’t work and I’ll just explain the final solution.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;The Setup&lt;/h4&gt;  &lt;p&gt;A simple enum:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;enum&lt;/span&gt; &lt;span style="color: #f07b21"&gt;Modes&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;List&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;Thumbnail&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;IconOnly&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;and an observable property for the MainWindow:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;private&lt;/span&gt; &lt;span style="color: #f07b21"&gt;Modes&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_mode&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #f07b21"&gt;Modes&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;List&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #f07b21"&gt;Modes&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Mode&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;get&lt;/span&gt; { &lt;span style="color: #d6d694"&gt;return&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_mode&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;set&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;_mode&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;value&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;InvokePropertyChanged&lt;/span&gt;( &lt;span style="color: #d6d694"&gt;new&lt;/span&gt; &lt;span style="color: #009b00"&gt;PropertyChangedEventArgs&lt;/span&gt;( &lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;Mode&amp;quot;&lt;/span&gt; ) );&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Now &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/323d067a-efef-4c9f-8d99-fecf45522395/" target="_blank"&gt;the trick&lt;/a&gt; turned out to be binding the generated RadioButtons IsChecked to the IsSelected of a ListBoxItem along with the use of an ObjectDataProvider as shown in &lt;a href="http://msdn.microsoft.com/en-us/library/bb613576.aspx" target="_blank"&gt;this How To&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;The ListBox&lt;/h4&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ListBox&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; KeyboardNavigation.DirectionalNavigation&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;Cycle&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; BorderBrush&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;Transparent&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Name&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;rbl1&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; ItemsSource&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Source&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; odp&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; SelectedItem&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Mode&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; ItemTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; ViewStyleTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; ItemsPanel&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; StackPanelHorizontalTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;The Resources&lt;/h4&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Style&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; BasedOn&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #a1b070"&gt; {&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Type&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; ToggleButton&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; TargetType&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Type&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; RadioButton&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;The first Style overrides the style of the generated RadioButtons so they appear as ToggleButtons.&amp;#160; I needed it for my touch screen application as the normal RadioButton style is too small.&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ObjectDataProvider&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; MethodName&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;GetValues&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; ObjectType&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Type&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; System&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #ff80c0"&gt;Enum&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #009b00"&gt;Key&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;odp&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ObjectDataProvider.MethodParameters&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Type&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; TypeName&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;WpfEnumBinding:Modes&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ObjectDataProvider.MethodParameters&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ObjectDataProvider&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;The ObjectDataProvider simply provides the list of the various Enum values.&amp;#160; See &lt;a href="http://msdn.microsoft.com/en-us/library/bb613576.aspx" target="_blank"&gt;this How To&lt;/a&gt; for more info.&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;DataTemplate&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #009b00"&gt;Key&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;ViewStyleTemplate&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;RadioButton&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; IsHitTestVisible&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Focusable&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; IsChecked&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; RelativeSource&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;RelativeSource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Mode&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;FindAncestor&lt;/span&gt;&lt;span style="color: #a1b070"&gt;,&lt;/span&gt;&lt;span style="color: #ff80c0"&gt;AncestorType&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Type&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; ListBoxItem&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}},&lt;/span&gt;&lt;span style="color: #ff80c0"&gt;Path&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;IsSelected&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Width&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;TextBlock&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Text&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #a1b070"&gt; }&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Margin&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;RadioButton&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;The template to generate the RadioButtons ensures they can’t actually be clicked/focused and, as mentioned, binds the IsChecked property to the parent ListBoxItems IsSelected property.&amp;#160; So when you click the RadioButton the click passes through to the ListBoxItem and selects that item.&amp;#160; This in turn, via the binding, checks the corresponding RadioButton.&lt;/p&gt;  &lt;p&gt;The ItemsPanel isn’t worth showing here.&amp;#160; The one remaining trick is to modify the Style of the ListBoxItem so it doesn’t show a highlight when selected.&amp;#160; This is easily achieved as follows:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Style&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; TargetType&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3"&gt;&amp;quot;ListBoxItem&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Style.Resources&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;SolidColorBrush&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #009b00"&gt;Key&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Static&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; SystemColors&lt;/span&gt;&lt;span style="color: #a1b070"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;HighlightBrushKey&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Color&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3"&gt;&amp;quot;Transparent&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Style.Resources&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Style&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;So that covers my original problem.&amp;#160; But what if you don’t want to display all the values of the enumeration and you just want to work with a couple of them?&amp;#160; The answer (based on &lt;a title="http://stackoverflow.com/questions/397556/wpf-how-to-bind-radiobuttons-to-an-enum/2908885#2908885" href="http://stackoverflow.com/questions/397556/wpf-how-to-bind-radiobuttons-to-an-enum/2908885#2908885" target="_blank"&gt;this answer&lt;/a&gt; on stackoverflow) turns out to be quite straightforward, and like many other binding issues, involves using a custom Converter as follows.    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;     &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;class&lt;/span&gt; &lt;span style="color: #009b00"&gt;EnumToBooleanConverter&lt;/span&gt; : &lt;span style="color: #80ff80"&gt;IValueConverter&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;{&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Convert&lt;/span&gt;(&lt;span style="color: #d6d694"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;value&lt;/span&gt;, &lt;span style="color: #009b00"&gt;Type&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;targetType&lt;/span&gt;, &lt;span style="color: #d6d694"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;parameter&lt;/span&gt;, &lt;span style="color: #e8e8e8"&gt;System&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Globalization&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #009b00"&gt;CultureInfo&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;culture&lt;/span&gt;)&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;return&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;value&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Equals&lt;/span&gt;(&lt;span style="color: #e8e8e8"&gt;parameter&lt;/span&gt;);&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;ConvertBack&lt;/span&gt;(&lt;span style="color: #d6d694"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;value&lt;/span&gt;, &lt;span style="color: #009b00"&gt;Type&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;targetType&lt;/span&gt;, &lt;span style="color: #d6d694"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;parameter&lt;/span&gt;, &lt;span style="color: #e8e8e8"&gt;System&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Globalization&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #009b00"&gt;CultureInfo&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;culture&lt;/span&gt;)&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;return&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;value&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Equals&lt;/span&gt;(&lt;span style="color: #d6d694"&gt;false&lt;/span&gt;) &lt;span style="color: #80ff00"&gt;?&lt;/span&gt; &lt;span style="color: #009b00"&gt;DependencyProperty&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;UnsetValue&lt;/span&gt; : &lt;span style="color: #e8e8e8"&gt;parameter&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin: 0px"&gt;}&lt;/p&gt;   &lt;/div&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Then your RadioButtons simply take advantage of that converter as follows:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;RadioButton&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Content&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;List&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; IsChecked&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Mode&lt;/span&gt;&lt;span style="color: #a1b070"&gt;,&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Converter&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; EnumToBooleanConverter&lt;/span&gt;&lt;span style="color: #a1b070"&gt;},&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; ConverterParameter&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Static&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; WpfEnumBinding&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #ff80c0"&gt;Modes&lt;/span&gt;&lt;span style="color: #a1b070"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;List&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;RadioButton&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; Content&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;Thumbnail&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;&amp;#160;&amp;#160;&amp;#160; IsChecked&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Mode&lt;/span&gt;&lt;span style="color: #a1b070"&gt;,&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Converter&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; EnumToBooleanConverter&lt;/span&gt;&lt;span style="color: #a1b070"&gt;},&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; ConverterParameter&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: aqua"&gt;Static&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; WpfEnumBinding&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #ff80c0"&gt;Modes&lt;/span&gt;&lt;span style="color: #a1b070"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;Thumbnail&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Again if you’ve actually read this far you can get &lt;a href="http://cid-63ee5c256d29ea78.office.live.com/self.aspx/Public/WpfEnumBinding.7z"&gt;the Visual Studio 2010 solution from my SkyDrive&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I hope this saves someone else out there some time/effort.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6212868524881276126?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6212868524881276126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6212868524881276126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6212868524881276126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6212868524881276126'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/06/wpf-creating-and-binding-radiobuttons.html' title='WPF creating and binding RadioButtons based on an Enum'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-358897931307901462</id><published>2010-06-17T14:30:00.001+10:00</published><updated>2010-06-17T14:30:06.492+10:00</updated><title type='text'>One Keyboard (and Mouse) to rule them all!</title><content type='html'>&lt;p&gt;Today I ran across an issue.&amp;#160; The application I’m developing (in WPF) wouldn’t run via Remote Desktop, at least not via the &lt;a title="http://thegreenbutton.com/forums/t/79427.aspx?PageIndex=1" href="http://thegreenbutton.com/forums/t/79427.aspx?PageIndex=1"&gt;Windows 7 Home Premium hacked version&lt;/a&gt; I’m using.&amp;#160; Since I was using Remote Desktop to my laptop to save me fiddling with monitor inputs and keyboard/mouse cabling this left me with a troublesome issue.&amp;#160; However I knew I’d previously heard of an application that let you control multiple PCs with one mouse and keyboard so I fired up Google.&lt;/p&gt;  &lt;p&gt;I came across &lt;a title="http://www.volker-lanz.de/en/software/qsynergy/" href="http://www.volker-lanz.de/en/software/qsynergy/"&gt;QSynergy&lt;/a&gt; and &lt;a title="http://synergy2.sourceforge.net/" href="http://synergy2.sourceforge.net/"&gt;Synergy2&lt;/a&gt; but when I tried using them I ran in to issues with Windows 7 UAC.&amp;#160; More time with Google found &lt;a title="http://code.google.com/p/synergy-plus/" href="http://code.google.com/p/synergy-plus/"&gt;synergy+&lt;/a&gt; but it suffered the same issue.&amp;#160; Thankfully since I didn’t need cross platform support I eventually found, and ended up using, &lt;a title="http://www.inputdirector.com/" href="http://www.inputdirector.com/"&gt;InputDirector&lt;/a&gt;.&amp;#160; So that got my keyboard and mouse working over on the notebook without an issue, but I wanted my display on the main monitor (Dell U2410) which thankfully has plenty of inputs.&amp;#160; So I connected the notebook to the monitor via the DisplayPort input.&amp;#160; Now I just needed to use the monitor soft keys to switch inputs back and forth.&amp;#160; But the stupid setup by Dell means that’s about 4 soft key presses each way.&amp;#160; There had to be a better way…&lt;/p&gt;  &lt;p&gt;More Google work eventually led me to the solution.&amp;#160; I could create desktop shortcuts to a little shareware application called &lt;a title="http://forums.entechtaiwan.com/index.php?topic=6725.0" href="http://forums.entechtaiwan.com/index.php?topic=6725.0"&gt;mControl&lt;/a&gt; (not the home automation software, but a little monitor control utility from the makers of PowerStrip).&amp;#160; Combined with the macros in InputDirector I can now switch back and forth between inputs with 1 copy of mControl (on the “master” PC).&amp;#160; Now time to dive back in to that coding.&amp;#160; :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-358897931307901462?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/358897931307901462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=358897931307901462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/358897931307901462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/358897931307901462'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/06/one-keyboard-and-mouse-to-rule-them-all.html' title='One Keyboard (and Mouse) to rule them all!'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-7515007612795932851</id><published>2010-06-10T15:52:00.001+10:00</published><updated>2010-06-10T15:52:52.297+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Resharper'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Developer Tools &amp; Visual Studio 2010 Slow Startup Issues</title><content type='html'>&lt;p&gt;I sent some hints/tips to some of the developers I work with recently and it has just occurred to me that there are others out there that might also find them handy so I thought I’d blog about them as well.&lt;/p&gt;  &lt;h2&gt;LINQPad&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://linqpad.net/"&gt;http://linqpad.net/&lt;/a&gt;    &lt;br /&gt;A query tool for LINQ.&amp;#160; I've been making heavy use of LINQ-to-SQL in a recent project and this has come in handy a couple of times to debug things.&lt;/p&gt;  &lt;h2&gt;&lt;b&gt;WPF Toolkit&lt;/b&gt;&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://wpf.codeplex.com/"&gt;http://wpf.codeplex.com/&lt;/a&gt;    &lt;br /&gt;I've used this before for it’s &lt;strong&gt;Themes&lt;/strong&gt;, but am making heavy use of the &lt;strong&gt;DataGrid&lt;/strong&gt; for a recent application.    &lt;br /&gt;    &lt;br /&gt;Some more links specific to the &lt;strong&gt;DataGrid&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx"&gt;http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://wpf.codeplex.com/wikipage?title=Tips %26 Tricks"&gt;http://wpf.codeplex.com/wikipage?title=Tips &amp;amp; Tricks&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.wpftutorial.net/DataGrid.html"&gt;http://www.wpftutorial.net/DataGrid.html&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;jQuery&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://jquery.com/"&gt;http://jquery.com/&lt;/a&gt;    &lt;br /&gt;Javascript library that makes all the things you never wanted to have to do in Javascript that much easier.&amp;#160; Visual Studio 2010 has Intellisense support for it, though it lags slightly behind the latest version.&lt;/p&gt;  &lt;h2&gt;jQuery Keypad&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://keith-wood.name/keypad.html"&gt;http://keith-wood.name/keypad.html&lt;/a&gt;    &lt;br /&gt;I needed an on screen keypad (for use on the iPad) and found this quite handy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Visual StuDIO 2010 – SLOW STARTUP ISSUES SOLVED&lt;/h2&gt;  &lt;p&gt;I’ve used Visual Studio 2010 for my latest project and was quite happy with it, despite the loss of &lt;a href="http://www.viemu.com/" target="_blank"&gt;ViEmu&lt;/a&gt; at the time.&amp;#160; &lt;a href="http://www.viemu.com/" target="_blank"&gt;ViEmu&lt;/a&gt; is now &lt;a href="http://www.viemu.com/blog/" target="_blank"&gt;available as a Beta&lt;/a&gt; so I may start using it again.&lt;/p&gt;  &lt;p&gt;The only major issue I’d had was a slow startup time of well over 30 seconds.&amp;#160; I’ve recently spent some time to track down the cause after noting that an install on another PC, with &lt;a href="http://visualhg.codeplex.com/" target="_blank"&gt;VisualHG&lt;/a&gt; installed, had a warm startup time of just 3 seconds.&amp;#160; &lt;/p&gt;  &lt;p&gt;What I found is that the slowdown was related to addins/extensions and the MRU list (as described in &lt;a href="http://weblogs.asp.net/achang/archive/2004/05/04/125645.aspx" target="_blank"&gt;this blog entry&lt;/a&gt;).&amp;#160; Once I’d cleaned out the MRU list and disabled the offenders it now starts in 8 seconds.&lt;/p&gt;  &lt;p&gt;The main culprits seemed to be &lt;a href="http://blogs.microsoft.co.il/blogs/applisec/archive/2010/02/25/copyashtml-in-visual-studio-2010.aspx" target="_blank"&gt;CopyAsHtml&lt;/a&gt; and, to a lesser extent, &lt;a href="http://howard.vanrooijen.co.uk/blog/2010/01/27/keymaps-for-resharper/" target="_blank"&gt;Keymaps for Resharper&lt;/a&gt; (a &lt;a href="http://jetbrains.com/resharper" target="_blank"&gt;Resharper&lt;/a&gt; plugin).&lt;/p&gt;  &lt;p&gt;In terms of addins/extensions &lt;a href="http://jetbrains.com/resharper" target="_blank"&gt;Resharper&lt;/a&gt;, &lt;a href="http://submain.com/products/ghostdoc.aspx" target="_blank"&gt;GhostDoc&lt;/a&gt;, and &lt;a href="http://visualhg.codeplex.com/" target="_blank"&gt;VisualHG&lt;/a&gt; are working fine.&amp;#160; &lt;b&gt;&lt;a href="http://www.viemu.com/" target="_blank"&gt;ViEmu&lt;/a&gt;&amp;#160;&lt;/b&gt;is now available as a Beta so I might start using it again soon.&amp;#160; More info on .&lt;/p&gt;  &lt;p&gt;I used the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99" target="_blank"&gt;PowerCommands&lt;/a&gt; addin, installed via the Gallery within in Visual Studio 2010, to clear out the MRU lists and grabbed the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/55c24bf1-2636-4f94-831d-28db8505ce00" target="_blank"&gt;Regex Editor&lt;/a&gt; while I was at it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Remote Desktop on Windows 7 Home Premium&lt;/h2&gt;  &lt;p&gt;Finally I should mention that I found it handy to have Remote Desktop support on Windows 7 Home Premium.&amp;#160; It’s not perfect (no audio support) but it’s quite useful.&amp;#160; If you want to do this for yourself just run &lt;a href="http://thegreenbutton.com/forums/t/79427.aspx" target="_blank"&gt;this app&lt;/a&gt; as administrator.&amp;#160; It also lets you enable concurrent logons, though I chose not to.&amp;#160; The usual disclaimer of, it worked for me use at your own risk, applies.&amp;#160; :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-7515007612795932851?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/7515007612795932851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=7515007612795932851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7515007612795932851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7515007612795932851'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/06/developer-tools-visual-studio-2010-slow.html' title='Developer Tools &amp;amp; Visual Studio 2010 Slow Startup Issues'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6822813078336836110</id><published>2010-03-26T17:25:00.001+11:00</published><updated>2010-06-10T15:55:48.997+10:00</updated><title type='text'>That’s not a hard drive!</title><content type='html'>&lt;p&gt;In the immortal words of Jean Luc Picard, “Engage!”.&amp;#160; That’s the feeling I get with the nice new drive in my shiny new laptop.&amp;#160; Of course it may have something to do with playing &lt;a href="http://www.startrekonline.com/" target="_blank"&gt;Star Trek Online&lt;/a&gt; in 1920x1200 at 40+ fps too.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;I’d ordered my Alienware M17x with a 128GB SSD, and only after I received it did I decide that wasn’t big enough.&amp;#160; So I ordered a &lt;a href="http://www.tweaktown.com/reviews/3118/crucial_realssd_c300_256gb_sata_6gbps_solid_state_disk/index11.html" target="_blank"&gt;256GB Crucial RealSSD C300&lt;/a&gt;, and I was about to write a note about how happy I am with it and then I &lt;a href="http://www.anandtech.com/storage/showdoc.aspx?i=3779" target="_blank"&gt;see this&lt;/a&gt;.&amp;#160; For the money I just paid for this thing Crucial better come out with a firmware fix or offer free replacement drives!&amp;#160; &lt;em&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; They did, though it wipes your data so you better have a spare drive and imaging software.&amp;#160; Get it &lt;a href="http://www.crucial.com/support/firmware.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;For the record though here is a benchmark comparison between my new drive in the Alienware M17x [Intel i7 720QM | 4GB DDR3 1333 MHz | 1920x1200 RGB LED | Dual 1GB ATI 4870 | 256GB Crucial Real SSD C300 | 128GB SSD | Intel Ultimate N 6300] and my Intel SATA RAID 0 (240GB x 2) array in my desktop.&amp;#160; OK it’s using slightly different versions of the benchmark but you get the idea.&amp;#160;&amp;#160; :)&lt;/p&gt;  &lt;p&gt;Old and beefy:&lt;/p&gt; &lt;img src="http://lh6.ggpht.com/_yEGG9ltk3Rw/S6xRUPHJVfI/AAAAAAAAKyI/vqkGPGwr8vE/s800/IntelRAID0.jpg" /&gt;   &lt;p&gt;New and shiny:&lt;/p&gt; &lt;img src="http://lh4.ggpht.com/_yEGG9ltk3Rw/S6q6DJaRhzI/AAAAAAAAKxk/dPkJ2sCRNoo/s800/Crucial_RealSSD_C30_256GB.jpg" /&gt;   &lt;p&gt;For small files there is just no comparison in speed.&amp;#160; Even for large files this thing flies in comparison.&lt;/p&gt;  &lt;p&gt;So hopefully I don’t encounter the problem Anand has reported any time soon, because for now anyway, I am loving the new found speed both for work and for gaming.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6822813078336836110?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6822813078336836110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6822813078336836110' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6822813078336836110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6822813078336836110'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/03/thats-not-hard-drive.html' title='That’s not a hard drive!'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yEGG9ltk3Rw/S6xRUPHJVfI/AAAAAAAAKyI/vqkGPGwr8vE/s72-c/IntelRAID0.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-8575932957200524834</id><published>2010-03-16T16:29:00.001+11:00</published><updated>2010-03-16T18:15:30.149+11:00</updated><title type='text'>O&amp;O Defrag 12 Professional for $19.95 (normally $49.95)</title><content type='html'>&lt;p&gt;I’ve tried this defrag application in the past and found it to be one of the best out there.&amp;#160; Today I’m setting up a new notebook and decided I’d buy a copy to install instead of making do with the free defrag tools out there (eg. &lt;a href="http://www.piriform.com/defraggler" target="_blank"&gt;Defraggler&lt;/a&gt; or &lt;a href="http://www.iobit.com/iobitsmartdefrag.html" target="_blank"&gt;Smart Defrag&lt;/a&gt;).&amp;#160; In the process I noticed their store had a section for a coupon code so I started Googling.&lt;/p&gt;  &lt;p&gt;I found out that the older version (11) of the application is available for free.&amp;#160; The downside is it doesn’t work with Windows 7, but I got the free license anyway.&amp;#160; If you’re not using Windows 7 you could probably make do with the older version so just follow the link below:    &lt;br /&gt;&lt;a title="http://www.oo-software.com/home/en/special/defragspecial/" href="http://www.oo-software.com/home/en/special/defragspecial/"&gt;http://www.oo-software.com/home/en/special/defragspecial/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I then found &lt;a href="http://www.tjoos.com/Coupon/97548/O&amp;amp;O-Software" target="_blank"&gt;a site&lt;/a&gt; that listed a coupon code for $10 off so I placed an upgrade order and used the code to get things for $19.95&amp;#160;&amp;#160; I’ve got the free license in minutes and the upgrade license took a couple of hours to come through.&lt;/p&gt;  &lt;p&gt;Though after all this I discovered you should NOT run a defrag on a SSD drive as it offers little to no benefit and can shorten the lifespan of your drive.&amp;#160; Oh well, I guess I’ll install it on my home PC instead.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-8575932957200524834?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/8575932957200524834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=8575932957200524834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8575932957200524834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8575932957200524834'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/03/o-defrag-12-professional-for-1995.html' title='O&amp;amp;O Defrag 12 Professional for $19.95 (normally $49.95)'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-3493566567338224802</id><published>2010-03-14T07:51:00.001+11:00</published><updated>2010-03-14T07:51:31.053+11:00</updated><title type='text'>Updates on purchasing debacles</title><content type='html'>&lt;span&gt;The Dell is finally on it's way as of March 12th  and is due on the 15th.

TomTom still haven't managed to activate Live services.  I'll give them  one final chance after which I'll be cancelling things and highly  recommending against buying a TomTom.  It's a pity because the device  itself is great, but this customer service is the single worst I've ever  encountered.

The 360 gaming receiver has been returned and I'm awaiting a refund.   Thankfully if the vendor fails to do so I should get the money back from  Amazon.

&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-3493566567338224802?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/3493566567338224802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=3493566567338224802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3493566567338224802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3493566567338224802'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/03/updates-on-purchasing-debacles.html' title='Updates on purchasing debacles'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-5663858092412905973</id><published>2010-03-09T13:42:00.003+11:00</published><updated>2010-03-09T13:47:33.895+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><category scheme='http://www.blogger.com/atom/ns#' term='TomTom'/><title type='text'>Bad luck with purchases lately</title><content type='html'>&lt;span&gt;I've had some serious bad luck with purchases lately.&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;

*rant on* &lt;/span&gt;
&lt;span style="font-weight: bold;"&gt;Dell Alienware M17x &lt;/span&gt;
Ordered on the 4th of Feb and it is still yet to arrive.   The estimated delivery date gets pushed back each week.  I'm expecting another email tonight telling me it's been pushed back yet again.  I am &lt;a href="http://forum.notebookreview.com/showthread.php?t=453748"&gt;far from alone&lt;/a&gt;.

&lt;span style="font-weight: bold;"&gt;TomTom Live  Traffic&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;for GO 740 Live&lt;/span&gt;
Weeks after they didn't respond to my support requests   and 2 phone calls later TomTom tell me to get Live Traffic working I  have to create a second account with them as they can't add it to my  existing account and can't move my existing map update subscription to a  new account. 

&lt;span style="font-weight: bold;"&gt;XBox 360 Wireless Gaming Receiver for PC&lt;/span&gt;
Finally the XBox 360 Wireless Gaming Receiver for PC I  ordered from Amazon is a dodgy non-genuine part that Windows won't  automatically detect drivers for so I have to manually install them  every time I plug it in!  I'll be returning it and waiting to buy a genuine part in a physical store.
&lt;span style="font-weight: bold; font-style: italic;"&gt;*rant off*

&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-5663858092412905973?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/5663858092412905973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=5663858092412905973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5663858092412905973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5663858092412905973'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/03/bad-luck-with-purchases-lately.html' title='Bad luck with purchases lately'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-4186284702212847403</id><published>2010-01-20T10:23:00.003+11:00</published><updated>2010-01-20T10:27:00.880+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Food'/><title type='text'>Vue de Monde Menu</title><content type='html'>&lt;div&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;I thought I'd post this to my blog.  It's the menu I enjoyed recently at a rather nice (3 hats for 2010 from The Age Good Food Guide) restaurant with a couple of old friends.  The 1945 Fortified Grenache was particularly delicious.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;
&lt;img src="http://docs.google.com/File?id=dkpk9dr_75gdsnd3fp_b" alt="" style="border: medium none ;" height="137" width="492" /&gt;
&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;SATURDAY 16&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;sup&gt;&lt;span style="font-size:78%;"&gt;th&lt;/span&gt;&lt;/sup&gt;&lt;/span&gt; &lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;JANUARY&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; 2010&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;AMUSE BOUCHE&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Confit egg,&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;asparagus&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; and wood sorrel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;NV Nº Family Estate ‘Nº1 Cuvée’ Blanc de Blancs  South Island, New Zealand&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;TRUITE FUMÉE&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Ocean trout with horseradish and baby beetroot, smoked at the table&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2009 &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Mac Forbes Arneis  Yarra Valley&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Victoria&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2008 Domaine Chignard Fleurie ‘Les Moriers’ Non &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Filtré  Beaujolais&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;France&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;RISOTTO AUX TRUFFES&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Classically inspired truffle risotto&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;1945 Domaine Bescombes-Singla &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Rivesaltes  Languedoc-Roussillon&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;France&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt;PAIN PERDU ACCOMPAGNÉ DE FOIE GRAS&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;French toast, green apple purée and foie gras with eight spice and jam&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;ó&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;n &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Joselito&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;ibérico&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2004 Josmeyer Pinot Gris ‘Brand’  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Alsace&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;France&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;TARTARE DE THON ET SON BOUILLON&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Tuna tartare, rillette and seaweed salt, blue fin tuna stock infused with kaffir lime, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;fennel and tarragon flowers&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2007 &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Pierre Gaillard Condrieu  Rhône Valley&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;France&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2007 Familia Schroeder Pinot Noir ‘Saurus Barrel’  Patagonia, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Argentina&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;TROU PÉRIGOURDIN&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Palate cleanser&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;CANARD FUMÉ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Slow cooked duck breast with hay smoked duck parcel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2008 Devois de Perret Coteaux de Languedoc  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Languedoc&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;-Roussillon, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;France&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;AGNEAU RÔTI ET RIS D’agneau&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Poached loin and rillette of lamb with &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;caramelised sweetbread&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; and Pedro Ximenez reduction&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;1996 Château Léoville-Las-Cases ‘Clos du Marquis’ Saint Julian AOC  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Bordeaux&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;France&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;FROMAGE&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Bleu de Bresse with plum&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2007 Bodegas Vincente Gandia ‘Fusta Nova’  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Comunidad Valenciana&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;Spain&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt;ENTREMET SUCRÉ&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Lollipop&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:78%;"&gt;CHEESECAKE À LA RHUBARBE&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Poached rhubarb with cheesecake mousse and raspberry bubbles&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;2006 Zen&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;ato ‘S. Cristina’ Lugana Passito&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt; ‘Rigoletto’  Veneto, Italy&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt;Souf&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt;flÉ&lt;/span&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt;AU CHOCOLAT&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;Chocolate soufflé with &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;chocolate mousse&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; and crème anglaise&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;NV Vue de monde Muscadelle by Chambers  Rutherglen, Victoria&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-family:Garamond;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="color: rgb(0, 0, 0); vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:78%;"&gt;NOTRE SÉLECTION DE CAFÉS, THÉS, INFUSIONS ET PETITS-FOURS&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin: 0pt;"&gt;&lt;span style="font-style: normal; vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:85%;"&gt;A selection of coffee, teas, infusions and &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: normal; vertical-align: 1pt;font-family:Garamond;" &gt;&lt;span style="font-size:85%;"&gt;petits-fours&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-4186284702212847403?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/4186284702212847403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=4186284702212847403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/4186284702212847403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/4186284702212847403'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2010/01/vue-de-monde-menu.html' title='Vue de Monde Menu'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6390045553067427971</id><published>2009-11-29T23:55:00.001+11:00</published><updated>2009-11-29T23:55:33.168+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wine'/><category scheme='http://www.blogger.com/atom/ns#' term='Food'/><title type='text'>Food glorious food, and don’t forget the wine!</title><content type='html'>&lt;p&gt;I don’t often cook but today, at the request of a friend, I did and the day has turned out to be a bit of a gastronomic delight.&amp;#160; At least enough of one that I thought I’d write a bit of a blurb about it.&amp;#160; Said friend requested steak and fries for lunch, so I grabbed the trusty Masterfoods Red Wine and Garlic marinade and left the steak to marinade for a couple of hours.&amp;#160; I caramelised some onions, and threw in some mushrooms for good measure.&amp;#160; McCain’s covered the crunchy potato fries and another friend used some leftover sour cream combined with tomatoes, cucumber and black pepper to make an Estonian salad.&amp;#160; Top that all off with a 2004 Balnaves Cabernet Sauvignon and it made for a rather delicious lunch.&lt;/p&gt;  &lt;p&gt;If that wasn’t enough I had the pleasure of catching up with some other friends this evening that were trying a new recipe.&amp;#160; Lamb with yoghurt and mint with a side salad of feta, olives, olive oil, mint and watermelon!&amp;#160; They threw in some sweet potato, pumpkin and mushrooms to fill the plate and I’d taken along a 2006 Napa Cellars Pinot Noir that my work had recently sent over which we’d left to decant whilst food was prepared.&amp;#160; Lamb and mint is pretty standard, but the watermelon and mint instead of lettuce in an otherwise standard Greek salad worked wonderfully and the wine complimented the meal perfectly.&lt;/p&gt;  &lt;p&gt;A scrumptious day that may almost be enough to inspire me to cook more often.&amp;#160; :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6390045553067427971?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6390045553067427971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6390045553067427971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6390045553067427971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6390045553067427971'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/food-glorious-food-and-dont-forget-wine.html' title='Food glorious food, and don’t forget the wine!'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-160970360513324435</id><published>2009-11-27T15:21:00.001+11:00</published><updated>2009-11-27T15:21:03.322+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>WPF UserControl binding of IsEnabled property</title><content type='html'>&lt;p&gt;I was slowly going insane trying to solve a problem with binding the the IsEnabled property of a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.usercontrol.aspx" target="_blank"&gt;UserControl&lt;/a&gt; I created.&amp;#160; In short it wasn’t working and a lot of Google work searching for “WPF UserControl IsEnabled binding” even combined with words like “bug/problem/help” wasn’t getting me anywhere.&lt;/p&gt;  &lt;p&gt;Thankfully I did eventually come across &lt;a href="http://sharpinsights.wordpress.com/2007/10/02/readiobutton-ischecked-binding-problem-conclusions/" target="_blank"&gt;a blog post&lt;/a&gt; on a similar issue with a RadioButton IsChecked property.&amp;#160; In that post the author noted “When binding between xaml elements the problem does not occur”.&amp;#160; So I tried binding my UserControl’s IsEnabled property to that of another control using ElementName.&amp;#160; The other controls IsEnabled property was already bound and working as expected.&lt;/p&gt;  &lt;p&gt;End result was it immediately started working.&lt;/p&gt;  &lt;p&gt;Now it’s not the cleanest solution, as it requires another control, but thankfully I have several so I’ll live with it.&amp;#160; :)&amp;#160; I’m not sure if this is a bug, or intended behavior.&amp;#160; Either way it’s confusing and am I’m glad I found a workaround.&lt;/p&gt;  &lt;p&gt;Here is a trimmed example of what I have now:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;     &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Button&lt;/span&gt;&lt;span style="color: #009b00"&gt; &lt;/span&gt;&lt;span style="color: #009b00"&gt;x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;b1&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00"&gt; &lt;/span&gt;&lt;span style="color: #009b00"&gt;IsEnabled&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; EngineControlsEnabled&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00"&gt; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;UserControl&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #d6d694"&gt;MyControl&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #009b00"&gt;IsEnabled&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; ElementName&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;b1&lt;/span&gt;&lt;span style="color: #a1b070"&gt;,&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;IsEnabled&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;As usual, I hope this saves someone out there some time and pain.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-160970360513324435?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/160970360513324435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=160970360513324435' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/160970360513324435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/160970360513324435'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/wpf-usercontrol-binding-of-isenabled.html' title='WPF UserControl binding of IsEnabled property'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6810699994601395321</id><published>2009-11-15T14:25:00.001+11:00</published><updated>2009-11-15T14:25:54.411+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Resharper'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>WPF Window.DataContext and initialization of bound properties</title><content type='html'>&lt;p&gt;Now this may be common sense once you know it, but as someone still learning WPF this just took me a while to debug so I thought I’d write a blog post about it and perhaps save someone else the same pain.&lt;/p&gt;  &lt;p&gt;Create a new WPF application in Visual Studio and you’ll have a Window with a constructor that looks like the following:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Window1&lt;/span&gt;()&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;InitializeComponent&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Now if you’re not careful and you initialize any properties you may be binding to AFTER the call to &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.markup.icomponentconnector.initializecomponent.aspx" target="_blank"&gt;InitializeComponent&lt;/a&gt; you’re components aren’t going to bind to the objects because they’ll still be null.&amp;#160; It took me some time to debug this, because moving a bound &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.datacontext.aspx" target="_blank"&gt;DataContext&lt;/a&gt; from the Window to the Grid fixes it and I assumed incorrectly the problem was with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.datacontext.aspx" target="_blank"&gt;DataContext&lt;/a&gt;, not the order of initialization.&amp;#160; It fixes it because the Window1 is already initialized by the time the Grid gets initialized.&lt;/p&gt;  &lt;p&gt;To explain a bit further, I was setting my DataContext on WIndow1 to itself as follows:    &lt;br /&gt;&lt;window title="Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" d:datacontext="{Binding Source={StaticResource SampleDataSource}}" datacontext="{Binding RelativeSource={RelativeSource Self}}" loaded="Window_Loaded" width="905" height="467" x:class="WpfBindingTest.Window1" mc:ignorable="d" xmlns:wpfbindingtest="clr-namespace:WpfBindingTest" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"&gt;&lt;/window&gt;&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Window&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;&amp;#160;&amp;#160; …&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;DataContext&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; RelativeSource&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;RelativeSource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Self&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: #009b00"&gt;d&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #009b00"&gt;DataContext&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Source&lt;/span&gt;&lt;span style="color: #a1b070"&gt;={&lt;/span&gt;&lt;span style="color: aqua"&gt;StaticResource&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; SampleDataSource&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;&lt;/div&gt;  &lt;p&gt;I’ve included the SampleDataSource for those that haven’t seen them, it’s something that Blend 3 offers.&amp;#160; You can find out more about it from &lt;a href="http://www.85turns.com/2009/07/12/overview-of-sample-data-in-blend-3/" target="_blank"&gt;Corey Schuman’s blog post&lt;/a&gt;.&amp;#160; They are definitely something you’ll want to use!&lt;/p&gt;  &lt;p&gt;The reason I set the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.datacontext.aspx" target="_blank"&gt;DataContext&lt;/a&gt; of the Window to itself is it makes further binding to properties of the window VERY simple, and keeps the XAML code clean.&amp;#160; Here is my test &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.aspx" target="_blank"&gt;ListBox&lt;/a&gt; with some simple bindings.&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ListBox&lt;/span&gt;&lt;span style="color: #009b00"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;Left&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00"&gt; x&lt;/span&gt;&lt;span style="color: #a1b070"&gt;:&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;listBox1&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00"&gt; ItemsSource&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; Names&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #009b00"&gt; Orientation&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;Label&lt;/span&gt;&lt;span style="color: #009b00"&gt; Content&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; FirstName&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694"&gt;CheckBox&lt;/span&gt;&lt;span style="color: #009b00"&gt; IsChecked&lt;/span&gt;&lt;span style="color: #a1b070"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0"&gt; IsValid&lt;/span&gt;&lt;span style="color: #a1b070"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694"&gt;ListBox&lt;/span&gt;&lt;span style="color: #a1b070"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;So it’s binding to the public property of Window1 called Names.&amp;#160; Names is a generic &lt;a href="http://msdn.microsoft.com/en-us/library/ms668604.aspx" target="_blank"&gt;ObservableCollection&lt;/a&gt;&amp;lt;Name&amp;gt;.&amp;#160; &lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; Gets or sets the names.&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt;The names.&lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #009b00"&gt;ObservableCollection&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Names&lt;/span&gt; { &lt;span style="color: #d6d694"&gt;get&lt;/span&gt;; &lt;span style="color: #d6d694"&gt;set&lt;/span&gt;; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Here is the Name class which I created in about a minute using &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;Resharper&lt;/a&gt; and &lt;a href="http://cid-63ee5c256d29ea78.skydrive.live.com/self.aspx/Public/MyTemplates.7z" target="_blank"&gt;MyLiveTemplates&lt;/a&gt; and &lt;a href="http://submain.com/products/ghostdoc.aspx" target="_blank"&gt;GhostDoc&lt;/a&gt;:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;using&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;System&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;using&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;System&lt;/span&gt;&lt;span style="color: #80ff00"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8"&gt;ComponentModel&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #d6d694"&gt;namespace&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;WpfBindingTest&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;class&lt;/span&gt; &lt;span style="color: #009b00"&gt;Name&lt;/span&gt; : &lt;span style="color: #80ff80"&gt;INotifyPropertyChanged&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; { &lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;private&lt;/span&gt; &lt;span style="color: #d6d694"&gt;string&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_firstName&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; Gets or sets the first name.&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt;The first name.&lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;string&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;FirstName&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;get&lt;/span&gt; { &lt;span style="color: #d6d694"&gt;return&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_firstName&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;set&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;_firstName&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;value&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;InvokePropertyChanged&lt;/span&gt;( &lt;span style="color: #d6d694"&gt;new&lt;/span&gt; &lt;span style="color: #009b00"&gt;PropertyChangedEventArgs&lt;/span&gt;( &lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;FirstName&amp;quot;&lt;/span&gt; ) );&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;private&lt;/span&gt; &lt;span style="color: #d6d694"&gt;bool&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_isValid&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; Gets or sets a value indicating whether this instance is valid.&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;value&amp;gt;&amp;lt;c&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt;true&lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/c&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; if this instance is valid; otherwise, &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;c&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt;false&lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/c&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt;.&lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;bool&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;IsValid&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;get&lt;/span&gt; { &lt;span style="color: #d6d694"&gt;return&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_isValid&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;set&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;_isValid&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;value&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;InvokePropertyChanged&lt;/span&gt;( &lt;span style="color: #d6d694"&gt;new&lt;/span&gt; &lt;span style="color: #009b00"&gt;PropertyChangedEventArgs&lt;/span&gt;( &lt;span style="color: #44b1e3; font-weight: bold"&gt;&amp;quot;IsValid&amp;quot;&lt;/span&gt; ) );&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #436c5c"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #region&lt;/span&gt; Implementation of INotifyPropertyChanged&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;span style="color: #009b00"&gt;NonSerialized&lt;/span&gt;] &lt;span style="color: #d6d694"&gt;private&lt;/span&gt; &lt;span style="color: #317cba"&gt;PropertyChangedEventHandler&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_propertyChanged&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; Occurs when a property value changes.&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #d6d694"&gt;event&lt;/span&gt; &lt;span style="color: #317cba"&gt;PropertyChangedEventHandler&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;PropertyChanged&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;add&lt;/span&gt; { &lt;span style="color: #e8e8e8"&gt;_propertyChanged&lt;/span&gt; &lt;span style="color: #80ff00"&gt;+=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;value&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;remove&lt;/span&gt; { &lt;span style="color: #e8e8e8"&gt;_propertyChanged&lt;/span&gt; &lt;span style="color: #80ff00"&gt;-=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;value&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;private&lt;/span&gt; &lt;span style="color: #d6d694"&gt;void&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;InvokePropertyChanged&lt;/span&gt;( &lt;span style="color: #009b00"&gt;PropertyChangedEventArgs&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;e&lt;/span&gt; )&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #317cba"&gt;PropertyChangedEventHandler&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;changed&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_propertyChanged&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;if&lt;/span&gt; ( &lt;span style="color: #e8e8e8"&gt;changed&lt;/span&gt; &lt;span style="color: #80ff00"&gt;!=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;null&lt;/span&gt; )&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;changed&lt;/span&gt;( &lt;span style="color: #d6d694"&gt;this&lt;/span&gt;, &lt;span style="color: #e8e8e8"&gt;e&lt;/span&gt; );&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #436c5c"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #endregion&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Basically this implements a serialization safe version of &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx" target="_blank"&gt;INotifyPropertyChanged&lt;/a&gt; so that changes to the properties can be observed by WPF.&lt;/p&gt;  &lt;p&gt;Now the problem I described at the start of this article was created when I modified the constructor for Window1 as:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Window1&lt;/span&gt;()&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;InitializeComponent&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;Names&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;new&lt;/span&gt; &lt;span style="color: #009b00"&gt;ObservableCollection&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;gt;&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;So the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.aspx" target="_blank"&gt;ListBox&lt;/a&gt; gets initialized while Names is still null and none of my binding works as expected.&lt;/p&gt;  &lt;p&gt;Do it the right way around:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Window1&lt;/span&gt;()&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;Names&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;new&lt;/span&gt; &lt;span style="color: #009b00"&gt;ObservableCollection&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;gt;&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #e8e8e8"&gt;InitializeComponent&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Or initialize the Property via a backing field:&lt;/p&gt;  &lt;div style="font-family: courier new; background: #10100d; color: #a79a86; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;private&lt;/span&gt; &lt;span style="color: #009b00"&gt;ObservableCollection&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_names&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;new&lt;/span&gt; &lt;span style="color: #009b00"&gt;ObservableCollection&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;gt;&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; Gets or sets the names.&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #413e2e"&gt;///&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt; &lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;&lt;span style="color: #756f51; font-weight: bold"&gt;The names.&lt;/span&gt;&lt;span style="color: #413e2e"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;public&lt;/span&gt; &lt;span style="color: #009b00"&gt;ObservableCollection&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #009b00"&gt;Name&lt;/span&gt;&lt;span style="color: #80ff00"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;Names&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;get&lt;/span&gt; { &lt;span style="color: #d6d694"&gt;return&lt;/span&gt; &lt;span style="color: #e8e8e8"&gt;_names&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #d6d694"&gt;set&lt;/span&gt; { &lt;span style="color: #e8e8e8"&gt;_names&lt;/span&gt; &lt;span style="color: #80ff00"&gt;=&lt;/span&gt; &lt;span style="color: #d6d694"&gt;value&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;and everything works as you’d expect.&lt;/p&gt;  &lt;p&gt;I think I’ve written enough for one post.&amp;#160; If you want to play with things for yourself you can get a copy of my test project from my SkyDrive: &lt;a href="http://cid-63ee5c256d29ea78.skydrive.live.com/self.aspx/Public/WpfBindingTest.7z" target="_blank"&gt;WpfBindingTest&lt;/a&gt;.&amp;#160; It also has a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.usercontrol.aspx" target="_blank"&gt;UserControl&lt;/a&gt; using &lt;a href="http://msdn.microsoft.com/en-us/library/ms752914.aspx" target="_blank"&gt;DependencyProperties&lt;/a&gt; to support binding to the properties of the control.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6810699994601395321?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6810699994601395321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6810699994601395321' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6810699994601395321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6810699994601395321'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/wpf-windowdatacontext-and.html' title='WPF Window.DataContext and initialization of bound properties'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-3655635391689440269</id><published>2009-11-11T17:30:00.003+11:00</published><updated>2010-01-22T15:31:56.436+11:00</updated><title type='text'>Vimperator 2.2 + feedSomeKeys_2.js + Gmail</title><content type='html'>&lt;p&gt;I’ve just spent a bit of time figuring out why the magic pass through afforded to &lt;a href="http://www.vimperator.org/vimperator"&gt;Vimperator&lt;/a&gt; in sites like Gmail by the &lt;a href="http://vimperator.kurinton.net/plugins/feedSomeKeys_2.html"&gt;feedSomeKeys_2.js&lt;/a&gt; plugin wasn’t working for me anymore.&lt;/p&gt;  &lt;p&gt;It turns out I just needed to increase the depth on my command as something must have added another frame to the Gmail interface.  I don’t know if this is just affecting me (Google test things with subsets of users) but figured I’d throw another blog post out in to the blogosphere in case someone is Googling for a solution to the same problem.&lt;/p&gt;  &lt;p&gt;If you’re having issues you can try the following:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Update &lt;a href="http://www.vimperator.org/vimperator"&gt;Vimperator&lt;/a&gt; to 2.2&lt;/li&gt;    &lt;li&gt;Get the latest &lt;a href="http://vimperator.kurinton.net/plugins/feedSomeKeys_2.html"&gt;feedSomeKeys_2.js&lt;/a&gt; plugin&lt;/li&gt;    &lt;li&gt;Modify the command for Gmail in your _vimperator.rc to use “–depth 5” instead of “-depth 4”&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;autocmd LocationChange 'mail\.google\.com/mail' :fmap -depth 5 c / j k n p o u e x s r a # [ ] z ? gi gs gt gd ga gc&lt;/p&gt;  &lt;p&gt;For more information on what I’m on about refer to &lt;a href="http://jonsblogat.blogspot.com/2009/06/vimperator-tips-ubiquity.html"&gt;this previous post&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;EDIT:  &lt;/span&gt;And today (25 Nov) it's back to -depth 4.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;EDIT: &lt;/span&gt;As of 22 Jan 2010 the -depth option would appear to no longer be needed.  NOTE: I also just upgraded to Firefox 3.6 so it may be related to that.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-3655635391689440269?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/3655635391689440269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=3655635391689440269' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3655635391689440269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3655635391689440269'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/vimperator-22-feedsomekeys2js-gmail.html' title='Vimperator 2.2 + feedSomeKeys_2.js + Gmail'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-8418935675689480304</id><published>2009-11-10T14:41:00.001+11:00</published><updated>2009-11-10T14:41:33.589+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Resharper'/><title type='text'>Resharper + Skype = Keyboard Shortcut clash</title><content type='html'>&lt;p&gt;I just spent 20 minutes to figure out why my Alt + Page Up and Alt + Page Down keyboard shortcuts stopped working in &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;Resharper&lt;/a&gt;.&amp;#160; At first I thought it was because I was working via Remote Desktop, but when I had the same problem locally I finally thought to look in the one app I wasn’t normally running.&lt;/p&gt;  &lt;p&gt;It turns out Skype uses the same keys to answer and hang up from a call.&amp;#160; Problem fixed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-8418935675689480304?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/8418935675689480304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=8418935675689480304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8418935675689480304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8418935675689480304'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/resharper-skype-keyboard-shortcut-clash.html' title='Resharper + Skype = Keyboard Shortcut clash'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-1278231767293784371</id><published>2009-11-06T15:13:00.001+11:00</published><updated>2009-11-06T15:16:05.286+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Resharper'/><title type='text'>In love with LiveTemplates</title><content type='html'>I've just created two more LiveTemplates today.  I can't believe I wasn't using these!

This time it's an implementation of INotifyPropertyChanged that is safe for serialization, and a corresponding template to create a property and backing field that invokes it.

I'll try to maintain a copy of what I create &lt;a href="http://cid-63ee5c256d29ea78.skydrive.live.com/self.aspx/Public/MyTemplates.7z"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-1278231767293784371?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/1278231767293784371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=1278231767293784371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1278231767293784371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1278231767293784371'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/in-love-with-livetemplates.html' title='In love with LiveTemplates'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-4044902597003367062</id><published>2009-11-05T14:51:00.002+11:00</published><updated>2009-11-05T15:05:52.002+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>Resharper – My first Live Template – WPF/XAML Relative Binding</title><content type='html'>&lt;p&gt;I’ve been using Resharper for a while now and I’m slowly learning more and more of it’s power.  Lately I’ve found myself needing to retype (copy/paste) the same code over and over.  I FINALLY clicked to using a Resharper Live Template instead.&lt;/p&gt;  &lt;p&gt;So here is my template for a relative binding in XAML&lt;/p&gt;  &lt;div   style="border: 1px solid silver; margin: 20px 0px 10px; padding: 4px; overflow: auto; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 97.5%; direction: ltr; max-height: 200px; cursor: text;font-family:'Courier New',courier,monospace;font-size:8pt;" id="codeSnippetWrapper"&gt;   &lt;div    style="border-style: none; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; direction: ltr;font-family:'Courier New',courier,monospace;font-size:8pt;color:black;" id="codeSnippet"&gt;     &lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; direction: ltr;font-family:'Courier New',courier,monospace;font-size:8pt;color:black;"&gt;&lt;span style="color: rgb(96, 96, 96);" id="lnum1"&gt;   1:&lt;/span&gt; {Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type $Window$}}, Path=$publicProperty$}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;Download &lt;a href="http://cid-63ee5c256d29ea78.skydrive.live.com/self.aspx/Public/br.xml" target="_blank"&gt;br.xml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-4044902597003367062?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/4044902597003367062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=4044902597003367062' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/4044902597003367062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/4044902597003367062'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/11/resharper-my-first-live-template.html' title='Resharper – My first Live Template – WPF/XAML Relative Binding'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-8232433831967392178</id><published>2009-10-08T14:00:00.001+11:00</published><updated>2009-10-08T14:00:21.876+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Extended Stay in LA</title><content type='html'>&lt;p&gt;Just a quick note for those that I haven’t already told that I’m now staying in LA a bit longer and will be back in Melbourne on October 28th now.&amp;#160; Work is going well and I even managed to get out for a drive last Sunday.&amp;#160; Hopefully I’ll head out somewhere again this weekend.&amp;#160; I bought a TomTom Go Live 740 (GPS) so I can just pick a random direction to drive and then use it to find my way home when I’m done exploring.&lt;/p&gt;  &lt;p&gt;I haven’t been to Hollywood yet and can’t say I’m in a rush to do so.&amp;#160; I’ve organized a visit to a Korean BBQ place (Genwa) tomorrow night with a few folks from work so that should be fun.&amp;#160; Anyway I might post more another time but just thought I’d throw an update out there.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-8232433831967392178?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/8232433831967392178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=8232433831967392178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8232433831967392178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8232433831967392178'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/10/extended-stay-in-la.html' title='Extended Stay in LA'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-4489143496713289407</id><published>2009-08-19T02:20:00.001+10:00</published><updated>2009-10-05T05:54:57.867+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movies'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Venice Beach &amp; District 9</title><content type='html'>&lt;p&gt;&lt;a href="http://picasaweb.google.com.au/hastarin/VeniceBeach?feat=directlink" target="_blank"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/Sol8sS4l2uI/AAAAAAAAKVQ/oBtbZZhhvI0/s400/IMG_6418.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p style="margin-left: 20px"&gt;So it’s now Tuesday morning and I thought I’d write a few quick notes about last Sunday.&amp;#160; I met Satoe about 1.30pm and she drove us to Venice Beach (from what I saw somewhere near the middle).&amp;#160; I then enjoyed a pleasant walk and chat along the beach up to &lt;a href="http://www.santamonicapier.org/" target="_blank"&gt;Santa Monica Pier&lt;/a&gt;.&amp;#160; The weather was great.&amp;#160; I’d guess it was about 26°C with a nice breeze from the water with plenty of beach goers and surfers out enjoying the day.&amp;#160; &lt;/p&gt;  &lt;p style="margin: 20px 0px 0px 10px"&gt;Satoe said it was busy but I’ve certainly seen busier days around Aussie beaches, though on much warmer days.&amp;#160; One thing that struck me was how deep the sand on the shore was.&amp;#160; In hindsight I’m sure I’ve been to beaches that were quite deep too, but usually with sand dunes, and not such a long flat run of sand.&lt;/p&gt;  &lt;p style="margin: 20px 0px 0px 10px"&gt;We spent some time wandering around the pier and then Satoe mentioned she enjoyed the arcade so we had a go at an arcade shooter called House of the Dead.&amp;#160; Sadly I’m a bit rusty at these things and didn’t last too long. Satoe was better than me.&amp;#160; :)&lt;/p&gt;  &lt;p style="clear: both"&gt;I wanted to try Time Crisis 4 instead, but there were a couple of kids on it that were quite good and it was going to be a bit of a wait.&amp;#160; Instead we had a go at air hockey.&amp;#160; To my surprise I actually won, though I’m quite sure more due to luck than skill.&amp;#160; Satoe then introduced me to the &lt;a href="http://www.bubbagump.com/locations/santa_monica.html" target="_blank"&gt;Bubba Gump&lt;/a&gt; shop/restaurant.&amp;#160; We got a great table with a view of the beach and I enjoyed a nice fillet of snapper and a delicious summer cocktail in a glass I got to keep as a souvenir.&amp;#160; Or rather I got a clean one from the gift shop as part of the purchase.&amp;#160; Thanks to Satoe I even have a cheesy photo that is now my Facebook profile photo.&lt;/p&gt;  &lt;p style="clear: both" align="center"&gt;&lt;img src="http://lh4.ggpht.com/_yEGG9ltk3Rw/Sol8v62rNeI/AAAAAAAAKXw/O7oB98ijUko/s400/IMG_6424.JPG" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I’ve just realized the time and I should be leaving for work.&amp;#160; So to cut things short we wandered back up the beach, I bought a few t-shirts, and then we headed to a cinema with seats that reclined slightly and watched Peter Jackson’s (Lords of the Rings, King Kong) latest movie District 9.&amp;#160; It wasn’t quite what I was expecting, and had a lot more “gore” than Satoe would have liked, but I enjoyed it and would highly recommend it for anyone that doesn’t mind a bit of gore to enjoy.&amp;#160; It had an interesting mix of documentary style, action, science-fiction, and social commentary.&amp;#160; It was refreshing to see no big name actors and the South-African setting definitely helped the movie in more ways than one.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-4489143496713289407?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/4489143496713289407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=4489143496713289407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/4489143496713289407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/4489143496713289407'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/08/venice-beach-district-9.html' title='Venice Beach &amp;amp; District 9'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yEGG9ltk3Rw/Sol8sS4l2uI/AAAAAAAAKVQ/oBtbZZhhvI0/s72-c/IMG_6418.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-96190041001738202</id><published>2009-08-15T12:30:00.001+10:00</published><updated>2009-08-15T12:30:44.958+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Work week 2 down</title><content type='html'>&lt;p&gt;I have discovered the new apartment has a cable modem sitting here, so no more living off the community Wi-Fi here.&lt;/p&gt;  &lt;p&gt;This has been my first real week at work as last week was just getting settled and learning the ropes.&amp;#160; It’s been relatively productive, though I’m still learning and had a couple of demos to attend on various products to get up to speed, which slowed me down a bit.&amp;#160; There is a lot to learn, but so far nothing is particularly difficult to understand.&amp;#160; I’ve got my first mini project for which I’m implementing a Scrum like approach to introduce everyone to the concepts and so far everyone loves the idea.&amp;#160; I’m writing a small application in WPF and learning more as I go too.&amp;#160; I should finish it early next week, well in advance of any deadline, and that will allow me to help out with another, larger project.&lt;/p&gt;  &lt;p&gt;Not much to tell otherwise though as it’s mostly been work and I’m not yet sure what’s confidential and what isn’t so I’m better off saying nothing much.&amp;#160; I did manage to make it to another BBQ last night and meet a few people which was good.&amp;#160; I also have plans to visit Venice Beach with one of the girls who lives near there on Sunday and hopefully see District 9 either in the evening or after work next week.&amp;#160; I’ll try and remember to take the camera with me.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-96190041001738202?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/96190041001738202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=96190041001738202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/96190041001738202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/96190041001738202'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/08/work-week-2-down.html' title='Work week 2 down'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-8970679480363725375</id><published>2009-08-09T09:17:00.001+10:00</published><updated>2009-08-09T12:24:58.256+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>First week in Los Angeles, California</title><content type='html'>&lt;p&gt;This will be my first post using a US dictionary for spell check.&amp;#160; Since I’m here I thought I should get used to it.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;It’s been a busy week.&amp;#160; For those that haven’t already heard there was a fire in the flat adjoining the house I rent the day before I was meant to fly to LA.&amp;#160; Thankfully it only cost $150 to change the day of the flight so I delayed the flight by a day.&amp;#160; Before I go too much further I should explain why I’m in LA for those that don’t know.&amp;#160; My brother has previously done some work with a company here (&lt;a href="http://www.realityx.com/" target="_blank"&gt;Reality Check Studios&lt;/a&gt;) and one of his mates now works for them splitting his time between LA and Melbourne.&amp;#160; Things worked out well that they were looking for someone at the same time as I’d decided to start looking for work again (following a redundancy last year) and both my brother and his mate recommended me.&amp;#160; I’d literally just got my resume rewritten the week before they got in contact.&lt;/p&gt;  &lt;p&gt;To keep it short (yeah like I know how) I setup an ABN (Australian Business Number) and am here on business under the 90 day Visa Waiver Program.&amp;#160; If all goes well I’ll be based in Melbourne, working from home (at least initially), and making the odd trip back here as needed.&amp;#160; For the next two months I’ll be working to help the team of 5 developers that they already have get organized and to work on one of their products called &lt;a href="http://www.realityx.com/index.php/portfolio/uppercut_how_to?category=uppercut" target="_blank"&gt;Uppercut&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;I plan to introduce the team to Scrum, and we’ll work together to find a variation of it that suits them.&amp;#160; Their environment definitely requires an Agile approach as they have tight deadlines set by their customers (ESPN, MLB (baseball), NFL, etc) which are in turn set by the corresponding live events.&amp;#160; Combined with changing requirements they have a rather demanding environment that some developers would thrive in and others would probably burn out after a few months.&amp;#160; I also hope to introduce source control, probably Mercurial, and help them with setting up their libraries for better re-use of code.&lt;/p&gt;  &lt;p&gt;They’ve made some inroads already with Git (2 devs are using it) but I’m still suggesting they use Mercurial instead due to the integration with Windows and Visual Studio.&amp;#160; Git is still only “officially” supported via CygWin.&amp;#160; I hope to get them all using Resharper (2 already are) and just generally pass on some of my experience to the team.&amp;#160; It’s the little things that count in dev, and making them aware of the “prop” code snippet, or setting them up with a common Coding Standard for C#, all add up to improve the efficiency of the team.&lt;/p&gt;  &lt;p&gt;So now on to what I’ve been up to over the last week.&amp;#160; I flew over Sunday with V Australia.&amp;#160; They had a great deal on Premium Economy seats.&amp;#160; Sadly, even with the extra room afforded, I still couldn’t sleep, though I did manage to doze a bit.&amp;#160; The Premium Economy was great though. I had an aisle seat in the middle and two seats between myself and the next passenger on the other aisle.&amp;#160; The food and wine were good and another advantage of Premium Economy was a bar nearby where you could help yourself to snacks, soft drinks, juice, etc.&amp;#160; The seat in front had a touch screen entertainment system, and apart from the downside of having a young girl in the seat behind thinking she had to push through my seat to activate her screen, they worked well enough.&lt;/p&gt;  &lt;p&gt;I watched a couple of movies on the flight over, listened to some music, and charged my phone via the USB port provided (these are all available in Standard Economy as well).&amp;#160; Had I wanted to I could have charged my notebook from the 110V plug below my seat (not available in Standard Economy).&amp;#160; I arrived in LA to be grilled by a customs officer that was about to go off shift.&amp;#160; I know this because he at first ignored me while he waited to ask his neighboring officer what time their new shift finished.&amp;#160; He then proceeded to repeatedly ask me the same thing about 5 different times.&amp;#160; I think showing him I had a return flight already booked helped finally convince him I wasn’t trying to work here illegally.&amp;#160; If I come back I’ll make sure I have business cards to show them and a letter from the company I’ll be working with here.&lt;/p&gt;  &lt;p&gt;Much of my arrangements for being here have been handled by one of the several lovely ladies in the office (Kara) and herself and another producer (Kevin drives a nice new Audi SUV) picked me up from the airport and took me to the apartment I’m staying in until Monday, when I move in to some corporate housing closer to work.&amp;#160; The bosses wife is an interior designer and the 1st floor apartment they own, a 1 bedroom studio over a shop front, looks amazing.&amp;#160; It’s in Downtown LA, which has seen some redevelopment in recent years, but still has it’s share of homeless wandering the streets providing a stark contrast to the polished new developments.&amp;#160; I’m a few blocks from the &lt;a href="http://www.staplescenter.com/" target="_blank"&gt;Staples Center&lt;/a&gt; and &lt;a href="http://www.lalive.com/" target="_blank"&gt;LA Live&lt;/a&gt; precinct which contains a number of restaurants, including the &lt;a href="http://www.yelp.com/biz/yard-house-los-angeles" target="_blank"&gt;Yardhouse&lt;/a&gt; which is where I was taken for dinner on arrival and has more beers on tap then I’ve ever seen.&lt;/p&gt;  &lt;p align="center"&gt;&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com.au/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com.au&amp;amp;captions=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com.au%2Fdata%2Ffeed%2Fapi%2Fuser%2Fhastarin%2Falbumid%2F5367711490595540833%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;/p&gt;  &lt;p&gt;The Monday I spent recovering, though recovery was hindered by a broken AC in the apartment, and Kara ran me to a local grocery store (&lt;a href="http://www.ralphs.com/" target="_blank"&gt;Ralphs&lt;/a&gt;) to pick up some essentials.&amp;#160; It was about 29C in the apartment until it was fixed on the Thursday.&amp;#160; So between jet lag and heat I was surviving on a few hours sleep each night.&amp;#160; I’m actually surprised how well I managed given I normally sleep closer to 10hrs.&amp;#160; I’m sure the Starbucks situated downstairs and Berocca performance tablets had something to do with that.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;I took a portable evaporative cooler from the office on the Wednesday night but it made little difference in the open plan apartment.&amp;#160; Once the AC was fixed I still slept in spurts but got closer to 10hrs sleep for the night and I now feel relatively normal again after a sleep in this (Saturday) morning.&lt;/p&gt; &lt;iframe height="480" marginheight="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;t=h&amp;amp;msa=0&amp;amp;msid=117190928725602719645.00046f9d4a4dcb14ed507&amp;amp;ll=34.062188,-118.306618&amp;amp;spn=0.068261,0.109863&amp;amp;z=13&amp;amp;output=embed" frameborder="0" width="640" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;small&gt;View &lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;t=h&amp;amp;msa=0&amp;amp;msid=117190928725602719645.00046f9d4a4dcb14ed507&amp;amp;ll=34.062188,-118.306618&amp;amp;spn=0.068261,0.109863&amp;amp;z=13&amp;amp;source=embed"&gt;LA Locations&lt;/a&gt; in a larger map&amp;#160; (I’m currently in South Park, I’ll be moving to the Miracle Mile on Monday.&amp;#160; Work is above the Wilshire Country Club)&lt;/small&gt;   &lt;p&gt;The team here is great.&amp;#160; I’ve already been treated to a meal at a Cuban restaurant, to their favorite American style diner, a Mexican fast food store called &lt;a href="http://www.deltaco.com/" target="_blank"&gt;Del Taco&lt;/a&gt;, and had what’s apparently the best Pastrami sandwich in LA at a place called &lt;a href="http://www.langersdeli.com/" target="_blank"&gt;Langers&lt;/a&gt;.&amp;#160; Last night I joined the boss for some drinks at the &lt;a href="http://www.thepalm.com/sitemain.cfm?site_id=36" target="_blank"&gt;Palm&lt;/a&gt; with one of his mates (a colorful chap named Al that works in fashion design) and was treated to some generous pours of 12 year old Glenfiddich on the rocks, followed by a visit to a Taco truck for a quesadea (sp?) where I managed to choose a red sauce that had a nice kick to it.&lt;/p&gt;  &lt;p&gt;Today I decided I’d take some photos, update the blog, and just generally chill out.&amp;#160; I’m writing this in the Starbucks downstairs after having a sandwich and cappuccino. Tomorrow there is an open house at the apartment in the afternoon so I’ll need to vacate it but Kara is bringing some of her friends for a “cook out” by the pool on the fourth floor here so that shouldn’t be an issue.&amp;#160; Hopefully some of the others from the office will be joining us, though some of the developers will be working.&amp;#160; At least one of them (Satoe) will be joining us, as will Al who lives in the same building.&amp;#160; No matter who turns up it’s a safe bet I’ll be the whitest guy by the pool.&lt;/p&gt;  &lt;p&gt;Before I finish up I should mention driving in LA.&amp;#160; Kara took me to pick up a rental they are paying for on Thursday.&amp;#160; It’s a Dodge Avenger.&amp;#160; A “standard” size car.&amp;#160; It’s a fraction wider (39mm) and longer (64mm) than my Mitsubishi Magna so parking is a challenge.&amp;#160; Driving on the right side of the road isn’t really a big issue.&amp;#160; Traffic here is similar to Melbourne and I’ve been told I’m “aggressive” as a driver after passing a parked bus on it’s left to turn right in front of it rather than waiting, and ducking over the center line to a left hand turn lane earlier.&amp;#160; Things I’d consider standard city driving.&amp;#160; :)&amp;#160; I’ve got the premium insurance with the rental.&amp;#160; It’s costing Reality Check an extra USD$14 or so but given the standard insurance doesn’t cover damage to others I consider it necessary.&amp;#160; They are looking to buy a company car next week so I’ll end up driving that (probably some huge SUV) when they get it.&lt;/p&gt;  &lt;p&gt;As mentioned, driving on the right side of the road isn’t so much of an issue.&amp;#160; The real issue is the different size car, the different pivot point due to the left hand drive, and the different road rules.&amp;#160; They have a 4 way stop sign instead of a roundabout, and they can turn right on a red light when safe to do so.&amp;#160; The later in particular is going to be real hard to get used to.&lt;/p&gt;  &lt;p&gt;I’ll leave it at that for now.&amp;#160; More to come another day.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-8970679480363725375?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/8970679480363725375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=8970679480363725375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8970679480363725375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8970679480363725375'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/08/first-week-in-los-angeles-california.html' title='First week in Los Angeles, California'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-778949545926994346</id><published>2009-06-09T12:25:00.001+10:00</published><updated>2009-06-09T12:25:42.366+10:00</updated><title type='text'>Tweaking Vista – Fences + TeraCopy + Norton UAC Tool</title><content type='html'>&lt;p&gt;I thought I’d post a few pointers for tweaking Vista based on some changes I’ve recently made.&lt;/p&gt;  &lt;p&gt;I just came across a mention of &lt;a href="http://www.codesector.com/teracopy.php" target="_blank"&gt;TeraCopy&lt;/a&gt; in a list of &lt;a href="http://lifehacker.com/5271828/lifehacker-pack-2009-our-list-of-essential-free-windows-downloads?skyline=true&amp;amp;s=x" target="_blank"&gt;“essential” free windows tools on lifehacker.com&lt;/a&gt; and decided to check it out.&amp;#160; Basically it’s a drop-in replacement for Windows rather slow file copy and adds features like automatically queuing copies, letting you pause them, and even running a test post copy to check the CRCs of the files match.&amp;#160; I’ve installed the latest build of the beta, integrated it into the shell, and then found I got prompted for every copy/move operation by the good old UAC.&amp;#160; Now I know a lot of people just disable it entirely but I didn’t want to do that and thankfully another Google search pointed me to the &lt;a href="http://www.nortonlabs.com/inthelab/uac.php" target="_blank"&gt;Norton UAC Tool&lt;/a&gt; which is also in beta so currently free.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.nortonlabs.com/inthelab/uac.php" target="_blank"&gt;Norton UAC Tool&lt;/a&gt; replaces the existing UAC prompt in Vista.&amp;#160; It adds more detail to them but more importantly it adds a “Don’t ask me again” checkbox so you won’t be asked in the same situation again.&amp;#160; You can see some &lt;a href="http://blogs.zdnet.com/hardware/?p=2706" target="_blank"&gt;screenshots over on ZDNet&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Now normally the mere mention of Norton/Symantec makes me run in the other direction as my experience with their products in the past (as a Systems Admin taking care of a mail network user issues were often due to Norton AV doing silly things with their mail proxy) but the benefits offered by this tool were enough for me to install it.&amp;#160; You can see from my desktop below I have a few applications that require running as administrator so now I can run them without enduring the UAC prompt each time.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_yEGG9ltk3Rw/Si2-mUg-umI/AAAAAAAAIwQ/cVVhfZI4WzU/s1600-h/FencesCapture.jpg"&gt;&lt;img title="Fences screenshot" border="0" alt="Fences screenshot" src="http://3.bp.blogspot.com/_yEGG9ltk3Rw/Si2-mUg-umI/AAAAAAAAIwQ/cVVhfZI4WzU/s400/FencesCapture.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Another handy application I recently installed is &lt;a href="http://www.stardock.com/products/fences/" target="_blank"&gt;Fences&lt;/a&gt; (see screenshot above).&amp;#160; Again it’s a beta so use at your own risk.&amp;#160; This one lets you organise your desktop by grouping icons and surrounding them with “fences”.&amp;#160; It also lets you hide/show your icons by double clicking your desktop so you can better see your desktop backgrounds.&lt;/p&gt;  &lt;p&gt;Finally while I’m mentioning desktop backgrounds I should mention a piece of DonationWare called &lt;a href="http://www.johnsadventures.com/software/backgroundswitcher/" target="_blank"&gt;John's Background Switcher&lt;/a&gt; which is a great app for rotating your desktop and can get it’s images from a wide range of sources including Flickr, Picasa, Facebook, Yahoo, and lots more.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-778949545926994346?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/778949545926994346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=778949545926994346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/778949545926994346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/778949545926994346'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/06/tweaking-vista-fences-teracopy-norton.html' title='Tweaking Vista – Fences + TeraCopy + Norton UAC Tool'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yEGG9ltk3Rw/Si2-mUg-umI/AAAAAAAAIwQ/cVVhfZI4WzU/s72-c/FencesCapture.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-5990697718940354702</id><published>2009-06-04T15:56:00.001+10:00</published><updated>2009-06-05T15:58:50.349+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='XBMC'/><category scheme='http://www.blogger.com/atom/ns#' term='Home Theatre'/><title type='text'>Console Wars – A comment thread phenomenon</title><content type='html'>&lt;p&gt;Reading yet another comment thread that has degraded in to a PS3 vs XBox 360 fanboy war today has inspired me to post my own take on this ongoing debate.&amp;#160; Which is the better console?&amp;#160; I’ve been asked that by friends/family at times and my answer is always the same.&amp;#160; “That depends.&amp;#160; What do you want it for?”.&amp;#160; &lt;/p&gt;  &lt;p&gt;Before I get in to detail I should give my own personal console/hardware overview.&amp;#160; My first console was a Playstation.&amp;#160; My second the XBox which was inevitably modded to run &lt;a href="http://xbmc.org/" target="_blank"&gt;XBMC&lt;/a&gt; and “other things”.&amp;#160; I now own an XBox 360 Elite, a Playstation 3, a beastly “gaming” PC, a PC dedicated to running Vista Ultimate for Media Center (think PVR), and a Dell XPS 1330 notebook that doubles as a HTPC running &lt;a href="http://xbmc.org/" target="_blank"&gt;XBMC&lt;/a&gt;.&amp;#160; I should note that I do have issues with the Dell more recently dropping audio over HDMI, but as I’ve yet to take that up with Dell it’s just a warning that my solution there may not be ideal.&lt;/p&gt;  &lt;p&gt;Anyway, back to the topic at hand.&amp;#160; I tell them it depends, because each console has it’s strengths and weaknesses.&amp;#160; A simple, though not entirely relevant, point springs to mind in that the 360 dashboard updates (apart from the NXE update) can be done while you make a coffee, where as the PS3 will still be going long after you’ve drunk that coffee.&amp;#160; Personally I use the 360 as my “primary” gaming platform.&amp;#160; Why is simple enough, because I prefer the 360’s controller, though opinions &lt;a href="http://www.google.com.au/search?hl=en&amp;amp;safe=on&amp;amp;q=xbox+360+controller+ergonomics+versus+playstation+3&amp;amp;btnG=Search&amp;amp;meta=" target="_blank"&gt;obviously differ&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Why I prefer the 360 controller is simple ergonomics.&amp;#160; Let’s compare some photos of the two controllers.&lt;/p&gt;  &lt;div style="margin: 0px auto 10px; float: left"&gt;&lt;a href="http://4.bp.blogspot.com/_yEGG9ltk3Rw/SidH-EZ2DhI/AAAAAAAAIt4/7pJZfrtQ6oU/s1600-h/IMG_8213.JPG"&gt;&lt;img title="XBox 360 Controller Stick Close Up" border="0" alt="XBox 360 Controller Stick Close Up" src="http://4.bp.blogspot.com/_yEGG9ltk3Rw/SidH-EZ2DhI/AAAAAAAAIt4/7pJZfrtQ6oU/s320/IMG_8213.JPG" /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;div style="margin: 0px auto 10px; float: left"&gt;&lt;a href="http://1.bp.blogspot.com/_yEGG9ltk3Rw/SidH-JMz4XI/AAAAAAAAIuA/qLX06qQc8H8/s1600-h/IMG_8217.JPG"&gt;&lt;img title="Playstation 3 Controller Stick Close Up" border="0" alt="Playstation 3 Controller Stick Close Up" src="http://1.bp.blogspot.com/_yEGG9ltk3Rw/SidH-JMz4XI/AAAAAAAAIuA/qLX06qQc8H8/s320/IMG_8217.JPG" /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;p style="clear: both"&gt;You should be able to see that the stick on the 360 controller is concave, whilst the PS3 has a convex stick.&amp;#160; What this means is that fine control is easier to obtain on the 360 controller as your thumb sits nicely in the indentation.&lt;/p&gt;  &lt;div style="margin: 0px auto 10px; float: left"&gt;&lt;a href="http://2.bp.blogspot.com/_yEGG9ltk3Rw/SidH-my-MMI/AAAAAAAAIuI/7sQ-RzGpSbw/s1600-h/IMG_8219.JPG"&gt;&lt;img title="XBox 360 Controller Trigger Close Up" border="0" alt="XBox 360 Controller Trigger Close Up" src="http://2.bp.blogspot.com/_yEGG9ltk3Rw/SidH-my-MMI/AAAAAAAAIuI/7sQ-RzGpSbw/s320/IMG_8219.JPG" /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;div style="margin: 0px auto 10px; float: left"&gt;&lt;a href="http://1.bp.blogspot.com/_yEGG9ltk3Rw/SidH-pu91FI/AAAAAAAAIuQ/8Ors06nD9YQ/s1600-h/IMG_8220.JPG"&gt;&lt;img title="Playstation 3 Controller Trigger Close Up" border="0" alt="Playstation 3 Controller Trigger Close Up" src="http://1.bp.blogspot.com/_yEGG9ltk3Rw/SidH-pu91FI/AAAAAAAAIuQ/8Ors06nD9YQ/s320/IMG_8220.JPG" /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;p style="clear: both"&gt;The issue with the triggers is essentially the same.&amp;#160; I mean have you ever seen a gun with a convex trigger?&amp;#160; I’m obviously not the only person that’s had this issue as a quick search via Google shows a product called &lt;a href="http://www.gioteck.com/product_realtriggers.html" target="_blank"&gt;RealTriggers&lt;/a&gt; is available to add a concave (clip-on) surface to the PS3 triggers.&amp;#160; For my fellow Aussies you can &lt;a href="http://www.game.com.au/showtitle?code=PS3TRIG" target="_blank"&gt;pick them up from the Game website&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So if I prefer the 360 controller making it my gaming platform of choice, why would I recommend someone buy a Playstation 3?&amp;#160; If they want a quality, updateable, Blu-Ray player as well.&lt;/p&gt;  &lt;p&gt;If they are planning to use the console for a family media centre it again “depends”.&amp;#160; If they want TV as well and either have a PC with a TV tuner at home, or would consider buying one, then I’d recommend the 360 since it acts as an extender for &lt;a href="http://en.wikipedia.org/wiki/Windows_Media_Center" target="_blank"&gt;Media Center&lt;/a&gt;.&amp;#160; Yes the &lt;a href="http://www.cnet.com.au/playtv-bd-live-not-out-of-australian-starting-blocks-339296422.htm" target="_blank"&gt;Playstation 3 had the promise of Play TV but it looks like that is now on hold indefinitely for us here in Australia&lt;/a&gt;.&amp;#160; If they don’t want TV then my gut feel is the PS3 has a slight advantage.&amp;#160; That said both consoles now play most common media formats and I use my notebook with &lt;a href="http://xbmc.org/" target="_blank"&gt;XBMC&lt;/a&gt; for such things so am not really an expert on either console’s capabilities in this respect.&lt;/p&gt;  &lt;p&gt;Another reason I’d previously have recommend the 360 over the PS3 is if they want integrated control with the rest of their home theatre setup via a &lt;a href="http://en.wikipedia.org/wiki/Logitech_Harmony" target="_blank"&gt;Logitech Harmony&lt;/a&gt; then the fact the PS3 didn’t support infra red control would have again favoured the 360.&amp;#160;&amp;#160; However in searching for a link to the Logitech site I’ve just discovered they have a new product called the &lt;a href="http://www.logitech.com/index.cfm/remotes/universal_remotes/devices/5732&amp;amp;cl=us,en" target="_blank"&gt;Harmony Adapter for Playstation 3&lt;/a&gt; which I’d already have ordered from Amazon only they won’t let me.&amp;#160; Apparently it’s due out here (in Australia) &lt;a href="http://blog.logitech.com/2009/05/12/logitech-harmony-adapter-for-playstation-3-now-available/" target="_blank"&gt;in the next week or so&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-5990697718940354702?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/5990697718940354702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=5990697718940354702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5990697718940354702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5990697718940354702'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/06/console-wars-comment-thread-phenomenon.html' title='Console Wars – A comment thread phenomenon'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SidH-EZ2DhI/AAAAAAAAIt4/7pJZfrtQ6oU/s72-c/IMG_8213.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-8213167520047807521</id><published>2009-06-02T16:49:00.001+10:00</published><updated>2009-06-02T16:49:07.026+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><title type='text'>E3 Goodies</title><content type='html'>&lt;p&gt;Well most people who know me know I’m a gamer.&amp;#160; June 1 is the start of &lt;a href="http://en.wikipedia.org/wiki/Electronic_Entertainment_Expo" target="_blank"&gt;E3&lt;/a&gt;, which is the biggest gaming news week of the year.&amp;#160; Being in Australia I get to wake up to the news of the previous day that happened while I slept and various reporters blogged, posted video, trailers, etc.&amp;#160;&amp;#160; Since I’m currently (yes still) enjoying a life of luxury (ie not working) I thought I’d take a bit of extra time to update my blog with my discoveries and thoughts.&lt;/p&gt;  &lt;h2&gt;#1 Microsoft’s “&lt;a href="http://en.wikipedia.org/wiki/Project_Natal" target="_blank"&gt;Project Natal&lt;/a&gt;”&lt;/h2&gt;  &lt;p align="center"&gt;&lt;embed id="mymovie" width="432" height="362" flashvars="playerMode=embedded&amp;amp;movieAspect=4.3&amp;amp;flavor=EmbeddedPlayerVersion&amp;amp;skin=http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/skins/gamespot.png&amp;amp;paramsURI=http%3A%2F%2Fwww.gamespot.com%2Fpages%2Fvideo_player%2Fxml.php%3Fid%3D6210712%26mode%3Dembedded%26width%3D432%26height%3D362" wmode="transparent" allowscriptaccess="always" quality="high" name="mymovie" style="" src="http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/proteus2.swf" type="application/x-shockwave-flash" /&gt;&lt;/embed&gt;&lt;/p&gt;  &lt;p&gt;This is &lt;a href="http://e3.gamespot.com/story/6210646/project-natal-software-impressions?tag=top_stories;story;13" target="_blank"&gt;more than a video camera system with full body motion capture and facial recognition technology aided by a depth sensor, multi-array microphone, and custom dedicated hardware&lt;/a&gt;.&amp;#160; It looks impressive and if it works as advertised I’ll definitely be buying it, even if I have to crank my projector up to play in a lit room.&lt;/p&gt;  &lt;p align="center"&gt;&lt;embed id="mymovie" width="432" height="362" flashvars="playerMode=embedded&amp;amp;movieAspect=4.3&amp;amp;flavor=EmbeddedPlayerVersion&amp;amp;skin=http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/skins/gamespot.png&amp;amp;paramsURI=http%3A%2F%2Fwww.gamespot.com%2Fpages%2Fvideo_player%2Fxml.php%3Fid%3D6210718%26mode%3Dembedded%26width%3D432%26height%3D362" wmode="transparent" allowscriptaccess="always" quality="high" name="mymovie" style="" src="http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/proteus2.swf" type="application/x-shockwave-flash" /&gt;&lt;/embed&gt;&lt;/p&gt;  &lt;p&gt;Of course &lt;a href="http://en.wikipedia.org/wiki/Peter_Molyneux"&gt;Peter Molyneux&lt;/a&gt; (behind games from &lt;a href="http://en.wikipedia.org/wiki/Populous" target="_blank"&gt;Populous&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Fable_2" target="_blank"&gt;Fable 2&lt;/a&gt; and now “owned” by Microsoft as part of &lt;a href="http://en.wikipedia.org/wiki/Lionhead_Studios" target="_blank"&gt;Lionhead Studios&lt;/a&gt;) is one of the first to take full advantage of it with the Milo demo.&amp;#160; I’m sure it’s partly scripted, not just AI, but this is truly amazing.&amp;#160; If you’ve got time to kill (more than even I do) you can always watch the full Microsoft Press Conference on &lt;a href="http://e3.gamespot.com/press-conference/microsoft-e3/" target="_blank"&gt;Gamespot&lt;/a&gt;, &lt;a href="http://video.ign.com/streaming/e3-2009/index.html?start=0&amp;amp;stop=6807&amp;amp;show=0&amp;amp;ep=http%3A//cms001.slc1.qcn3.movenetworks.com/cms/publish/vod/vodclip/foxign/5516.qvt" target="_blank"&gt;IGN&lt;/a&gt; (requires a custom player be installed and has video ads), .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;#2 &lt;a href="http://splintercell.com"&gt;Splinter Cell: Conviction&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;I’ve been a big fan of the Tom Clancy series of games and this one looks like it will be the best yet.&amp;#160; &lt;a href="http://en.wikipedia.org/wiki/Rainbow_Six_Vegas_2" target="_blank"&gt;Rainbow Six Vegas 2&lt;/a&gt; has seen many hours of gameplay, particularly via system link on my 360, so it’s good to see a variation on the “tag” system being introduced to the Splinter Cell series.&amp;#160; In Conviction you can now tag enemies as you would in the Rainbow Six series, but with only yourself to execute them they appear to work as a target priority for an auto-aim system that makes our protagonist (Sam Fisher) even more deadly.&lt;/p&gt;  &lt;p align="center"&gt;&lt;embed id="mymovie" width="432" height="362" flashvars="playerMode=embedded&amp;amp;movieAspect=4.3&amp;amp;flavor=EmbeddedPlayerVersion&amp;amp;skin=http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/skins/gamespot.png&amp;amp;paramsURI=http%3A%2F%2Fwww.gamespot.com%2Fpages%2Fvideo_player%2Fxml.php%3Fid%3D6210668%26mode%3Dembedded%26width%3D432%26height%3D362" wmode="transparent" allowscriptaccess="always" quality="high" name="mymovie" style="" src="http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/proteus2.swf" type="application/x-shockwave-flash" /&gt;&lt;/embed&gt;&lt;/p&gt;  &lt;p&gt;The other major change is the elimination of cut-scenes and in-game projection of story elements to keep you totally immersed and keep the action moving.&amp;#160; For more details visit &lt;a href="http://splintercell.com" target="_blank"&gt;splintercell.com&lt;/a&gt; for the extended gameplay trailer.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;#3 HD 1080p Streaming coming to Australia FINALLY!&lt;/h2&gt;  &lt;p&gt;I’ve got a home theatre setup with a 1080p capable projector and have always been annoyed when Microsoft continually said they won’t release a Blu-Ray add-on for the XBox 360 because they have HD content available via Netflix since it’s not available in Australia.&amp;#160; Not because of the Blu-Ray, my PS3 covers that, but it’s was kind of insulting to ignore the rest of the world by making comments that apply to the US only.&lt;/p&gt;  &lt;p&gt;Today though they’ve finally &lt;a href="http://www.xbox.com/en-AU/community/events/e3/1080p.htm" target="_blank"&gt;announced&lt;/a&gt; that they’ll be expanding in to another 10 marketplaces with their HD content moving to streaming too (though you need at least 8Mbps for that).&amp;#160; Of course we have yet to see if it’s going to be reasonably priced.&amp;#160; If AU$4 for an episode of Ctrl+Alt+Del is anything to go by they may price themselves out of the market.&amp;#160; There is also the concern of bandwidth.&amp;#160; Even on a large data plan here, most of that’s usually off-peak, and I’d be pleasantly surprised if they’ve actually taken that in to consideration by adding scheduled downloads to the new interface.&lt;/p&gt;  &lt;h2&gt;#4 And lot’s more!&lt;/h2&gt;  &lt;p&gt;There is, of course, a lot more news coming out of E3, but this would be a LONG post indeed if I tried to cover it all.&amp;#160; Here are links to just some of the games with announcements.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/assassinscreed2/index.html" target="_blank"&gt;Assassin’s Creed 2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/driving/forzamotorsport3/index.html?tag=result;title;0" target="_blank"&gt;Forza Motorsport 3&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/halo3untitledodstgame/index.html?tag=result;title;0" target="_blank"&gt;Halo 3: ODST&lt;/a&gt; – Prequel campaign for Halo 3&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/pc/rpg/dragonage/index.html" target="_blank"&gt;Dragon Age: Origins&lt;/a&gt; – I’ve been following it for a while.&amp;#160; I’m a BIG fan of Bioware RPGs.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/haloreach/index.html?tag=result;title;0" target="_blank"&gt;Halo Reach&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://e3.gamespot.com/video/6210375/?tag=top_stories;title;1" target="_blank"&gt;The Secret of Monkey Island – Special Edition&lt;/a&gt; – Blast from the past!&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/crackdown2/index.html?tag=result;title;0" target="_blank"&gt;Crackdown 2&lt;/a&gt; – Caught everyone by surprise&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/alanwake/index.html?tag=result;title;0" target="_blank"&gt;Alan Wake&lt;/a&gt; – I’m not big on survival horror, but this looks interesting.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/homefront/index.html?tag=result;title;0" target="_blank"&gt;Homefront&lt;/a&gt; – Red Dawn flashbacks anyone?&lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.gamespot.com/xbox360/action/brutallegend/index.html?tag=result;title;0" target="_blank"&gt;Brutal Legend&lt;/a&gt; – Jack Black as a roadie taken back in to an “Age of Rock”.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; If you’re really interested, get more news from one of the many sites covering it in detail.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://e3.gamespot.com/?tag=header%3be3logo" target="_blank"&gt;Gamespot&lt;/a&gt; – Where I got a lot of the video &lt;/li&gt;    &lt;li&gt;&lt;a href="http://au.e3.ign.com/" target="_blank"&gt;IGN&lt;/a&gt; – The first to encode some of the press conferences &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.gametrailers.com/e3/" target="_blank"&gt;Gametrailers&lt;/a&gt; – Loads of video, often in “HD” &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;#5 WTF – Age Verification&lt;/h2&gt;  &lt;p&gt;A bit of a WTF moment I thought I’d share with everyone.&amp;#160; It must be one of the more common UI design mistakes of recent time.&amp;#160;&amp;#160; Sites that verify your age and “not collect or store it” require you to enter your exact birth date?!&amp;#160; Why can’t I use an up/down on two digits to quickly select my age?!&amp;#160; &lt;/p&gt;  &lt;p&gt;The people that continue to do this must be complete morons.&amp;#160; Perhaps I should start a movement and try to get everyone to put in a fixed date for these.&amp;#160; Perhaps 1 April 1984.&amp;#160; In fact I think I for one am going to start using that exact date from now on.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-8213167520047807521?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/8213167520047807521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=8213167520047807521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8213167520047807521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8213167520047807521'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/06/e3-goodies.html' title='E3 Goodies'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-255947240807671516</id><published>2009-06-01T21:21:00.001+10:00</published><updated>2009-06-03T16:10:13.111+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Vimperator Tips / Ubiquity</title><content type='html'>&lt;p&gt;Some time ago now &lt;a href="http://jonsblogat.blogspot.com/2008/09/firefox-vimperator-gmail-ietab-gold.html" target="_blank"&gt;I posted about using Vimperator with Gmail&lt;/a&gt; and my somewhat creative solution of using IETab to bypass Vimperator so it didn’t interfere with the Gmail shortcuts.&amp;#160; I since found out about the settings to put &lt;a href="http://vimperator.org" target="_blank"&gt;Vimperator&lt;/a&gt; in pass through mode for certain sites and that was great.&lt;/p&gt;  &lt;p&gt;However I’ve just discovered an even better solution thanks to a plugin for Vimperator called feedSomeKeys_2 which I discovered inadvertently when coming across &lt;a href="http://sites.google.com/site/mizchirepos/mac/vimperator" target="_blank"&gt;someone’s vimperatorc file&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’ve ended up using a slightly modified version of it I found attached to a &lt;a href="http://vimperator.org/trac/ticket/48"&gt;Trac ticket&lt;/a&gt;.&amp;#160; You can view the ticket to download it or to make it easy just right click and save as on &lt;a title="http://vimperator.org/trac/raw-attachment/ticket/48/feedSomeKeys_2-selective_vkeys.js" href="http://vimperator.org/trac/raw-attachment/ticket/48/feedSomeKeys_2-selective_vkeys.js"&gt;feedSomeKeys_2-selective_vkeys.js&lt;/a&gt; instead.&lt;/p&gt;  &lt;p&gt;You’ll need to save the file in your vimperator plugin folder (see point 3 in :help init) and add your chosen commands to your vimperatorrc file.&lt;/p&gt;  &lt;p&gt;I’ve added the following to mine:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; feedSomeKeys_2.js      &lt;br /&gt;autocmd LocationChange .* fmapc       &lt;br /&gt;&amp;quot; Gmail       &lt;br /&gt;autocmd LocationChange mail\.google\.com/(mail|a)/ :fmap -d 4 c / j k n p o u e x s r a # [ ] z ? gi gs gt gd ga gc &lt;/p&gt;    &lt;p&gt;&amp;quot;Google Reader      &lt;br /&gt;autocmd LocationChange www\.google\.(co\.jp|com)/reader :fmap! -v i j k n p m s v A r S N P X O gh ga gs gt gu u / ? t &lt;/p&gt;    &lt;p&gt;&amp;quot;Google Calendar      &lt;br /&gt;autocmd LocationChange ^https?://www\.google\.com/calendar fmap! -vkey -event keydown j k T,t a D,d w m x c e z / + q s ? &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; As you can see you can add keys as needed that will then be bypassed.&amp;#160; It makes for a much smoother experience.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Ubiquity&lt;/h2&gt;  &lt;p align="center"&gt;&lt;object width="400" height="298"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1561578&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ff9933&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=1561578&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ff9933&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="298"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;I should also mention another great add-on for Firefox called &lt;a href="http://labs.mozilla.com/projects/ubiquity/"&gt;Ubiquity&lt;/a&gt;.&amp;#160;&amp;#160; Follow the link (or watch the video above) to find out more but the short version is it adds a command line to Firefox.&amp;#160; I’ve been using this in conjunction with Vimperator for some time now and find it quite nifty.&amp;#160; I’ve added a few commands of my own (mostly search commands) which you can see some examples of below:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;CmdUtils.makeBookmarkletCommand({      &lt;br /&gt;&amp;#160; name: &lt;font color="#ff8080"&gt;&amp;quot;greader&amp;quot;&lt;/font&gt;,       &lt;br /&gt;&amp;#160; url: &lt;font color="#ff8080"&gt;&amp;quot;javascript:var%20b=document.body;var%20GR________bookmarklet_domain='http://www.google.com';if(b&amp;amp;&amp;amp;!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js');void(b.appendChild(z));}else{location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href)}&amp;quot;&lt;/font&gt;,       &lt;br /&gt;&amp;#160; icon: &lt;font color="#ff8080"&gt;&amp;quot;http://www.google.com/reader/ui/favicon.ico&amp;quot;&lt;/font&gt;,       &lt;br /&gt;&amp;#160; description: &lt;font color="#ff8080"&gt;&amp;quot;Opens the default for feed for the current page in Google Reader&amp;quot;&lt;/font&gt;       &lt;br /&gt;}); &lt;/p&gt;    &lt;p&gt;&lt;font color="#0080ff"&gt;//Note: This command was automatically generated by the create-new-search-command command.&lt;/font&gt;       &lt;br /&gt;CmdUtils.makeSearchCommand({       &lt;br /&gt;&amp;#160; name: &lt;font color="#ff8080"&gt;&amp;quot;tv&amp;quot;&lt;/font&gt;,       &lt;br /&gt;&amp;#160; url: &lt;font color="#ff8080"&gt;&amp;quot;http://www.tv.com/search.php?type=11&amp;amp;stype=all&amp;amp;tag=search%3Bfrontdoor&amp;amp;qs={QUERY}&amp;quot;&lt;/font&gt;,       &lt;br /&gt;&amp;#160; icon: &lt;font color="#ff8080"&gt;&amp;quot;http://www.tv.com/favicon.ico&amp;quot;&lt;/font&gt;,       &lt;br /&gt;&amp;#160; description: &lt;font color="#ff8080"&gt;&amp;quot;Searches www.tv.com&amp;quot;&lt;/font&gt;       &lt;br /&gt;}); &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I should probably also mention that I added the following to my _vimperatorrc file and bound Ubiquity to Ctrl-K.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; Clear mapping for Ubiquity     &lt;br /&gt;map &amp;lt;C-k&amp;gt; &amp;lt;Nop&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-255947240807671516?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/255947240807671516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=255947240807671516' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/255947240807671516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/255947240807671516'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/06/vimperator-tips-ubiquity.html' title='Vimperator Tips / Ubiquity'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-9076410231186352140</id><published>2009-02-19T12:38:00.001+11:00</published><updated>2009-02-19T12:38:52.627+11:00</updated><title type='text'>Back in Melbourne</title><content type='html'>&lt;p&gt;I'm back in Melbourne after about 11 hours on the road yesterday.&amp;#160; The drive was aided by a &amp;quot;double espresso&amp;quot; iced coffee and a red bull, though they did have the opposite affect when it came to getting to sleep last night.&amp;#160; It was an uneventful drive and apart from the traffic leaving Sydney and the roadworks along the way was pleasant enough thanks to cruise control and &lt;a href="http://www.abc.net.au/triplej/listen/" target="_blank"&gt;triple j&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;During my travels I often didn't have signal on Optus, or very limited signal, but had NextG coverage on the notebook.&amp;#160; So it's somewhat amusing that the day after getting back, that is today, I receive a phone call from Telstra offering me $200 credit for signing up my mobile with them for 24 months.&amp;#160; As someone who buys his own phones rather than getting it via a plan it was a bit of a &amp;quot;no brainer&amp;quot;.&lt;/p&gt;  &lt;p&gt;I was only eligible for the offer since I have my home phone and the NextG Internet plan with them.&amp;#160; Thankfully they are only criteria for being eligible and I can now reduce my NextG plan to a lower monthly and proceed with trying to change my ADSL 2+ to a &amp;quot;&lt;a href="http://www.netspace.net.au/broadband/naked/" target="_blank"&gt;Naked DSL&lt;/a&gt;&amp;quot; plan.&lt;/p&gt;  &lt;p&gt;I wanted to mention an observation regarding my &lt;a href="http://jonsblogat.blogspot.com/2009/02/australian-parliament-question-time.html" target="_blank"&gt;previous comments&lt;/a&gt; on the direct payments in the Australian governments latest economic stimulus package.&amp;#160; The Age today has &lt;a href="http://www.theage.com.au/national/handouts-stay-in-wallets-20090218-8bh8.html" target="_blank"&gt;an article&lt;/a&gt; stating that of the direct payments to households from the December stimulus package only about 20 per cent was spent.&amp;#160; This would seem to validate my comments so perhaps my understanding of things was pretty good after all.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-9076410231186352140?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/9076410231186352140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=9076410231186352140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/9076410231186352140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/9076410231186352140'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/back-in-melbourne.html' title='Back in Melbourne'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-5930677295591163119</id><published>2009-02-17T23:52:00.001+11:00</published><updated>2009-06-01T21:30:49.300+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Panoramic Photos</title><content type='html'>&lt;p&gt;Just a quick post as I need to get some sleep as I've decided to head back towards Melbourne tomorrow.&amp;#160; I spent some time today playing with &lt;a href="http://research.microsoft.com/en-us/um/redmond/groups/ivm/ICE/" target="_blank"&gt;Microsoft ICE&lt;/a&gt; which allows you to stitch multiple photos together and save them out in various formats including &lt;a href="http://research.microsoft.com/en-us/um/redmond/groups/ivm/HDView/" target="_blank"&gt;HD View&lt;/a&gt; and &lt;a href="http://livelabs.com/blog/seadragon/silverlight-2-deep-zoom/" target="_blank"&gt;Silverlight Deep Zoom&lt;/a&gt;.&amp;#160; I've used &lt;a href="http://www.ptgui.com/" target="_blank"&gt;PTgui&lt;/a&gt; in the past and I think it could possibly do a better job of things, so I may have to experiment with the two programs further in the future.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="300" src="http://photosynth.net/embed.aspx?cid=c855e430-f252-4001-a119-f89593493ebf" frameborder="0" width="400"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;As you can see above (if you've got Photosynth installed anyway) I also tried using Photosynth to create a panorama, and whilst it did work, it failed to &amp;quot;synth&amp;quot; images that Microsoft ICE managed to stitch.&amp;#160; The result of my work today is &lt;a href="http://panorama.rpgaddicts.net/" target="_blank"&gt;a website&lt;/a&gt; featuring various panoramas from my recent travels for your enjoyment.&amp;#160; So be sure to visit &lt;a href="http://panorama.rpgaddicts.net/" target="_blank"&gt;Panoramic Photos by Jon Benson&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-5930677295591163119?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/5930677295591163119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=5930677295591163119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5930677295591163119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5930677295591163119'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/panoramic-photos.html' title='Panoramic Photos'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-919288304857700564</id><published>2009-02-16T19:43:00.001+11:00</published><updated>2009-06-01T21:29:23.331+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Sydney - Harbour Bridge, Opera House</title><content type='html'>&lt;p&gt;Today I actually saw some blue sky through the clouds so decided to get out and about for a bit.&amp;#160; I took the train in to Milson's Point and walked over the Sydney Harbour Bridge to The Rocks and wandered about near the Sydney Opera House.&lt;/p&gt;  &lt;p&gt;The first thing I noticed on my train ride was that the trains here are quite different to Melbourne.&amp;#160; I think they are a fraction narrower and definitely taller.&amp;#160; The stations are also higher.&amp;#160; You board the train in the middle of the train and then either walk down or up to the majority of seats.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/XGmbM2d_itBhjbB7jMaLmg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SZkkoQR4pXI/AAAAAAAAHNQ/s98PW-PdvlE/s400/IMG_6049.JPG" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The walk started quite pleasant, if somewhat windy, as I crossed the bridge.&amp;#160; Unfortunately towards the end of the crossing the showers were back and by the time I'd grabbed a couple of sushi rolls for lunch and spent some time admiring the photography of &lt;a href="http://kenduncan.com/" target="_blank"&gt;Ken Duncan&lt;/a&gt; in his gallery in The Rocks it was raining.&amp;#160; &lt;/p&gt;  &lt;p&gt;It wouldn't have been so bad if I hadn't wanted to take photos and if I'd actually taken an umbrella with me.&amp;#160; But sadly most photo opportunities were ruined by the rain and I ended up with wet toes.&amp;#160; My new pants are thankfully quick dry and even though they got soaked they dried quite fast as it was still relatively warm (low 20s).&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/gpkzhdRp-ynzVJqPaZqSzw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SZklNz2VhNI/AAAAAAAAHOI/9fS6QlIMLWU/s400/IMG_6096.JPG" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="left"&gt;The train ride back from Circular Quay was a little packed as I only made it to the station at 5pm but it meant I stood up and got a bit of a view out the doors as the train crossed back over the Harbour Bridge.&amp;#160; All in all it was worth it and would be a great trip if the weather was a bit nicer.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-919288304857700564?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/919288304857700564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=919288304857700564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/919288304857700564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/919288304857700564'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/sydney-harbour-bridge-opera-house.html' title='Sydney - Harbour Bridge, Opera House'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_yEGG9ltk3Rw/SZkkoQR4pXI/AAAAAAAAHNQ/s98PW-PdvlE/s72-c/IMG_6049.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6413995625764582636</id><published>2009-02-14T09:29:00.001+11:00</published><updated>2009-06-01T21:29:23.331+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Falls Creek'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Wallace's Hut Photosynth worked!</title><content type='html'>&lt;p&gt;You may need to install &lt;a href="http://photosynth.net/" target="_blank"&gt;Photosynth&lt;/a&gt; to view this but I thought I'd post a quick note that I have managed to upload the photos (exterior only for now) of Wallace's Hut, in the Alpine National Park, Victoria, Australia.&amp;#160; Of the 398 photos, 395 managed to join together in to the Photosynth.&amp;#160; &lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="300" src="http://photosynth.net/embed.aspx?cid=0143b929-b583-4c8f-8743-188a13901da8" frameborder="0" width="400"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p align="left"&gt;Be sure to view this full screen, zoom in on a few photos to see the detail.&amp;#160; I took a few photos close up near the front of the hut as well, the rust covered shingles, and the moss.&amp;#160; If you hold down the CTRL key and move the mouse near the centre of the hut you should get a ring that lets you spin around the hut in 3D.&lt;/p&gt;  &lt;p&gt;At some stage I'll try a second synth of the photos I took of the interior, and eventually (when I get home again) I may try one with all the photos combined.&amp;#160; My brother's only on DSL here and at 256k upload it took approximately 12hrs to upload all the photos!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6413995625764582636?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6413995625764582636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6413995625764582636' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6413995625764582636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6413995625764582636'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/wallace-hut-photosynth-worked.html' title='Wallace&amp;#39;s Hut Photosynth worked!'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6331264028544706976</id><published>2009-02-09T15:28:00.001+11:00</published><updated>2009-06-01T21:28:14.256+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Tuross Head - Wollongong - Sydney</title><content type='html'>&lt;p&gt;I'm finally in my brothers place in Sydney.&amp;#160; I haven't posted in a few days partly because there wasn't a lot to post about and partly out of laziness.&amp;#160; I spent most of the last week in Tuross Head just relaxing.&amp;#160; I did go wandering on a couple of days to nearby Mogo and Batemans Bay.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://picasaweb.google.com/lh/photo/hlAooKAjgdtaPxzSVqlVyg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_yEGG9ltk3Rw/SY-kum8DP3I/AAAAAAAAHCE/8IPUbJNNlGU/s400/IMG_5973.JPG" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I guess I should mention the bushfires across south east Australia and particularly in Victoria.&amp;#160; It seems some of the areas I visited may now be quite black and I moved on in good time.&amp;#160; I am also fortunate enough to not have anyone I know directly affected by the fires.&amp;#160; My sympathies and best wishes go out to those that have been.&lt;/p&gt;  &lt;p&gt;Mogo is an arts/crafts type &amp;quot;historic&amp;quot; township and has a nearby zoo which I spent a few hours at.&amp;#160; Batemans Bay basically seems like a big resort town.&amp;#160; It was nice enough but a bit too much of a city and a bit too big for my taste.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/F3WQjfhVLLCoXJhry9bIDA?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SY-opvgBNKI/AAAAAAAAHLE/fch8e0DY7lY/s400/IMG_8190.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;My trip to the &lt;a href="http://www.mogozoo.com.au/" target="_blank"&gt;Mogo Zoo&lt;/a&gt; was hampered by the hot weather as most of the animals were hiding in the shade and basically just lazing about.&amp;#160; I was a bit disappointed that the wire for the cages, along with the distance you were kept from the wire, made photography quite difficult.&amp;#160; On the whole though it was pleasant enough and the highlight had to be the &amp;quot;birthday present&amp;quot; the 1 year old Serval kittens were given.&amp;#160; Basically a rat (relax folks it was already dead) in a box.&amp;#160; You can see a few photos in my &lt;a href="http://picasaweb.google.com/hastarin/MogoZoo?feat=directlink" target="_blank"&gt;album of the Mogo Zoo&lt;/a&gt;.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/q8tWuiHQ_ZfZWomuBHOEkA?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SY-mQRi96cI/AAAAAAAAHFQ/9C_y3piD7wg/s400/IMG_8002.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;For the trip from Tuross Head to Sydney I mostly followed the &lt;a href="http://www.visitnsw.com/Grand_Pacific_Drive_P653.aspx" target="_blank"&gt;Grand Pacific Drive&lt;/a&gt;.&amp;#160; I had a stop off in Kiama for lunch at the cafe near the blowhole.&amp;#160; Service was at a somewhat relaxed pace, which I guess was fitting given the surroundings, but the food was fantastic.&amp;#160; A nice fillet of fish atop a salad featuring sundried tomatoes and sweet potato with a honey based dressing and chunky chips.&lt;/p&gt;  &lt;p&gt;I spent last night in a Studio Room at the &lt;a href="http://www.medina.com.au/default.asp?page=/locations/wollongong-accommodation/medina-executive-wollongong" target="_blank"&gt;Medina Executive Wollongong&lt;/a&gt; as I managed to get a great rate for the night and the idea was it would give me a good break before hitting the heavier traffic nearer Sydney.&amp;#160; For whatever reason I had trouble sleeping though and rather sleepy now.&amp;#160; I think the cooler weather probably has something to do with that.&lt;/p&gt;  &lt;p&gt;It did give me a chance to have a bit of a wander around Wollongong though.&amp;#160; There is some major development planned there to revitalise the area near the beach and harbour.&amp;#160; My only surprise was seeing the Bluescope smelter operations on the outskirts of the city.&amp;#160; It certainly seemed out of place compared to the sites I'd seen recently.&lt;/p&gt;  &lt;p&gt;I got a bit bored of taking photos since they don't really convey things as well as I'd have liked.&amp;#160; There are a few more photos from various spots in &lt;a href="http://picasaweb.google.com/hastarin/SouthCoastNSW?feat=directlink" target="_blank"&gt;this album&lt;/a&gt;.&amp;#160; A final note, for those of you that know me I discovered &lt;a href="http://www.google.com/latitude/intro.html" target="_blank"&gt;Google Latitude&lt;/a&gt; last night and have sent out a few invites.&amp;#160; Basically it lets you see where I am, and if you run it I can see where you are.&amp;#160; I won't run it non stop, but will update it when I stop various places.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Melbourne+VIC&amp;amp;daddr=Wangaratta+VIC+to:Milawa+VIC+to:Bright+VIC+to:Mount+Beauty+VIC+to:Falls+Creek+VIC+to:Bogong+High+Plains+Rd+to:Buchan+VIC+to:McKillops+Bridge+to:Nowa+Nowa+VIC+to:Marlo+VIC+to:Cape+Conran+VIC+to:Eden+NSW+to:Tilba+Tilba+NSW+to:Tuross+Head+NSW+to:Mogo+NSW+to:Batemans+Bay+NSW+to:Nowra+NSW+to:Kiama+NSW+to:Wollongong+NSW+to:Turramurra+NSW+2074&amp;amp;hl=en&amp;amp;geocode=%3B%3B%3B%3B%3B%3BFTAqzP0djafICA%3B%3BFYMkyv0dbpvYCCH9DwAm67IFcg%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B&amp;amp;mra=ls&amp;amp;via=6&amp;amp;sll=-36.253133,147.875977&amp;amp;sspn=4.721768,9.887695&amp;amp;ie=UTF8&amp;amp;s=AARTsJprTa4_6PNWKZCkqDDBbKlG0FL9Ig&amp;amp;ll=-36.208823,147.897949&amp;amp;spn=6.203763,9.338379&amp;amp;z=6&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Melbourne+VIC&amp;amp;daddr=Wangaratta+VIC+to:Milawa+VIC+to:Bright+VIC+to:Mount+Beauty+VIC+to:Falls+Creek+VIC+to:Bogong+High+Plains+Rd+to:Buchan+VIC+to:McKillops+Bridge+to:Nowa+Nowa+VIC+to:Marlo+VIC+to:Cape+Conran+VIC+to:Eden+NSW+to:Tilba+Tilba+NSW+to:Tuross+Head+NSW+to:Mogo+NSW+to:Batemans+Bay+NSW+to:Nowra+NSW+to:Kiama+NSW+to:Wollongong+NSW+to:Turramurra+NSW+2074&amp;amp;hl=en&amp;amp;geocode=%3B%3B%3B%3B%3B%3BFTAqzP0djafICA%3B%3BFYMkyv0dbpvYCCH9DwAm67IFcg%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B&amp;amp;mra=ls&amp;amp;via=6&amp;amp;sll=-36.253133,147.875977&amp;amp;sspn=4.721768,9.887695&amp;amp;ie=UTF8&amp;amp;ll=-36.208823,147.897949&amp;amp;spn=6.203763,9.338379&amp;amp;z=6"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;I thought I'd post a map here showing roughly the route I've taken from Melbourne.&amp;#160; At over 1500kms and 22+ hrs driving it's certainly not the most direct route but I've enjoyed myself and would thoroughly recommend it to anyone else thinking about it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6331264028544706976?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6331264028544706976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6331264028544706976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6331264028544706976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6331264028544706976'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/tuross-head-wollongong-sydney.html' title='Tuross Head - Wollongong - Sydney'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_yEGG9ltk3Rw/SY-kum8DP3I/AAAAAAAAHCE/8IPUbJNNlGU/s72-c/IMG_5973.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-5476625828295010189</id><published>2009-02-05T17:51:00.001+11:00</published><updated>2009-02-05T17:51:56.341+11:00</updated><title type='text'>Australian Parliament - Question Time</title><content type='html'>&lt;p&gt;Well I'm not travelling much at the moment as I've managed to get a bit crook.&amp;#160; Nothing major but resting up in an air conditioned flat is what's on the books for the moment.&amp;#160; I happened to turn on the TV today to see the Senate &lt;a href="http://www.peo.gov.au/students/fss/fss39.html" target="_blank"&gt;question time&lt;/a&gt;.&amp;#160; It's no surprise it's not called &amp;quot;Answer Time&amp;quot; as there are few of those.&amp;#160; &lt;strong&gt;&lt;em&gt;NOTE: This post is going to relate to politics so feel free to skip it if that is not your thing.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Like most Australian's my interest in politics is minimal and like most I tend to have just towed the family line in voting for whichever major party my family voted for.&amp;#160; In the interests of disclosure to any bias in this article I have largely voted Liberal except in the last election which saw me vote Labor.&amp;#160; As someone who lives in a solid Labor seat my vote often seemed pointless anyway.&lt;/p&gt;  &lt;p&gt;I was highly amused to see what a joke this question time is, and even more amused to discover that it's an attempt at a &lt;a href="http://blogs.crikey.com.au/bartlett/2008/11/13/trial-reform-of-senate-question-time/" target="_blank"&gt;revision of the original format&lt;/a&gt; which was widely accepted as &lt;a href="http://andrewbartlett.com/?p=7112" target="_blank"&gt;nothing but a farce&lt;/a&gt;.&amp;#160; Sadly it seems the revision has done little to improve the matter.&lt;/p&gt;  &lt;p&gt;Allow me to summarise my experience of question time.&amp;#160; A senator asks a question of another senator, sometimes throwing in a political jibe along with the question.&amp;#160; The senator of whom the question has been asked then rants, raves, and otherwise misdirects so as to avoid a direct answer to the question.&amp;#160; If possible he, or she, will pretend to answer the question by stating a fact somewhat related to the original question.&amp;#160; Only in rare circumstances, apart from when they are asked a question by their own party which is really just an excuse to reinforce previous announcements, will they directly answer the question at hand.&lt;/p&gt;  &lt;p&gt;There are time limits in place to ensure they only have to rant for 2 minutes for a primary question, and less for the follow up questions, in order to avoid the answer.&amp;#160; During the answering of the question any senator may call for a &amp;quot;point of order&amp;quot;, usually to question wether the answer being given is &amp;quot;directly relevant&amp;quot; but this seems to be little use apart from a political manoeuvre as there seems to be no real way for &amp;quot;the speaker&amp;quot; to enforce this.&lt;/p&gt;  &lt;p&gt;It seems stupid that when asked a question like, &amp;quot;Can you provide data on x and if so what is figure y?&amp;quot; they manage to totally avoid providing an answer but that is very much the case. The most immediate example that springs to mind is that which was posed just before ABC TV finished their broadcast.&amp;#160; &lt;/p&gt;  &lt;p&gt;The question posed was along the lines of, &amp;quot;With the proposed economic stimulation package offering insulation for 2.2 million homes in Australia said to cut carbon output by 4.7 million tonnes per annum, does the government have a figure for the carbon output due to the manufacture and and installation of said insulation?&amp;quot;.&amp;#160; Presuming the senator asking the question already knows the answer, and he'd be foolish to ask it if he didn't &lt;a href="http://www.google.com.au/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.arap.org%2Fdocs%2Fxps_insulation.pdf&amp;amp;ei=EXyKSZ_wNpC8MtmFodIH&amp;amp;usg=AFQjCNEnTbVg4HTMwOpvnR5-AB2If1ROkQ&amp;amp;sig2=rD2VmDuQbG3JbrM4NfumWg" target="_blank"&gt;have some idea of the answer&lt;/a&gt;, it's obviously a shot at the policy as you'd expect.&lt;/p&gt;  &lt;p&gt;Now in an ideal world you'd hope for a reasoned answer along the lines of &amp;quot;No, I'll seek independent data on that and provide it to you when available&amp;quot;, or &amp;quot;Yes, it will be x, with a break even of carbon output in y years.&amp;quot;&amp;#160; Instead what you get is a rant about, well about something so irrelevant that I've already forgotten what was said.&amp;#160; I think it was perhaps something about the proposed carbon trading scheme.&lt;/p&gt;  &lt;p&gt;At the time of the last election I had thought that there was little chance anyone could be worse for IT and communications in Australia than Richard Alston, the then Liberal senator for that seat, and partly as a result of that I voted Labor.&amp;#160; It seems I was wrong as we now have Senator Conroy as the driving force, or should that be farce, behind &lt;a href="http://en.wikipedia.org/wiki/Internet_censorship_in_Australia#Policy_of_compulsory_internet_filtering" target="_blank"&gt;compulsory Internet filtering for Australia&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Now the filtering trial has basically vanished from the spotlight lately, and I suspect, and hope, that in light of the economic downturn it will get quietly swept under a rug and forgotten as the bad idea it always was.&amp;#160; In fact with the current economic situation it could be argued that such a filter would be downright irresponsible with the added cost it would impose on our ISPs and in turn the end users.&lt;/p&gt;  &lt;p&gt;I mention Senator Conroy as he was representing the Treasurer and a number of other seats in question time today and as such I got to see him in action.&amp;#160; I was not impressed.&amp;#160; I guess to be fair he was just doing his job as a politician, which seems to be to avoid giving a straight answer, though some of his colleagues were both, more eloquent, and professional in my opinion.&lt;/p&gt;  &lt;p&gt;From my brief experience with Question Time I would have to conclude that it's a waste of time, and taxpayer money.&amp;#160; If I was a more active citizen I'd perhaps campaign to see it reformed in a way that made it more transparent to the public and thereby, hopefully, improve it's relevance and benefit to the governance of our country.&lt;/p&gt;  &lt;p&gt;Even as an, off the top of my head, approach I would love to see a website dedicated to summaries of these sessions.&amp;#160; It could list each question and it's corresponding answer, if one is actually given, along with the senators involved.&amp;#160; It could then be used to gather all manner of statistics on what percentage of questions are actually answered, which senators typically avoid answering questions, what general categories those questions were regarding, etc&amp;#160; &lt;/p&gt;  &lt;p&gt;Of course the challenge with such an undertaking would be in doing so without political bias and I'm sure there would be numerous legal hurdles to deal with as well.&amp;#160; &lt;/p&gt;  &lt;p&gt;Another thought is that there should perhaps be some form of penalty involved for expending the allotted answer time without adequately attempting to answer the question, but then who would make that determination, and what form might the penalties take?&lt;/p&gt;  &lt;p&gt;Oh and as to the current political debate, it's largely regarding the proposed economic stimulus package that Labor has put forth and the opposition has stated it will oppose in favour of further discussion regarding their counter proposal of reduced spending and bringing forward tax cuts scheduled for 2010.&amp;#160; &lt;/p&gt;  &lt;p&gt;As someone currently unemployed after receiving a redundancy package, such things have my personal interest.&amp;#160; With ABC drive time radio being one of the few stations you can receive throughout most of Australia, it's also one of the things I've been listening to discussion regarding over the last week.&lt;/p&gt;  &lt;p&gt;My opinion, for what it's worth, would be that as usual both parties are posturing for politics and both, to some extent, believe they are doing what's best for the public.&amp;#160; Labor wants to be seen to be &amp;quot;coming to the rescue&amp;quot; with their stimulus package.&amp;#160; Liberal want to be seen as the &amp;quot;voice of reason&amp;quot; in ensuring we don't end up with huge national debt as a result.&lt;/p&gt;  &lt;p&gt;Perhaps it's my political bias here, but I'd love to see more time taken to discuss the stimulus package, as it certainly seems to be rushed as it stands.&amp;#160; I found it interesting that the package speaks of infrastructure, but unlike the US equivalent, made no mention of broadband and instead concentrates on roads.&amp;#160; That is just one such point I'd love to see discussed.&lt;/p&gt;  &lt;p&gt;Whilst I agree with measures like the insulation for homes, which gives both short term stimulus from the demand for the insulation, and long term savings for the households on their energy bills, I disagree with both direct cash hand outs and tax cuts without some detailed data on how the end consumer is likely to use the extra cash.&lt;/p&gt;  &lt;p&gt;Both measures have a two fold risk.&amp;#160; First for those consumers in debt these measures will simply trade private debt for public debt.&amp;#160; If you're currently in debt, you perhaps see this as a good thing, but&amp;#160; long term that money will need to be recouped from somewhere.&amp;#160; For those not in debt, or only moderately so, there is the risk that they will simply put the extra cash to savings and not spend it, hence having no direct stimulus to the economy.&lt;/p&gt;  &lt;p&gt;Now perhaps my opinions are limited by my understanding of economy so I'll stop my ranting and raving for now.&amp;#160; If you've read this far I hope my stream of thought has kept your interest and perhaps entertained you.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-5476625828295010189?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/5476625828295010189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=5476625828295010189' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5476625828295010189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5476625828295010189'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/australian-parliament-question-time.html' title='Australian Parliament - Question Time'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-1203605776040236184</id><published>2009-02-02T00:41:00.001+11:00</published><updated>2009-06-01T21:36:12.249+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Eden - Tuross Head</title><content type='html'>&lt;p&gt;I haven't posted for a few days because I haven't been up to much.&amp;#160; Friday I basically crashed out and just slept, watched TV and generally bummed about.&amp;#160; Saturday I didn't do much more.&amp;#160; I went for a walk to the &lt;a href="http://www.seahorseinn.com.au/" target="_blank"&gt;Seahorse Inn&lt;/a&gt; for lunch since it is only about 500m down the beach from where I was staying at the &lt;a href="http://www.aspenparks.com.au/holiday-destinations/new-south-wales/eden/twofold-bay-beach-resort/welcome.aspx" target="_blank"&gt;Twofold Bay Beach Resort&lt;/a&gt;.&amp;#160; There I enjoyed a pot of &lt;a href="http://www.maltshovel.com.au/" target="_blank"&gt;James Squire&lt;/a&gt; Golden Ale and Kranskys on mash, with caramelised onions and green beans.&amp;#160; Again pricey, but well presented and delicious.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/dU_lDPtpJcxkF8QaKMrhxg?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SYPkAtN-kpI/AAAAAAAAG68/m0zLzdAXuxs/s400/IMG_5961.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;For dinner I went in to Eden to visit the &lt;a href="http://www.yourrestaurants.com.au/guide/eden_wheelhouse_restaurant/" target="_blank"&gt;Eden Wheelhouse Restaurant&lt;/a&gt; where I again enjoyed a cold beer with my fish and chips.&amp;#160; They weren't your ordinary fish and chips, which at $28 was just as well!&amp;#160; My brother wasn't wrong about the pricing as you approach Sydney.&amp;#160; Now these guys have been in the Good Food Guide several years running and the food was good and well presented, but in Melbourne you'd get similar quality and presentation for closer to the $20 mark.&lt;/p&gt;  &lt;p&gt;The meal was basically a garden salad with seafood dressing, a few handfuls of chips, two fillets of some white fish (I didn't ask) that were crumbed with parmesan and poppy seeds and then fried.&amp;#160; It was also accompanied by some home made tartare sauce.&amp;#160; It was all well presented with the plate edges dusted with chilli which went great on the chips.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Eden+NSW&amp;amp;daddr=Bermagui+NSW+to:Central+Tilba+NSW+to:Narooma+to:Tuross+Head+NSW&amp;amp;hl=en&amp;amp;geocode=&amp;amp;mra=ls&amp;amp;sll=-36.639774,149.974365&amp;amp;sspn=1.174669,2.471924&amp;amp;ie=UTF8&amp;amp;s=AARTsJolqJhCIDPVmwZt1GbFDJfCLfESzg&amp;amp;ll=-36.630958,149.974365&amp;amp;spn=1.542907,2.334595&amp;amp;z=8&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Eden+NSW&amp;amp;daddr=Bermagui+NSW+to:Central+Tilba+NSW+to:Narooma+to:Tuross+Head+NSW&amp;amp;hl=en&amp;amp;geocode=&amp;amp;mra=ls&amp;amp;sll=-36.639774,149.974365&amp;amp;sspn=1.174669,2.471924&amp;amp;ie=UTF8&amp;amp;ll=-36.630958,149.974365&amp;amp;spn=1.542907,2.334595&amp;amp;z=8"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;Today I drove from Eden to Tuross Head where I'm currently staying in a self contained flat at &lt;a href="http://www.ellamay.com.au/" target="_blank"&gt;Ella May Holiday Flats&lt;/a&gt;.&amp;#160; I found a great deal, via the Hot Deals section of the &lt;a href="http://www.eurobodalla.com.au/" target="_blank"&gt;Eurobodalla&lt;/a&gt; website which is a site that covers this region of NSW, and am booked in for a week.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/HqrZ9EK1zqwq46phqvx7hw?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SYWjtxDvD9I/AAAAAAAAG94/2cU4_imhSpo/s400/IMG_7872.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Along the way I stopped off at &lt;a href="http://www.bermagui.net/" target="_blank"&gt;Bermagui&lt;/a&gt; for a brief look around.&amp;#160; It looks like a good spot to visit again for swimming with a sheltered bay and a large ocean rock pool as choice spots.&amp;#160; Since I'm here for a week I might have to make a day trip back there at some stage.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/ngvEFUSdzO-u5zxDs15qKQ?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SYWjvu6MKiI/AAAAAAAAG-A/GgWGwFCp4jU/s400/IMG_7877.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;From Bermagui I headed up to &lt;a href="http://www.tilba.com.au/centraltilba.htm" target="_blank"&gt;Central Tilba&lt;/a&gt; to browse around the town and buy some of my favourite cheeses from the &lt;a href="http://www.tilba.com.au/abc_cheese.htm" target="_blank"&gt;ABC Cheese Factory&lt;/a&gt; there.&amp;#160; I particularly enjoyed browsing the photos of &lt;a href="http://www.brettthompson.com.au/" target="_blank"&gt;Brett Thompson&lt;/a&gt; and a wander through the &lt;a href="http://www.tilbawoodturning.com.au/" target="_blank"&gt;Woodturning Gallery&lt;/a&gt;.&amp;#160; If I ever win Tatts I'll have to return there to furnish my house with some of the wonderful woodwork available there.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/Ai0Fy6tfS5QGAz8yHZvQFA?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh5.ggpht.com/_yEGG9ltk3Rw/SYWkOcYmvBI/AAAAAAAAG_8/_oq2DOMOICQ/s400/IMG_7926.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I briefly stopped in Narooma to snap a few photos and wander around and may visit there again in the coming days for a better look or even just to do some food shopping as it's probably one of the larger towns nearby.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/kM95EYSGL8QilDCqIodA8w?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SYWkY-hm7aI/AAAAAAAAHAk/fDZulVMa6VM/s400/IMG_7946.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;More to come when I feel I have something blog worthy. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-1203605776040236184?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/1203605776040236184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=1203605776040236184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1203605776040236184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1203605776040236184'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/02/eden-tuross-head.html' title='Eden - Tuross Head'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yEGG9ltk3Rw/SYPkAtN-kpI/AAAAAAAAG68/m0zLzdAXuxs/s72-c/IMG_5961.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-3791663313734222006</id><published>2009-01-29T19:49:00.001+11:00</published><updated>2009-06-01T21:37:01.819+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Buchan VIC - Eden NSW</title><content type='html'>&lt;p&gt;Well I've finally made it &amp;quot;half way&amp;quot; to Sydney.&amp;#160; I arrived in the Twofold Bay Beach Resort, or fancy caravan park, and settled in to my ensuite cabin.&amp;#160; I'm tired, though cool at least now thanks to air con, and will definitely have an early night tonight.&amp;#160; &lt;/p&gt;  &lt;p&gt;They are only predicting tops of 29 the next couple of days and it's currently 24 with a nice sea breeze.&amp;#160; Great weather for swimming or exploring the beaches, lakes, rainforests, etc nearby.&lt;/p&gt;  &lt;p&gt;At this stage I have no plans for tomorrow apart from relaxing and going out somewhere for dinner.&amp;#160; I was informed when I arrived there is a Brasserie just 500m down the beach so perhaps I'll head there and get a bottle of wine with my meal since it's a safe walk &amp;quot;home&amp;quot;.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Buchan+VIC&amp;amp;daddr=Nowa+Nowa+VIC+to:Marlo+VIC+to:West+Cape+Rd+to:Marlo+Rd+to:Park+Rd+to:731+Princes+Hwy,+Eden,+NSW+2551+(Twofold+Bay+Beach+Resort+(Aspen+Parks))&amp;amp;hl=en&amp;amp;geocode=%3B%3B%3BFV8Hv_0dZGbdCA%3BFXY2v_0doJzdCA%3BFVI_xP0dnIzqCA%3BCbfFHoGoFco1FWrnyf0dt9buCCHQdgXRVZ9tSQ&amp;amp;mra=pe&amp;amp;mrcr=5&amp;amp;sll=-37.514083,148.903198&amp;amp;sspn=1.161202,2.471924&amp;amp;ie=UTF8&amp;amp;s=AARTsJplXWE3wWo0_rZDQPxLitnq_CkAJA&amp;amp;ll=-37.514083,148.903198&amp;amp;spn=1.525001,2.334595&amp;amp;z=8&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Buchan+VIC&amp;amp;daddr=Nowa+Nowa+VIC+to:Marlo+VIC+to:West+Cape+Rd+to:Marlo+Rd+to:Park+Rd+to:731+Princes+Hwy,+Eden,+NSW+2551+(Twofold+Bay+Beach+Resort+(Aspen+Parks))&amp;amp;hl=en&amp;amp;geocode=%3B%3B%3BFV8Hv_0dZGbdCA%3BFXY2v_0doJzdCA%3BFVI_xP0dnIzqCA%3BCbfFHoGoFco1FWrnyf0dt9buCCHQdgXRVZ9tSQ&amp;amp;mra=pe&amp;amp;mrcr=5&amp;amp;sll=-37.514083,148.903198&amp;amp;sspn=1.161202,2.471924&amp;amp;ie=UTF8&amp;amp;ll=-37.514083,148.903198&amp;amp;spn=1.525001,2.334595&amp;amp;z=8"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;I didn't do much apart from the drive today.&amp;#160; My first stop for the day was at the family run &lt;a href="http://www.lakes-entrance.com/minglingwaters/" target="_blank"&gt;Mingling Waters Cafe&lt;/a&gt; in Nowa Nowa where I got a coffee (too hot but otherwise fine) and a yummy bacon and egg roll to get me started for the day.&amp;#160; They had some nice artwork on display there including a painting I quite liked, but at $270 it wasn't coming with me.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/7Sp1WNPplRZumSA6HX03xw?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SYPjTNdz6kI/AAAAAAAAG4k/6kpmRXrv118/s400/IMG_7807.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;From there I took a short drive to see the &lt;a href="http://nla.gov.au/nla.cs-pa-http%253A%252F%252Farrow.monash.edu.au%252Fhdl%252F1959.1%252F3712" target="_blank"&gt;Stony Creek Railway Bridge&lt;/a&gt; that a friend had recommended I visit.&amp;#160; It's the highest/longest, I forget which, of it's kind still standing in Victoria.&amp;#160; It was worth a look and quite easy to get to as you can literally drive right to it, no 400m or otherwise walks.&amp;#160; With the heat I just snapped a few photos and moved on.&lt;/p&gt;  &lt;p&gt;Near Orbost I took a detour off the main highway, again at the same friends suggestion, down to Marlo on the south coast.&amp;#160; My mate had recently stayed there so it was worth a look on the way.&amp;#160; The town is situated there because it's where the Snowy River meets the ocean and so I snapped a few photos of that.&amp;#160; I briefly considered going for a swim but with the majority of the drive still ahead of me I decided I couldn't be bothered.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/TWGCkCboerBrGSAv9_NW_w?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SYPjblWUlXI/AAAAAAAAG48/43L09r8Jd50/s400/IMG_7815.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;On a side note.&amp;#160; I made the mistake of leaving it until here to get fuel, not realising how small a town it was, and the fuel was easily an extra 15c a litre.&amp;#160; Not a big deal in the scheme of the holiday, but worth noting that if you see a town with more than one service station it's probably worth a top up there.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/fcusI6_J_s3OXf9uyFvg4w?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SYPjx_CR0TI/AAAAAAAAG6I/KcWGjpcCNwg/s400/IMG_7846.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I then headed east to the Cape Conran Coastal Park and took a brief drive in and around the area for a few more photos.&amp;#160; The water was a lovely blue and very picturesque.&amp;#160; One of the areas I visited was West Bay and there was a boat launch there with a number of boat trailers in the car park and at least two boats queued for the use of the ramp.&amp;#160; Obviously a popular spot for boating/fishing, and nearby campsites had a few tents up so I presume for camping as well.&lt;/p&gt;  &lt;p&gt;From here I got back on to the main A1 highway and enjoyed the freedom of using cruise control again after the unsealed and windy roads of the last few days.&amp;#160; There are surprisingly few towns on the highway and in to time I found myself in need of a break near Genoa.&amp;#160; Genoa can boast to being the last town in Victoria on the highway.&amp;#160; &lt;/p&gt;  &lt;p&gt;I chose to avoid the town itself as I wanted somewhere in the shade, most of the town was in full sun, and was happy to find a turn off just after the town to a camping area near the river.&amp;#160; I parked beneath some large gums in full shade and was pleasantly surprised to exit the car and find a nice breeze and pleasant temperatures again.&lt;/p&gt;  &lt;p&gt;Back on the road it was a short drive to Eden and was almost uneventful except I had managed to put the wrong address in to my GPS and came upon the Resort sooner than I was expecting.&amp;#160; The problem was made worse by the fact I only noticed the turn off whilst coming down hill at 100km/h.&amp;#160; It was further exasperated by the moron truck behind me that wanted to do 110km/h and was sitting far too close after it had just overtaken the car behind me!&lt;/p&gt;  &lt;p&gt;I went to brake for the turn off but one glance in my rear view mirror made me decide that I'd clear the lane before applying the brakes any harder or I'd be getting real up close and personal with the trucks bull bar.&amp;#160; &lt;/p&gt;  &lt;p&gt;The end result was me shooting across the highway, leaving a layer of rubber behind at some point, and then gently sailing over the driveway for the resort and on to the grass on the other side.&amp;#160; Thankfully both driver and car were fine and I just did a u-turn on the grass and drove back up on to the drive.&amp;#160; &lt;/p&gt;  &lt;p&gt;I don't have many photos from today so will probably just sort them tomorrow night with whatever few I take tomorrow.&amp;#160; I hope everyone is surviving the heat and enjoying my tales.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-3791663313734222006?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/3791663313734222006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=3791663313734222006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3791663313734222006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3791663313734222006'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/buchan-vic-eden-nsw.html' title='Buchan VIC - Eden NSW'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_yEGG9ltk3Rw/SYPjTNdz6kI/AAAAAAAAG4k/6kpmRXrv118/s72-c/IMG_7807.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-8420128612236071045</id><published>2009-01-28T21:06:00.001+11:00</published><updated>2009-06-01T21:38:43.769+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Buchan - Little River Gorge - McKillops Bridge (Snowy River National Park)</title><content type='html'>&lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;EDITED&lt;/strong&gt; 10:30pm: Added some photos and a note about Dave at Seldom Seen Service Station.&amp;#160; Also the temperature has gone up again!&amp;#160; Sigh.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;First I have to let you know that it's too hot!&amp;#160; I'm sitting here with a cold washer sitting atop my head, and hence I'm just a bit warn out.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'm sure if you're reading this shortly after I've published it you're well aware how warm it was today.&amp;#160; It reached 38 nearby today and is still around 30 at 8.30pm&amp;#160; I'm hopeful it will cool down to the expected 21 fast now the sun is setting.&lt;/p&gt;  &lt;p&gt;I picked up sandwiches today from the cafe in town.&amp;#160; Almost twice the price of the roadhouse sandwiches but easily worth it as they were probably twice the size and had more in them.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Buchan+VIC&amp;amp;daddr=McKillops+Bridge&amp;amp;hl=en&amp;amp;geocode=%3BCQE8osnpOADCFYMkyv0dbpvYCCH9DwAm67IFcg&amp;amp;mra=pe&amp;amp;mrcr=0&amp;amp;sll=-37.394606,148.252455&amp;amp;sspn=1.163065,2.471924&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;s=AARTsJrsgmwOeHm5HwXohO1wCDc3Z-ZHcw&amp;amp;ll=-37.277331,148.293457&amp;amp;spn=0.764909,1.167297&amp;amp;z=9&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Buchan+VIC&amp;amp;daddr=McKillops+Bridge&amp;amp;hl=en&amp;amp;geocode=%3BCQE8osnpOADCFYMkyv0dbpvYCCH9DwAm67IFcg&amp;amp;mra=pe&amp;amp;mrcr=0&amp;amp;sll=-37.394606,148.252455&amp;amp;sspn=1.163065,2.471924&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;ll=-37.277331,148.293457&amp;amp;spn=0.764909,1.167297&amp;amp;z=9"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;Today I set out to McKillops Bridge and the Little River Gorge in the Snowy River National Park.&amp;#160; This time I'd made a point of letting some folks know where I was going and when I'd be expected back.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/W4oY4a0XpYo1RPLfrJzjZg?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SYA_jdnAOmI/AAAAAAAAG0Y/iThZWtasXzs/s400/IMG_5947.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Once you got off the paved road things slowed down quite a bit.&amp;#160; The last 11kms to McKillops Bridge was steep, narrow and windy and I to)ok it with the auto stuck in 2nd gear to avoid going too quick and ending up over the edge or meeting another car head on.&lt;/p&gt;  &lt;p&gt;Fortunately I only saw two cars in there.&amp;#160; One when I'd already pulled to the side to take a photo of a cliff face and the other when I was down on the river and they were crossing the bridge.&lt;/p&gt;  &lt;p&gt;I'd hate to have had to reverse my Magna downhill along one of those roads.&amp;#160; The thought alone terrifies me as you'd be essentially blind due to the high back.&amp;#160; It makes me wonder what the etiquette would be there?&amp;#160; I guess you'd probably have to get out and have a chat to decide who it was safer for to reverse up to the nearest spot you could pass each other.&lt;/p&gt;  &lt;p&gt;On the way in there was a stop and a walk for Little River Falls. I'd learnt from my mistakes yesterday and this time I was smart enough not to even bother with the walk.&amp;#160; A little further in was the walk to Little River Gorge. It was only 400m and down a gravel path which was like a highway when compared to the track I wandered down yesterday so I went for a look.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/kIWLe18Rd-xTTg74vbNx8g?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SYA9w_1bBGI/AAAAAAAAGvc/BGMUaOCppP8/s400/IMG_5917.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I was surprised how easy/short the walk was.&amp;#160; There was even the odd bit of shade along the way.&amp;#160; I'm sure there would have been more shade but there had obviously been a bushfire through there in the not too distant past and the landscape was still recovering.&amp;#160; I took a few photos, took in the vista and headed back up.&lt;/p&gt;  &lt;p&gt;Again I'd learnt from yesterday and this time I only took in the camera and a drink.&amp;#160; I left the backpack, etc in the car.&amp;#160; I also took my time heading out and moved from shade to shade.&amp;#160; Between that and the quality path I was back out in no time.&lt;/p&gt;  &lt;p&gt;The car was parked in shade here so I started it up and sat in the air con to eat half a sandwich before moving on.&amp;#160; It might sound silly to run the car just for the air con, but I certainly didn't think so at the time.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/1XikkYT-lwD-lAJNtebLUg?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SYA_NEoFi5I/AAAAAAAAGzY/roYLi9b8jNw/s400/IMG_7719.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I eventually arrived at McKillops Bridge.&amp;#160; More photos were taken and then I went to see if I could get down to the Snowy River itself.&amp;#160; I found a road to a canoe launching area and followed it to within 100m or so of the river and went for a walk.&amp;#160; I considered going for a swim but the heat was oppressive and solo I didn't dare risk the smooth, and moss covered, rocks that made up the river bed.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/8Eld9hOhwDDdkc4ID92CGQ?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh5.ggpht.com/_yEGG9ltk3Rw/SYA_VAF4rII/AAAAAAAAGzw/hQz_hQ8GIBY/s400/IMG_7727.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Instead I went back to the car to grab the camera then back to the river for a few more photos.&amp;#160; I briefly explored some more of the area in case I could find a nice sandbank to swim at but the heat quickly got the better of me and I again parked the car in some shade and ate the rest of my sandwich before heading back out.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: Added a few paragraphs here.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;On the way back to Buchan I stopped off at the &lt;a href="http://en.wikipedia.org/wiki/Seldom_Seen_Roadhouse" target="_blank"&gt;Seldom Seen Service Station&lt;/a&gt; where I had a nice chat with Dave.&amp;#160; Dave is easily the most colourful character I've met on this trip, and I don't just mean his white beard and hair that covered all but the top of his now bright red head.&amp;#160; &lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/3CYKu0xpW9j1Y6d-KvQNpQ?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh5.ggpht.com/_yEGG9ltk3Rw/SYA_zqiqcHI/AAAAAAAAG1E/xzYj17YWEwk/s400/IMG_7739.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Dave had apparently received a slab of beer in the post around midday and had consumed half since.&amp;#160; It was about 5pm at this stage.&amp;#160; Needless to say Dave was rather jovial.&amp;#160; He, and his neighbours were survivors of the 2003 fires in the region but his inebriated state didn't make for the best conversation.&lt;/p&gt;  &lt;p&gt;He did offer me a beer, which I politely declined many times, and insisted I come inside to sign the guest book.&amp;#160; There is more to tell about Dave but this blog isn't the place so those that know me be sure to ask for the full story.&lt;/p&gt;  &lt;p&gt;I arrived back at Buchan around 6pm which was still quite early compared to yesterday and my cabin was in full sun still.&amp;#160; So I headed down to the Buchan river and found a shady spot to park.&amp;#160; I obviously wasn't the only one with the plan of cooling down by the river as there were a number of cars further on but I chose to stick with the spot I found.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/x904KlR1VA88wZxEtdvW1A?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SYA_-hV5GvI/AAAAAAAAG1c/Y9gyLRUt8ao/s400/IMG_7753.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;It turned out to be a good decision as I came across a dragon lizard of some sort and various other wildlife including a wallaby, parrots, and kookaburras.&amp;#160; I'm sure, by the noise I heard coming from further down the river, I wouldn't have seen any down there.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/GZrqDudpSsDmekxgbeWY2w?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh5.ggpht.com/_yEGG9ltk3Rw/SYBAIgUygBI/AAAAAAAAG2I/CO62mnsoPQk/s400/IMG_7770.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I'm back in the cabin now, under the ceiling fan, waiting for it to cool down so I can clean/pack/sleep ready for tomorrow.&amp;#160; Tomorrow I'll head south to the coast and follow it, or the highway, up to Twofold Bay near Eden.&amp;#160; I've booked a cabin with air con this time and at this juncture am very much looking forward to relaxing in it.&lt;/p&gt;  &lt;p&gt;&lt;strike&gt;I might re-edit this post a bit later with some photos from today otherwise it will wait until I'm in the air con tomorrow night.&lt;/strike&gt;&amp;#160; Photos now &lt;a href="http://picasaweb.google.com.au/hastarin/BuchanLittleRiverGorgeMcKillopsBridge?feat=directlink" target="_blank"&gt;available here&lt;/a&gt;.&amp;#160; In case you hadn't noticed I have put up more photos from previous days.&amp;#160; &lt;a href="http://picasaweb.google.com/hastarin/MountBeautyToFallsCreek?feat=directlink" target="_blank"&gt;Mount Beauty to Falls Creek&lt;/a&gt; and &lt;a href="http://picasaweb.google.com/hastarin/FallsCreekWallaceSHutBuchan?feat=directlink" target="_blank"&gt;Falls Creek - Wallace's Hut - Buchan&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-8420128612236071045?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/8420128612236071045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=8420128612236071045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8420128612236071045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/8420128612236071045'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/buchan-little-river-gorge-mckillops.html' title='Buchan - Little River Gorge - McKillops Bridge (Snowy River National Park)'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yEGG9ltk3Rw/SYA_jdnAOmI/AAAAAAAAG0Y/iThZWtasXzs/s72-c/IMG_5947.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-7265368910817100763</id><published>2009-01-28T00:55:00.001+11:00</published><updated>2009-06-01T21:39:39.209+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Buchan - Basin Creek Falls - Tulloch Ard Road</title><content type='html'>&lt;p&gt;Well today turned out to be much more of adventure than I'd originally planned.&amp;#160; After yesterday I thought I'd take it easy and hang about the cabin, do my washing, read a book, and just generally chill out.&lt;/p&gt;  &lt;p&gt;By about 2pm though the cabin, even under the ceiling fan, was getting rather warm (it hit 32 in the area today) so I thought I'd head out, get some food in town and explore the area a bit.&amp;#160; I also decided to stay here another day, though my next destination will definitely require air conditioning!&lt;/p&gt;  &lt;p&gt;I went to the roadhouse in town and bought a couple of ham, cheese and tomato sandwiches to take with me.&amp;#160; I wandered down to the &lt;a href="http://www.parkweb.vic.gov.au/1park_display.cfm?park=74" target="_blank"&gt;Buchan Caves&lt;/a&gt; tourist centre hoping that it might be cooler down in the valley.&amp;#160; It wasn't, at least not a lot.&amp;#160; It was a nice 17 degrees in the caves the lady in the centre informed me, but I didn't want to head in to them.&lt;/p&gt;  &lt;p&gt;At the tourist centre there were a few signs of what to do in the area.&amp;#160; One of them was for a walk to Basin Creek Falls and nearby a trip to &amp;quot;The Junction&amp;quot; (junction of the Buchan and Snowy Rivers) with swimming accessible via car.&amp;#160; Right I thought, that sounds good I'll head there.&amp;#160; I grabbed my phone, fired up my navigation software and made sure it had the spot for Basin Creek Falls.&lt;/p&gt;  &lt;p&gt;Now what I didn't, and should have done are several things.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Also noted the location for &amp;quot;The Junction&amp;quot;. &lt;/li&gt;    &lt;li&gt;Purchased a real map of the area. &lt;/li&gt;    &lt;li&gt;Told someone where I was planning to go! &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Instead what I did was jump in the car and head off.&amp;#160; Now I wasn't totally unprepared.&amp;#160; I still had the navigation software with GPS, food, water, sun screen, insect repellant, etc.&lt;/p&gt;  &lt;p align="center"&gt;&amp;#160; &lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=16+Gelantipy+Rd,+Buchan,+VIC+3885+(Buchan+Valley+Log+Cabins)&amp;amp;daddr=Old+Basin+Rd+to:Basin+Rd+to:Tulloch+Ard+Rd+to:Buchan+VIC&amp;amp;hl=en&amp;amp;geocode=FRvjw_0dk_XUCCHv3wRUmwH4Pw%3BFV7qw_0dLFTWCA%3BFZVGxP0dVwvWCA%3BFdxmxv0dRBzXCA%3B&amp;amp;mra=ls&amp;amp;sll=-37.332768,148.290195&amp;amp;sspn=0.036375,0.077248&amp;amp;ie=UTF8&amp;amp;s=AARTsJpBUEd5Mg9Vl_VTQGAmCQUyzM9HEA&amp;amp;ll=-37.365445,148.249895&amp;amp;spn=0.382011,0.583649&amp;amp;t=h&amp;amp;z=10&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=16+Gelantipy+Rd,+Buchan,+VIC+3885+(Buchan+Valley+Log+Cabins)&amp;amp;daddr=Old+Basin+Rd+to:Basin+Rd+to:Tulloch+Ard+Rd+to:Buchan+VIC&amp;amp;hl=en&amp;amp;geocode=FRvjw_0dk_XUCCHv3wRUmwH4Pw%3BFV7qw_0dLFTWCA%3BFZVGxP0dVwvWCA%3BFdxmxv0dRBzXCA%3B&amp;amp;mra=ls&amp;amp;sll=-37.332768,148.290195&amp;amp;sspn=0.036375,0.077248&amp;amp;ie=UTF8&amp;amp;ll=-37.365445,148.249895&amp;amp;spn=0.382011,0.583649&amp;amp;t=h&amp;amp;z=10"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;I got to the point for the Basin Creek Falls walk (no link because I couldn't find anything for it except other bloggers mentioning it) just fine and loaded up the backpack and headed in.&amp;#160; Part way in I noted to myself that it was all downhill and this wasn't going to be nearly as easy getting out again but soldiered on because after a point it was a case of, &lt;em&gt;&amp;quot;I've come this far, I want to at least see something&amp;quot;&lt;/em&gt;.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/ysl1pT9TO0pCIj16-l7P4Q?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SX7-v5hIi_I/AAAAAAAAGkw/t7-dHd1k5CI/s400/IMG_5887.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Shortly after I came upon a magnificent view of the Snowy River making the effort worth it.&amp;#160; This is the point I should have stopped and eaten my sandwich and headed back out.&amp;#160; Instead I thought to myself, &lt;em&gt;&amp;quot;OK I can't hear the falls but I might as well keep going&amp;quot;&lt;/em&gt;, and continued around the rocks and down further.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/J3TxyeapxDezw5qFgaGJcQ?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SX7-Y2kVa8I/AAAAAAAAGj8/0T8Ig_c0Uy0/s400/IMG_5872.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Now I reached a point where the pathway was rather overgrown and the little voice is telling me no one has been down here in a while and there is probably a reason, but by this point it was a case of personal pride to reach the end and see what's there.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/UrLk0RKOpbrr1zPdvOOM1g?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SX7-tCvloQI/AAAAAAAAGko/_BMw_FsiwqI/s400/IMG_5882.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;What there was, was a white spot on the cliff face where the waterfall probably is in wetter months of the year and the stream that had all but dried up.&amp;#160; Both were unreachable, at least in shorts and sandals, due to the level of growth in the area.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/KNQ7su2HJmnkXJBThqYYIA?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SX7_nZ9uC7I/AAAAAAAAGn0/e3olAr9U1xE/s400/IMG_5880.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Sadly the end location was both disappointing and hot as there was little shade and it was sheltered from any breeze by the mountain.&amp;#160; The earlier spot with the great view had a gentle breeze and trees for shade so I headed back up.&lt;/p&gt;  &lt;p&gt;Minutes later my body was in shock that rather than sitting on a leather recliner watching a movie it was now being required to propel me onwards and upwards.&amp;#160; Off came the shirt and thoughts about how silly I was not to tell someone where I went entered my mind.&amp;#160; I knew I'd make it out with time but definitely regretted not getting some mild exercise more often.&lt;/p&gt;  &lt;p&gt;I worked in spurts back up and around the side of the mountain to the shady spot where I took a seat on a rock, regained my breath and ate that remaining sandwich.&amp;#160; It took me about 10 mins down from that spot, but 17 mins to get back to it.&lt;/p&gt;  &lt;p&gt;After a bit of a rest the remaining walk back out was more reasonable, although I still propped against more than one tree on the way out.&amp;#160; Back at the car I fired the air conditioning up to full speed again and took a minute or two to recover before heading off again.&amp;#160; I decided to head to the swimming area at the junction that I'd read about earlier.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/ZMd4oECZJxzpcoM9HnPORg?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SX7-FHIbLPI/AAAAAAAAGjU/UTosM4QXU-c/s400/IMG_7595.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I thought I knew where I was going but it turns out I took a wrong turn somewhere.&amp;#160; Just about the point I'd decided I was lost I noticed a sign for &amp;quot;Tourist Drive 5&amp;quot; and decided to follow it.&amp;#160; I could have backtracked of course but that wouldn't have been any fun.&amp;#160; It turns out this was the Tulloch Ard Road that leads through the Snowy River National Park and comes out just below Gelantipy.&lt;/p&gt;  &lt;p&gt;I did pull over after about 20 minutes to make sure the GPS had a road marked at my location so it could navigate me back out worst case.&amp;#160; Since it did I headed on.&lt;/p&gt;  &lt;p&gt;Since heading down the unsealed road the only living things I'd seen bigger than a bird were &lt;a href="http://picasaweb.google.com.au/lh/photo/Uf1Zncw2EDPs_y4kZPbixw?feat=directlink" target="_blank"&gt;an echidna&lt;/a&gt;, and a goanna.&amp;#160;&amp;#160; Both of which had run across the road ahead of me.&amp;#160; Until I exited the forest the only other thing I got to see was one logging truck driver as he hurtled down the narrow road towards me.&amp;#160; Thankfully it happened to be at a spot I could pull over to let him pass.&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/5cRC5e3nBi9guiDUUF_oWA?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SX7-4zzZmYI/AAAAAAAAGlI/MmtHDjNKqEY/s400/IMG_5896.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;Heading back down to Buchan on the sealed road I had to brake for a Grey Kangaroo that bounded out in front of my car and later a calf that was on the opposite side of the road to his escaped brethren and decided he needed the strength of numbers as my scary car bared down on him.&lt;/p&gt;  &lt;p&gt;I have already uploaded some photos of today's trek, and now figured out how to embed some in the post but there are plenty more so be sure to &lt;a href="http://picasaweb.google.com.au/hastarin/BuchanBasinCreekFallsTullochArdRoad?feat=directlink" target="_blank"&gt;check them out&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;I arrived back at the cabin about 8.30pm to find it had heated up like an oven inside so I opened it up to air.&amp;#160; I've since been writing this entry, had a chat to my mate over Skype, sorted and uploaded today's photos and cooked some pasta for dinner.&amp;#160; Things are now cool enough to consider sleeping so it's probably a good time to end things for today.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-7265368910817100763?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/7265368910817100763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=7265368910817100763' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7265368910817100763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7265368910817100763'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/buchan-basin-creek-falls-tulloch-ard.html' title='Buchan - Basin Creek Falls - Tulloch Ard Road'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yEGG9ltk3Rw/SX7-v5hIi_I/AAAAAAAAGkw/t7-dHd1k5CI/s72-c/IMG_5887.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-3055208775934294262</id><published>2009-01-26T20:35:00.001+11:00</published><updated>2009-06-01T21:40:50.801+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Falls Creek'/><category scheme='http://www.blogger.com/atom/ns#' term='walking'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Mount Beauty - Wallace Hut - Buchan</title><content type='html'>&lt;p&gt;I said farewell to Tony this morning and grabbed a few supplies at the Foodworks in Mt Beauty before setting off up to Falls Creek again.&amp;#160; This time though I drove straight through following the &lt;a href="http://www.alpineshire.vic.gov.au/Page/page.asp?Page_Id=152&amp;amp;h=0" target="_blank"&gt;Bogong High Plains Road&lt;/a&gt; to visit &lt;a href="http://www.parkweb.vic.gov.au/1process_details.cfm?place=164" target="_blank"&gt;Wallace's Hut&lt;/a&gt; for a photographic experiment before continuing on for the long drive to Buchan.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=186+Kiewa+Valley+Hwy,+Tawonga+South+VIC+3698&amp;amp;daddr=Wallace's+Hut+to:Buchan+VIC&amp;amp;hl=en&amp;amp;geocode=%3BFSQAzf0dqbvHCCGGwivIDQTJKQ%3B&amp;amp;mra=ls&amp;amp;sll=-36.815881,147.240143&amp;amp;sspn=0.292993,0.617981&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;s=AARTsJrYllm9zAo_bGkjqsFihLk1Q-VuCQ&amp;amp;ll=-37.130125,147.664585&amp;amp;spn=1.532821,2.334595&amp;amp;z=8&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=186+Kiewa+Valley+Hwy,+Tawonga+South+VIC+3698&amp;amp;daddr=Wallace's+Hut+to:Buchan+VIC&amp;amp;hl=en&amp;amp;geocode=%3BFSQAzf0dqbvHCCGGwivIDQTJKQ%3B&amp;amp;mra=ls&amp;amp;sll=-36.815881,147.240143&amp;amp;sspn=0.292993,0.617981&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;ll=-37.130125,147.664585&amp;amp;spn=1.532821,2.334595&amp;amp;z=8"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;The &amp;quot;photographic experiment&amp;quot; I am referring to is to try and create a &lt;a href="http://photosynth.net/" target="_blank"&gt;Photosynth&lt;/a&gt; of the hut.&amp;#160; I've had limited success (shown below) with existing photos of the Piazza del Campo in Sienna, Italy.&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="300" src="http://photosynth.net/embed.aspx?cid=2b421069-4ad1-4f29-a930-2257b3ddcc63" frameborder="0" width="400"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;So it will be interesting to see how a few hundred photos taken for the purpose turn out.&amp;#160; Hopefully I'll take the time to try this when I reach my brothers next week.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/A3qQB-8i5gilDLi-IhaAvw?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SX8avRDdLII/AAAAAAAAGsc/w3ZGUC0V4ds/s400/IMG_5839.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;The walk to &lt;a href="http://flickr.com/search/?q=wallace%27s%20hut&amp;amp;w=all" target="_blank"&gt;Wallace's Hut&lt;/a&gt; was a relatively easy one.&amp;#160; It is only 750m from the road and gently downhill, which of course equates to a gentle uphill trek back out and 1.5km of walking.&amp;#160; I ended up doing it twice as the first time I set out I had forgotten to clear the Compact Flash cards for my camera and didn't even think to take my &lt;a href="http://www.nextodi.co.kr/en/product/ultra_en.html" target="_blank"&gt;Nexto UX&lt;/a&gt; with me.&amp;#160; So I ended up heading back to the car after taking the first lot of photos and offloading the contents to the Nexto before trekking back in with the Canon 30D left in the car the 2nd time.&amp;#160; Basically I was too unfit to be bothered lugging the extra weight.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/IdGPJ7hXPTO8h1Rs5qUBXQ?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh3.ggpht.com/_yEGG9ltk3Rw/SX8arV2Kx-I/AAAAAAAAGsU/H7nbgBayIFE/s400/IMG_5836.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;When I first arrived at the hut there were only a few other people about and I had it mostly to myself for a time which made getting the needed photos quite easy.&amp;#160; By the time I got to the car and back again there were a number of family set up for a picnic lunch there.&amp;#160; Thankfully back enough for me to take the few extra shots I wanted with some patience and timing.&amp;#160; I did some internal shots as well but I don't know how well they'll &amp;quot;synth&amp;quot; or if they'll be connected to the external shots.&amp;#160; Some experimentation, sadly quite time intensive, will be required.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/eOmpsmS0jwG62oANTMNW3A?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SX8bAZ5HNfI/AAAAAAAAGtA/msXbQkOxS1o/s400/IMG_5856.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;The drive itself took me over some &amp;quot;unpaved&amp;quot; roads.&amp;#160; I was expecting dirt but they were gravel and quite reasonable.&amp;#160; Though speeds above 60 were risky, and below that things got a bit shaky.&amp;#160; It was certainly the most slipping/sliding I've ever had my Magna doing.&amp;#160; The scenery along the way was great and surprisingly green.&amp;#160; I didn't take many photos along the way as after Wallace's Hut I wanted to get to Buchan to relax.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/I3ReACyoece7uDh4ezZRug?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh5.ggpht.com/_yEGG9ltk3Rw/SX8bJyNKrdI/AAAAAAAAGto/tMHKW6oW_fw/s400/IMG_7581.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I'm now sitting in my &amp;quot;log cabin&amp;quot; at &lt;a href="http://www.buchanlogcabins.com.au/" target="_blank"&gt;Buchan Log Cabins&lt;/a&gt; typing this via Windows Live Writer (to save on the precious bandwidth) and it turns out it's a nicer experience than using the Blogger interface anyway.&amp;#160; Amusingly enough I don't have any Optus phone coverage here, not even GSM.&amp;#160; I do however have full strength &lt;a href="http://www.telstra.com.au/nextg/" target="_blank"&gt;Telstra Next G&lt;/a&gt; coverage and managed a &lt;a href="http://www.skype.com/" target="_blank"&gt;Skype&lt;/a&gt; call to my mother, and another to my brothers mobile, to let them know I'd arrived safely.&lt;/p&gt;  &lt;p&gt;The cabin is pleasant enough.&amp;#160; I have all the windows open and since it's on a hill there is a cool breeze going through that is cooling it down fast (no air-conditioning here).&amp;#160; There is no fancy Italian restaurant in Buchan.&amp;#160; There's a general store and a roadhouse.&amp;#160; Both shut at 6pm.&amp;#160; So I'll be taking advantage of the fully self contained cabin to cook myself some dinner shortly that I picked up earlier today along the way.&lt;/p&gt;  &lt;p&gt;I have no real plans tomorrow apart from surviving the heat and taking things a bit easier.&amp;#160; I might wander down to the &lt;a href="http://www.parkweb.vic.gov.au/1park_display.cfm?park=74" target="_blank"&gt;Buchan Caves&lt;/a&gt; but will see how I go.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-3055208775934294262?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/3055208775934294262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=3055208775934294262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3055208775934294262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/3055208775934294262'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/mount-beauty-wallace-hut-buchan.html' title='Mount Beauty - Wallace Hut - Buchan'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yEGG9ltk3Rw/SX8avRDdLII/AAAAAAAAGsc/w3ZGUC0V4ds/s72-c/IMG_5839.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6766499692989898564</id><published>2009-01-25T22:32:00.003+11:00</published><updated>2009-06-01T21:41:56.984+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Falls Creek'/><category scheme='http://www.blogger.com/atom/ns#' term='accommodation'/><category scheme='http://www.blogger.com/atom/ns#' term='Mount Beauty'/><category scheme='http://www.blogger.com/atom/ns#' term='walking'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Mount Beauty / Falls Creek</title><content type='html'>&lt;p align="left"&gt;Today was relatively uneventful. Partly due to the ongoing heat, partly due to me getting a late start which I blame on the blogging/photo processing last night combined with a nice solid bed and dark curtains in my room. &lt;/p&gt;  &lt;p&gt;I started with a short visit to Mt Beauty town for a quick ham salad roll for brunch and a wander around town. I thought about going for a walk around the pondage (water treatment pond) near town but the heat combined with the smell (not real bad but not pleasant) and a lack of shade along the route had me rethink my plans. &lt;/p&gt;  &lt;p&gt;I tried to snap a few more shots of the gliders (they are based at Mount Beauty and you can get joy flights I believe) but they don't make for the greatest photos really. Even with a serious zoom lens you'd still just get a shot of a white glider floating in blue sky. &lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Tawonga+South+VIC&amp;amp;daddr=Clover+Arboretum+to:Bogong+to:Falls+Creek+VIC+to:Unknown+street&amp;amp;hl=en&amp;amp;geocode=%3BFSJ2zv0dyljGCCFx9qG6UQPMUg%3B%3B%3BFdNXzf0di3zHCA&amp;amp;mra=ls&amp;amp;sll=-36.804887,147.241516&amp;amp;sspn=0.293036,0.617981&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;s=AARTsJqFcXD71UerUe_ePRFPiXfY2Wkieg&amp;amp;ll=-36.803725,147.224185&amp;amp;spn=0.192427,0.291824&amp;amp;z=11&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: rgb(0,0,255)" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Tawonga+South+VIC&amp;amp;daddr=Clover+Arboretum+to:Bogong+to:Falls+Creek+VIC+to:Unknown+street&amp;amp;hl=en&amp;amp;geocode=%3BFSJ2zv0dyljGCCFx9qG6UQPMUg%3B%3B%3BFdNXzf0di3zHCA&amp;amp;mra=ls&amp;amp;sll=-36.804887,147.241516&amp;amp;sspn=0.293036,0.617981&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;ll=-36.803725,147.224185&amp;amp;spn=0.192427,0.291824&amp;amp;z=11"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;p&gt;I decided to just get in the car and drive up in to the mountains. It wound up that the road I chose lead to Falls Creek. Along the way I came across a stop on the side of the road which was Clover Arboretum. It's basically the remains of a small village built by State Power for the nearby Clover Damn. &lt;/p&gt;  &lt;p&gt;The houses were removed, and the residents moved to Mount Beauty, a few years back now (90s?) but some of the gardens, and the basic layout of the site remains. It's now in the care of the State Parks, and with the help of the local rotary club they are trying to restore it according to various signs, but by my wanderings they appear to have mostly given up as it was quite overgrown.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/75ZBJokaoTJDmCjMIqGLBg?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SX8WqUrZmWI/AAAAAAAAGpE/aBmyQeW7NI8/s400/IMG_7111.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;It was still an interesting wander to see the non natives there along with various wildflowers. As I was getting ready to leave I had a young bird fall from a tree near enough for me to notice. I managed a few photos &lt;strike&gt;that should be reasonable (photos from today will be processed another day)&lt;/strike&gt; and tried to give it some water. There was an adult bird in a nearby tree that I can only hope took care of it after I left. &lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/Iu2aIRe3tv63-60dUr6L_Q?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh6.ggpht.com/_yEGG9ltk3Rw/SX8W0NYKkmI/AAAAAAAAGp8/CTKRk0Dq0ak/s400/IMG_7131.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I continued up to Falls Creek and went for a brief look around and a stop at a cafe for an Iced Coffee that went down fast. It was some 10 degrees cooler up there, making it about 24, and quite pleasant with a breeze in the shade.&lt;/p&gt; &lt;a href="http://picasaweb.google.com/lh/photo/Af3Q92dnOx_NTmzyBeFIOw?feat=embedwebsite"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://lh4.ggpht.com/_yEGG9ltk3Rw/SX8W_8HxrtI/AAAAAAAAGqc/gtKVFflhSKw/s400/IMG_7187.JPG" /&gt;&lt;/a&gt;   &lt;p&gt;I went on a bit past Falls Creek to a spot near the dragon boat races they were holding up there and broke out the tripod to take some shots I'll eventually (probably once back home) stitch in to at least one nice panorama. If it works out as well as I hope it may be a candidate for a large format print for the wall as it was a beautiful vista.&lt;/p&gt;  &lt;p&gt;I returned to my accommodation at &lt;a href="http://www.alpenhorn.com.au/"&gt;Alpenhorn&lt;/a&gt; and refreshed before settling the bill and having a pleasant chat with Tony about his website. It turns out he and his partner Karen used to run an IT business and now do their own website. They'd only recently (I was the first to use it) set up the booking system (&lt;a href="http://www.roamfree.com/"&gt;RoamFree&lt;/a&gt;) on their site itself. It integrates with &lt;a href="http://www.lastminute.com.au/"&gt;LastMinute&lt;/a&gt; and &lt;a href="http://wotif.com/"&gt;Wotif&lt;/a&gt; and sounds worthy of further investigation for my mother's website. &lt;/p&gt;  &lt;p&gt;For those that aren't aware my mother and her partner run &lt;a href="http://www.avocafarmstay.com.au/"&gt;Avoca Farmstay&lt;/a&gt;. The website was designed by my brother and is in need of a refresh. One of those things on my almighty &amp;quot;to-do&amp;quot; list and hopefully something I'll tackle with my brother when I reach Sydney. &lt;/p&gt;  &lt;p&gt;I finished up the night, well typing this blog but that doesn't read as well so let's ignore fact for now. I finished up the night with a return visit to Roi's Diner. I couldn't go past another Bruschetta and this time chose a King Valley Shiraz to accompany the Pasta Calabrese for my main. I figured between more of those delicious olives, chilli and hot salami it would be hard to go wrong. I got a plate that would have been enough for two people and did my best but even taking my time, enough for a second helping of the Shiraz, it defeated me in the end. Though only by a few more forkfulls. &lt;/p&gt;  &lt;p&gt;Tomorrow is a drive up and over Falls Creek to Omeo and then on to Buchan. I'm sure I'll stop along the way and will likely take the time for a walk to one of the various huts up there as it is surely worthy of a photo or two. I may even lug in the 30D if I'm real keen. Part of the road is still unsealed (ie dirt) but in this weather it should be fine, if somewhat dusty. More to come tomorrow night.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6766499692989898564?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6766499692989898564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6766499692989898564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6766499692989898564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6766499692989898564'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/mount-beauty-falls-creek.html' title='Mount Beauty / Falls Creek'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yEGG9ltk3Rw/SX8WqUrZmWI/AAAAAAAAGpE/aBmyQeW7NI8/s72-c/IMG_7111.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-1444082425812813546</id><published>2009-01-24T21:44:00.011+11:00</published><updated>2009-06-01T21:44:13.285+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='accommodation'/><category scheme='http://www.blogger.com/atom/ns#' term='Mount Beauty'/><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='bright'/><category scheme='http://www.blogger.com/atom/ns#' term='walking'/><category scheme='http://www.blogger.com/atom/ns#' term='wangaratta'/><category scheme='http://www.blogger.com/atom/ns#' term='milawa'/><category scheme='http://www.blogger.com/atom/ns#' term='gourmet'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><category scheme='http://www.blogger.com/atom/ns#' term='brown brothers'/><title type='text'>Melbourne to Sydney - a different perspective</title><content type='html'>&lt;p&gt;I thought I'd blog on a more personal note for a change. I have no idea if anyone is interested but I figure it will be &amp;quot;something different&amp;quot;.    &lt;br /&gt;    &lt;br /&gt;I was made redundant back in October last year. I've spent the time since just generally lazing about the house and slowly working through that &amp;quot;to do&amp;quot; list everyone has that you just can't seem to get around to sorting through. I finally made a point to get in the car and go on a bit of a road trip. The initial intent being to visit my brother and his wife in Sydney (I'm in Melbourne, Australia BTW).     &lt;br /&gt;    &lt;br /&gt;So the first day of the trip (Thursday past) was taken up by some last minute shopping (another pair of shorts and a pair of pants that cost almost half what the shorts did!) and pre bowling another weeks worth of my bowling. I'm in a weekly Ten Pin league. It finished up with a rather straightforward 2.5 hr drive to Wangaratta.     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="350" marginheight="0" src="http://maps.google.com.au/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Pascoe+Vale,+VIC&amp;amp;daddr=Wangaratta+VIC+to:Milawa+VIC+to:Wangaratta+VIC+to:Bright+VIC+to:Mt+Beauty&amp;amp;hl=en&amp;amp;geocode=&amp;amp;mra=ls&amp;amp;sll=-37.042024,145.634766&amp;amp;sspn=2.336995,4.943848&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;s=AARTsJp-lzGKR7RFFHYCOlf7VLW9lvOjWg&amp;amp;ll=-37.042024,145.673218&amp;amp;spn=3.069246,4.669189&amp;amp;z=7&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: rgb(0,0,255)" href="http://maps.google.com.au/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Pascoe+Vale,+VIC&amp;amp;daddr=Wangaratta+VIC+to:Milawa+VIC+to:Wangaratta+VIC+to:Bright+VIC+to:Mt+Beauty&amp;amp;hl=en&amp;amp;geocode=&amp;amp;mra=ls&amp;amp;sll=-37.042024,145.634766&amp;amp;sspn=2.336995,4.943848&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;ll=-37.042024,145.673218&amp;amp;spn=3.069246,4.669189&amp;amp;z=7"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt; &lt;/p&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;I'd managed to book Thu &amp;amp; Fri night for the &amp;quot;Internet special&amp;quot; price of $99 a night at the &lt;a href="http://www.bestwestern.com/"&gt;Best Western&lt;/a&gt; motel. Quite reasonable for the room I had and I recommend anyone checks online options when booking accommodation. The only downside was it wasn't refundable but given I booked it on the Tue I was happy to risk that.   &lt;br /&gt;  &lt;br /&gt;The evening, after checking in, was a very welcome cold glass of &lt;a href="http://www.boags.com.au/Files/00240-James-Boags-Premium.asp"&gt;Boag's&lt;/a&gt; (weather was high 30s) accompanied by a quite reasonable Fettucine Carbonara at a nearby Italian Restaurant (Marvilla's).   &lt;br /&gt;  &lt;br /&gt;I should mention the prices seemed similar to eating out in the &amp;quot;trendier&amp;quot; areas of Melbourne. My brother tells me the closer I get to NSW the more common that will be. Thankfully the food lived up to the price. Though if you were on a budget, and I probably should be but can't bring myself to do so when travelling, I'm sure there would have been better alternatives you could hunt down.   &lt;br /&gt;&lt;span style="font-weight: bold"&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;span style="font-family: arial"&gt;Friday - 23rd January&lt;/span&gt;&lt;/span&gt;   &lt;br /&gt;  &lt;br /&gt;I started the day with a brunch a short walk from the hotel. The bacon and eggs on toast was more than I could, reasonably, eat at my lazy start of 11am. The bacon was actually cooked to, which is how you'd expect it here in Australia, but in my previous travels I've found some people seem to think warming it in the pan is enough. I prefer my bacon crispy on the edges. :)   &lt;br /&gt;  &lt;br /&gt;From &lt;a href="http://www.visitwangaratta.com.au/"&gt;Wangaratta&lt;/a&gt; it was a short trip to &lt;a href="http://www.brownbrothers.com.au/ourplace/milawasurrounds.aspx"&gt;Brown Brothers at Milawa&lt;/a&gt; in the &amp;quot;&lt;a href="http://www.milawagourmet.com/"&gt;gourmet region&lt;/a&gt;&amp;quot;. I took a bit of a wander and &lt;a href="http://picasaweb.google.com/hastarin/BrownBrothers#"&gt;a few photos&lt;/a&gt;. I of course enjoyed a wine tasting, my first ever strangely enough, and purchased a few bottles after signing up for their &lt;a href="http://www.brownbrothers.com.au/epicurean/epicureanclub.aspx"&gt;Epicurean Club&lt;/a&gt; since it was free, no obligation, and got you a 10% discount on your purchases.   &lt;br /&gt;  &lt;br /&gt;Next up was the local mustard shop and the purchase of some nice hot mustards. Then the cheese factory where I managed to employ enough willpower to avoid the chocolate shop and instead came away with some nice hard cheese. The 30+ weather meant soft would be unlikely to survive my travels. I chose to avoid the olive shop in town earlier and instead went out to the farm itself where I ended up with a few bottles of olives and one of olive oil and chilli which will make a nice dipping oil.   &lt;br /&gt;  &lt;br /&gt;I finished up the day back in Wangaratta at the same Italian restaurant (you'll soon pick that I like Italian food) where I enjoyed the chef's special meatballs with roast vegetables ($22 from memory). That evening planning the next day's travels in my hotel room (I've got Telstra NextG built in to my Dell XPS 1330 which I'm using to blog this too, though via wi-fi this time) I was surprised by a Skype call from one of my mates. I wound down by watching some TV from my home PC via Orb, mainly to try it out. It worked brilliantly and was almost as good as watching it at home. The downside was 200MB of my 1GB NextG quota gone. I obviously won't be doing that again. :)   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold"&gt;Saturday - 24th January (today)&lt;/span&gt;   &lt;br /&gt;  &lt;br /&gt;Today started out chasing up some compressed air to clean my lens cover after noticing dust in my photos from yesterday. With that sorted (Wangaratta has a Dick Smith) it was a trip to &lt;a href="http://www.alpenhorn.com.au/"&gt;Alpenhorn Holiday Units&lt;/a&gt; in &lt;a href="http://www.visitalpinevictoria.com.au/pages/mount-beauty-and-tawonga-south/"&gt;Tawonga South near Mount Beauty&lt;/a&gt; via &lt;a href="http://www.brightvictoria.com.au/"&gt;Bright&lt;/a&gt;. I was interested to learn there is a bike trail along the old train line all the way from Wangaratta to Bright. Maybe that's a reason to &amp;quot;dust the cobwebs off&amp;quot; my mountain bike and start working towards being fit enough to ride it. Being the &lt;a href="http://en.wikipedia.org/wiki/Australia_Day"&gt;Australia Day&lt;/a&gt; long weekend there is plenty on. The &lt;a href="http://audax.org.au/public/index.php?option=com_content&amp;amp;task=view&amp;amp;id=41&amp;amp;Itemid=99"&gt;Audax Alpine Classic&lt;/a&gt; (bike race) starts tomorrow from Bright via Mount Beauty to Falls Creek, something I will never be fit enough to ride! There was a festival (&lt;a href="http://bonjourbright.com.au/"&gt;Bonjour Bright&lt;/a&gt;) today to coincide with the race which I only took in the ambience of.   &lt;br /&gt;  &lt;br /&gt;I chose to buy a sandwich and go for a walk down the gorge alongside the river. With all the people in town I only saw a few walkers and several more rafting or inner tubing their way down the river. I of course &lt;a href="http://picasaweb.google.com/hastarin/BrightCanyonWalk"&gt;took my camera&lt;/a&gt;.   &lt;br /&gt;  &lt;br /&gt;The drive to my accommodation for the night passed a couple of lookouts and I of course &lt;a href="http://picasaweb.google.com/hastarin/MountBeautyLookout"&gt;took some more photos&lt;/a&gt;.   &lt;br /&gt;  &lt;br /&gt;This evening I chose another Italian restaurant, this one a regular entry in &lt;a href="http://www.theageshop.com.au/details.php?section=books&amp;amp;id=1163"&gt;The Age Good Food Guide&lt;/a&gt;. I was fortunate enough that my helpful host (Tony) at &lt;a href="http://www.alpenhorn.com.au/"&gt;Alpenhorn Holiday Units&lt;/a&gt; managed to call early enough, and being a solo traveller probably helped, to get a table at &lt;a href="http://www.kiewavalleyexperience.com.au/rois/rois.html"&gt;Roi's Diner&lt;/a&gt;.   &lt;br /&gt;  &lt;br /&gt;I started with a nice local Cab Sav from &lt;a href="http://www.ceccanti.com.au/"&gt;Ceccanti&lt;/a&gt; that they served by the glass. Starters was a delightful Bruschetta. Certainly the best I've had in a while and only the second in recent memory to compare to my samplings in Italy. Choosing a main was a much harder task as everything seemed a must try. I finally settled on the dish that just seemed the most different to what I'd had previously. At it's most simple it was roast chicken breast, but it was much more than that and I'll describe it as best I'm able, but obviously I'm no food critic.   &lt;br /&gt;  &lt;br /&gt;The base was a simple enough mixed salad with a, presumably, balsamic dressing. Covering that was an open mango that was scored in squares on one side, and the roast chicken breast sliced in to pieces was fanned out on the other with a drizzle of wasabi mayo around the center. Surrounding this on the plate was a couple of strawberries sliced open, some olives, a couple of slices of what I presume was cucumber. It wasn't until I was part way through the meal that I discovered the asparagus sprigs under the center of the chicken.   &lt;br /&gt;  &lt;br /&gt;The range of tastes and textures made the $55 bill at the end of the night more than worthwhile. So much so I've booked a table for tomorrow night to try another main. If I had any criticism it would be that I would have liked a touch more dressing on the salad, and a few more olives. Though the scarcity of them made me savour them even more.   &lt;br /&gt;  &lt;br /&gt;Hopefully someone gets something out of this. It's time for me to sort photos, or perhaps sleep if that proves too taxing.    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-1444082425812813546?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/1444082425812813546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=1444082425812813546' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1444082425812813546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1444082425812813546'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/melbourne-to-sydney-different.html' title='Melbourne to Sydney - a different perspective'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-7148084927716507986</id><published>2009-01-21T17:52:00.004+11:00</published><updated>2009-06-01T21:46:27.321+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>FlickrDeDupr - Search and remove duplicate photos from your Flickr feed</title><content type='html'>&lt;p&gt;It's been a while since I posted so I thought I'd follow up my previous post by posting a link to the final product (no source code there as yet).&lt;/p&gt;  &lt;p&gt;Basically I wrote a WPF application using the &lt;a href="http://www.codeplex.com/LINQFlickr"&gt;Athena LINQ to Flickr API&lt;/a&gt; to detect and delete duplicate photos in a Flickr feed.&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://flickrdedupr.rpgaddicts.net/Capture.JPG" width="638" height="480" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can get more info on the application at it's home page. &lt;a href="http://flickrdedupr.rpgaddicts.net/"&gt;http://flickrdedupr.rpgaddicts.net/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-7148084927716507986?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/7148084927716507986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=7148084927716507986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7148084927716507986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/7148084927716507986'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2009/01/flickrdedupr-search-and-remove.html' title='FlickrDeDupr - Search and remove duplicate photos from your Flickr feed'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-385580949311803483</id><published>2008-10-26T05:11:00.007+11:00</published><updated>2008-10-26T13:54:27.385+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>WPF ListBox and getting the databound object from a MouseDoubleClick event</title><content type='html'>I wrote a long post on this at around 5am.  I should have known some sleep and a Google search for slightly different terms would find a better solution.  :)

Basically I needed to get a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;databound&lt;/span&gt; object from a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ListBox&lt;/span&gt; when an item is double clicked, and not fire when the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;scrollbar&lt;/span&gt; is double clicked.  There are some seriously convoluted solutions out there and I knew they couldn't be right.  I came up with my own part way solution (didn't address the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;scrollbar&lt;/span&gt; issue) which I originally posted here.

With a fresh head I &lt;a href="http://blogs.msdn.com/wpfsdk/archive/2008/04/30/itemcontrols-don-t-properly-select-items-or-raise-events-when-bound-to-a-data-source.aspx"&gt;finally found&lt;/a&gt; that I was just doing things entirely wrong.  I was using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ListBox&lt;/span&gt; double click event, when I should have been using that of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ListBoxItem&lt;/span&gt;!

So how do you setup the double click event for a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ListBoxItem&lt;/span&gt;?

Something like the following:
&lt;div style="font-family: Courier New; font-size: 12pt; color: #a79a86; background: #10100d;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;ListBox&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Name&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;listViewResults&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00;"&gt; ItemsSource&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua;"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0;"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;={}}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00;"&gt; SelectionMode&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;Extended&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Margin&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;0,0,0,204&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Orientation&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;Label&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Content&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua;"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0;"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;Title&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;Label&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Content&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua;"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0;"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;TakeOn&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;Image&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Source&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: aqua;"&gt;Binding&lt;/span&gt;&lt;span style="color: #ff80c0;"&gt; Path&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;Url&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;}&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;ListBox.ItemContainerStyle&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;Style&lt;/span&gt; &lt;span style="color: #009b00;"&gt; TargetType&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;ListBoxItem&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;Setter&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Property&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;Padding&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Value&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;3,8,3,8&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;EventSetter&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Event&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;MouseDoubleClick&amp;quot;&lt;/span&gt;&lt;span style="color: #009b00;"&gt; Handler&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;=&lt;/span&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;quot;ListBoxItem_MouseDoubleClick&amp;quot;&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;Style&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #44b1e3; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;ListBox.ItemContainerStyle&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #a1b070;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d6d694;"&gt;ListBox&lt;/span&gt;&lt;span style="color: #a1b070;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;

I forgot to paste the event handler code so here it is:
&lt;div style="font-family: Courier New; font-size: 12pt; color: #a79a86; background: #10100d;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: #d6d694;"&gt;private&lt;/span&gt; &lt;span style="color: #d6d694;"&gt;void&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;ListBoxItem_MouseDoubleClick&lt;/span&gt;(&lt;span style="color: #d6d694;"&gt;object&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;sender&lt;/span&gt;, &lt;span style="color: #009b00;"&gt;MouseButtonEventArgs&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;e&lt;/span&gt;)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;{&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #d6d694;"&gt;var&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;item&lt;/span&gt; &lt;span style="color: #80ff00;"&gt;=&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;sender&lt;/span&gt; &lt;span style="color: #d6d694;"&gt;as&lt;/span&gt; &lt;span style="color: #009b00;"&gt;ListBoxItem&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #d6d694;"&gt;if&lt;/span&gt; (&lt;span style="color: #e8e8e8;"&gt;item&lt;/span&gt; &lt;span style="color: #80ff00;"&gt;==&lt;/span&gt; &lt;span style="color: #d6d694;"&gt;null&lt;/span&gt; &lt;span style="color: #80ff00;"&gt;||&lt;/span&gt; &lt;span style="color: #80ff00;"&gt;!&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;item&lt;/span&gt;&lt;span style="color: #80ff00;"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;IsSelected&lt;/span&gt;) &lt;span style="color: #d6d694;"&gt;return&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #d6d694;"&gt;var&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;photo&lt;/span&gt; &lt;span style="color: #80ff00;"&gt;=&lt;/span&gt; &lt;span style="color: #e8e8e8;"&gt;listViewResults&lt;/span&gt;&lt;span style="color: #80ff00;"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;SelectedItem&lt;/span&gt; &lt;span style="color: #d6d694;"&gt;as&lt;/span&gt; &lt;span style="color: #009b00;"&gt;Photo&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #d6d694;"&gt;if&lt;/span&gt; (&lt;span style="color: #e8e8e8;"&gt;photo&lt;/span&gt; &lt;span style="color: #80ff00;"&gt;==&lt;/span&gt; &lt;span style="color: #d6d694;"&gt;null&lt;/span&gt;) &lt;span style="color: #d6d694;"&gt;return&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #e8e8e8;"&gt;System&lt;/span&gt;&lt;span style="color: #80ff00;"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;Diagnostics&lt;/span&gt;&lt;span style="color: #80ff00;"&gt;.&lt;/span&gt;&lt;span style="color: #009b00;"&gt;Process&lt;/span&gt;&lt;span style="color: #80ff00;"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;Start&lt;/span&gt;(&lt;span style="color: #e8e8e8;"&gt;photo&lt;/span&gt;&lt;span style="color: #80ff00;"&gt;.&lt;/span&gt;&lt;span style="color: #e8e8e8;"&gt;WebUrl&lt;/span&gt;);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-385580949311803483?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/385580949311803483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=385580949311803483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/385580949311803483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/385580949311803483'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2008/10/wpf-listbox-and-getting-databound.html' title='WPF ListBox and getting the databound object from a MouseDoubleClick event'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-6443325729583162077</id><published>2008-10-24T03:16:00.003+11:00</published><updated>2008-10-26T05:24:14.798+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Control Google Desktop Sidebar Mode from .NET (C#)</title><content type='html'>I spent some time investigating how to control the Google Desktop Sidebar mode (None, Floating, Deskbar, Sidebar) from .NET (C#).  Unfortunately it's not simple, or even reliable, as there is no API for it.  I found some &lt;a href="http://www.virtualventures.ca/%7Ecat/code/GDMode-readme.txt"&gt;code for C&lt;/a&gt; to do this via the Win32 APIs and basically ported it to .NET

I've made the base message id (in my case 8512) an application setting as it's something that can change with each version of Google Desktop.

This does require elevated privilidges in Vista as well.

Example VS 2008 solution can be downloaded from &lt;a href="http://www.mediafire.com/file/liicj3ihhuy/GoogleSideBarController.7z"&gt;Mediafire&lt;/a&gt;

Example source code follows:
&lt;div    style="background: rgb(24, 48, 80) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:Lucida Console;font-size:10pt;color:white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(255, 255, 160);"&gt;using&lt;/span&gt; System;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(255, 255, 160);"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(255, 255, 160);"&gt;using&lt;/span&gt; GoogleSideBarController.Properties;&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(255, 255, 160);"&gt;namespace&lt;/span&gt; GoogleSideBarController&lt;/p&gt;&lt;p style="margin: 0px;"&gt;{&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color: rgb(255, 255, 160);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;class&lt;/span&gt; &lt;span style="color: rgb(192, 224, 255);"&gt;GoogleSideBar&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;const&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;uint&lt;/span&gt; WM_COMMAND = 0x111;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;const&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;string&lt;/span&gt; gdClassName = &lt;span style="color: rgb(163, 21, 21);"&gt;@"_GD_Mon"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;readonly&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt; _googleMonitor;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;readonly&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;bool&lt;/span&gt; _running;&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;enum&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Modes&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            Sidebar = 0,&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            Deskbar = 1,&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            Floating = 2,&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            None = 3&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        } &lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;public&lt;/span&gt; GoogleSideBar()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            _googleMonitor = FindWindow(gdClassName, &lt;span style="color: rgb(255, 255, 160);"&gt;null&lt;/span&gt;);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            _running = !(_googleMonitor == &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;.Zero);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        }&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;bool&lt;/span&gt; Running&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            &lt;span style="color: rgb(255, 255, 160);"&gt;get&lt;/span&gt; { &lt;span style="color: rgb(255, 255, 160);"&gt;return&lt;/span&gt; _running; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        }&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;void&lt;/span&gt; SetMode(&lt;span style="color: rgb(43, 145, 175);"&gt;Modes&lt;/span&gt; mode)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            &lt;span style="color: rgb(255, 255, 160);"&gt;uint&lt;/span&gt; msg = &lt;span style="color: rgb(192, 224, 255);"&gt;Settings&lt;/span&gt;.Default.BaseId;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            msg += (&lt;span style="color: rgb(255, 255, 160);"&gt;uint&lt;/span&gt;) mode;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            SendMessage(_googleMonitor, WM_COMMAND, (&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;) msg, (&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;) 0);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        }&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(128, 159, 176);"&gt;        #region&lt;/span&gt; Imports&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        [&lt;span style="color: rgb(192, 224, 255);"&gt;DllImport&lt;/span&gt;(&lt;span style="color: rgb(191, 249, 210);"&gt;"user32.dll"&lt;/span&gt;)]&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;extern&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt; FindWindow(&lt;span style="color: rgb(255, 255, 160);"&gt;string&lt;/span&gt; lpClassName, &lt;span style="color: rgb(255, 255, 160);"&gt;string&lt;/span&gt; lpWindowName);&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;        [&lt;span style="color: rgb(192, 224, 255);"&gt;DllImport&lt;/span&gt;(&lt;span style="color: rgb(191, 249, 210);"&gt;"user32.dll"&lt;/span&gt;, CharSet = &lt;span style="color: rgb(43, 145, 175);"&gt;CharSet&lt;/span&gt;.Auto, SetLastError = &lt;span style="color: rgb(255, 255, 160);"&gt;false&lt;/span&gt;)]&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(255, 255, 160);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(255, 255, 160);"&gt;extern&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt; SendMessage(&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt; hWnd, &lt;span style="color: rgb(255, 255, 160);"&gt;uint&lt;/span&gt; Msg, &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt; wParam, &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt; lParam);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(128, 159, 176);"&gt;        #endregion&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-6443325729583162077?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/6443325729583162077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=6443325729583162077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6443325729583162077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/6443325729583162077'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2008/10/control-google-desktop-sidebar-mode_24.html' title='Control Google Desktop Sidebar Mode from .NET (C#)'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-1899357516672601920</id><published>2008-10-23T15:13:00.003+11:00</published><updated>2008-10-26T05:25:37.234+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XBMC'/><category scheme='http://www.blogger.com/atom/ns#' term='Home Theatre'/><title type='text'>XBMC for Windows</title><content type='html'>First up I want to say that after 1 month of using it I find Vimperator a brilliant Firefox addon.  When using the notebook it is perhaps even more so.  :)

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.teamrazorfish.co.uk/mediastream/090_home_thumb.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 141px;" src="http://www.teamrazorfish.co.uk/mediastream/090_home_thumb.jpg" alt="" border="0" /&gt;&lt;/a&gt;Now on to the main topic.  &lt;a href="http://www.xbmc.org/"&gt;XBMC for Windows&lt;/a&gt;.  The Atlantis release is currently in Beta 2 and whilst it is still buggy it is well worth checking out.  I've been using XBMC for years on the old XBox and being able to finally run it on a PC with the grunt to play back HD content is something I could only dream of a year ago.

Today I have it installed on my new laptop (Dell XPS-M1330) and by plugging in the power, network and HDMI it quickly integrates in to my Home Theatre after a day out on the town.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.teamrazorfish.co.uk/mediastream/090_episodes_thumb.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 250px; height: 141px;" src="http://www.teamrazorfish.co.uk/mediastream/090_episodes_thumb.jpg" alt="" border="0" /&gt;&lt;/a&gt;It took a bit of fiddling to get things working the way I wanted but I'm now very happy with it.  I got the &lt;a href="http://xbmc.org/forum/showthread.php?p=235210#post235210"&gt;Dell Travel Remote working&lt;/a&gt; using HIP to remap they keys that I couldn't get XBMC to map via it's keymap.xml file.  I also made the "Home" key on the notebook that used to launch Dell Media Direct &lt;a href="http://xbmc.org/forum/showthread.php?p=235205#post235205"&gt;launch XBMC instead&lt;/a&gt;.  Of course once I got the Dell remote working it was simple to add the codes to my &lt;a href="http://www.logitech.com/index.cfm/remotes/universal_remotes/devices/375&amp;amp;cl=us,en"&gt;Logitech Harmony Remote&lt;/a&gt; and get it all integrated with my Home Theatre.


&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.teamrazorfish.co.uk/mediastream/090_mediapreview_thumb.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 141px;" src="http://www.teamrazorfish.co.uk/mediastream/090_mediapreview_thumb.jpg" alt="" border="0" /&gt;&lt;/a&gt;I'm using the excellent &lt;a href="http://www.teamrazorfish.co.uk/mediastream.html"&gt;MediaStream skin&lt;/a&gt; (images from their site) with &lt;a href="http://www.aeonproject.com/backdrops.php?cat=bg_movies"&gt;1080p backdrops from the Aeon skin site&lt;/a&gt; and the fanart that XBMC automatically supports.  I also use &lt;a href="http://www.billyad2000.co.uk/"&gt;XBMC Media Companion&lt;/a&gt; (I even donated to the author that's how good it is) to keep all the movie/TV info stored on disk rather than requiring XBMC to store it in it's local library.  This ensures no matter which PC I use to access the content I get full media info.

Do yourself a favour and check it out now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-1899357516672601920?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/1899357516672601920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=1899357516672601920' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1899357516672601920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/1899357516672601920'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2008/10/xbmc-for-windows.html' title='XBMC for Windows'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-5054879072610241746</id><published>2008-09-24T01:12:00.007+10:00</published><updated>2009-06-03T16:06:31.475+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox + Vimperator + Gmail + IETab = GOLD!</title><content type='html'>&lt;p&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="color: rgb(192,192,192)"&gt;EDIT: If you’ve come here via Google you may do well to read &lt;a href="http://jonsblogat.blogspot.com/2009/06/vimperator-tips-ubiquity.html"&gt;my more recent post on the keyboard shortcuts issue with Vimperator and various sites like Gmail&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="color: rgb(192,192,192)"&gt;Seems I don't use this thing too often but this was something worthy of posting somewhere.&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: rgb(192,192,192)"&gt;I just installed Vimperator (vim like control over Firefox) and so far it's looking promising.&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: rgb(192,192,192)"&gt;The #1 issue I've discovered is it doesn't get along with GMail (and probably other AJAX sites). I googled for various solutions and tried a plugin that didn't work, and even tried using the basic HTML version only to discover just how ugly it is.&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: rgb(192,192,192)"&gt;Then a thought hit me. IE Tab! I use it for checking pages in IE and for the odd site that just doesn't like Firefox (what's up with that given the market share now?!) and it has a nifty option of entering URLs to always open in IE Tab.&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: rgb(192,192,192)"&gt;Now my thought, which turns out to be quite correct, was that I could setup IE Tab to open GMail in an IE Tab which would override Vimperator and restore the functionality of GMail (which already has vi/vim like keyboard shortcuts).&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: rgb(192,192,192)"&gt;So now I have the best of both worlds. Vi/Vim shortcuts in the pages I visit and my mail client of choice. I also have a solution to &amp;quot;disable&amp;quot; Vimperator for any sites I need to.&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 85%"&gt;&lt;span style="font-size: 100%"&gt;I thought I should update this as it turns out my problem wasn't so much Gmail + Vimperator it was that along with Fast Dial. Now I've disabled Fast Dial (which really does NOT get along with Vimperator) I have Gmail working again in Firefox. It does seem to require a single mouse click to focus the window (but I can live with that until I find a solution).&lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-5054879072610241746?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/5054879072610241746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=5054879072610241746' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5054879072610241746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/5054879072610241746'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2008/09/firefox-vimperator-gmail-ietab-gold.html' title='Firefox + Vimperator + Gmail + IETab = GOLD!'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-115888561600777679</id><published>2006-09-22T10:40:00.000+10:00</published><updated>2006-09-22T10:56:31.780+10:00</updated><title type='text'>Themes and Templating Master Pages - Rick Strahl's WebLog</title><content type='html'>&lt;a href="http://west-wind.com/weblog/posts/4899.aspx"&gt;Themes and Templating Master Pages - Rick Strahl's WebLog&lt;/a&gt; is something I may need to look at again in the future and figured a post here was probably a better idea then bookmarking it. Basically it covers a way to have themed Master Pages (though NOT nested ones based on the comments).

Not surprisingly Scott Gu has also blogged about this:
 &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/07/22/Recipe_3A00_-Dynamic-Site-Layout-and-Style-Personalization-with-ASP.NET--.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2006/07/22/Recipe_3A00_-Dynamic-Site-Layout-and-Style-Personalization-with-ASP.NET--.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-115888561600777679?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/115888561600777679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=115888561600777679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/115888561600777679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/115888561600777679'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2006/09/themes-and-templating-master-pages.html' title='Themes and Templating Master Pages - Rick Strahl&apos;s WebLog'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-115485576276575896</id><published>2006-08-06T19:13:00.000+10:00</published><updated>2006-08-06T19:16:02.766+10:00</updated><title type='text'>Feedburner</title><content type='html'>&lt;a href="http://www.feedburner.com/"&gt;http://www.feedburner.com/&lt;/a&gt;

I've been noticing this site being used a lot recently and after a brief look it seems like a great service for anyone that has a feed with more then a few subscribers.  I'll definitely be looking at it again in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-115485576276575896?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/115485576276575896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=115485576276575896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/115485576276575896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/115485576276575896'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2006/08/feedburner.html' title='Feedburner'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-115484959329973971</id><published>2006-08-06T17:27:00.000+10:00</published><updated>2006-08-06T17:33:13.300+10:00</updated><title type='text'>Google Homepage</title><content type='html'>I just spent the last few hours playing with my Google personalised homepage and all the information it now aggregates for me.  The main feature of my homepage is the Google Reader module.  Whilst it doesn't replace Google Reader it's a nice way to remind me to use it.  :)

Anyway it reminded me I should use my blog more often.  In the future I'll have to add a summary of some of the things I've learnt developing the &lt;a href="http://www.triplejunearthed.com"&gt;http://www.triplejunearthed.com&lt;/a&gt; site, in particular how I've handled the Artist Shortcut URLs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-115484959329973971?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/115484959329973971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=115484959329973971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/115484959329973971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/115484959329973971'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2006/08/google-homepage.html' title='Google Homepage'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-114060440923510822</id><published>2006-01-11T21:32:00.001+11:00</published><updated>2009-06-01T21:32:28.651+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>10 Essential Addins for Visual Studio</title><content type='html'>I just came across the following &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/default.aspx"&gt;MSDN article&lt;/a&gt; that is well worth reading for anyone using Visual Studio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-114060440923510822?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/114060440923510822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=114060440923510822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/114060440923510822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/114060440923510822'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2006/01/10-essential-addins-for-visual-studio.html' title='10 Essential Addins for Visual Studio'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-114060428805922565</id><published>2005-11-23T21:26:00.001+11:00</published><updated>2008-10-26T05:29:45.220+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Writing to the app.config in .NET 2.0</title><content type='html'>I have just spent more then a day trying to figure out how best to do this. After quite a bit of back and forth and looking at custom solutions that were written for .NET 1.0 and eventually coming across a mention, in the Microsoft Enterprise Library available at the &lt;a href="http://msdn.microsoft.com/practices/vs2005/"&gt;Microsoft Patterns and Practices for Visual Studio 2005&lt;/a&gt; page, regarding changes made to the System.Configuration namespace.
That then lead me to a &lt;a href="http://blogs.conchango.com/pauloreichert/archive/2005/05/31/1514.aspx"&gt;blog entry by Paulo Reichert&lt;/a&gt; that discusses in quite some depth how to use the ConfigurationManager class in this namespace to do precisely what I wanted to do.
The final hurdle I had was discovering that the file wasn’t being updated when I ran it via the Visual Studio 2005 Debugger and this turned out to be an option for “Enable the Visual Studio hosting process” in the Project properties for Debug somehow interfering. I haven’t taken the time to read in depth on this option but it appears to lock the debug process in to a tighter then normal security model and was presumably silently failing to write the file.
The code I’ve used in my test follows:
&lt;blockquote&gt;
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;

namespace Merlin2Dtrix
{
public sealed class M2DConfig : ConfigurationSection
{
private static readonly ConfigurationProperty lastSyncDate;

static M2DConfig()
{
M2DConfig.lastSyncDate = new ConfigurationProperty("lastSyncDate", typeof(DateTime),
DateTime.Now, ConfigurationPropertyOptions.None);
}

[ConfigurationProperty("lastSyncDate")]
public DateTime LastSyncDate
{
get { return (DateTime)base[M2DConfig.lastSyncDate]; }
set { base[M2DConfig.lastSyncDate] = value; }
}
}

class Program
{
static void Main(string[] args)
{
Configuration appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

M2DConfig m2dConfig = (M2DConfig)appConfig.GetSection("merlin2dtrix");
if (m2dConfig == null)
{
m2dConfig = new M2DConfig();
m2dConfig.LastSyncDate = DateTime.Now;
appConfig.Sections.Add("merlin2dtrix", m2dConfig);
}

m2dConfig.LastSyncDate = DateTime.Now;
appConfig.Save();
}
}
}

&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-114060428805922565?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/114060428805922565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=114060428805922565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/114060428805922565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/114060428805922565'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2005/11/writing-to-appconfig-in-net-20.html' title='Writing to the app.config in .NET 2.0'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22828128.post-114060361381053899</id><published>2005-06-21T19:18:00.000+10:00</published><updated>2006-02-22T21:32:43.233+11:00</updated><title type='text'>Staged migration of a web application from ASP to ASP.NET</title><content type='html'>&lt;span style="font-size:85%;"&gt;NOTE: This is a repost from my old blog.&lt;/span&gt;
&lt;span style="font-size:85%;"&gt;&lt;/span&gt;
I’m trying to push for this internally where I work and did a bit of experimentation today. It seems ASP and ASP.NET use separate session cookies and don’t interfere with each other (ie one won’t reset the other). Cookies are accessible from one to the other and with some hassles you can even share session state.
A couple of interesting links I came across in researching this were:
&lt;a href="http://msdn.microsoft.com/asp.net/migration/aspmig/aspmigasst/default.aspx"&gt;ASP to ASP.NET Migration Assistant&lt;/a&gt; &amp;
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/converttoaspnet.asp"&gt;How to Share Session State Between Classic ASP and ASP.NET&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22828128-114060361381053899?l=jonsblogat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonsblogat.blogspot.com/feeds/114060361381053899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22828128&amp;postID=114060361381053899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/114060361381053899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22828128/posts/default/114060361381053899'/><link rel='alternate' type='text/html' href='http://jonsblogat.blogspot.com/2005/06/staged-migration-of-web-application.html' title='Staged migration of a web application from ASP to ASP.NET'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06240012670232012065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_yEGG9ltk3Rw/SQAHUFTVW8I/AAAAAAAAErM/V-jTxGLLn5c/S220/IMG_2881.JPG'/></author><thr:total>0</thr:total></entry></feed>
