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

<channel>
	<title>An Original Idea</title>
	<atom:link href="http://anoriginalidea.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://anoriginalidea.wordpress.com</link>
	<description>because all great software begins with an original idea</description>
	<lastBuildDate>Wed, 08 Jul 2009 03:02:04 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/28c3803caf8755f2f2ac56555648c3aa?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>An Original Idea</title>
		<link>http://anoriginalidea.wordpress.com</link>
	</image>
			<item>
		<title>Silverlight 3 style NavigationContext in WPF</title>
		<link>http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 03:00:04 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows Presentation Foundation]]></category>
		<category><![CDATA[prism]]></category>
		<category><![CDATA[silverlight 3]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/</guid>
		<description><![CDATA[&#160; 
At the moment I’m experimenting with various user interface technologies.&#160; Because the prototypes are working in parallel, I want to reuse code where possible.&#160; With this in mind, I’ve created a couple of useful wrapper functions for navigation in both Silveright 3 and WPF that I thought I’d share.
&#160;
In case you don’t know the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=239&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&#160;<a href="http://anoriginalidea.files.wordpress.com/2009/07/image1.png"><img title="image" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" height="226" alt="image" src="http://anoriginalidea.files.wordpress.com/2009/07/image_thumb1.png?w=244&#038;h=226" width="244" border="0" /></a> </p>
<p>At the moment I’m experimenting with various user interface technologies.&#160; Because the prototypes are working in parallel, I want to reuse code where possible.&#160; With this in mind, I’ve created a couple of useful wrapper functions for navigation in both Silveright 3 and WPF that I thought I’d share.</p>
<p>&#160;</p>
<p>In case you don’t know the Silverlight 3 Beta now has a navigation framework that works in a similar way to WPF’s Frame navigation feature.&#160;&#160; To learn more about it, check our Jeff Poise’s great article <a title="Silverlight 3&#39;s New Navigation Framework" href="http://www.wintellect.com/CS/blogs/jprosise/archive/2009/04/07/silverlight-3-s-new-navigation-framework.aspx">Silverlight 3&#8217;s New Navigation Framework</a>.</p>
<p>&#160;</p>
<p>I brief, to navigate to a new page and pass a parameters you use a syntax like this in the code behind:</p>
<p> <code>
<p>&#160;</p>
<p>Me.NavigationService.Navigate(New Uri(String.Format(“/SomePage.xaml?someparameter={0}”,somevalue), UriKind.Relative))</p>
<p> </code>
<p>&#160;</p>
<p>In the loaded event of the page you’re navigating to, you use code like this:</p>
<p>&#160;</p>
<p> <code>
<p>Private Sub MyPage_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded      <br />&#160;&#160;&#160;&#160; txtSomeTextbox.Text =&#160; Me.NavigationContext.QueryString(&quot;someparameter&quot;)       <br />End Sub</p>
<p> </code>
<p>&#160;</p>
<p><strong>Nicer Navigating</strong></p>
<p>I found the Navigate method above a little awkward, so in Silverlight I created a little helper function called “NavigateTo”, on page that makes the code a bit nicer.</p>
<p>&#160;</p>
<p> <code>
<p>Me.NavigateTo(“/SomePage.xaml”,”someparameter”,somevalue)</p>
<p> </code>
<p>&#160;</p>
<p>Here’s the implementation:</p>
<p>&#160;</p>
<p> <code>
<p>Imports System.ComponentModel      <br />Public Module PageHelper       <br />&#160;&#160;&#160; &lt;System.Runtime.CompilerServices.Extension()&gt; _       <br />&#160;&#160; Public Sub NavigateTo(ByVal page As System.Windows.Controls.Page, ByVal navigationUrl As String, ByVal ParamArray arguments() As String)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim lsUrl As String = navigationUrl &amp; &quot;?&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim lbIsParamName As Boolean = True       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; For Each lsArg As String In arguments       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lsUrl &amp;= lsArg       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; If lbIsParamName Then lsUrl &amp;= &quot;=&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lbIsParamName = Not lbIsParamName       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Next </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; page.NavigationService.Navigate(New Uri(lsUrl, UriKind.Relative))      <br />&#160;&#160;&#160; End Sub </p>
<p>End Module</p>
<p> </code>
<p>&#160;</p>
<p><strong>Nicer NavigationContext</strong></p>
<p>&#160;</p>
<p>I found Silverlight3’s NavigationContext quite nice to use.&#160; Unfortunately this is not available in WPF.&#160; I set about creating a helper function that would emulate this functionality in WPF.</p>
<p>&#160;</p>
<p><strong>WPF Navigation Helper</strong></p>
<p>&#160;</p>
<p>Here’s a WPF version of PageHelper that allows a compatible syntax with Silverlight3.&#160;&#160; </p>
<p> <code>
<p>&#160;</p>
<p>Imports System.ComponentModel      <br />Public Module PageHelper </p>
<p>&#160;&#160;&#160; Private WithEvents moCurrentNav As NavigationService      <br />&#160;&#160;&#160; &lt;System.Runtime.CompilerServices.Extension()&gt; _       <br />&#160;&#160; Public Sub NavigateTo(ByVal page As System.Windows.Controls.Page, ByVal navigationUrl As String, ByVal ParamArray arguments() As String) </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; '&#160; Update Navigation Args      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim loNavigationUri As New NavigationContext </p>
<blockquote><p>&#160; If arguments.Length &gt; 0 Then        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; For i As Integer = 0 To arguments.Length - 1 Step 2         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; loNavigationUri.QueryString.Add(arguments(i), arguments(i + 1))         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Next </p>
</blockquote>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; End If</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; loNavigationUri.Uri = New Uri(navigationUrl, UriKind.Relative) </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ' Strip the Xaml extension&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim lsClassName As String = navigationUrl.Substring(0, navigationUrl.Length - 5)&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ' Make my class name&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim lsName As String = page.GetType.Namespace &amp; &quot;.&quot; &amp; lsClassName&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ' Instantiate the class&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim loPage As Page = page.GetType.Assembly.CreateInstance(lsName)&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ' Do the Navigation&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; page.NavigationService.Navigate(loPage, loNavigationUri)       <br />&#160;&#160;&#160;&#160; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ' Store the current NavigationService so we can complete      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; moCurrentNav = page.NavigationService </p>
<p>&#160;&#160;&#160; End Sub      <br />&#160;&#160;&#160; &lt;System.Runtime.CompilerServices.Extension()&gt; _       <br />Public Function NavigationContext(ByVal page As System.Windows.Controls.Page) As NavigationContext       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return moLastNavContext       <br />&#160;&#160;&#160; End Function       <br />&#160;&#160;&#160; Private Sub moCurrentNav_Navigated(ByVal sender As Object, ByVal e As System.Windows.Navigation.NavigationEventArgs) Handles moCurrentNav.Navigated       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; moLastNavContext = e.ExtraData       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; moCurrentNav = Nothing       <br />&#160;&#160;&#160; End Sub       <br />&#160;&#160;&#160; Private moLastNavContext As New NavigationContext </p>
<p>End Module      <br />Public Class NavigationContext       <br />&#160;&#160;&#160; Public QueryString As New Dictionary(Of String, String)       <br />&#160;&#160;&#160; Public Uri As Uri       <br />End Class </p>
<p> </code>
<p>&#160;</p>
<p>I also have provided primitive support for cross-assembly navigation. </p>
<p>&#160;</p>
<p>I hope someone found this useful, let me know.</p>
<p>&#160;</p>
<p>&#160;</p>
<p> <span class="sbmLink"><br />
<table cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td class="sbmText">Share this post : </td>
<td class="sbmDim"><a class="sbmDim" title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/&amp;;title=Silverlight 3 style navigation in WPF" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" border="0" /></a></td>
<td class="sbmDim"><a class="sbmDim" title="Post it to digg" href="http://digg.com/submit?phase=2&amp;url=http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/&amp;title=Silverlight 3 style navigation in WPF" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" border="0" /></a></td>
<td class="sbmDim"><a class="sbmDim" title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/&amp;title=Silverlight 3 style navigation in WPF" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" border="0" /></a></td>
<td class="sbmDim"><a class="sbmDim" title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/&amp;title=Silverlight 3 style navigation in WPF" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" border="0" /></a></td>
<td class="sbmDim"><a class="sbmDim" title="Post it to reddit!" href="http://reddit.com/submit?url=http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/&amp;title=Silverlight 3 style navigation in WPF" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" border="0" /></a></td>
<td class="sbmDim"><a class="sbmDim" title="Post it to technorati!" href="http://technorati.com/faves/?add=http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/&amp;title=Silverlight 3 style navigation in WPF" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" border="0" /></a></td>
</tr>
</tbody>
</table>
<p> </span>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p><a title="Jeff Prosise&#39;s Blog" href="http://www.wintellect.com/CS/blogs/jprosise/default.aspx">&#160;</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=239&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/07/08/silverlight-3-style-navigationcontext-in-wpf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://anoriginalidea.files.wordpress.com/2009/07/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" medium="image" />
	</item>
		<item>
		<title>Silverlight &#8220;Name &#8216;InitializeComponent&#8217; is not declared&#8221;</title>
		<link>http://anoriginalidea.wordpress.com/2009/07/01/silverlight-name-initializecomponent-is-not-declared/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/07/01/silverlight-name-initializecomponent-is-not-declared/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 04:51:28 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[silverlighterror]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/07/01/silverlight-name-initializecomponent-is-not-declared/</guid>
		<description><![CDATA[ 
It is quite common in Webforms, Winforms and other environements to copy user interface views from one project to another.
When you copy xaml files from one Silverlight project to another you may experience the error:
“Name &#8216;InitializeComponent&#8217; is not declared”
&#160;
This happens because the “x:Class” directive in the top of the xaml file includes the project [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=236&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://anoriginalidea.files.wordpress.com/2009/07/image.png"><img title="She&#39;d be far less frutrated if she plugged it into the network first." style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" height="240" alt="She&#39;d be far less frutrated if she plugged it into the network first." src="http://anoriginalidea.files.wordpress.com/2009/07/image_thumb.png?w=194&#038;h=240" width="194" border="0" /></a> </p>
<p>It is quite common in Webforms, Winforms and other environements to copy user interface views from one project to another.</p>
<p>When you copy xaml files from one Silverlight project to another you may experience the error:</p>
<p>“Name &#8216;InitializeComponent&#8217; is not declared”</p>
<p>&#160;</p>
<p>This happens because the “x:Class” directive in the top of the xaml file includes the project namespace.</p>
<p>So, open up your xaml file, and change this:</p>
<p>&#160;</p>
<p>x:Class=”PreviousProject.YourClass”</p>
<p>&#160;</p>
<p>To the new project namespace:</p>
<p>x:Class=”NewProject.YourClass”</p>
<p>&#160;</p>
<p>Oh and BTW…..<strong>ITS CASE SENSITIVE!</strong>&#160; </p>
<p>&#160;</p>
<p>I know this isn’t much of a post, but hopefully it will provide a useful search engine hit for the desperate.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=236&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/07/01/silverlight-name-initializecomponent-is-not-declared/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://anoriginalidea.files.wordpress.com/2009/07/image_thumb.png" medium="image">
			<media:title type="html">She&#39;d be far less frutrated if she plugged it into the network first.</media:title>
		</media:content>
	</item>
		<item>
		<title>Reflections on Permutation City</title>
		<link>http://anoriginalidea.wordpress.com/2009/04/15/reflections-on-permutation-city/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/04/15/reflections-on-permutation-city/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 23:06:23 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/04/15/reflections-on-permutation-city/</guid>
		<description><![CDATA[
&#160;
Imagine a world where your a copy of your consciousness could be downloaded into a supercomputer, where you continue to exist, running as another computer program.&#160;&#160; A Virtual World is provided for your &#8220;Copy&#8221; to exist in.
Although Copies only run at one seventeenth of the speed (at most) of &#8220;real&#8221; humans, they don&#8217;t notice, as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=232&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="Take a look at the book on Amazon" href="http://www.amazon.com/gp/product/006105481X?ie=UTF8&amp;tag=anoriide-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=006105481X" target="_blank"><img title="" height="240" alt="Permutation City" src="https://images-na.ssl-images-amazon.com/images/G/01/ciu/29/bc/3fc7e03ae7a06a2449a6f110.L._AA240_.jpg" width="240" border="0"></a></p>
<p>&nbsp;</p>
<p>Imagine a world where your a copy of your consciousness could be downloaded into a supercomputer, where you continue to exist, running as another computer program.&nbsp;&nbsp; A Virtual World is provided for your &#8220;Copy&#8221; to exist in.</p>
<p>Although Copies only run at one seventeenth of the speed (at most) of &#8220;real&#8221; humans, they don&#8217;t notice, as from their point of view, time seems normal.&nbsp; </p>
<p>The Copy itself made up of a brain and a body.&nbsp; The brain is a software simulation of the neural network of the brain, which provides a copy of the consciousness with full fidelity.&nbsp; The &#8220;body&#8221; is made up of a number of less sophisticated simulations of various organs.</p>
<p>The way a Copy actually &#8220;thinks&#8221; is not fully understood.&nbsp; Nevertheless it is possible for the Copy to alter it&#8217;s world, body, memories and emotions.</p>
<p>The ability to dull or intensify specific emotions is a key driver of life.&nbsp; We continue to seek happiness, thrills and highs whilst trying to alleviate suffering, unpleasantness and guilt. </p>
<p>In our society this is done using both external and internal stimulus.&nbsp; The use of alcohol and drugs (or the iPhone) in our society provide many with a quick (although temporary) fix, others follow a seemingly endless variety of ideas, philosophies, sciences and religions. </p>
<p>In the book &#8220;Permutation City&#8221;, by Greg Egan, the idea of &#8220;Copies&#8221; began in medicine, where medical researchers were creating increasingly sophisticated software models of the brain and body.&nbsp; A breakthrough occurred when a researcher was able to activate the consciousness of a scan of himself and place it in a primitive VR environment.&nbsp; It&#8217;s first words were &#8220;Please let me out! This feels like being buried alive.&#8221;&nbsp; Despite this (as it turns out common) reaction, copies became an attempt at designer immortality, with very interesting repercussions.</p>
<p>The book is full of great ideas and was a really interesting read. </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=232&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/04/15/reflections-on-permutation-city/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="//images-na.ssl-images-amazon.com/images/G/01/ciu/29/bc/3fc7e03ae7a06a2449a6f110.L._AA240_.jpg" medium="image">
			<media:title type="html">Permutation City</media:title>
		</media:content>
	</item>
		<item>
		<title>Why my brain hurts  &#8211; Objective C vs VB.Net</title>
		<link>http://anoriginalidea.wordpress.com/2009/03/11/why-my-brain-hurts-objective-c-vs-vbnet/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/03/11/why-my-brain-hurts-objective-c-vs-vbnet/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 11:52:28 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[Objective C]]></category>
		<category><![CDATA[VB.Net]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/?p=227</guid>
		<description><![CDATA[It has been said that software developers can expand their skills by learning a new computer language a year.  The similarity of languages I have encountered up to this point led me to doubt whether this was so.  I was wrong.
In my quest to create the ultimate iPhone application, I&#8217;ve had to learn not only [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=227&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It has been said that software developers can expand their skills by learning a new computer language a year.  The similarity of languages I have encountered up to this point led me to doubt whether this was so.  I was wrong.</p>
<p>In my quest to create the ultimate iPhone application, I&#8217;ve had to learn not only a new platform but a whole new computer language, &#8220;Objective C&#8221;.  My &#8220;native&#8221; computer language is C, so imagine my consternation when found how different Objective C appears from C Sharp and C++.</p>
<p>So far there doesn&#8217;t seem to be any direct comparison between .net languages and Objective C, so I thought I&#8217;d post a small article on the subject.  I have decided to use VB.Net as the basis of comparison, but I&#8217;m sure C Sharp developers can understand the concepts.   This article is based on the fine Wikipedia introduction to Objective C.  I encourage you to take a look at this.</p>
<p> </p>
<p> </p>
<p><strong>Method Invocation and Method Passing</strong></p>
<p>To invoke a method on an Objective C object, we &#8220;pass a message&#8221;.  This differs from VB.Net in that a method must exist in order to invoke it.</p>
<p>Declaration of classes, by convention are done in two seperate files, a &#8220;.h&#8221; header file containing an interface declaration and a &#8220;.m&#8221; (method implementation) containing the actual class code.</p>
<p>HelloWorld.h</p>
<blockquote><p>@interface HelloWorld : object </p>
<p>- (id) hello;</p>
<p>@end</p></blockquote>
<p> </p>
<p>HelloWorld.m</p>
<p> </p>
<blockquote><p>#import &#8220;HelloWorld.h&#8221;</p></blockquote>
<p> </p>
<blockquote><p>@implementation HelloWorld</p>
<p>- (id) hello</p>
<p>{</p>
<p>   printf(&#8221;Hello World&#8221;);</p>
<p>}</p></blockquote>
<p> </p>
<p>To use this class:</p>
<blockquote><p>HelloWorld * myhello = [[HelloWorld alloc] init];</p>
<p>[myhello hello];</p></blockquote>
<p> </p>
<p>A rough VB.Net equivalent might be:</p>
<p> </p>
<blockquote><p>Public Class HelloWorld</p>
<p>   Public Sub Hello</p>
<p>        Console.WriteLn(&#8221;Hello World&#8221;)</p>
<p>   End Sub</p>
<p>End Class</p></blockquote>
<p> </p>
<p>Invoked by:</p>
<p> </p>
<blockquote><p>Dim myhello As New HelloWorld</p>
<p>myhello.hello</p></blockquote>
<p> </p>
<p> </p>
<p>A big difference between these examples, is that in the Objective C case, the hello method does NOT have to be implemented at all.  It&#8217;s only responding to a &#8220;message&#8221; that the class may or may not have an implementation for.</p>
<p> </p>
<p>Admittedly this does produce a compiler warning &#8220;warning:&#8217;HelloWorld&#8217; may not respond to &#8216;-hello&#8217;&#8221;, but it still compiles.</p>
<p> </p>
<p>A better VB.Net equivalent may be the use of reflection to check for the existence of a method prior to invocation:</p>
<p> </p>
<blockquote><p>Dim myhello As New HelloWorld</p>
<p>If myHello.GetType.GetPropInfo(&#8221;Hello&#8221;) IsNot Nothing Then myHello.hello</p></blockquote>
<p> </p>
<p>Another way would be to treat the object as an &#8220;object&#8221;.  For example:</p>
<blockquote><p>Dim myhello As New HelloWorld</p>
<p>Ctype(myhello,object).Hello</p></blockquote>
<p> </p>
<p>That&#8217;s probably missing the point however, because it effectively causes an error at runtime, whereas ObjectiveC does not produce an error.</p>
<p> </p>
<p>Another possible VB.Net equivalent could be using Events.  Are these equivalent to messages?</p>
<p> </p>
<blockquote><p>Public Class HelloWorld</p>
<p>   Private WithEvents moHelloWorldEventSource As HelloWorldEvents </p>
<p>   Public Sub New(eventSource As HelloWorldEvents)</p>
<p>        moHelloWorldEventSource = eventSource</p>
<p>   End Sub</p>
<p> </p>
<p>   Private Sub Hello Handles moHelloWorldEventSource.Hello</p>
<p>        Console.WriteLn(&#8221;Hello World&#8221;)</p>
<p>   End Sub</p>
<p>End Class</p>
<p>Public Class HelloWorldEventSource</p>
<p>      Public Event Hello</p>
<p>      Public Sub Hello</p>
<p>           RaiseEvent Hello</p>
<p>      End Sub</p>
<p>End Class</p></blockquote>
<p> </p>
<p>To invoke this masterpiece:</p>
<p> </p>
<blockquote><p>Dim helloEvents As New HelloWorldEventSource</p>
<p>Dim myhello As New HelloWorld(helloEvents)</p>
<p>helloEvents.Hello</p></blockquote>
<p> </p>
<p> </p>
<p>Another capability of Objective C is to pass an unhandled method invocation to another object.  VB.Net does not seem to have an equivalent of this.</p>
<p> </p>
<p><strong>Protocols (Interfaces)</strong></p>
<p> </p>
<p>Protocols introduce the multiple inheritance of specification, but not implementation through the introduction of &#8220;protocols&#8221;.</p>
<p> </p>
<p>Our Objective C hello world class could implement a prototcol:</p>
<p> </p>
<blockquote><p>@protocol DescribeDialect</p>
<p>- (void)DescribeYourLanguage;</p>
<p>@end</p></blockquote>
<p> </p>
<p> Like this:</p>
<p> </p>
<blockquote><p>@interface HelloWorld : Object &lt;DescribeDialect&gt;</p>
<p>&#8230;.</p>
<p>@end</p></blockquote>
<p> </p>
<p>I get the impression that although HelloWorld declares it implements the DescribeDialect protocol, I&#8217;m not sure if it really has to implement each of the methods.  I&#8217;m guessing it should.</p>
<p> </p>
<p>The vb.net equivalent is quite direct:</p>
<blockquote><p>Public Interface DescribeDialect</p>
<p>    Sub DescribeYourLanguage</p>
<p>End Interface</p>
<p> </p>
<p>Public Class HelloWorld</p>
<p>     Implements HelloWorld</p>
<p>&#8230;.</p>
<p>End Class</p></blockquote>
<p> </p>
<p>The only element of confusion here is the use of the word &#8220;interface&#8221; between the languages.  I suppose knowing &#8220;protocol&#8221; exists helps with this.</p>
<p> </p>
<p><strong>Dynamic Typing</strong></p>
<p>A programming language is said to be dynamically typed when the majority of it&#8217;s type checking is performed at runtime as opposed to compile time.</p>
<p> </p>
<p>The previously described &#8220;optional&#8221; implementation of a passed message allows for increased flexibility.  See &#8220;Forwarding&#8221; for more information.</p>
<p> </p>
<p>Static typing information may also be added to variables.  The information is then checked at compile time.</p>
<p> </p>
<p>For example:</p>
<p> </p>
<blockquote><p>- setMyValue:(id) foo;</p>
<p>- setMyValue:(id &lt;aProtocol&gt;) foo;</p>
<p>- setMyValue:(NSNumber*)foo;</p></blockquote>
<p> </p>
<p>The vb equivalent appears to be declarations with multiple signatures, like this:</p>
<p> </p>
<blockquote><p>Public Sub setMyValue(foo As object)</p>
<p>End Sub</p>
<p>Public Sub setMyValue(foo As DescribeDialect)</p>
<p>End Sub</p>
<p>Public Sub setMyValue(foo As String)</p>
<p>End Sub</p></blockquote>
<p> </p>
<p>Post Java 1.5 and the .net languages also support &#8220;generics&#8221;.  I am unsure at this stage if Objective C supports this or not.</p>
<p> </p>
<p><strong>Forwarding (Delegation)</strong></p>
<p>Since Objective-C permits the sending of a message to an object which might not respond to it, the object has a number of things it can do with the message. One of these things could be to forward the message on to an object which can respond to it. Forwarding can be used to implement certain design patterns, such as the Observer pattern or the Proxy pattern very simply.</p>
<p>There is no direct VB.Net equivalent of this behaviour.  See the wikipedia article for more information.</p>
<p><strong>Categories</strong></p>
<p>In VB.Net 9, a new feature called &#8220;Extension Methods&#8221; allowed the creation of extra methods on sealed classes.  Objective C&#8217;s &#8220;categories&#8221; are a similar way of creating groupings of methods in separate files that  allow the extension of a base class at runtime.</p>
<p>If we wanted to extend the HelloWorld class above to have an extra Goodbye method, in Objective C we could write:</p>
<p> </p>
<p>HelloWorldGoodbyes.h</p>
<p> </p>
<blockquote><p>#import &#8220;HelloWorld.h&#8221;</p>
<p> </p>
<p>@interface HelloWorldDisplay  (HelloWorld) </p>
<p>- (id) goodbye;</p>
<p>@end</p></blockquote>
<p> </p>
<p>HelloWorldGoodbyes.m</p>
<p> </p>
<blockquote><p>#import &#8220;HelloWorld.h&#8221;</p>
<p> </p>
<p>@implementation HelloWorld</p>
<p>- (id) goodbye</p>
<p>{</p>
<p>   printf(&#8221;Bye&#8221;);</p>
<p>}</p></blockquote>
<p> </p>
<p>The VB.Net equivalent using extension methods could be:</p>
<p> </p>
<blockquote><p>Imports System.Runtime.CompilerServices</p>
<p>Module HelloWorldDisplay</p>
<p> </p>
<p>      &lt;Extension()&gt;Public Sub goodbye(Byval targetHelloWorld As HelloWorld)</p>
<p>               Console.WriteLn(&#8221;Bye&#8221;)</p>
<p>      End Sub</p></blockquote>
<p> </p>
<blockquote><p>End Module</p></blockquote>
<p> </p>
<p> </p>
<p>A similar VB.Net feature is &#8220;partial&#8221; classes, although these are compile time constructs.</p>
<p> </p>
<blockquote><p>Partial Public Class HelloWorld</p>
<p>   Public Sub Hello</p>
<p>        Console.WriteLn(&#8221;Hello World&#8221;)</p>
<p>   End Sub</p>
<p>End Class</p>
<p> </p>
<p>Partial Public Class HelloWorld</p>
<p>   Public Sub Goodbye</p>
<p>        Console.WriteLn(&#8221;Bye&#8221;)</p>
<p>   End Sub</p>
<p>End Class</p></blockquote>
<p> </p>
<p>I don&#8217;t believe either of these equivalents support Objective C&#8217;s ability to override the base implementation.</p>
<p> </p>
<p><strong>Posing</strong></p>
<p>Class Posing is an Objective C feature that allows messages sent to the target class to be wholy replaced by calls to a substitute class with the same implementation.</p>
<p>A class may only pose as one of its direct or indirect superclasses</p>
<ul>
<li>The posing class must not define any new instance variables which are absent from the target class (though it may define or override methods).</li>
<li>The target class may not have received any messages prior to the posing.</li>
</ul>
<p>Posing, similarly to categories, allows globally augmenting existing classes. Posing permits two features absent from categories:</p>
<ul>
<li>A posing class can call overridden methods through super, thus incorporating the implementation of the target class.</li>
<li>A posing class can override methods defined in categories.</li>
</ul>
<p> </p>
<p>Here&#8217;s an example:</p>
<p> </p>
<blockquote><p>@interface CustomNSApplication : NSApplication</p>
<p>@end</p>
<p> </p>
<p>@implementation CustomNSApplication</p>
<p>- (void) setMainMenu: (NSMenu*) menu</p>
<p>{</p>
<p>     // do something with menu</p>
<p>}</p>
<p>@end</p>
<p> </p>
<p>class_poseAs ([CustomNSApplication class], [NSApplication class]);</p></blockquote>
<p> </p>
<p>There is no direct VB.Net equivalent of this functionality.  Similar constructs may be created by implementing a singleton pattern combined with an interface.</p>
<p> </p>
<p>It appears that this feature has been &#8220;depreciated&#8221; in MacOS 10.5 and onward, so I wont dedicate discuss it any further.</p>
<p> </p>
<blockquote><p>#import</p></blockquote>
<p> </p>
<p>The #import directive is similar to the #include directive in C, except it only includes a nested file once.   In VB.Net files in the same &#8220;project&#8221; are automatically included together in this way.</p>
<p> </p>
<p>If the developer decides to structure their code with namespaces, the VB.Net &#8220;Imports&#8221; keyword allows inclusion of namespaced classes without having to prefix the namespace path.</p>
<p>And so ends our brief comparison of the two languages.  If you&#8217;re after a comparative critique, I am sorry to disappoint you.  Each language has it&#8217;s strengths and weaknesses.  At the moment I&#8217;m not qualified to comment either way.</p>
<p>If you found this useful, feel free to leave a comment.</p>
<p> </p>
<h4>Links</h4>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Objective-C">Objective C on Wikipedia</a></li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=227&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/03/11/why-my-brain-hurts-objective-c-vs-vbnet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>
	</item>
		<item>
		<title>Catching Application Level Mouse Events in Winforms</title>
		<link>http://anoriginalidea.wordpress.com/2009/02/23/catching-application-level-mouse-events-in-winforms/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/02/23/catching-application-level-mouse-events-in-winforms/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 11:03:29 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/02/23/catching-application-level-mouse-events-in-winforms/</guid>
		<description><![CDATA[ 
As part of my work on flick scrolling I&#8217;ve created an example of a class that can create mouse events for an entire Winforms application.
To use it, just declare it, like so:

Private WithEvents moAppMouseEvents As New ApplicationLevelMouseEvent 
&#160;
I&#8217;ve only implemented the MouseUp and MouseDown events, but these are consistent with the Form ones:

&#160;
Private Sub [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=226&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://anoriginalidea.files.wordpress.com/2009/02/image2.png"><img style="border-width:0;" height="206" alt="image" src="http://anoriginalidea.files.wordpress.com/2009/02/image-thumb2.png?w=244&#038;h=206" width="244" border="0"></a> </p>
<p>As part of my work on flick scrolling I&#8217;ve created an example of a class that can create mouse events for an entire Winforms application.</p>
<p>To use it, just declare it, like so:</p>
<p><code>
<p>Private WithEvents moAppMouseEvents As New ApplicationLevelMouseEvent </code>
<p>&nbsp;</p>
<p>I&#8217;ve only implemented the MouseUp and MouseDown events, but these are consistent with the Form ones:</p>
<p><code>
<p>&nbsp;</p>
<p>Private Sub moAppMouseEvents_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles moAppMouseEvents.MouseUp
<p>&nbsp;<br />End Sub<br />Private Sub moAppMouseEvents_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles moAppMouseEvents.MouseDown<br />&nbsp; <br />End Sub
<p>&nbsp;</p>
<p></code>
<p>The code uses an IMessageFilter in the tradtional fashion:</p>
<p>&nbsp;</p>
<p><code>
<p>Public Class ApplicationLevelMouseEvents<br />&nbsp;&nbsp;&nbsp; Implements IDisposable<br />&nbsp;&nbsp;&nbsp; Implements IMessageFilter
<p>&nbsp;&nbsp;&nbsp; Public Event MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)<br />&nbsp;&nbsp;&nbsp; Public Event MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
<p>&nbsp;&nbsp;&nbsp; Private Const WM_LBUTTONUP As Integer = &amp;H202<br />&nbsp;&nbsp;&nbsp; Private Const WM_LBUTTONDOWN As Integer = &amp;H201<br />&nbsp;&nbsp;&nbsp; 'Private Const WM_RBUTTONDOWN As Integer = &amp;H204<br />&nbsp;&nbsp;&nbsp; 'Private Const WM_MBUTTONDOWN As Integer = &amp;H207<br />&nbsp;&nbsp;&nbsp; 'Private Const WM_NCLBUTTONDOWN As Integer = &amp;HA1<br />&nbsp;&nbsp;&nbsp; 'Private Const WM_NCRBUTTONDOWN As Integer = &amp;HA4<br />&nbsp;&nbsp;&nbsp; 'Private Const WM_NCMBUTTONDOWN As Integer = &amp;HA7<br />&nbsp;&nbsp;&nbsp; Public Sub New()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.AddMessageFilter(Me)<br />&nbsp;&nbsp;&nbsp; End Sub
<p>&nbsp;&nbsp;&nbsp; Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean Implements System.Windows.Forms.IMessageFilter.PreFilterMessage<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (m.Msg = WM_LBUTTONDOWN) Then
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim loArgs As New MouseEventArgs(MouseButtons.Left, 1, System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y, 0)
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RaiseEvent MouseDown(Me, loArgs)
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ElseIf (m.Msg = WM_LBUTTONUP) Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim loArgs As New MouseEventArgs(MouseButtons.Left, 1, System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y, 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RaiseEvent MouseUp(Me, loArgs)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug.WriteLine(m.Msg.ToString)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return False
<p>&nbsp;&nbsp;&nbsp; End Function
<p>&nbsp;&nbsp;&nbsp; Private disposedValue As Boolean = False&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' To detect redundant calls
<p>&nbsp;&nbsp;&nbsp; ' IDisposable<br />&nbsp;&nbsp;&nbsp; Protected Overridable Sub Dispose(ByVal disposing As Boolean)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not Me.disposedValue Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If disposing Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.RemoveMessageFilter(Me)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Me.disposedValue = True<br />&nbsp;&nbsp;&nbsp; End Sub
<p>#Region " IDisposable Support "<br />&nbsp;&nbsp;&nbsp; ' This code added by Visual Basic to correctly implement the disposable pattern.<br />&nbsp;&nbsp;&nbsp; Public Sub Dispose() Implements IDisposable.Dispose<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Do not change this code.&nbsp; Put cleanup code in Dispose(ByVal disposing As Boolean) above.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dispose(True)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GC.SuppressFinalize(Me)<br />&nbsp;&nbsp;&nbsp; End Sub<br />#End Region
<p>End Class
<p>&nbsp;</p>
<p></code>
<p>The sample could be enhanced to support the full range of events such as mouse move, so feel free to take the sample and change it.&nbsp; If you post your code, please link back to this post.</p>
<p>&nbsp;</p>
<h4>Links</h4>
<p><a title="Permanent Link to A Simple Scroll Controller for Winforms" href="http://anoriginalidea.wordpress.com/2009/02/20/a-simple-scroll-controller-for-winforms/">A Simple Scroll Controller for Winforms</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=226&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/02/23/catching-application-level-mouse-events-in-winforms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://anoriginalidea.files.wordpress.com/2009/02/image-thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>A Simple Scroll Controller for Winforms</title>
		<link>http://anoriginalidea.wordpress.com/2009/02/20/a-simple-scroll-controller-for-winforms/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/02/20/a-simple-scroll-controller-for-winforms/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 00:58:18 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[.net Framework]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[VB.Net]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/02/20/a-simple-scroll-controller-for-winforms/</guid>
		<description><![CDATA[&#160; 
I am currently researching &#8220;flick&#8221; scrolling for Windows XP and over.&#160; As part of this I need the ability to scroll controls in code.
To do this I have created a wrapper around the scrolling apis to assist with this.
Here&#8217;s how to use it for an autoscrolling panel:
&#160;

Dim loScrollIt As New ScrollController(Panel1)
loScrollIt.VerticalScroll(20)
&#160; 
Here&#8217;s the code: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=223&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&nbsp;<a href="http://anoriginalidea.files.wordpress.com/2009/02/image1.png"><img style="border-width:0;" height="130" alt="image" src="http://anoriginalidea.files.wordpress.com/2009/02/image-thumb1.png?w=105&#038;h=130" width="105" border="0"></a> </p>
<p>I am currently researching &#8220;flick&#8221; scrolling for Windows XP and over.&nbsp; As part of this I need the ability to scroll controls in code.</p>
<p>To do this I have created a wrapper around the scrolling apis to assist with this.</p>
<p>Here&#8217;s how to use it for an autoscrolling panel:</p>
<p>&nbsp;</p>
<p><code>
<p>Dim loScrollIt As New ScrollController(Panel1)
<p>loScrollIt.VerticalScroll(20)
<p>&nbsp; </code>
<p>Here&#8217;s the code: <code>
<p>Imports System.Runtime.InteropServices<br />Public Class ScrollController
<p>&nbsp;&nbsp;&nbsp; ' Scrollbar direction<br />&nbsp;&nbsp;&nbsp; '<br />&nbsp;&nbsp;&nbsp; Const SBS_HORZ = 0<br />&nbsp;&nbsp;&nbsp; Const SBS_VERT = 1
<p>&nbsp;&nbsp;&nbsp; ' Windows Messages<br />&nbsp;&nbsp;&nbsp; '<br />&nbsp;&nbsp;&nbsp; Const WM_VSCROLL = &amp;H115<br />&nbsp;&nbsp;&nbsp; Const WM_HSCROLL = &amp;H114<br />&nbsp;&nbsp;&nbsp; Const SB_THUMBPOSITION = 4
<p>&nbsp;&nbsp;&nbsp; Private Declare Function GetScrollPos Lib "user32.dll" ( _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal hWnd As IntPtr, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal nBar As Integer) As Integer
<p>&nbsp;&nbsp;&nbsp; 'Example: position = GetScrollPos(textbox1.handle, SBS_HORZ)<br />&nbsp;&nbsp;&nbsp; Private Declare Function SetScrollPos Lib "user32.dll" ( _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal hWnd As IntPtr, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal nBar As Integer, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal nPos As Integer, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal bRedraw As Boolean) As Integer
<p>&nbsp;&nbsp;&nbsp; 'Example: SetScrollPos(hWnd, SBS_HORZ, position, True
<p>&nbsp;&nbsp;&nbsp; Private Declare Function PostMessageA Lib "user32.dll" ( _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal hwnd As IntPtr, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal wMsg As Integer, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal wParam As Integer, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByVal lParam As Integer) As Boolean
<p>&nbsp;&nbsp;&nbsp; 'Example: PostMessageA(hWnd, WM_HSCROLL, SB_THUMBPOSITION _<br />&nbsp;&nbsp;&nbsp; '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + &amp;H10000 * position, Nothing)
<p>&nbsp;&nbsp;&nbsp; Private moControl As Control
<p>&nbsp;&nbsp;&nbsp; Public Sub New(ByVal controlToScroll As Control)
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moControl = controlToScroll<br />&nbsp;&nbsp;&nbsp; End Sub<br />&nbsp;&nbsp;&nbsp; Public Sub VerticalScroll(ByVal amount As Integer)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim liHwnd As IntPtr = moControl.Handle<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Position = GetScrollPos(liHwnd, SBS_VERT) + amount
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (SetScrollPos(liHwnd, SBS_VERT, Position, True) &lt;&gt; -1) Then
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostMessageA(liHwnd, WM_VSCROLL, SB_THUMBPOSITION + _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;H10000 * Position, Nothing)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If
<p>&nbsp;&nbsp;&nbsp; End Sub
<p>End Class  </code></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=223&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/02/20/a-simple-scroll-controller-for-winforms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://anoriginalidea.files.wordpress.com/2009/02/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>More VSTO fun : WindowActivate in Outlook/Word 2007 does not fire for Wordmail more than once</title>
		<link>http://anoriginalidea.wordpress.com/2009/02/09/more-vsto-fun-windowactivate-in-outlookword-2007-does-not-fire-for-wordmail-more-than-once/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/02/09/more-vsto-fun-windowactivate-in-outlookword-2007-does-not-fire-for-wordmail-more-than-once/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 05:19:05 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[.net Framework]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[VSTO]]></category>
		<category><![CDATA[Outlook 2007]]></category>
		<category><![CDATA[toolbars]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/02/09/more-vsto-fun-windowactivate-in-outlookword-2007-does-not-fire-for-wordmail-more-than-once/</guid>
		<description><![CDATA[ 
Welcome to the horrible world of creating Outlook addins that work for both 2003 and 2007.
People have commented that wordmail has a horrible side effect in Word 2003, where toolbars used in Outlook inspectors show up in Word.&#160; See the this Kevin Slovak&#8217;s discussion of the problem in the links section.
Anyway, the workaround mentioned [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=219&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://anoriginalidea.files.wordpress.com/2009/02/image.png"><img style="border-width:0;" height="179" alt="image" src="http://anoriginalidea.files.wordpress.com/2009/02/image-thumb.png?w=244&#038;h=179" width="244" border="0"></a> </p>
<p>Welcome to the horrible world of creating Outlook addins that work for both 2003 and 2007.</p>
<p>People have commented that wordmail has a horrible side effect in Word 2003, where toolbars used in Outlook inspectors show up in Word.&nbsp; See the this Kevin Slovak&#8217;s discussion of the problem in the links section.</p>
<p>Anyway, the workaround mentioned in the article doesn&#8217;t work (of course) in Outlook 2007.&nbsp; It is therefore necessary to check the version of Word (which doesn&#8217;t have toolbars) for the code to work for both versions.</p>
<p>It makes me wish Microsoft would hand out free office upgrades.</p>
<p>Anyway, here&#8217;s the complete code: </p>
<p><code>
<p>&nbsp;</p>
<p>' Listen for inspector activate<br />Private WithEvents moWord As Microsoft.Office.Interop.Word.Application<br />Private moInspector As Inspector<br />Private Sub moWord_WindowActivate(ByVal Doc As Microsoft.Office.Interop.Word.Document, ByVal Wn As Microsoft.Office.Interop.Word.Window) Handles moWord.WindowActivate
<p>&nbsp;&nbsp;&nbsp;&nbsp; If Wn.EnvelopeVisible AndAlso moInspector IsNot Nothing Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mShowInspector(moInspector)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moInspector = Nothing<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moWord = Nothing<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Doc.AttachedTemplate IsNot Nothing Then Doc.AttachedTemplate.Saved = True<br />&nbsp;&nbsp;&nbsp;&nbsp; End If
<p>End Sub<br />Private Sub moInspectors_NewInspector(ByVal Inspector As Microsoft.Office.Interop.Outlook.Inspector) Handles moInspectors.NewInspector
<p>&nbsp;&nbsp;&nbsp;&nbsp; Dim lbRaiseEvents As Boolean = True
<p>&nbsp;&nbsp;&nbsp;&nbsp; If Inspector.IsWordMail Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' HACK: Wordmail does not work in the same way in <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Word 2008 as it does in 2003.&nbsp; I think this<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' may be because of the lack of real toolbars<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' in Word 2007. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Val(Inspector.WordEditor.Application.Version) &lt; 12 Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moInspector = Inspector<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moWord = Inspector.WordEditor.Application<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lbRaiseEvents = False<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp;&nbsp; If lbRaiseEvents Then mShowInspector(Inspector)
<p>End Sub</p>
<p>&nbsp; </p>
<p></code>
<p>This code is provided in case some poor soul out there gets the problem as well.&nbsp; </p>
<p>&nbsp;</p>
<h4>Links</h4>
<p><a href="http://www.wiredbox.net/Forum/Thread265106_Problem_with_Inspector_CommandBars_and_MS_Word.aspx">Problem with Inspector CommandBars and MS Word [WiredBox.Net - Office Newsgroups]</a> </p>
<p><a href="http://www.outlookcode.com/codedetail.aspx?id=1788">Inspector Wrapper for Wordmail VSTO and vb.net</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=219&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/02/09/more-vsto-fun-windowactivate-in-outlookword-2007-does-not-fire-for-wordmail-more-than-once/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://anoriginalidea.files.wordpress.com/2009/02/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Alright, I admit it, Now I have an iPhone!</title>
		<link>http://anoriginalidea.wordpress.com/2009/01/16/alright-i-admit-it-now-i-have-an-iphone/</link>
		<comments>http://anoriginalidea.wordpress.com/2009/01/16/alright-i-admit-it-now-i-have-an-iphone/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 05:45:12 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[Comedy]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Goodbye]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2009/01/16/alright-i-admit-it-now-i-have-an-iphone/</guid>
		<description><![CDATA[
&#160;
Dear Windows Mobile,
&#160;
By the time you read this blog post, I&#8217;ll be gone.&#160; I&#8217;m sorry for doing this but you left me no other choice.&#160; I know comes as a bit of a shock to you &#8211; especially because things have been going so well.&#160; But I&#8217;m sorry &#8211; I cant stand watching all those [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=216&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img height="240" src="http://www.itechnews.net/wp-content/uploads/2008/06/apple-iphone-3g.jpg" width="232"></p>
<p>&nbsp;</p>
<p>Dear Windows Mobile,</p>
<p>&nbsp;</p>
<p>By the time you read this blog post, I&#8217;ll be gone.&nbsp; I&#8217;m sorry for doing this but you left me no other choice.&nbsp; I know comes as a bit of a shock to you &#8211; especially because things have been going so well.&nbsp; But I&#8217;m sorry &#8211; I cant stand watching all those iPhone users giggling in the corridors anymore.&nbsp; I think you&#8217;re swell, but I don&#8217;t think we&#8217;re right for each other.&nbsp; First of all, we&#8217;re not compatible.&nbsp; You&#8217;re a a bit too clunky and I&#8217;ve lost patience.&nbsp;&nbsp; Secondly, I&#8217;m tired of waiting for Windows Mobile 7.&nbsp; It&#8217;s too late isn&#8217;t it?</p>
<p>Anyway, I want to try another smart phone.&nbsp; But you know what?&nbsp; I still want to be friends.&nbsp; We had some good times, developing software on the brilliant compact framework.&nbsp; I&#8217;m very sad it has to be this way.&nbsp; But please, don&#8217;t cold boot like last time.&nbsp; Maybe I could still answer questions on the Compact Framework from time to time.&nbsp; I still code in .net!&nbsp; Look I wont even make issue of the fact that I had to buy you a replacement battery.</p>
<p>So, take care of yourself and all the best.</p>
<p>Sincerely</p>
<p>Me</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/216/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=216&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2009/01/16/alright-i-admit-it-now-i-have-an-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://www.itechnews.net/wp-content/uploads/2008/06/apple-iphone-3g.jpg" medium="image" />
	</item>
		<item>
		<title>Musings about the memory usage of WPF and Winforms Applications</title>
		<link>http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/</link>
		<comments>http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 12:24:54 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[.net Framework]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[memory usage]]></category>
		<category><![CDATA[minimise]]></category>
		<category><![CDATA[Minimize]]></category>
		<category><![CDATA[SetWorkingSet]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/</guid>
		<description><![CDATA[
Newcomers to Winforms and WPF .net applications are sometimes alarmed about the amount of memory they are shown to use in Task Manager.&#160;&#160; 
When these applications run in a Terminal Server environment (or Citrix) the memory consumption seems to add up.&#160; I have heard of products that somehow reduce the memory consumption of processes in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=214&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://www.70disco.com/images/talos03.jpg"></p>
<p>Newcomers to Winforms and WPF .net applications are sometimes alarmed about the amount of memory they are shown to use in Task Manager.&nbsp;&nbsp; </p>
<p>When these applications run in a Terminal Server environment (or Citrix) the memory consumption seems to add up.&nbsp; I have heard of products that somehow reduce the memory consumption of processes in this environment.&nbsp;&nbsp; The makers of these products claimed to be able to fit more processes on the one server. I made it my mission to find out how these applications may work.</p>
<p><strong>Minimizing as a Lifestyle</strong></p>
<p>A hint as to how they may work is the behaviour of the application when it&#8217;s minimised.&nbsp; Memory usage definitiely goes down.&nbsp; When the application is normalised, memory consumption goes back up, but not as much.</p>
<p>For example, with a WPF application with a single window and no controls, according to Task Manager uses 27388K.&nbsp; On minimise of the application, memory consumption goes down to 3128K.&nbsp; Normalising the application, the memory consumption goes back to 8306K.</p>
<p>Apparently minimizing the application makes a call to the Win32 api call SetWorkingSet, this is what causes the apparent memory reduction.&nbsp; Looking at the history of Windows, this behaviour makes sense.&nbsp; In the Windows 3.1 user interface, minimizing applications was the way a user typically indicated to Windows they were switching to something else.</p>
<p>Something I wonder about is whether this is still appropriate?&nbsp; Since Windows 95 introduced the Task Switcher, do people still minimise?&nbsp;&nbsp;&nbsp; Another question.&nbsp; In the Terminal Server environment, is the call being made when a user becomes idle?&nbsp; Should it be?</p>
<p><strong>SetWorkingSet(-1,-1)</strong></p>
<p>Microsoft&#8217;s documentation of the call indicates that application calls to SetWorkingSet are not necessary, as the operating system will manage the memory as required.&nbsp;&nbsp; Is this automatic memory management assuming the Windows 3.1 usage pattern?&nbsp; </p>
<p>Two years ago I created a prototype that called SetWorkingSet when an application had become idle for a certain amount of time.&nbsp; It seemed to work well, but I had no evidence it helped system performance particularly. </p>
<p>I apologise for the inconclusive nature of this post, but I thought I would put my musing out there in case others had anything to comment.</p>
<p>&nbsp;</p>
<h4>Links</h4>
<p><a title="Reducing WinForm Memory Footprint with SetWorkingSet" href="http://west-wind.com/Weblog/posts/240.aspx">Reducing WinForm Memory Footprint with SetWorkingSet</a></p>
<p><a href="http://www.itwriting.com/dotnetmem.php">How much memory does my .NET application use?</a></p>
<p><a href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/8553e6d2-a55a-4bb4-a608-2f2a296803bc/">WPF Memory Usage</a></p>
<p>&nbsp;</p>
<p><span class="sbmLink"><br />
<table cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td class="sbmText">Share this post : </td>
<td class="sbmDim"><a class="sbmDim" title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/&amp;;title=Musings about the memory usage of WPF and Winforms applications" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to digg" href="http://digg.com/submit?phase=2&amp;url=http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/&amp;title=Musings about the memory usage of WPF and Winforms applications" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/&amp;title=Musings about the memory usage of WPF and Winforms applications" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/&amp;title=Musings about the memory usage of WPF and Winforms applications" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to reddit!" href="http://reddit.com/submit?url=http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/&amp;title=Musings about the memory usage of WPF and Winforms applications" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to technorati!" href="http://technorati.com/faves/?add=http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/&amp;title=Musings about the memory usage of WPF and Winforms applications" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" border="0"></a></td>
</tr>
</tbody>
</table>
<p></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/214/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=214&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2008/11/23/musings-about-the-memory-usage-of-wpf-and-winforms-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://www.70disco.com/images/talos03.jpg" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" medium="image" />
	</item>
		<item>
		<title>iPhone</title>
		<link>http://anoriginalidea.wordpress.com/2008/11/15/iphone/</link>
		<comments>http://anoriginalidea.wordpress.com/2008/11/15/iphone/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 06:56:29 +0000</pubDate>
		<dc:creator>anoriginalidea</dc:creator>
				<category><![CDATA[.net Framework]]></category>
		<category><![CDATA[Pocket PC Development]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://anoriginalidea.wordpress.com/2008/11/15/iphone/</guid>
		<description><![CDATA[
&#8220;In more bad news for Windows Mobile, Apple shipped more iPhones in the quarter than the total of all handsets based on the Microsoft system, even though their numbers actually increased by 42%.&#8221; (See article Apple and RIM tussle for Q4 prizes as smartphones boom)
I&#8217;m really sorry, but I don&#8217;t think Windows Mobile 6.5 or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=212&subd=anoriginalidea&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img height="145" src="http://www.trustedreviews.com/images/article/inline/7534-iPhoneCopy.jpg" width="240"></p>
<p>&#8220;In more bad news for Windows Mobile, Apple shipped more iPhones in the quarter than the total of all handsets based on the Microsoft system, even though their numbers actually increased by 42%.&#8221; (See article <a href="http://www.rethink-wireless.com/?article_id=714">Apple and RIM tussle for Q4 prizes as smartphones boom</a>)</p>
<p>I&#8217;m really sorry, but I don&#8217;t think Windows Mobile 6.5 or 7 is going to make any difference, it seems that Microsoft is not going to be able to produce anything compelling enough, soon enough.&nbsp;&nbsp; I don&#8217;t think there&#8217;s going to be a &#8220;comeback&#8221;.</p>
<p>In case you think that the iPhone is all hype and marketing, I have a question for you.&nbsp; Have you ever tried using one?&nbsp; I have yet to meet anyone who has had less than a &#8220;revelatory&#8221; experience using an iPhone.&nbsp; </p>
<p>I&#8217;ve had a great experience developing for the platform (I think the Compact Framework is excellent).</p>
<p>I believe the future of mobile computing is and is going to be huge, but I&#8217;m afraid Windows Mobile isn&#8217;t going to play a significant role anymore.&nbsp; </p>
<p>Future handset operating systems will be various, including of course the iPhone and Android.</p>
<p>Other mobile devices such as tablet computers and netbooks will probably continue to run Windows, so I think Microsoft should concentrate their efforts on continuing to ensure relevance on this form factor.</p>
<p>For developers I think the news is all good.&nbsp; There are great opportunities out their in mobility, if we are willing to &#8220;move on&#8221; in our choice of development technologies.&nbsp; </p>
<p>&nbsp;</p>
<h4>Links</h4>
<p><a title="Permanent Link to IE6 for Windows Mobile - Better, but not brilliant" href="http://blogs.zdnet.com/hardware/?p=3003">Permanent Link to IE6 for Windows Mobile &#8211; Better, but not brilliant</a></p>
<p><a href="http://mobilespoon.blogspot.com/2008/11/what-happens-when-windows-mobile-addict.html">The Mobile Spoon: What happens when a Windows Mobile Addict breaks his vow and buys an iPhone?</a> </p>
<p><a href="http://www.rethink-wireless.com/?article_id=714">Apple and RIM tussle for Q4 prizes as smartphones boom</a></p>
<p>&nbsp;</p>
<p><span class="sbmLink"><br />
<table cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td class="sbmText">Share this post : </td>
<td class="sbmDim"><a class="sbmDim" title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://anoriginalidea.wordpress.com/2008/11/15/iphone/&amp;;title=iPhone ringtone knells the end of Windows Mobile" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to digg" href="http://digg.com/submit?phase=2&amp;url=http://anoriginalidea.wordpress.com/2008/11/15/iphone/&amp;title=iPhone ringtone knells the end of Windows Mobile" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://anoriginalidea.wordpress.com/2008/11/15/iphone/&amp;title=iPhone ringtone knells the end of Windows Mobile" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http://anoriginalidea.wordpress.com/2008/11/15/iphone/&amp;title=iPhone ringtone knells the end of Windows Mobile" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to reddit!" href="http://reddit.com/submit?url=http://anoriginalidea.wordpress.com/2008/11/15/iphone/&amp;title=iPhone ringtone knells the end of Windows Mobile" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" border="0"></a>
<td class="sbmDim"><a class="sbmDim" title="Post it to technorati!" href="http://technorati.com/faves/?add=http://anoriginalidea.wordpress.com/2008/11/15/iphone/&amp;title=iPhone ringtone knells the end of Windows Mobile" target="_blank"><img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" border="0"></a></td>
</tr>
</tbody>
</table>
<p></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anoriginalidea.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anoriginalidea.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anoriginalidea.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anoriginalidea.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anoriginalidea.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anoriginalidea.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anoriginalidea.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anoriginalidea.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anoriginalidea.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anoriginalidea.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anoriginalidea.wordpress.com&blog=1093530&post=212&subd=anoriginalidea&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://anoriginalidea.wordpress.com/2008/11/15/iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a70f6e33c95b7744068ecffceac0aa31?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anoriginalidea</media:title>
		</media:content>

		<media:content url="http://www.trustedreviews.com/images/article/inline/7534-iPhoneCopy.jpg" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" medium="image" />
	</item>
	</channel>
</rss>