<?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/"
	>

<channel>
	<title>Greg Does IT</title>
	<atom:link href="http://gregdoesit.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gregdoesit.com</link>
	<description>Do it to get it</description>
	<pubDate>Thu, 29 Jul 2010 15:35:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Styles in Silverlight - Advanced Topics</title>
		<link>http://gregdoesit.com/2010/07/styles-in-silverlight-advanced-topics-part-1/</link>
		<comments>http://gregdoesit.com/2010/07/styles-in-silverlight-advanced-topics-part-1/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 09:55:12 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=567</guid>
		<description><![CDATA[I&#8217;m writing a 4 part series on everything (I think) it&#8217;s worth knowing about styles. In the second part of the series (following the previous one Styles in Silverlight - an Introduction) I&#8217;m covering the following topics:

Re-Using Styles for Different Types: the TargetType of the Style can be a parent type of the target object [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m writing a 4 part series on everything (I think) it&#8217;s worth knowing about styles. In the second part of the series (following the previous one <a href="http://gregdoesit.com/2010/07/styles-in-silverlight-an-introduction/">Styles in Silverlight - an Introduction</a>) I&#8217;m covering the following topics:</p>
<ul>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-inheritance-precedence-and-other-advanced-topics#reusingStyles">Re-Using Styles for Different Types</a>: the TargetType of the Style can be a parent type of the target object as long as it only sets properties of the parent type.<br/> So for example the Fill property of both an Ellipse and Rectangle can be styled by using a Style that&#8217;s TargetType is set to Shape (as both Ellipse and Rectangle inherit from Shape)</li>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-inheritance-precedence-and-other-advanced-topics/#styleBasedOn">Inheriting Styles using the BasedOn property</a>: Styles can be inherited from one another using the BasedOn property. Single inheritance is supported and the depth of inheritance is not limited.</li>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-inheritance-precedence-and-other-advanced-topics/#implicitStyling">Implicit styling</a>: Implicit styles allow defining a default style for all instances of a given type within the scope of the control. This feature has been introduced in Silverlight 4.</li>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-inheritance-precedence-and-other-advanced-topics/#stylePrecedence">Style Precedence</a>: Styles are only applied to a property if that property is not animated, has no local value set and has no value set in a template. This precedence is the same as the dependency property precedence.</li>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-inheritance-precedence-and-other-advanced-topics/#styleSetterPrecedence">Style Setter Precedence:</a> setters specifying the value of the same property may be declared within the same Style. The last one of them has the highest precedence and will be used.</li>
<p>You can read the (much more detailed) full article <a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-inheritance-precedence-and-other-advanced-topics/">on my Scott Logic blog</a>. The next part of the series will cover further advanced topics such as using Styles in code behind and exploring the relationship between styles and dependency properties from a practical perspective.
</ul>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/07/styles-in-silverlight-advanced-topics-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Styles in Silverlight: an Introduction</title>
		<link>http://gregdoesit.com/2010/07/styles-in-silverlight-an-introduction/</link>
		<comments>http://gregdoesit.com/2010/07/styles-in-silverlight-an-introduction/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 15:57:14 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=563</guid>
		<description><![CDATA[I&#8217;m writing a (planned) 4 parts series on everything I think it&#8217;s worth knowing about styles in Silverlight. The first part is ready and it covers the following topics:

What are Styles?Styles are basically list of property-value pairs. Defining a style consists declaring the TargetType property and the list of Setters.
Defining Styles in XAMLDefining styles in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m writing a (planned) 4 parts series on everything I think it&#8217;s worth knowing about styles in Silverlight. The first part is ready and it covers the following topics:</p>
<ul>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction/#whatAreStyles">What are Styles?</a><br/>Styles are basically list of property-value pairs. Defining a style consists declaring the <a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction/#targetType">TargetType</a> property and the list of <a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction/#setters">Setters</a>.</li>
<li><a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction/#definingStylesInXAML">Defining Styles in XAML</a><br/>Defining styles in XAML is the easiest and most common method. They can either be defined in the Resources section or inline.</li>
<li>Styles defined in XAML can be <a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction/#referencing">referenced in code-behind</a>.</li>
<li>Altering visual templates of an object doesn&#8217;t always end at styling. More powerful way of customizing the look and feel of objects involves <a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction/#templates">using Control Templates and Themes</a>.</li>
</ul>
<p>You can read the (much more detailed) full article <a href="http://www.scottlogic.co.uk/blog/gergely/2010/07/styles-in-silverlight-an-introduction">on my Scott Logic blog</a>. This part has meant to be an introduction, the next parts will dig into more advanced Style usage scenarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/07/styles-in-silverlight-an-introduction/feed/</wfw:commentRss>
		</item>
		<item>
		<title>World Cup 2010 Real-Time Push Web App Competition Winner!</title>
		<link>http://gregdoesit.com/2010/07/world-cup-2010-real-time-push-web-app-competition-winner/</link>
		<comments>http://gregdoesit.com/2010/07/world-cup-2010-real-time-push-web-app-competition-winner/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 15:24:16 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Awards]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[competition]]></category>

		<category><![CDATA[Kwwika]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=556</guid>
		<description><![CDATA[A month ago Kwwika, a real-time data streaming service provider annonced a competition to build a mash up that uses their World Cup 2010 Twitter streams. I&#8217;ve decided to enter the competition and visualize the stream of tweets in a fun and engaging way. As the competition closed on 11th July, my entry was selected [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago <a href="http://kwwika.com" target="_blank">Kwwika</a>, a real-time data streaming service provider <a href="http://wiki.kwwika.com/competitions/world-cup-2010-real-time-push-web-app-competition" target="_blank">annonced a competition</a> to build a mash up that uses their World Cup 2010 Twitter streams. I&#8217;ve decided to enter the competition and visualize the stream of tweets in a fun and engaging way. As the competition closed on 11th July, <strong>my entry was selected as <a href="http://blog.kwwika.com/kwwika-world-cup-2010-real-time-push-web-app-1" target="_blank">one of the winners</a></strong>!</p>
<p style="text-align: center;">
<img src="http://gregdoesit.com/wp-content/uploads/2010/07/tweetforyourteam.jpg" alt="tweetforyourteam" title="tweetforyourteam" width="470" height="257" class="aligncenter size-full wp-image-557" />
</p>
<p>My entry, <a href="http://tweetforyourteam.com" target="_blank">Tweet For Your Team</a> shows the tweets of the two teams simultaneously. It measures the live intensity of the tweets (how many are written per minute for each team) and also analyzes their mood by matching keywords and using simple rules to decide whether a tweet carries positive or negative emotions for the team. </p>
<p>The entry also allows visitors to get involved and cheer for or against their team with a single click sending a shout visible to other users off the application. See <a href="http://gregdoesit.com/2010/07/world-cup-2010-real-time-twitter-mashup/" target="_blank">this post</a> on further details on the application functionality.</p>
<p>Winners of the competition were announced just before the World Cup 2010 final and I was happy to see my entry being selected one of the two winners. As the <a href="http://blog.kwwika.com/kwwika-world-cup-2010-real-time-push-web-app-1" target="_blank">judging panel wrote</a> in their summary:<br />
<em>&#8220;Gergely created a really engaging application that you could easily sit and watch and interact with during any live World Cup match.&#8221;</em> And <em> &#8220;The performance of the application is really impressive considering tweet rates for Spain alone have been seen to hit 3500 tweets per minute.&#8221;</em></p>
<p>You can read more about the application in the following previous posts:</p>
<ul>
<li><a href="http://gregdoesit.com/2010/07/world-cup-2010-real-time-twitter-mashup/">World Cup 2010 Real Time Twitter Mashup</a></li>
<li><a href="http://gregdoesit.com/2010/07/cheer-for-your-team-with-a-click-on-tweetforyourteamcom/">Cheer For Your Team With a Click on TweetForYourTeam.com!</a></li>
<li><a href="http://www.youtube.com/watch?v=Q4izM_WLFX0&#038;feature=player_embedded">Video on how TweetForYourTeam works</a></li>
</ul>
<p>And of course you can see it in action at <a href="http://tweetforyourteam.com">TweetForYourTeam.com</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/07/world-cup-2010-real-time-push-web-app-competition-winner/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cheer For Your Team With a Click on TweetForYourTeam.com!</title>
		<link>http://gregdoesit.com/2010/07/cheer-for-your-team-with-a-click-on-tweetforyourteamcom/</link>
		<comments>http://gregdoesit.com/2010/07/cheer-for-your-team-with-a-click-on-tweetforyourteamcom/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 18:23:47 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[competition]]></category>

		<category><![CDATA[Kwwika]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=540</guid>
		<description><![CDATA[I&#8217;ve created TweetForYourTeam just a week ago and have just added a major update with a couple of fun features.
Cheer By a Single Click
In the original version of TweetForYourTeam one was able to engage in cheering for or against a team by sending a tweet to Twitter. In the current update an easier method has [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created <a href="http://tweetforyourteam.com" target="_blank">TweetForYourTeam</a> just a week ago and have just added a major update with a couple of fun features.</p>
<h3>Cheer By a Single Click</h3>
<p>In the <a href="http://gregdoesit.com/2010/07/world-cup-2010-real-time-twitter-mashup">original version of TweetForYourTeam</a> one was able to engage in cheering for or against a team by sending a tweet to Twitter. In the current update an easier method has been implemented. Under each teams two buttons have been placed that allow one to cheer for or against the team by hitting the button.</p>
<p><a href="http://gregdoesit.com/wp-content/uploads/2010/07/update3.png"><img src="http://gregdoesit.com/wp-content/uploads/2010/07/update3.png" alt="update3" title="update3" width="470" height="144" class="aligncenter size-full wp-image-545" /></a></p>
<p>Whenever one sends a cheer (or anti-cheer), a cool animation happens on the screen. At the same time this cheer is sent back to the server and immediately appears on all other users&#8217; screen real-time, using <a href="http://kwwika.com" target="_blank">Kwwika&#8217;s real time notification streaming</a>. So whenever you cheer, everyone else gets to see the same effect go off on their screen.</p>
<p><span id="more-540"></span><br />
<a href="http://gregdoesit.com/wp-content/uploads/2010/07/update2.png"><img src="http://gregdoesit.com/wp-content/uploads/2010/07/update2.png" alt="update2" title="update2" width="470" height="261" class="aligncenter size-full wp-image-547" /></a></p>
<h3>Hear The Crowd</h3>
<p>Sound effects have been added to the application as well. A constant humming vuvuzela sound has been added as background &#8220;music&#8221; for TweetForYourTeam. The volume of the vuvuzela can be controlled or muted. Also, both supporting and cheering against team trigger a sound effect. These effects not make the application resemble the atmosphere of a World Cup 2010 game even more.</p>
<h3>Under the Hood</h3>
<p>Implementing sending and receiving notifications of cheering was the biggest feature in this update. However, actually this part took the least time to implement: I&#8217;ve spent probably triple the amount of time looking for sound effects and styling the new buttons then writing and reading cheer events.</p>
<p>Until this update the application was only reading the Kwwika stream similar to the way I&#8217;ve described in <a href="http://gregdoesit.com/2010/07/streaming-world-cup-tweets-in-silverlight-with-a-few-lines-of-code/">my tutorial on Kwwika&#8217;s Twitter streaming</a>. </p>
<p>In this update I&#8217;ve had to push data into Kwwika whenever someone clicked on a cheer button and read this data from there, while simultaneously streaming the tweets as well. Implementing this task was actually simpler than I thought thanks to the easy to use topic concept in Kwwika. Each Kwwika stream has a unique URL that one can subscribe to, this is called the topic. So I&#8217;ve used a designated topic for writing and reading the cheer events: in this case the  /KWWIKA/COMPS/WC2010/COLLABORATE topic. Writing data to this topic was even easier then reading them, a single <a href="http://wiki.kwwika.com/api/silverlight#TOC-Publish" target="_blank">Publish call</a> had to be made to the Kwwika.IConnection object.</p>
<h3>Do you love a team? Or hate one?</h3>
<p>The bronze game and final on the World Cup is still to be played. Have your say (or click) and cheer for - or against! - one of the teams at <a href="http://tweetforyourteam.com" target="_blank">TweetForYourTeam.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/07/cheer-for-your-team-with-a-click-on-tweetforyourteamcom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Streaming World Cup Tweets in Silverlight With a Few Lines of Code</title>
		<link>http://gregdoesit.com/2010/07/streaming-world-cup-tweets-in-silverlight-with-a-few-lines-of-code/</link>
		<comments>http://gregdoesit.com/2010/07/streaming-world-cup-tweets-in-silverlight-with-a-few-lines-of-code/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 12:06:50 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[code snipplet]]></category>

		<category><![CDATA[Kwwika]]></category>

		<category><![CDATA[real time]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=516</guid>
		<description><![CDATA[The World Cup is on and there have been quite a few good Twitter mashups made for this event, probably the most popular being TweetBeat (and I&#8217;ve also developed one, Tweet For Your Team). In this post I&#8217;ll show how to build a simple service similar to TweetBeat using a publicly available real-time streaming service, [...]]]></description>
			<content:encoded><![CDATA[<p>The World Cup is on and there have been quite a few good Twitter mashups made for this event, probably the most popular being <a rel="nofollow" href="http://worldcup.tweetbeat.com/" target="_blank">TweetBeat</a> (and I&#8217;ve also developed one, <a href="http://tweetforyourteam.com" target="_blank">Tweet For Your Team</a>). In this post I&#8217;ll show how to build a simple service similar to TweetBeat using a publicly available real-time streaming service, <a href="http://kwwika.com" target="_blank">Kwwika</a>.</p>
<p>The application built in this short tutorial will be the following:</p>
<p><object type="application/x-silverlight-2" data="data:application/x-silverlight,"  width="500" height="450"><param name="source" value="http://gregdoesit.com/wp-content/uploads/2010/07/twitterpushsearch2.xap"/></object>  </p>
<h3>Why use a streaming service?</h3>
<p>Getting tweets on a certain topic - in our case, the World Cup - can be done in three main ways:</p>
<ul>
<li>By polling Twitter using the <a href="http://apiwiki.twitter.com/" target="_blank">Twitter API</a></li>
<li>By using the Twitter <a href="http://apiwiki.twitter.com/Streaming-API-Documentation" target="_blank">streaming API</a></li>
<li>By using a third party streaming service like <a href="http://kwwika.com" target="_blank">Kwwika</a></li>
</ul>
<p><span id="more-516"></span><br />
<strong>Polling via the Twitter API</strong> requires quite the amount of work:</p>
<ol>
<li>You have to use the Twitter Search API and filter for the #worldcup tag (and perhaps other keywords)</li>
<li>You have to handle errors from Twitter (in case the API is down at the moment of polling)</li>
<li>You have to be aware not to poll too often: the <a href="http://apiwiki.twitter.com/Rate-limiting" target="_blank">Twitter Search API quota limitations</a> are quite vaguely phrased, but it&#8217;s obvious that polling very often isn&#8217;t supported</li>
<li>And finally, you have to handle filtering the results on the client side: basically making sure messages aren&#8217;t duplicated</li>
</ol>
<p><br/><br />
The <strong>Twitter Streaming API</strong> requires to implementing an application consuming the Twitter stream. Unfortunately at the moment I&#8217;m unaware of any Silverlight solutions for this, however based on a tutorial of <a href="http://arstechnica.com/open-source/guides/2010/04/tutorial-use-twitters-new-real-time-stream-api-in-python.ars" target="_blank">consuming the Twitter API in Python</a>, this method should be easier to implement then the polling version. This post does not focus on implementing the application this way though.</p>
<p><strong>Third party streaming</strong> is probably the fastest and easiest way to develop such an application. These services take care of polling/streaming the tweets from Twitter and stream it to the application. Currently the only such service I&#8217;m aware of is <a href="http://kwwika.com" target="_blank">Kwwika</a>. (<a href="http://www.kosmix.com/" target="_blank">Kosmix </a>seem to use such streaming themselves, but currently don&#8217;t offer any service to the public).</p>
<h3>Streaming World Cup Tweets - With a Few Lines of Code</h3>
<p>Using the <a href="http://wiki.kwwika.com/api/silverlight" target="_blank">Kwwika Silverlight API</a> is surprisingly easy. There are three steps to do in order to start receiving tweets: initialize a connection, subscribe to a channel and handle the callback when tweets arrive.</p>
<h4>1. Initalizing the connection</h4>
<p>The code for the initalization is as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;"><span style="color: #FF0000;">string</span> apiKey <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;7d476620-8a67-11df-a4ee-0800200c9a66&quot;</span>; <span style="color: #008080; font-style: italic;">// Demo key. To use other channels than the one in this demo, request an API key at kwwika.com </span>
<span style="color: #FF0000;">string</span> domain <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;gergelyorosz.com&quot;</span>; <span style="color: #008080; font-style: italic;">// Your application domain</span>
Kwwika.<span style="color: #0000FF;">Service</span>.<span style="color: #0000FF;">ConnectionCreated</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> Kwwika.<span style="color: #0000FF;">ConnectionCreatedEventHandler</span><span style="color: #000000;">&#40;</span>Service_ConnectionCreated<span style="color: #000000;">&#41;</span>;
Kwwika.<span style="color: #0000FF;">Service</span>.<span style="color: #0000FF;">Connect</span><span style="color: #000000;">&#40;</span>apiKey, domain<span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>During initialization a callback method has to be provided that&#8217;s called once the connection is ready.</p>
<h4>2. Subscribing to a stream</h4>
<p>Subscribing for a stream (in this case the uncategorized World Cup Tweets) is as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> partial <span style="color: #FF0000;">class</span> MainPage <span style="color: #008000;">:</span> UserControl, Kwwika.<span style="color: #0000FF;">ISubscriptionListener</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">private</span> Kwwika.<span style="color: #0000FF;">IConnection</span> _kwwikaConnection;
&nbsp;
    <span style="color: #008080; font-style: italic;">/// </span>
    <span style="color: #008080; font-style: italic;">/// Called when thte Kwwika connection has been initialized</span>
    <span style="color: #008080; font-style: italic;">/// </span>
    <span style="color: #0600FF;">void</span> Service_ConnectionCreated<span style="color: #000000;">&#40;</span>Kwwika.<span style="color: #0000FF;">ConnectionCreatedEventArgs</span> e<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        _kwwikaConnection <span style="color: #008000;">=</span> e.<span style="color: #0000FF;">Connection</span>;
        <span style="color: #008080; font-style: italic;">// Subscribe to the topic to be pushed: for now let's choose the World Cup &quot;Other&quot; topic</span>
        _kwwikaConnection.<span style="color: #0000FF;">Subscribe</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;/KWWIKA/TWITTER/SEARCHES/WC2010/OTHER&quot;</span>, <span style="color: #0600FF;">this</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>A Kwwika.ISubscriptionListener type object can subscribe to a  channel through the connenction object. For the simplicity of the code I&#8217;ve made the MainPage UserControl implement the ISubscriptionListener interface and have subscribe to the channel.</p>
<h4>3. Handling incoming tweets</h4>
<p>After having subscribed, the ISubscriptionListener objects two methods, TopicUpdated and TopicError methods get called whenever a message has arrived. The code for this is as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;">    <span style="color: #008080; font-style: italic;">/// </span>
    <span style="color: #008080; font-style: italic;">/// Kwwika.ISubscriptionListener implementation: called when new data has been pushed</span>
    <span style="color: #008080; font-style: italic;">/// </span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> TopicUpdated<span style="color: #000000;">&#40;</span>Kwwika.<span style="color: #0000FF;">ISubscription</span> sub, Dictionary values, <span style="color: #FF0000;">bool</span> isImage<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">// If a new result comes in, parse it and insert it!</span>
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>values.<span style="color: #0000FF;">ContainsKey</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Text&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            var message <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TwitterMessage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                Text <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Text&quot;</span><span style="color: #000000;">&#93;</span>,
                ScreenName <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;ScreenName&quot;</span><span style="color: #000000;">&#93;</span>,
                CreatedAt <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;CreatedAt&quot;</span><span style="color: #000000;">&#93;</span>,
                UserFollowersCount <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;UserFollowersCount&quot;</span><span style="color: #000000;">&#93;</span>,
                Id <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Id&quot;</span><span style="color: #000000;">&#93;</span>,
                UserProfileImage <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Uri<span style="color: #000000;">&#40;</span>values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;UserProfileImageUrl&quot;</span><span style="color: #000000;">&#93;</span>, UriKind.<span style="color: #0000FF;">Absolute</span><span style="color: #000000;">&#41;</span>,
            <span style="color: #000000;">&#125;</span>;
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Dispatcher</span>.<span style="color: #0000FF;">BeginInvoke</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> Action<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&amp;</span>gt; <span style="color: #000000;">&#123;</span> _twitterMessages.<span style="color: #0000FF;">Insert</span><span style="color: #000000;">&#40;</span>0, message<span style="color: #000000;">&#41;</span>; <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// </span>
    <span style="color: #008080; font-style: italic;">/// Kwwika.ISubscriptionListener implementation: called when an error occured during pushing the data</span>
    <span style="color: #008080; font-style: italic;">/// </span>
    <span style="color: #008080; font-style: italic;">///</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">///</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> TopicError<span style="color: #000000;">&#40;</span>Kwwika.<span style="color: #0000FF;">ISubscription</span> sub, Kwwika.<span style="color: #0000FF;">CommandErrorType</span> error<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">// TODO: handle if an error occurs during the streaming</span>
    <span style="color: #000000;">&#125;</span></pre></div></div>

<h4>Streaming World Cup Tweets: the Complete Source Code</h4>
<p>After taking care of creating a connection, subscribing to it and handling message updates, all that&#8217;s left is updating the UI. This I&#8217;ve done using a ListBox that has an ObservableCollection of twitter messages bound to it. The source of the backend is as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.Generic</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Linq</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Net</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Controls</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Documents</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Input</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Media</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Media.Animation</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Shapes</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.ObjectModel</span>;
&nbsp;
<span style="color: #0600FF;">namespace</span> TwitterPushSearch
<span style="color: #000000;">&#123;</span>
<span style="color: #0600FF;">public</span> partial <span style="color: #FF0000;">class</span> MainPage <span style="color: #008000;">:</span> UserControl, Kwwika.<span style="color: #0000FF;">ISubscriptionListener</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Collection of twitter messages </span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #0600FF;">private</span> ObservableCollection<span style="color: #008000;">&lt;</span>TwitterMessage<span style="color: #008000;">&gt;</span> _twitterMessages <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> ObservableCollection<span style="color: #008000;">&lt;</span>TwitterMessage<span style="color: #008000;">&gt;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0600FF;">private</span> Kwwika.<span style="color: #0000FF;">IConnection</span> _kwwikaConnection;
&nbsp;
    <span style="color: #0600FF;">public</span> MainPage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        InitializeComponent<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
        _twitterMessages.<span style="color: #0000FF;">CollectionChanged</span> <span style="color: #008000;">+=</span> <span style="color: #000000;">&#40;</span>e, s<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span> <span style="color: #000000;">&#123;</span> TwitterMessages.<span style="color: #0000FF;">UpdateLayout</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>; <span style="color: #000000;">&#125;</span>;
        TwitterMessages.<span style="color: #0000FF;">ItemsSource</span> <span style="color: #008000;">=</span> _twitterMessages;
&nbsp;
        <span style="color: #008080; font-style: italic;">// Init the push connection</span>
        <span style="color: #FF0000;">string</span> apiKey <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;7d476620-8a67-11df-a4ee-0800200c9a66&quot;</span>; <span style="color: #008080; font-style: italic;">// Demo key. To use other channels than the one in this demo, request an API key at kwwika.com </span>
        <span style="color: #FF0000;">string</span> domain <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;gergelyorosz.com&quot;</span>; <span style="color: #008080; font-style: italic;">// Your application domain</span>
        Kwwika.<span style="color: #0000FF;">Service</span>.<span style="color: #0000FF;">ConnectionCreated</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> Kwwika.<span style="color: #0000FF;">ConnectionCreatedEventHandler</span><span style="color: #000000;">&#40;</span>Service_ConnectionCreated<span style="color: #000000;">&#41;</span>;
        Kwwika.<span style="color: #0000FF;">Service</span>.<span style="color: #0000FF;">Connect</span><span style="color: #000000;">&#40;</span>apiKey, domain<span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Called when thte Kwwika connection has been initialized</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #0600FF;">void</span> Service_ConnectionCreated<span style="color: #000000;">&#40;</span>Kwwika.<span style="color: #0000FF;">ConnectionCreatedEventArgs</span> e<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        _kwwikaConnection <span style="color: #008000;">=</span> e.<span style="color: #0000FF;">Connection</span>;
        <span style="color: #008080; font-style: italic;">// Subscribe to the topic to be pushed: for now let's choose the World Cup &quot;Other&quot; topic</span>
        _kwwikaConnection.<span style="color: #0000FF;">Subscribe</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;/KWWIKA/TWITTER/SEARCHES/WC2010/OTHER&quot;</span>, <span style="color: #0600FF;">this</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Kwwika.ISubscriptionListener implementation: called when new data has been pushed</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> TopicUpdated<span style="color: #000000;">&#40;</span>Kwwika.<span style="color: #0000FF;">ISubscription</span> sub, Dictionary<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">string</span>, <span style="color: #FF0000;">string</span><span style="color: #008000;">&gt;</span> values, <span style="color: #FF0000;">bool</span> isImage<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">// If a new result comes in, parse it and insert it!</span>
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>values.<span style="color: #0000FF;">ContainsKey</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Text&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            var message <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TwitterMessage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                Text <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Text&quot;</span><span style="color: #000000;">&#93;</span>,
                ScreenName <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;ScreenName&quot;</span><span style="color: #000000;">&#93;</span>,
                CreatedAt <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;CreatedAt&quot;</span><span style="color: #000000;">&#93;</span>,
                UserFollowersCount <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;UserFollowersCount&quot;</span><span style="color: #000000;">&#93;</span>,                   
                Id <span style="color: #008000;">=</span> values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Id&quot;</span><span style="color: #000000;">&#93;</span>,
                UserProfileImage <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Uri<span style="color: #000000;">&#40;</span>values<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;UserProfileImageUrl&quot;</span><span style="color: #000000;">&#93;</span>, UriKind.<span style="color: #0000FF;">Absolute</span><span style="color: #000000;">&#41;</span>,
            <span style="color: #000000;">&#125;</span>;
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Dispatcher</span>.<span style="color: #0000FF;">BeginInvoke</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> Action<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span> <span style="color: #000000;">&#123;</span> _twitterMessages.<span style="color: #0000FF;">Insert</span><span style="color: #000000;">&#40;</span>0, message<span style="color: #000000;">&#41;</span>; <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Kwwika.ISubscriptionListener implementation: called when an error occured during pushing the data</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;sub&quot;&gt;&lt;/param&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;error&quot;&gt;&lt;/param&gt;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> TopicError<span style="color: #000000;">&#40;</span>Kwwika.<span style="color: #0000FF;">ISubscription</span> sub, Kwwika.<span style="color: #0000FF;">CommandErrorType</span> error<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">// TODO: handle if an error occurs during the streaming</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> TwitterMessage
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Text <span style="color: #000000;">&#123;</span> get; set; <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> ScreenName <span style="color: #000000;">&#123;</span> get; set; <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> CreatedAt <span style="color: #000000;">&#123;</span> get; set; <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> UserFollowersCount <span style="color: #000000;">&#123;</span> get; set; <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Id <span style="color: #000000;">&#123;</span> get; set; <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> Uri UserProfileImage <span style="color: #000000;">&#123;</span> get; set; <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The code for the XAML:</p>

<div class="wp_syntax"><div class="code"><pre class="xml xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;UserControl</span> <span style="color: #000066;">x:Class</span>=<span style="color: #ff0000;">&quot;TwitterPushSearch.MainPage&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">xmlns:x</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">xmlns:d</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/expression/blend/2008&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">xmlns:mc</span>=<span style="color: #ff0000;">&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">mc:Ignorable</span>=<span style="color: #ff0000;">&quot;d&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">d:DesignHeight</span>=<span style="color: #ff0000;">&quot;300&quot;</span> <span style="color: #000066;">d:DesignWidth</span>=<span style="color: #ff0000;">&quot;400&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;LayoutRoot&quot;</span> <span style="color: #000066;">Background</span>=<span style="color: #ff0000;">&quot;White&quot;</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Vertical&quot;</span>  <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;400&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">FontWeight</span>=<span style="color: #ff0000;">&quot;Bold&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>The latest World Cup tweets:<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TextBlock<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollViewer</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;400&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ListBox</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;TwitterMessages&quot;</span> <span style="color: #000066;">BorderThickness</span>=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ListBox</span>.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Border</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;MessageBorder&quot;</span> <span style="color: #000066;">BorderThickness</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">BorderBrush</span>=<span style="color: #ff0000;">&quot;Gray&quot;</span> <span style="color: #000066;">Padding</span>=<span style="color: #ff0000;">&quot;5,5,5,5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Vertical&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;350&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;0,0,0,10&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Horizontal&quot;</span> <span style="color: #000066;">HorizontalAlignment</span>=<span style="color: #ff0000;">&quot;Left&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Border</span> <span style="color: #000066;">BorderThickness</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">BorderBrush</span>=<span style="color: #ff0000;">&quot;Gray&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;5,5,5,5&quot;</span> <span style="color: #000066;">VerticalAlignment</span>=<span style="color: #ff0000;">&quot;Top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Image</span> <span style="color: #000066;">Source</span>=<span style="color: #ff0000;">&quot;{Binding UserProfileImage}&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;48&quot;</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;48&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Border<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding Text}&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;210&quot;</span> <span style="color: #000066;">TextWrapping</span>=<span style="color: #ff0000;">&quot;Wrap&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;0,5,5,5&quot;</span> <span style="color: #000066;">VerticalAlignment</span>=<span style="color: #ff0000;">&quot;Top&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Horizontal&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;HyperlinkButton</span> <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;{Binding ScreenName}&quot;</span> <span style="color: #000066;">NavigateUri</span>=<span style="color: #ff0000;">&quot;{Binding TwitterUserUrl}&quot;</span> <span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">&quot;_blank&quot;</span> <span style="color: #000066;">FontWeight</span>=<span style="color: #ff0000;">&quot;Bold&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;60,0,0,0&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;5,0,0,0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> at<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TextBlock<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding CreatedAtText}&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;5,0,0,0&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Border<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ListBox</span>.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span>            
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ListBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollViewer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/UserControl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>The source for the complete application can be downloaded here: <a href="http://gregdoesit.com/wp-content/uploads/2010/07/twitterpushsearch-vs2010.zip">Twitter Push Client.zip</a>.</p>
<h3>Streaming Real-Time Data: Not Just World Cup Tweets, Not Just Tweets</h3>
<p><a href="http://kwwika.com" target="_blank">Kwwika</a>, the third party service I&#8217;ve used in this application is of course not limited to streaming only World Cup tweets, what&#8217;s more, not even limited to just tweets. They provide a service allowing distribution of any data real-time on <a href="http://wiki.kwwika.com/api" target="_blank">numerous platforms</a>: may that be tweets on a specific topic, chat messages, breaking news or any other real-time usage.</p>
<p>If you&#8217;re interested, feel free to contact them on usage terms, pricing and feature requests: I&#8217;ve found them to be extremely helpful and responsive.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/07/streaming-world-cup-tweets-in-silverlight-with-a-few-lines-of-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>World Cup 2010 Real Time Twitter Mashup</title>
		<link>http://gregdoesit.com/2010/07/world-cup-2010-real-time-twitter-mashup/</link>
		<comments>http://gregdoesit.com/2010/07/world-cup-2010-real-time-twitter-mashup/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 22:23:27 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[competition]]></category>

		<category><![CDATA[Kwwika]]></category>

		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=508</guid>
		<description><![CDATA[This World Cup has been exciting for me not just because of the great games but also because during the group stages I&#8217;ve been building a cool real time spectator monitoring application for it: Tweet For Your Team (powered by Kwwika real time data services).
What does it do?
The application streams tweets live from the two [...]]]></description>
			<content:encoded><![CDATA[<p>This World Cup has been exciting for me not just because of the great games but also because during the group stages I&#8217;ve been building a cool real time spectator monitoring application for it: <a href="http://tweetforyourteam.com">Tweet For Your Team</a> (powered by <a href="http://kwwika.com" target="_blank">Kwwika </a>real time data services).</p>
<h3>What does it do?</h3>
<p>The application <strong>streams tweets live</strong> from the two teams playing live or playing the next game (using the Kwwika service). It also shows the <strong>live score</strong> on the top (provided by <a href="http://optasports.com" target="_blank">Opta</a>), so even if you&#8217;re not in front of a telly, you can be aware of it. Now, for the fun part&#8230;</p>
<p style="text-align: center;"><img class="size-full wp-image-510 aligncenter" title="tweetintensity" src="http://gregdoesit.com/wp-content/uploads/2010/07/tweetintensity.jpg" alt="tweetintensity" width="470" height="134" /></p>
<p>The app monitors the <strong>tweet intensity</strong>, that is the number of tweets per minute for each side. Hours before the game this value is typically around 5-10/minute, right before the game it&#8217;s usually at least 300/minute and from there it pretty well reflects how nerve wracking the game is. The highest number I&#8217;ve experienced up to the semi finals. was around 3500/minute for Spain, when they shot - and missed - the second penalty against Paraguay in the quarter finals.</p>
<p><img class="aligncenter size-full wp-image-511" title="tweetmood" src="http://gregdoesit.com/wp-content/uploads/2010/07/tweetmood.jpg" alt="tweetmood" width="470" height="149" /></p>
<p>Tweet intensity is an interesting indicator, but an even more useful one is the <strong>mood meter</strong>. The application tries to evaluate the mood of each tweet coming in and decide whether it is more of a positive message (&#8221;yaaay!!&#8221;) or a negative one (&#8221;boooo!&#8221;). The tweets are colored according to this: red ones mean negative, green ones positive and yellow is neutral (or at least the application couldn&#8217;t decide).</p>
<p>Tweet intensity tends to pretty well reflect on the game: usually when a team is scored a goal it tends to go down&#8230; though it&#8217;s hard to predict by how much - sometimes the fans just keep sending positive messages to the team even after their team has gotten behind!<br />
<span id="more-508"></span></p>
<p><img class="aligncenter size-full wp-image-512" title="updatespeed" src="http://gregdoesit.com/wp-content/uploads/2010/07/updatespeed.jpg" alt="updatespeed" width="470" height="106" /></p>
<p>As mentioned before the application streams data in real time. When a game is on this literally means thousands of updates per second on the screen which is enough to make anyone dizzy after a few minutes. Because of this only<strong> turn the update speed up to real time</strong> if you&#8217;re ready for it! </p>
<p><strong>Update:</strong> the application has been extended with new functionality. See <a href="http://gregdoesit.com/2010/07/cheer-for-your-team-with-a-click-on-tweetforyourteamcom/">this post</a> on the new features.</p>
<p>The following video shows the application working during the Argentina-Germany semi-final:<br />
<object width="640" height="385" data="http://www.youtube.com/v/Q4izM_WLFX0&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Q4izM_WLFX0&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<h3>How Does It Work?</h3>
<p>The application does not poll the Twitter API directly, instead, it uses <a href="http://kwwika.com" target="_blank">Kwwika</a>, a newly launched real-time data delivery service. <strong>Kwwika takes care of gathering the data</strong> real time and streams it directly to the client application. Real-time match data is streamed by <a href="http://optasports.com" target="_blank">Opta live sports data</a> through the  Kwwika service as well.</p>
<p>The application is built in <strong>Silverlight</strong>. I could have chosen HTML5 + Javascript implementation as well as Kwwika provides a JSON API. However having experienced the update speed it&#8217;s safe to say that Silverlight was a good choice performance wise: it took some tweaking to be able to seamlessly visualize up to 50 updates per second on the screen.</p>
<h3>Can I see it?</h3>
<p>Visit <a href="http://tweetforyourteam.com">Tweet For Your Team</a> to try out the application. Since this is a live service, you&#8217;ll see the most action if you go right before or during the games - be sure to check it out during the semi-finals and the finals of the World Cup!</p>
<p>The application was originally built for the <a href="http://wiki.kwwika.com/competitions/world-cup-2010-real-time-push-web-app-competition" target="_blank">Kwwika World Cup 2010 Real-Time Push Web App competition</a> sponsored by <a href="http://tellylinks.com" target="_blank">TellyLinks.com</a> - wish me luck so that it will succeed there!</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/07/world-cup-2010-real-time-twitter-mashup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Printing in Silverlight: Printing Charts and Auto Scaling</title>
		<link>http://gregdoesit.com/2010/05/printing-in-silverlight-printing-charts-and-auto-scaling/</link>
		<comments>http://gregdoesit.com/2010/05/printing-in-silverlight-printing-charts-and-auto-scaling/#comments</comments>
		<pubDate>Fri, 07 May 2010 16:57:14 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[charts]]></category>

		<category><![CDATA[code snipplet]]></category>

		<category><![CDATA[printing]]></category>

		<category><![CDATA[Silverlight Toolkit]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=499</guid>
		<description><![CDATA[Printing support has been introduced in Silverlight 4. This means that any part of the visual tree can be printed with some simple API calls (see the Printing Basics section on my Advanced Printing in Silverlight post). This post provides an example to print charts and looks at how elements can be auto scaled to [...]]]></description>
			<content:encoded><![CDATA[<p>Printing support has been introduced in Silverlight 4. This means that any part of the visual tree can be printed with some simple API calls (see the Printing Basics section on my <a href="http://www.scottlogic.co.uk/blog/gergely/2010/05/advanced-printing-in-silverlight-printing-charts-and-auto-scaling/">Advanced Printing in Silverlight post</a>). This post provides an example to print charts and looks at how elements can be auto scaled to fit the page size.</p>
<h3>Printing a chart</h3>
<p>There are lots of examples on blogs demonstrating printing on simple elements. However I wanted to test how the printing functionality performs when working with charts.</p>
<p>I chose to use the most widespread (and free) charting component, the Silverlight Toolkit. In my example I&#8217;ve created four charts and added printing support to all of them like this:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;">Chart chartToPrint; <span style="color: #008080; font-style: italic;">// The element to be printed</span>
PrintDocument doc <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> PrintDocument<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>; <span style="color: #008080; font-style: italic;">// Create the PrintDocument  object that will do the printing</span>
doc.<span style="color: #0000FF;">PrintPage</span> <span style="color: #008000;">+=</span> <span style="color: #000000;">&#40;</span>s, args<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span>
<span style="color: #000000;">&#123;</span>
  <span style="color: #008080; font-style: italic;">// Set the chart that needs to be printed.</span>
  <span style="color: #008080; font-style: italic;">// As soon as this is set, printing starts</span>
  args.<span style="color: #0000FF;">PageVisual</span> <span style="color: #008000;">=</span> chartToPrint;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>In the example the whole page can be printed as well by clicking on the <em>Print whole page</em> button. In this case the LayoutRoot element is passed as the PageVisual. Test the example yourself:<br />
<span id="more-499"></span><br />
<object type="application/x-silverlight-2" data="data:application/x-silverlight,"  width="700" height="550"><param name="source" value="http://gregdoesit.com/wp-content/uploads/2010/05/printingexamplesmall.xap"/></object>  </p>
<h3>Auto scale the charts to fit the page</h3>
<p>Printing worked good, however when printing a page the chart kept it&#8217;s original size which was only fraction of the page. I was looking for a way to increase the size of the printed chart to fill out the printed page.</p>
<p>The solution consisted of two steps. First, the Width and Height of the chart had to be set to the PrintableArea.Width and PrintableArea.Height value within the PrintPage event of the PrintDocument. Second, the effects of changing the chart size don&#8217;t take effect immediately and I only want to start printing once the chart has been resized. So I&#8217;ve registered the SizeChanged event of the chart to update the PageVisual of the printed page once the chart has been resized.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;">doc.<span style="color: #0000FF;">PrintPage</span> <span style="color: #008000;">+=</span> <span style="color: #000000;">&#40;</span>s, args<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span>
<span style="color: #000000;">&#123;</span>
    elementToPrint.<span style="color: #0000FF;">Width</span> <span style="color: #008000;">=</span> args.<span style="color: #0000FF;">PrintableArea</span>.<span style="color: #0000FF;">Width</span>;
    elementToPrint.<span style="color: #0000FF;">Height</span><span style="color: #008000;">=</span> args.<span style="color: #0000FF;">PrintableArea</span>.<span style="color: #0000FF;">Height</span>;
    <span style="color: #008080; font-style: italic;">// Printing only starts when args.PageVisual != null</span>
    <span style="color: #008080; font-style: italic;">// Only set args.PageVisual to elementToPrint once its size has been updated</span>
    elementToPrint.<span style="color: #0000FF;">SizeChanged</span> <span style="color: #008000;">+=</span> <span style="color: #000000;">&#40;</span>s1, args1<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span>
    <span style="color: #000000;">&#123;</span>
       args.<span style="color: #0000FF;">PageVisual</span> <span style="color: #008000;">=</span> elementToPrint;
     <span style="color: #000000;">&#125;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>(For a bit more detail on this step see the Auto scaling charts to fit the page section <a href="http://www.scottlogic.co.uk/blog/gergely/2010/05/advanced-printing-in-silverlight-printing-charts-and-auto-scaling/#more-127">here</a>)</p>
<p>I&#8217;ve created a new example that now supports printing without changing size and printing that auto scales the charts to match page size:</p>
<p><object type="application/x-silverlight-2" data="data:application/x-silverlight,"  width="700" height="550"><param name="source" value="http://gregdoesit.com/wp-content/uploads/2010/05/printingexample.xap"/></object>  </p>
<p>The source of this application can be downloaded from here: <a href="http://www.scottlogic.co.uk/blog/gergely/wp-content/uploads/2010/05/PrintingExample.zip">PrintingExample.zip</a>.</p>
<p>For more detailed information on printing events and some more thoughts on auto scaling and multi page printing read my blog post <a href="http://www.scottlogic.co.uk/blog/gergely/2010/05/advanced-printing-in-silverlight-printing-charts-and-auto-scaling/#more-127">Advanced Printing in Silverlight: Printing Charts and Auto Scaling</a> on my <a href="http://www.scottlogic.co.uk/blog/gergely/">Scott Logic blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/05/printing-in-silverlight-printing-charts-and-auto-scaling/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Silverlight 4 still displays large elements incorrectly</title>
		<link>http://gregdoesit.com/2010/04/silverlight-still-displays-large-elements-incorrectly/</link>
		<comments>http://gregdoesit.com/2010/04/silverlight-still-displays-large-elements-incorrectly/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 15:47:04 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[bug]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=480</guid>
		<description><![CDATA[I&#8217;ve ran into the issue of Silverlight displaying large elements incorrectly in version 3. After reporting the issue on the official Silverlight forums it&#8217;s turned out that it&#8217;s a known issue that Silverlight renders elements larger than 32K incorrectly.
After Silverlight 4 released I was hoping that this issue is fixed. However, I was disappointed to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve <a href="http://gregdoesit.com/2009/11/silverlight-bug-when-drawing-large-paths/">ran into</a> the issue of Silverlight displaying large elements incorrectly in version 3. After <a href="http://forums.silverlight.net/forums/p/141911/404366.aspx">reporting the issue</a> on the official Silverlight forums it&#8217;s turned out that it&#8217;s a known issue that Silverlight renders elements larger than 32K incorrectly.</p>
<p>After Silverlight 4 released I was hoping that this issue is fixed. However, I was disappointed to see that it still exists. My problem with this bug is that I&#8217;m working on a charting application that supports zooming. The easiest way to do this applying RenderTransforms and ScaleTransforms to the elements plotted. However due to this bug zooming is limited until the zoomed element size is 32K - this sets a practical limit of about 70-150x zoom (based on the original element size) which in my case is a serious limitation.<br />
<span id="more-480"></span></p>
<p>To experience the bug, here is an application that reproduces it. Enter 66000 into the square size field to experience the original green element being incorrectly displayed.</p>
<p><object width="450" height="500" data="data:application/x-silverlight-2," type="application/x-silverlight-2" ><param name="source" value="http://gregdoesit.com/wp-content/uploads/2010/04/slpathdrawingbug3.xap"/></object></p>
<p>The source of the example can be downloaded from here: <a href='http://gregdoesit.com/wp-content/uploads/2010/04/slpathdrawingbug.zip'>SilverlightLargePathsDrawingBug.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/04/silverlight-still-displays-large-elements-incorrectly/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Detecting Silverlight Version Installed</title>
		<link>http://gregdoesit.com/2010/04/detecting-silverlight-version-installed/</link>
		<comments>http://gregdoesit.com/2010/04/detecting-silverlight-version-installed/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 11:40:26 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[code snipplet]]></category>

		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=464</guid>
		<description><![CDATA[Detecting the Silverlight version installed on a client machine isn&#8217;t entirely straightforward. To do so, one has to use Javascript. Unfortunately even though Microsoft ships a Silverlight.js in the Silverlight SDK, this script only has the ability to tell whether a specific version is supported on the client&#8217;s machine; it does not support returning the [...]]]></description>
			<content:encoded><![CDATA[<p>Detecting the Silverlight version installed on a client machine isn&#8217;t entirely straightforward. To do so, one has to use Javascript. Unfortunately even though Microsoft ships a <a href="http://code.msdn.microsoft.com/silverlightjs">Silverlight.js</a> in the Silverlight SDK, this script only has the ability to tell whether a specific version is supported on the client&#8217;s machine; it does not support returning the installed version.</p>
<p>For this reason I have created a simple Javascript function returning the Silverlight version number installed on the client machine or returning -1 if Silverlight is not installed. The source code can be downloaded from here:<br />
<a href='http://gregdoesit.com/wp-content/uploads/2010/04/silverlightversion.js'>SilverlightVersion.js</a><br />
The script can be used the following way:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> slVersion <span style="color: #339933;">=</span> GetSilverlightVersion<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>slVersion <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>
   document.<span style="color: #660066;">writeln</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Your Silverlight version is: &lt;strong&gt;&quot;</span> <span style="color: #339933;">+</span>slVersion <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/strong&gt;&quot;</span> <span style="color: #009900;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">else</span>
   document.<span style="color: #660066;">writeln</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;strong&gt;Your do not have Silverlight installed on this computer&lt;/strong&gt;&quot;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>And this is the script in action:<br />
<script src="http://gregdoesit.com/wp-content/uploads/2010/04/silverlightversion.js"></script><br />
<script src='http://gregdoesit.com/wp-content/uploads/2010/04/slversioninaction.js'></script></p>
<p>If you&#8217;re interested in how the script actually works and what the Silverlight version numbers mean, read the post on my ScottLogic blog: <a href="http://www.scottlogic.co.uk/blog/gergely/2010/04/determining-silverlight-version-installed/">Determining Silverlight Version Installed - source code &#038; explanation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/04/detecting-silverlight-version-installed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Invited to the Kairos Society Global Summit!</title>
		<link>http://gregdoesit.com/2010/04/invited-to-the-kairos-society-global-summit/</link>
		<comments>http://gregdoesit.com/2010/04/invited-to-the-kairos-society-global-summit/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 11:04:24 +0000</pubDate>
		<dc:creator>Gergely Orosz</dc:creator>
		
		<category><![CDATA[Awards]]></category>

		<category><![CDATA[Kairos Society]]></category>

		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://gregdoesit.com/?p=445</guid>
		<description><![CDATA[It has been a great honour that I a month and a half ago I have been invited to become a member of the Kairos Society and also attend their annual summit mid April this year.

Kairos Society is an invite-only foundation aimed to unite the world&#8217;s brightest young minds. Each year they hold a global [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a great honour that I a month and a half ago I have been invited to become a member of the <a href="http://www.kairossociety.com/">Kairos Society</a> and also attend their annual summit mid April this year.</p>
<p><img class="alignright size-full wp-image-453" style="float:right" title="kairossociety" src="http://gregdoesit.com/wp-content/uploads/2010/04/kairossociety.jpg" alt="kairossociety" width="176" height="246" /></p>
<p>Kairos Society is an invite-only foundation aimed to unite the world&#8217;s brightest young minds. Each year they hold a global summit where some of the most influential leaders are brought together with a select group of the world&#8217;s most innovative and entrepreneurial students. As part of the summit the 100 most innovative student projects are exhibited - I&#8217;ll also be one of the exhibitors as participant in the <a href="http://gw.distinction.hu">Green Watering Project</a>.<br />
<span id="more-445"></span></p>
<p>I have been invited to this year&#8217;s summit based on the Green Watering project I&#8217;ve played marginal role in developing. The project is an integrated hardware and software solution aimed to dramatically reduce the amount of water used for irrigation. The project has received numerous awards so far including worldwide <a href="http://gregdoesit.com/2008/07/imagine-cup-worldwide-3rd-place-and-innovation-accelerator-award/">third place on the Microsoft Imagine Cup</a> (the world&#8217;s premier student technology competition) in Paris, 2008,  and <a href="http://gregdoesit.com/2009/05/first-place-on-the-innovation-accelerator-in-the-silicon-valley/">first prize on the Innovation Accelerator</a> in Silicon Valley, 2009.</p>
<p>I&#8217;m really excited about the summit - it psyched about exhibiting within the New York Stock Exchange, curious about the other projects and looking forward to networking with all the bright people!</p>
]]></content:encoded>
			<wfw:commentRss>http://gregdoesit.com/2010/04/invited-to-the-kairos-society-global-summit/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
