<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: A Real Time Rich Internet Application (RTRIA) Example</title>
	<atom:link href="http://www.leggetter.co.uk/2009/11/03/a-real-time-rich-internet-application-rtria-example.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.leggetter.co.uk/2009/11/03/a-real-time-rich-internet-application-rtria-example.html</link>
	<description>Real-time web and social media software consultant</description>
	<lastBuildDate>Thu, 11 Mar 2010 14:06:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Phil Leggetter</title>
		<link>http://www.leggetter.co.uk/2009/11/03/a-real-time-rich-internet-application-rtria-example.html/comment-page-1#comment-4333</link>
		<dc:creator>Phil Leggetter</dc:creator>
		<pubDate>Mon, 14 Dec 2009 08:00:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.leggetter.co.uk/?p=423#comment-4333</guid>
		<description>@Feroze,

I&#039;m glad you enjoyed the article - thanks for taking the time to read it.

&lt;blockquote&gt;1) What is the X-Domain request that is being made? Can it be avoided?&lt;/blockquote&gt;

Since I was developing the application on my own development machine and running it using Visual Studio the my Silverlight Twitter application was being hosted on http://localhost. From there the application was making a web request to http://stream.twitter.com. So, the X-Domain request is from localhost to stream.twitter.com. The only time this would not be a X-Domain request is if I could host my application on stream.twitter.com or another sub-domain of twitter.com. So, unless Twitter introduce a hosting service this can&#039;t be avoided.

&lt;blockquote&gt;2) What perf problems are you seeing?&lt;/blockquote&gt;

The application was performing reasonably well although there were occasional CPU spikes. I&#039;ve not done a massive amount of analysis on the application since it was just created for the MSDN article. You can see me checking out the CPU in the video. If I left the application running for a reasonable amount of time it would appear that the performance would degrade. My example only connected to the &lt;a href=&quot;http://apiwiki.twitter.com/Streaming-API-Documentation#statuses/sample&quot; rel=&quot;nofollow&quot;&gt;sample feed&lt;/a&gt; which only sends a small proportion of the &lt;a href=&quot;http://apiwiki.twitter.com/Streaming-API-Documentation#statuses/firehose&quot; rel=&quot;nofollow&quot;&gt;Firehose feed&lt;/a&gt; that Twitter will soon be making available to everybody (as I mentioned in my &lt;a href=&quot;http://www.leggetter.co.uk/2009/12/12/how-does-google-real-time-search-work.html&quot; rel=&quot;nofollow&quot;&gt;&quot;How does Google real-time search work&quot;&lt;/a&gt; post). In addition, the work I was doing with the data was not very complex - all I did was insert it into an object that could be bound to a DataGrid. I think it&#039;s unreasonable to expect a browser plugin application to be able to consume the entire Firehose Twitter feed and still perform. In addition, a user wouldn&#039;t be able to analyse all this real-time data. If you are going to write a Silverlight RTRIA then you should:

&lt;ul&gt;
&lt;li&gt;Keep the amount of data your application is consuming to a reasonable level&lt;/li&gt;
&lt;li&gt;Ensure the format of the data being streamed to your application can either be used directly or is easily transformable into a usable state e.g. deserialised&lt;/li&gt;
&lt;li&gt;Push work onto a non-UI thread as soon as possible to allow the UI thread to continue to ensure the UI is responding to user actions&lt;/li&gt;
&lt;/ul&gt;

If you want to do a lot of data manipulation, for example consume data from two real-time data feeds, then it&#039;s probably a good idea to do your data manipulation on a server and push this manipulated data to your Silverlight RTRIA from your own real-time server.</description>
		<content:encoded><![CDATA[<p>@Feroze,</p>
<p>I&#8217;m glad you enjoyed the article &#8211; thanks for taking the time to read it.</p>
<blockquote><p>1) What is the X-Domain request that is being made? Can it be avoided?</p></blockquote>
<p>Since I was developing the application on my own development machine and running it using Visual Studio the my Silverlight Twitter application was being hosted on <a  href="http://localhost" rel="nofollow">http://localhost</a>. From there the application was making a web request to <a  href="http://stream.twitter.com" rel="nofollow">http://stream.twitter.com</a>. So, the X-Domain request is from localhost to stream.twitter.com. The only time this would not be a X-Domain request is if I could host my application on stream.twitter.com or another sub-domain of twitter.com. So, unless Twitter introduce a hosting service this can&#8217;t be avoided.</p>
<blockquote><p>2) What perf problems are you seeing?</p></blockquote>
<p>The application was performing reasonably well although there were occasional CPU spikes. I&#8217;ve not done a massive amount of analysis on the application since it was just created for the MSDN article. You can see me checking out the CPU in the video. If I left the application running for a reasonable amount of time it would appear that the performance would degrade. My example only connected to the <a  href="http://apiwiki.twitter.com/Streaming-API-Documentation#statuses/sample" rel="nofollow">sample feed</a> which only sends a small proportion of the <a  href="http://apiwiki.twitter.com/Streaming-API-Documentation#statuses/firehose" rel="nofollow">Firehose feed</a> that Twitter will soon be making available to everybody (as I mentioned in my <a  href="http://www.leggetter.co.uk/2009/12/12/how-does-google-real-time-search-work.html" rel="nofollow">&#8220;How does Google real-time search work&#8221;</a> post). In addition, the work I was doing with the data was not very complex &#8211; all I did was insert it into an object that could be bound to a DataGrid. I think it&#8217;s unreasonable to expect a browser plugin application to be able to consume the entire Firehose Twitter feed and still perform. In addition, a user wouldn&#8217;t be able to analyse all this real-time data. If you are going to write a Silverlight RTRIA then you should:</p>
<ul>
<li>Keep the amount of data your application is consuming to a reasonable level</li>
<li>Ensure the format of the data being streamed to your application can either be used directly or is easily transformable into a usable state e.g. deserialised</li>
<li>Push work onto a non-UI thread as soon as possible to allow the UI thread to continue to ensure the UI is responding to user actions</li>
</ul>
<p>If you want to do a lot of data manipulation, for example consume data from two real-time data feeds, then it&#8217;s probably a good idea to do your data manipulation on a server and push this manipulated data to your Silverlight RTRIA from your own real-time server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Feroze</title>
		<link>http://www.leggetter.co.uk/2009/11/03/a-real-time-rich-internet-application-rtria-example.html/comment-page-1#comment-4325</link>
		<dc:creator>Feroze</dc:creator>
		<pubDate>Sun, 13 Dec 2009 17:41:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.leggetter.co.uk/?p=423#comment-4325</guid>
		<description>Hi! Phil,

Interesting article. A great example on how to access twitter.

I had a couple of questions:

1) What is the X-Domain request that is being made? Can it be avoided?
2) What perf problems are you seeing?</description>
		<content:encoded><![CDATA[<p>Hi! Phil,</p>
<p>Interesting article. A great example on how to access twitter.</p>
<p>I had a couple of questions:</p>
<p>1) What is the X-Domain request that is being made? Can it be avoided?<br />
2) What perf problems are you seeing?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
