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

<channel>
	<title>MikeCann.co.uk &#187; C# - MikeCann.co.uk - mikey see, mikey do!</title>
	<atom:link href="http://mikecann.co.uk/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikecann.co.uk</link>
	<description>mikey see, mikey do!</description>
	<lastBuildDate>Sat, 28 Jan 2012 13:10:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Windows 7 Taskbar Performance Monitor v0.2</title>
		<link>http://mikecann.co.uk/personal-project/windows-7-taskbar-performance-monitor-v0-2/</link>
		<comments>http://mikecann.co.uk/personal-project/windows-7-taskbar-performance-monitor-v0-2/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 20:57:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Personal Projects]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Taskbar Monitor]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Taskbar]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://mikecann.co.uk/?p=1499</guid>
		<description><![CDATA[Been a long time since I have updated this little project of mine. Yep, just checked, its been almost a year since. Oddly enough this is one of my projects I actually use on a daily basis at home and work. Im not sure why I haven&#8217;t updated it since as there have been some rather gaping [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mikecann.co.uk/wp-content/uploads/2011/02/Shot_01.png"><img class="alignnone size-full wp-image-1500" title="Shot_01" src="http://mikecann.co.uk/wp-content/uploads/2011/02/Shot_01.png" alt="" width="700" height="310" /></a></p>
<p>Been a long time since I have updated this little project of mine. Yep, just checked, its <a href="http://mikecann.co.uk/personal-projects/windows-7-taskbar-monitor/">been almost a year </a>since.</p>
<p>Oddly enough this is one of my projects I actually use on a daily basis at home and work. Im not sure why I haven&#8217;t updated it since as there have been some rather gaping bugs in it which have been very annoying but apparently not annoying enough to encourage myself to fix them or to stop using it.</p>
<p>Anyways, I have finally decided to fix some of the most anoying issues namely:</p>
<ul>
<li>It no longer crashes when the network is lost</li>
<li>It now correctly reports the amount of physical memory used</li>
</ul>
<p>Theres no auto-updating feature built into the tool so if you are looking for the upgrade head over to the google code page to grab it: <a href="http://code.google.com/p/win7-taskbar-mon/downloads/list">http://code.google.com/p/win7-taskbar-mon/downloads/list</a></p>
<p>Wow! Just noticed that over 2000 people have downloaded the first version, didn&#8217;t think it was that popular!</p>
<p>Oh yes, I have also uploaded the latest source for this version: <a href="http://code.google.com/p/win7-taskbar-mon/source/checkout">http://code.google.com/p/win7-taskbar-mon/source/checkout</a></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/personal-project/windows-7-taskbar-performance-monitor-v0-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inputtie Development History &#8211; Networking</title>
		<link>http://mikecann.co.uk/uncategorized/inputtie-development-history-networking/</link>
		<comments>http://mikecann.co.uk/uncategorized/inputtie-development-history-networking/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 19:44:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Inputtie]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[broadcast]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jgroup]]></category>
		<category><![CDATA[jmdns]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[zero conf]]></category>

		<guid isPermaLink="false">http://mikecann.co.uk/?p=1382</guid>
		<description><![CDATA[This is part two in my series of posts on the development history of Inputtie. In this post I talk about the challenge of device discovery and networking in the Inputtie app. Zero Configure Networking I knew I wanted Inputtie to be as simple to get running as simply starting it up. For this to [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 13.0px 0.0px; line-height: 19.0px; font: 13.0px Georgia} p.p2 {margin: 0.0px 0.0px 16.0px 0.0px; line-height: 19.0px; font: 20.0px Georgia} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px Georgia; color: #0101ee; min-height: 15.0px} p.p4 {margin: 0.0px 0.0px 13.0px 0.0px; line-height: 19.0px; font: 13.0px Georgia; min-height: 15.0px} span.s1 {text-decoration: underline ; color: #0101ee} span.s2 {color: #0101ee} -->This is part two in my series of posts on the development history of <a href="http://www.inputtie.com/">Inputtie</a>.</p>
<p>In this post I talk about the challenge of device discovery and networking in the Inputtie app.</p>
<p><strong><a href="http://mikecann.co.uk/wp-content/uploads/2010/10/ScreenHunter_03-Oct.-09-13.59.jpg"><img class="alignleft size-full wp-image-1379" style="margin-left: 0px; margin-right: 5px;" title="ScreenHunter_03 Oct. 09 13.59" src="http://mikecann.co.uk/wp-content/uploads/2010/10/ScreenHunter_03-Oct.-09-13.59.jpg" alt="" width="152" height="148" /></a>Zero Configure Networking</strong></p>
<p>I knew I wanted Inputtie to be as simple to get running as simply starting it up. For this to happen Inputtie would need to discover all other devices on the network also running Inputtie. So how to do this?</p>
<p><a href="http://mikecann.co.uk/wp-content/uploads/2010/10/ScreenHunter_03-Oct.-09-13.59.jpg"></a></p>
<p>Well, as it happened I had been reading at the time about <a href="http://www.apple.com/support/bonjour/">Apple&#8217;s Bonjour</a> which was designed to do just what I needed. It is a combination of a multi-cast and DNS lookup service that allows it to detect other Bonjour capable devices on the network. Sounds perfect.</p>
<p>So I got to work on implementing their Java API. After many trials and tribulations I eventually had it working.. kinda. It was detecting other devices sure, but every now and then it would sporadically disconnect from the network. I couldn&#8217;t for the life of me work out why. I posted on forums and even tried to read the reams of source to see what was going on but alas to no avail.</p>
<p>After much deliberation I decided to look for another solution to the problem of Zero Conf. networking. Next up were a whole host of other attempts. I tried <a href="http://jmdns.sourceforge.net/">JmDNS </a>which is was supposedly very similar to Bonjour. I also experimented with <a href="http://www.jgroups.org/">JGroups</a>. I had limited success with all of them and in the end only really succeeded in wasting several months worth of development time.</p>
<p><strong>The Solution</strong></p>
<p>In the end the solution (and the one currently employed in Inputtie) was the simplest. After months of messing around with these libraries I had learnt quite abit about how they performed their magic. At the heart of it they either used multi-cast or broadcasting to announce a device on a network. Broadcasting can be thought of as a sort of sonar pulse. The broadcasting computer sends a message on a specific IP address then another device listens for the message and proceeds to open a Socket for a more private form of communication. From <a href="http://en.wikipedia.org/wiki/Broadcast_address">Wikipedia</a>:</p>
<blockquote><p>A broadcast address is a logical address at which all devices connected to a multiple-access communications network are enabled to receive datagrams. A message sent to a broadcast address is typically received by all network-attached hosts, rather than by a specific host.</p></blockquote>
<p>I decided that if these libraries could use broadcasting for discovery then so could I and if I wrote it myself I could keep it simple. So I set to work coding an example in Java. In no time at all I had it running and surprisingly it worked! Sure it wasnt as robust as the established libraries, it didn&#8217;t handle devices disconnecting from the network, different network subnets or IPv6 but it was simple and at least it worked!</p>
<p><strong>Broadcasting in Adobe AIR</strong></p>
<p>As I mentioned in <a href="http://mikecann.co.uk/inputtie/inputtie-history-the-beginning/">a previous post</a> Inputtie went through many re-writes during development from its original form in Java through C++, C Sharp and finally Adobe AIR. With the latest (it was still in beta when I started development) version of Adobe AIR 2.0 several new APIs were made available for use, one of them being new classes designed specifically for peer to peer (P2P) networking. With these new APIs I believed I should be able to implement network broadcasting much in the same was I was doing in Java. Unfortunately however it seemed that Adobe was restricting the use of broadcast to <a href="http://labs.adobe.com/technologies/cirrus/">their new P2P service Cirrus.</a></p>
<p>There was however another crucial API released with AIR 2.0; the NativeProcess API. With this a developer is able to easily execute and communicate with a program written in another language. What this meant for Inputtie was that I could write the user interface in AIR and then use NativeProcess to call Java code that would perform actions not available in AIR, such as Broadcasting. (incidentally it also is a great way to do multi-threading in Air <img src='http://mikecann.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p>So the current solution in Inputtie is to use NativeProcess from AIR to communicate with a small headless (no user-interface) Java process that does the broadcasting and listening for broadcasts. Once the Java process detects an incoming broadcast it passes the information back to AIR.</p>
<p><strong>EDIT:</strong> If anyone is interested in seeing the source to my previous (failed) attempt just drop me a comment or an email and I would be happy to share.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/uncategorized/inputtie-development-history-networking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows 7 Taskbar Monitor</title>
		<link>http://mikecann.co.uk/personal-projects/windows-7-taskbar-monitor/</link>
		<comments>http://mikecann.co.uk/personal-projects/windows-7-taskbar-monitor/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 22:26:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Personal Projects]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Taskbar]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.mikecann.co.uk/?p=949</guid>
		<description><![CDATA[Well this will learn me! A while back, I had an idea for a very simple application that would sit in your taskbar and give you at-a-glance performance info about your system, similar to iStat Pro for OSX. This weekend I finally had time to clean up the code up for release. The problem is that while looking for [...]]]></description>
			<content:encoded><![CDATA[<p>Well this will learn me!</p>
<p>A while back, I had an idea for a very simple application that would sit in your taskbar and give you at-a-glance performance info about your system, similar to<a href="http://www.islayer.com/apps/istatpro/"> iStat Pro for OSX</a>. This weekend I finally had time to clean up the code up for release.</p>
<p>The problem is that while looking for a couple of images for the app I happened to stumble across <a href="http://taskbarmeters.codeplex.com/">Taskbar Meters</a>, which is pretty much the exact same idea I had. Looks like he has made a better job out of it that me too <img src='http://mikecann.co.uk/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Ah well, I have decided to release my version of the app nonetheless:</p>
<p><a href="http://mikecann.co.uk/wp-content/uploads/2010/03/ScreenHunter_02-Mar.-14-21.45.gif"><img class="alignnone size-full wp-image-950" title="ScreenHunter_02 Mar. 14 21.45" src="http://mikecann.co.uk/wp-content/uploads/2010/03/ScreenHunter_02-Mar.-14-21.45.gif" alt="" width="254" height="420" /></a></p>
<p>You can open the app multiple times and set each one to monitor a different value:</p>
<p><a href="http://mikecann.co.uk/wp-content/uploads/2010/03/ScreenHunter_03-Mar.-14-21.46.gif"><img class="alignnone size-full wp-image-951" title="ScreenHunter_03 Mar. 14 21.46" src="http://mikecann.co.uk/wp-content/uploads/2010/03/ScreenHunter_03-Mar.-14-21.46.gif" alt="" width="502" height="47" /></a></p>
<p>I have also decided to post the source up on google code: <a href="http://code.google.com/p/win7-taskbar-mon/">http://code.google.com/p/win7-taskbar-mon/</a></p>
<p>Anyways you can grab version 0.1 here: <a href="http://win7-taskbar-mon.googlecode.com/files/Windows7_Taskbar_Monitor_v0.1.zip">http://win7-taskbar-mon.googlecode.com/files/Windows7_Taskbar_Monitor_v0.1.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/personal-projects/windows-7-taskbar-monitor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash Develop Plugin: Go To Definition</title>
		<link>http://mikecann.co.uk/personal-projects/flash-develop-plugin-go-to-definition/</link>
		<comments>http://mikecann.co.uk/personal-projects/flash-develop-plugin-go-to-definition/#comments</comments>
		<pubDate>Mon, 11 May 2009 18:08:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Personal Projects]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.mikecann.co.uk/?p=480</guid>
		<description><![CDATA[Go To Definition I love the Ctrl &#38; click feature in Eclipse/Netbeans and the Go To Definition feature in Visual Studio and have decided to implement them in Flash develop. After an evening or so of trying to write this myself I come accross the &#8220;ASComplete.DeclarationLookup()&#8221; method. To my great astonishment, this does exactly what [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Go To Definition</strong><br />
I love the Ctrl &amp; click feature in Eclipse/Netbeans and the Go To Definition feature in Visual Studio and have decided to implement them in <a href="http://www.flashdevelop.org/community/index.php">Flash develop</a>. After an evening or so of trying to write this myself I come accross the &#8220;ASComplete.DeclarationLookup()&#8221; method. To my great astonishment, this does exactly what I want. So thankyou to <a href="http://www.flashdevelop.org/community/memberlist.php?mode=viewprofile&amp;u=3">Philippe</a> or whoever wrote this method and did all the hardwork of the plugin for me <img src='http://mikecann.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Screenshot</strong></p>
<p><img class="alignnone" src="http://www.mikecann.co.uk/Files/GoToS01.png" alt="" width="450" height="600" /></p>
<p><strong>DLL</strong><br />
<a href="http://www.mikecann.co.uk/Files/GoToDefinition.dll">http://www.mikecann.co.uk/Files/GoToDefinition.dll</a></p>
<p><strong>Source</strong><br />
<a href="http://www.mikecann.co.uk/Files/GoToDefinition_source.zip">http://www.mikecann.co.uk/Files/GoToDefinition_source.zip</a></p>
<p><strong>Post</strong><br />
<a href="http://www.flashdevelop.org/community/viewtopic.php?f=4&amp;t=4722">http://www.flashdevelop.org/community/viewtopic.php?f=4&amp;t=4722</a></p>
<p><strong>EDIT:</strong><br />
It appears that the same functionality is built as standard into FD with the use of the F4 key. Oh well, you can still use this as a shortcut <img src='http://mikecann.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/personal-projects/flash-develop-plugin-go-to-definition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Highlight Selected Plugin, updated by David Hancock</title>
		<link>http://mikecann.co.uk/programming/highlight-selected-plugin-updated-by-david-hancock/</link>
		<comments>http://mikecann.co.uk/programming/highlight-selected-plugin-updated-by-david-hancock/#comments</comments>
		<pubDate>Mon, 04 May 2009 14:24:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.mikecann.co.uk/?p=471</guid>
		<description><![CDATA[This sort of things brings a big smile to my face; I got an excellent email yesterday from a chap named Dave Hancock asking my permission to post an update he had made to my Highlight Selected plugin. Its an excellent upgrade and brings some extra features that were lacking in my very basic version. [...]]]></description>
			<content:encoded><![CDATA[<p>This sort of things brings a big smile to my face; I got an excellent email yesterday from a chap named <a href="http://gonegothic.com/">Dave Hancock</a> asking my permission to post an update he had made to my <a href="http://www.mikecann.co.uk/?p=403">Highlight Selected</a> plugin.</p>
<p>Its an excellent upgrade and brings some extra features that were lacking in my very basic version.</p>
<p><strong>Copy / Paste of his update:</strong></p>
<p>Liked the plugin so much I decided to add a few features! Posting here with Mike&#8217;s permission.</p>
<p><strong>Screenshot</strong><br />
<img class="alignnone" src="http://gonegothic.com/files/flashdevelop/HighlightSelection/HighlightSelection01.jpg" alt="" width="560" height="306" /></p>
<p><strong>Updates</strong><br />
Added 4 plugin setting options:</p>
<p>Highlight Color (Choose a color for the highlight)<br />
Highlight Whole Words (Choose whether to highlight whole words only or include partial text)<br />
Match Case (Choose whether to match the case of the selection or not)<br />
Add Line Marker (Display a line marker next to highlighted text)</p>
<p>No longer highlights white-space characters</p>
<p><strong>Installation</strong><br />
+ Open FlashDevelop, Click Tools -&gt; Application Files<br />
+ Copy the DLL to the &#8220;Plugins&#8221; directory<br />
+ Restart FlashDevelop</p>
<p><strong>DLL</strong><br />
<a href="http://gonegothic.com/files/flashdevelop/HighlightSelection/HighlightSelection.dll">http://gonegothic.com/files/flashdevelo &#8230; ection.dll</a></p>
<p><strong>Source</strong><br />
<a href="http://gonegothic.com/files/flashdevelop/HighlightSelection/HighlightSelection.zip">http://gonegothic.com/files/flashdevelo &#8230; ection.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/programming/highlight-selected-plugin-updated-by-david-hancock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proof of Concept: TwittBot</title>
		<link>http://mikecann.co.uk/concepts/proof-of-concept-twittbot/</link>
		<comments>http://mikecann.co.uk/concepts/proof-of-concept-twittbot/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 18:49:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Bot]]></category>
		<category><![CDATA[Opensource]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.mikecann.co.uk/?p=446</guid>
		<description><![CDATA[Well for the last few evenings I have been working on this little proof of concept. One of my work colleague Ade (@6t8) came up with the idea &#8220;someone should make a game that you can play over twitter&#8221;. Well after abit of excitement and talk I decided to have a go at coding this [...]]]></description>
			<content:encoded><![CDATA[<p>Well for the last few evenings I have been working on this little proof of concept. One of my work colleague Ade (<a href="http://twitter.com/6t8">@6t8</a>) came up with the idea &#8220;someone should make a game that you can play over twitter&#8221;. Well after abit of excitement and talk I decided to have a go at coding this idea. Once I had started I realised that it could be possible to do alot more with this, so I decided to make the project a little more generic and turn it into a pluggable bot for automating twitter.</p>
<p>After a few evenings work however I decided that this project was going to take up a bit too much of my time, especially when I had so much other work to do. So I have decided to release what I have done and let other take it and develop it if they wish.</p>
<p>You login using a twitter account:</p>
<p><img class="alignnone size-full wp-image-447" title="1" src="http://mikecann.co.uk/wp-content/uploads/2009/04/1.gif" alt="1" width="600" height="398" /></p>
<p><span id="more-446"></span>Once logged in you are presented with the main interface, plugins are loaded automatically from the directory and displayed as tabs. The reason for doing them as plugins is to allow users to pick and choose what functionality they want their twittbot to have. Also it allows for easy upgrading to newer plugin versions.</p>
<p><img class="alignnone size-full wp-image-448" title="2" src="http://mikecann.co.uk/wp-content/uploads/2009/04/2.gif" alt="2" width="732" height="549" /></p>
<p>Hangman was the primary idea for this project and is implemented as a simple plugin that consists of 3 simple commands:</p>
<p><img class="alignnone size-full wp-image-449" title="3" src="http://mikecann.co.uk/wp-content/uploads/2009/04/3.gif" alt="3" width="654" height="492" /></p>
<p>I have built a simple polling timer for checking new messages from Twitter:</p>
<p><img class="alignnone size-full wp-image-450" title="4" src="http://mikecann.co.uk/wp-content/uploads/2009/04/4.gif" alt="4" width="669" height="426" /></p>
<p>The interface uses docking panels provided by the<a href="http://sourceforge.net/projects/dockpanelsuite/"> .NET DockPanel Suite</a>. Docking is demonstrated below with the log window:</p>
<p><img class="alignnone size-full wp-image-451" title="5" src="http://mikecann.co.uk/wp-content/uploads/2009/04/5.gif" alt="5" width="684" height="483" /></p>
<p>The next shot shows me sending a direct message to the &#8220;<a href="http://www.twitter.com/twittgames">twittgames</a>&#8221; account from my &#8220;<a href="http://www.twitter.com/mikeysee">mikeysee</a>&#8221; account:</p>
<p><img class="alignnone size-full wp-image-452" title="6" src="http://mikecann.co.uk/wp-content/uploads/2009/04/6.gif" alt="6" width="741" height="603" /></p>
<p>After refreshing, the Hangman plugin then shows the active game states:</p>
<p><img class="alignnone size-full wp-image-453" title="7" src="http://mikecann.co.uk/wp-content/uploads/2009/04/7.gif" alt="7" width="741" height="603" /></p>
<p>Then you play the game by making guesses:</p>
<p><img class="alignnone size-full wp-image-454" title="8" src="http://mikecann.co.uk/wp-content/uploads/2009/04/8.gif" alt="8" width="741" height="603" />A</p>
<p>And the plugin responds to your guesses:</p>
<p><img class="alignnone size-full wp-image-455" title="9" src="http://mikecann.co.uk/wp-content/uploads/2009/04/9.gif" alt="9" width="741" height="603" /></p>
<p>It is far from complete but as a proof of concept I think it demonstrates the idea. There are many things that could be improved and/or worked upon, such as:</p>
<ul>
<li>Implement async calls rather than halting the thread when making a call</li>
<li>Completing the Auto-follow plugin</li>
<li>Implementing a database to log previously handled messages</li>
<li>Enable back-messaging so you can search for previous messages and handle them</li>
<li>Implement an interface for loading/unloading plugins</li>
</ul>
<p>For the technology side of things, its was developed in C# .NET 3.5 using the excellent <a href="http://code.google.com/p/tweetsharp/">TweetSharp </a>library for interfacing with Twitter. Docking panel functionality is provided by <a href="http://sourceforge.net/projects/dockpanelsuite/">DockPanel Suite</a>.</p>
<p>You can grab the binary for this here: <a href="Files/TwitterBot.zip">TwitterBot.zip</a></p>
<p>Source code is available on request. Email: mike.cann@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/concepts/proof-of-concept-twittbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Killer space penguins!</title>
		<link>http://mikecann.co.uk/chainreaction/killer-space-penguins/</link>
		<comments>http://mikecann.co.uk/chainreaction/killer-space-penguins/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 16:11:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[ChainReaction]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.artificial-studios.co.uk/?p=156</guid>
		<description><![CDATA[Just to follow on from the previous post and to make it make a little more sense, here is a screenshot of the demo XNA space game i made in a day to show off my new particle engine SDK. Yup space penguins are attacking the earth!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mikecann.co.uk/Images/Others/spacepenguin.png"><img width="400" height="309" src="http://www.mikecann.co.uk/Images/Others/spacepenguin.png" alt="" /></a></p>
<p>Just to follow on from the previous post and to make it make a little more sense, here is a screenshot of the demo XNA space game i made in a day to show off my new particle engine SDK. </p>
<p>Yup space penguins are attacking the earth!</p>
]]></content:encoded>
			<wfw:commentRss>http://mikecann.co.uk/chainreaction/killer-space-penguins/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

