<?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>gabehabe &#187; Danny</title>
	<atom:link href="http://www.gabehabe.com/blog/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gabehabe.com/blog</link>
	<description>Tech stuff, and other things you might like.</description>
	<lastBuildDate>Fri, 09 Apr 2010 20:28:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Snippet Manager!</title>
		<link>http://www.gabehabe.com/blog/snippet-manager/</link>
		<comments>http://www.gabehabe.com/blog/snippet-manager/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 20:27:22 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[snippet manager]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/snippet-manager/</guid>
		<description><![CDATA[





So, I started this bloody ages ago and it kinda sorta got abandoned. :( BUT NOW IT&#8217;S BACK! And better than ever, with a plugin system which I just blogged about. :)
Unfortunately, it is still windows only. I will build it for Linux some day, I promise!
You can check it out here, I&#8217;m rather pleased [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Easy AdSense V2.77 --><br />
<!-- Post[count: 3] --></p>
<div class="ezAdsense adsense adsense-leadin" style="float:right;margin:0px; "><script type="text/javascript"><!--
google_ad_client = "pub-0964213421578175";
/* 234x60, created 10/13/09 */
google_ad_slot = "5914868016";
google_ad_width = 234;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>So, I started this bloody ages ago and it kinda sorta got abandoned. :( BUT NOW IT&#8217;S BACK! And better than ever, with a plugin system which I just blogged about. :)</p>
<p>Unfortunately, it is still windows only. I <strong>will</strong> build it for Linux some day, I promise!</p>
<p>You can check it out <a href='http://snip.gd' target='_blank'>here</a>, I&#8217;m rather pleased with it so far, even if the development is really really slow.</p>
<p><a href='http://snip.gd' target='_blank'><img src='http://snip.gd/img/screenshots/searching.png' alt='Free Snippet Manager Software Download' /></a></p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=176&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/snippet-manager/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>wxWidgets: Loading Symbols from a DLL (and using ::Connect)</title>
		<link>http://www.gabehabe.com/blog/wxwidgets-loading-symbols-from-a-dll-and-using-connect/</link>
		<comments>http://www.gabehabe.com/blog/wxwidgets-loading-symbols-from-a-dll-and-using-connect/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 20:20:08 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[wxWidgets]]></category>
		<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/wxwidgets-loading-symbols-from-a-dll-and-using-connect/</guid>
		<description><![CDATA[[Apologies if the entry is a little unclear, I just threw this together in about 10 minutes, I wanna get it out there... it's fucking hard to find any sort of information when it comes to this at the moment]
Quick entry, gonna turn this into a tutorial soon. The code is a bit of a [...]]]></description>
			<content:encoded><![CDATA[<p>[Apologies if the entry is a little unclear, I just threw this together in about 10 minutes, I wanna get it out there... it's fucking hard to find any sort of information when it comes to this at the moment]</p>
<p>Quick entry, gonna turn this into a tutorial soon. The code is a bit of a mess, since I was just throwing stuff together while I was figuring this out. I&#8217;ll tidy it up when it&#8217;s tutorial tiems.</p>
<p>Basically, I recently developed a [url=http://snip.gd/plugins.php]plugin system[/url] for my [url=http://snip.gd/]snippet manager[/url]. The way it works is simple: It loads symbols from a DLL into the application, which can be called from a dynamically created menu. First off, the main code [this is the messy bit for the time being]</p>
<p>This code opens a subdirectory within the working directory called &#8220;plugins&#8221;, and grabs all the DLLs from them. If the DLL contains a symbol called SnippetManagerPluginMain (the only required symbol for the plugins, I kept them simple) it will add it to the menu.</p>
<p>Additionally, it also checks for two optional optional symbols, which are pretty cool. They simply return strings, which assign the name and the keyboard shortcut for the plugin. If neither is set, it has no keyboard shortcut, and the name defaults to the name of the DLL file.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">    <span style="color: #666666;">/// &lt;plugin SYSTEM&gt; &lt;!-- ALPHA! --&gt;</span>
    <span style="color: #339900;">#if defined(__WXMSW__) // windows plugins - load ./plugins/*.dll</span>
    <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>wxDir<span style="color: #008080;">::</span><span style="color: #007788;">Exists</span><span style="color: #008000;">&#40;</span>wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;./plugins/&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        wxDir plugin_dir<span style="color: #008000;">&#40;</span>wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;./plugins/&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>plugin_dir.<span style="color: #007788;">HasFiles</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
            wxArrayString files<span style="color: #008080;">;</span>
            wxDir<span style="color: #008080;">::</span><span style="color: #007788;">GetAllFiles</span><span style="color: #008000;">&#40;</span>wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;./plugins/&quot;</span><span style="color: #008000;">&#41;</span>, <span style="color: #000040;">&amp;</span>files<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            wxMenu<span style="color: #000040;">*</span> plugin_menu <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> wxMenu<span style="color: #008000;">&#40;</span>wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            wxDynamicLibrary<span style="color: #000040;">*</span> lib<span style="color: #008080;">;</span>
            wxString label<span style="color: #008080;">;</span>
            <span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> ks<span style="color: #008080;">;</span>
            <span style="color: #0000ff;">bool</span> showmenu <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> files.<span style="color: #007788;">GetCount</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
                lib <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> wxDynamicLibrary<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>files.<span style="color: #007788;">Item</span><span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span>.<span style="color: #007788;">Find</span><span style="color: #008000;">&#40;</span>wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;.dll&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
                    lib<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Load<span style="color: #008000;">&#40;</span>files<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                    <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>lib<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>HasSymbol<span style="color: #008000;">&#40;</span>L<span style="color: #FF0000;">&quot;SnippetManagerPluginMain&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
                        showmenu <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
                        <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>lib<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>HasSymbol<span style="color: #008000;">&#40;</span>L<span style="color: #FF0000;">&quot;SnippetManagerPluginName&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
                            label <span style="color: #000080;">=</span> wxString<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>SnippetManagerPluginName<span style="color: #008000;">&#41;</span>lib<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>GetSymbol<span style="color: #008000;">&#40;</span>L<span style="color: #FF0000;">&quot;SnippetManagerPluginName&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, wxConvUTF8<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                        <span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #008000;">&#123;</span>
                            label <span style="color: #000080;">=</span> files<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">AfterFirst</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">'\<span style="color: #000099; font-weight: bold;">\'</span>).AfterFirst('</span>\\<span style="color: #FF0000;">').BeforeLast('</span>.<span style="color: #FF0000;">');
                        }
                        this-&gt;plugins.push_back((SnippetManagerPlugin)lib-&gt;GetSymbol(L&quot;SnippetManagerPluginMain&quot;));
&nbsp;
                        if(lib-&gt;HasSymbol(L&quot;SnippetManagerKeyboardShortcut&quot;)) {
                            ks = ((SnippetManagerKeyboardShortcut)lib-&gt;GetSymbol(L&quot;SnippetManagerKeyboardShortcut&quot;))();
                            label += L&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot; + wxString(ks, wxConvUTF8);
&nbsp;
                        }
                        plugin_menu-&gt;Append(wxID_PLUGIN + i, label);
                        Connect(wxID_PLUGIN + i, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Snippet_ManagerFrame::handle_plugin));
                    }
                }
            }
            if(showmenu) {
                mbar-&gt;Append(plugin_menu, wxT(&quot;&amp;Plugins&quot;));
            }
        }
    }
    #endif
    /// &lt;/plugin&gt;[</span></pre></div></div>

<p>In order to bind the events to the menu, the ::Connect method is called. This is an alternative to using EVENT_TABLE, and allows events to be allocated dynamically at runtime. wxID_PLUGIN is a custom variable, and basically, any of the menu items within the menu will call the main frame&#8217;s [il]handle_plugin[/il] method. The important part, however, is the fact that each one has a different ID, even though they use the same method.</p>
<p>The method itself then uses the ID of the event calling it to lookup the DLL&#8217;s symbol, which were added in <code>this->plugins</code>.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span> Snippet_ManagerFrame<span style="color: #008080;">::</span><span style="color: #007788;">handle_plugin</span><span style="color: #008000;">&#40;</span>wxCommandEvent <span style="color: #000040;">&amp;</span>e<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>plugins<span style="color: #008000;">&#91;</span>e.<span style="color: #007788;">GetId</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">-</span> wxID_PLUGIN<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#40;</span>this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>ui<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>uid.<span style="color: #007788;">mb_str</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, fill_p_snip<span style="color: #008000;">&#40;</span>this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>ui<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>get_active_stc<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>snip, this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>ui<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>get_active_stc<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>GetText<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Of course, some of the code here doesn&#8217;t really mean jack all, since there are custom methods and stuff used in it. But the base of it is clear. I&#8217;ll try to write another (small) application and a tutorial covering the steps over the weekend.</p>
<p>Until then, have fun! :)</p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=174&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/wxwidgets-loading-symbols-from-a-dll-and-using-connect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ohai!</title>
		<link>http://www.gabehabe.com/blog/ohai/</link>
		<comments>http://www.gabehabe.com/blog/ohai/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:55:22 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ohai]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/?p=170</guid>
		<description><![CDATA[ohai, I&#8217;m gabehabe!
So, I&#8217;ve spent the last three days working on a site. Three days of hard work has gone into it, and it&#8217;s ready for release.
It&#8217;s a social portal. You can add links to all your profiles on social sites such as facebook, twitter and the like, as well as adding links to your [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ohai.im/gabehabe" target="_blank">ohai, I&#8217;m gabehabe!</a></p>
<p>So, I&#8217;ve spent the last three days working on a site. Three days of <strong>hard</strong> work has gone into it, and it&#8217;s ready for release.</p>
<p>It&#8217;s a social portal. You can add links to all your profiles on social sites such as facebook, twitter and the like, as well as adding links to your blog(s), or even just your favourite sites. Your profile is customisable, you can change all the colouring, add a profile picture, add a background picture, etc. There&#8217;s more customisation to come in the near future, but as the weekend draws to a close, I&#8217;ve gotten the core of the site up and running, ready to be released. There are a few profiles up and running smoothly already, please feel free to create your own. :)</p>
<p>Screenshot of a profile:<br />
<center><a href="http://ohai.im/gabehabe" target="_blank"><img src="http://www.gabehabe.com/blog/wp-content/uploads/2009/11/ohai.png" alt="ohai.im -- your personal portal" /></a></center></p>
<p>So what are you waiting for? Head on over to <a href="http://ohai.im" target="_blank">ohai.im</a> and <a href="http://ohai.im/register" target="_blank">register a free account</a> now! :)</p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=170&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/ohai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Future of Input Devices</title>
		<link>http://www.gabehabe.com/blog/the-future-of-input-devices/</link>
		<comments>http://www.gabehabe.com/blog/the-future-of-input-devices/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 11:20:07 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tech News]]></category>
		<category><![CDATA[electromyography]]></category>
		<category><![CDATA[emg]]></category>
		<category><![CDATA[input devices]]></category>
		<category><![CDATA[just pure awesome]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/?p=167</guid>
		<description><![CDATA[I had to post this, it&#8217;s awesome. The video explains it much better than I can, but it&#8217;s basically a new input system, developed to not require interfaces. Instead, it uses electromyography (EMG) sensors to translate muscle signals from the skin&#8217;s surface. The project is a joint collaboration between Microsoft, the University of Washington in [...]]]></description>
			<content:encoded><![CDATA[<p>I had to post this, it&#8217;s awesome. The video explains it much better than I can, but it&#8217;s basically a new input system, developed to not require interfaces. Instead, it uses electromyography (EMG) sensors to translate muscle signals from the skin&#8217;s surface. The project is a joint collaboration between Microsoft, the University of Washington in Seattle, and the University of Toronto in Canada.</p>
<p>The video shows a guy playing Guitar Hero with nothing more than an air guitar. (I&#8217;m sure there are dozens of amusing air guitar videos I could link to here, but I only ever find the idiots who take it seriously. Feel free to post a funny in the comments)</p>
<p>Final thoughts: What if you&#8217;ve <a href="http://abcnews.go.com/Technology/story?id=7112491" target="_blank">lost a finger</a>?</p>
<p><center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/6_7BzUED39A&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/6_7BzUED39A&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></center></p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=167&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/the-future-of-input-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wxWidgets: Threading, and using the Clipboard</title>
		<link>http://www.gabehabe.com/blog/wxwidgets-threading-and-using-the-clipboard/</link>
		<comments>http://www.gabehabe.com/blog/wxwidgets-threading-and-using-the-clipboard/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 17:11:12 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[wxWidgets]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[gui design]]></category>
		<category><![CDATA[threading]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/wxwidgets-threading-and-using-the-clipboard/</guid>
		<description><![CDATA[wxWidgets: Threading, and using the Clipboard

Two for one in this tutorial. We're going to create a thread using wxWidgets, and make it monitor the clipboard for text. Then, if we detect a change, we're going to add the new contents to a list.

It's a relatively simple process, but unfortunately wxWidgets isn't the most documented GUI [...]]]></description>
			<content:encoded><![CDATA[<h3>wxWidgets: Threading, and using the Clipboard</h3>

Two for one in this tutorial. We're going to create a thread using wxWidgets, and make it monitor the clipboard for text. Then, if we detect a change, we're going to add the new contents to a list.

It's a relatively simple process, but unfortunately wxWidgets isn't the most documented GUI toolkit out there.

So, let's get started. I'm gonna pile all the code into a single file instead of breaking my classes up into seperate files, just for ease of navigation in this tutorial. The code is relatively short anyway, with only 62 lines.

First off, as with any other program, we're going to want to get our includes done. We'll be needing three: The standard wx header, the clipboard header, and the thread header.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;wx/wx.h&gt; // standard wx header</span>
<span style="color: #339900;">#include &lt;wx/clipbrd.h&gt; // clipboard - we'll monitor the clipboard for text</span>
<span style="color: #339900;">#include &lt;wx/thread.h&gt; // include threads!</span></pre></div></div>



The next thing we need to do is declare our <code>ClipLogger</code> class - this will inherit wxThread, and have two variables: One to hold the most recent text that we got from the clipboard, and one which is a pointer to a <code>wxListBox</code> object -- the object on the main window which we'll be updating.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">class</span> ClipLogger <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> wxThread <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
        ClipLogger<span style="color: #008000;">&#40;</span>wxListBox<span style="color: #000040;">*</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">private</span><span style="color: #008080;">:</span>
        <span style="color: #0000ff;">void</span><span style="color: #000040;">*</span> Entry<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// the entry point to the thread</span>
&nbsp;
        wxString LatestText<span style="color: #008080;">;</span> <span style="color: #666666;">// store the last text so we can check for changes</span>
        wxListBox<span style="color: #000040;">*</span> list<span style="color: #008080;">;</span> <span style="color: #666666;">// the list to update on a text change</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></div></div>



The constructor is <em>very</em> simple. All it does is take a wxListBox*, and assign it to a variable stored by the class - this is the list that we want to update on clipboard text changes.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">ClipLogger<span style="color: #008080;">::</span><span style="color: #007788;">ClipLogger</span><span style="color: #008000;">&#40;</span>wxListBox<span style="color: #000040;">*</span> l<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>list <span style="color: #000080;">=</span> l<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>



Next up is the main part of this tutorial. When we create a thread, we need to override the <code>Entry()</code> method of the class, like so:


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span><span style="color: #000040;">*</span> ClipLogger<span style="color: #008080;">::</span><span style="color: #007788;">Entry</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></pre></div></div>



To save time and memory, rather than creating a variable every time we loop, we'll create it before and simply overwrite it inside the loop.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">wxTextDataObject temp<span style="color: #008080;">;</span></pre></div></div>



wxTextDataObject is the type of object that the clipboard will store.
Next, since our thread is a constant "monitor" for the clipboard, we want it to loop.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></pre></div></div>



Then, we need to think about how we can help our application not be CPU-hungry. The simple solution is to make the thread sleep each time it loops. We can do this with <code>wxSleep(int time)</code>, where time is the length of time to sleep in <strong>seconds</strong>.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">wxSleep<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>



The rest of the loop is the clipboard. It's very simple, so rather than break it up line-by-line, I've added comments along the way. We basically need to do the following:
 - Open the clipboard
 - If the clipboard is text, get it into our <code>temp</code> variable
 - Update the list and remember this is the most recent (so as not to constantly add the same data to the list)
 - Close the clipboard


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Open<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// try to open the clipboard</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>IsSupported<span style="color: #008000;">&#40;</span>wxDF_TEXT<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// if the clipboard contains text</span>
                wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>GetData<span style="color: #008000;">&#40;</span>temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// get the data from the clipboard</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>LatestText <span style="color: #000040;">!</span><span style="color: #000080;">=</span> temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// if it's changed, we want to update</span>
                    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// if it's not an empty string</span>
                        this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>LatestText <span style="color: #000080;">=</span> temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  <span style="color: #666666;">// update the &quot;LatestText&quot;</span>
                        this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>list<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Append<span style="color: #008000;">&#40;</span>temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// append to the list</span>
                    <span style="color: #008000;">&#125;</span>
                <span style="color: #008000;">&#125;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Close<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// close the clipboard</span></pre></div></div>



The last thing left to do in the thread is simply close it off, and close off the loop.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>



Simple, huh? :)

And that's our thread defined. Now all we need to do is create the app itself, which is a simple process. I hope that you already know how to do it, so we can blitz through the majority of it.

Create the app:


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">class</span> threaded_app <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> wxApp <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
        <span style="color: #0000ff;">bool</span> OnInit<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></div></div>



The beginning of the <code>OnInit()</code> should be nothing new at this point either.


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">bool</span> threaded_app<span style="color: #008080;">::</span><span style="color: #007788;">OnInit</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">// quickly create a wxFrame to display a window</span>
    wxFrame<span style="color: #000040;">*</span> f <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> wxFrame<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">NULL</span>, wxID_ANY, wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Threaded App!&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// add a list to the frame we created</span>
    wxListBox<span style="color: #000040;">*</span> list <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> wxListBox<span style="color: #008000;">&#40;</span>f, wxID_ANY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// display the frame</span>
    f<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Show<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>



The last part of <code>OnInit()</code> that we need to do is actually create an instance of our thread and run it, like so:


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">    <span style="color: #666666;">// pass the list to the clipboard monitor so it knows what to update</span>
    ClipLogger<span style="color: #000040;">*</span> cl <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> ClipLogger<span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// construct our thread</span>
    cl<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Create<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// we have to create a thread before we can run it</span>
    cl<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Run<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// run our thread</span></pre></div></div>



And we can simply finish off the <code>OnInit()</code> and IMPLEMENT_APP:


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
IMPLEMENT_APP<span style="color: #008000;">&#40;</span>threaded_app<span style="color: #008000;">&#41;</span></pre></div></div>




And that's all there is to threading and using the clipboard in wxWidgets!

Here's the complete code:


<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;wx/wx.h&gt; // standard wx header</span>
<span style="color: #339900;">#include &lt;wx/clipbrd.h&gt; // clipboard - we'll monitor the clipboard for text</span>
<span style="color: #339900;">#include &lt;wx/thread.h&gt; // include threads!</span>
&nbsp;
<span style="color: #0000ff;">class</span> ClipLogger <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> wxThread <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
        ClipLogger<span style="color: #008000;">&#40;</span>wxListBox<span style="color: #000040;">*</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">private</span><span style="color: #008080;">:</span>
        <span style="color: #0000ff;">void</span><span style="color: #000040;">*</span> Entry<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// the entry point to the thread</span>
&nbsp;
        wxString LatestText<span style="color: #008080;">;</span> <span style="color: #666666;">// store the last text so we can check for changes</span>
        wxListBox<span style="color: #000040;">*</span> list<span style="color: #008080;">;</span> <span style="color: #666666;">// the list to update on a text change</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
ClipLogger<span style="color: #008080;">::</span><span style="color: #007788;">ClipLogger</span><span style="color: #008000;">&#40;</span>wxListBox<span style="color: #000040;">*</span> l<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>list <span style="color: #000080;">=</span> l<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span><span style="color: #000040;">*</span> ClipLogger<span style="color: #008080;">::</span><span style="color: #007788;">Entry</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    wxTextDataObject temp<span style="color: #008080;">;</span> <span style="color: #666666;">// create a &quot;wxTextDataObject&quot; to get the info from the clipboard</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// our thread will loop</span>
        wxSleep<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// sleep for 1 second, make the thread less cpu-hungry</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Open<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// try to open the clipboard</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>IsSupported<span style="color: #008000;">&#40;</span>wxDF_TEXT<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// if the clipboard contains text</span>
                wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>GetData<span style="color: #008000;">&#40;</span>temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// get the data from the clipboard</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>LatestText <span style="color: #000040;">!</span><span style="color: #000080;">=</span> temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// if it's changed, we want to update</span>
                    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #666666;">// if it's not an empty string</span>
                        this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>LatestText <span style="color: #000080;">=</span> temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  <span style="color: #666666;">// update the &quot;LatestText&quot;</span>
                        this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>list<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Append<span style="color: #008000;">&#40;</span>temp.<span style="color: #007788;">GetText</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// append to the list</span>
                    <span style="color: #008000;">&#125;</span>
                <span style="color: #008000;">&#125;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        wxTheClipboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Close<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// close the clipboard</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">class</span> threaded_app <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> wxApp <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
        <span style="color: #0000ff;">bool</span> OnInit<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">bool</span> threaded_app<span style="color: #008080;">::</span><span style="color: #007788;">OnInit</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">// quickly create a wxFrame to display a window</span>
    wxFrame<span style="color: #000040;">*</span> f <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> wxFrame<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">NULL</span>, wxID_ANY, wxT<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Threaded App!&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// add a list to the frame we created</span>
    wxListBox<span style="color: #000040;">*</span> list <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> wxListBox<span style="color: #008000;">&#40;</span>f, wxID_ANY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// display the frame</span>
    f<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Show<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// pass the list to the clipboard monitor so it knows what to update</span>
    ClipLogger<span style="color: #000040;">*</span> cl <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> ClipLogger<span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// construct our thread</span>
    cl<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Create<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// we have to create a thread before we can run it</span>
    cl<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Run<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// run our thread</span>
&nbsp;
    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
IMPLEMENT_APP<span style="color: #008000;">&#40;</span>threaded_app<span style="color: #008000;">&#41;</span></pre></div></div>



Happy coding! :)

<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=154&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/wxwidgets-threading-and-using-the-clipboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome &#8211; Unknown Plugin: lolwut?</title>
		<link>http://www.gabehabe.com/blog/google-chrome-unknown-plugin-lolwut/</link>
		<comments>http://www.gabehabe.com/blog/google-chrome-unknown-plugin-lolwut/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 17:37:44 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[wtf]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[lol]]></category>
		<category><![CDATA[lolwut]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/?p=149</guid>
		<description><![CDATA[I certainly less than three google chrome, and today it proved just how great it is &#8211; even though it doesn&#8217;t know which plugin is unresponsive, it knows which one to kill!

]]></description>
			<content:encoded><![CDATA[<p>I certainly less than three <a href="http://code.google.com/p/chromium/issues/detail?id=18385" target="_blank">google chrome</a>, and today it proved just how great it is &ndash; even though it doesn&#8217;t know which plugin is unresponsive, it knows which one to kill!</p>
<p><center><img src="http://www.gabehabe.com/blog/wp-content/uploads/2009/10/chrome-unresponsive-plugin.jpg" alt="chrome kill unknown plugin" /></center></p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=149&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/google-chrome-unknown-plugin-lolwut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arnold Schwarzenegger WIN!</title>
		<link>http://www.gabehabe.com/blog/arnold-schwarzenegger-win/</link>
		<comments>http://www.gabehabe.com/blog/arnold-schwarzenegger-win/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 13:03:45 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/?p=136</guid>
		<description><![CDATA[I lol&#8217;d.
Arnold Schwazenegger &#34;Fuck You&#34;
To the Members of the California State Assembly:
I am returning Assembly Bill 1176 without my signature.
For some time now I have lamented the fact that major issues are overlooked while many
unnecessary bills come to me for consideration. Water reform, prison reform, and health
care are major issues my Administration has brought to [...]]]></description>
			<content:encoded><![CDATA[<p>I lol&#8217;d.</p>
<p><a href="http://gov.ca.gov/pdf/press/2009bills/AB1176_Ammiano_Veto_Message.pdf" target="_blank">Arnold Schwazenegger &quot;Fuck You&quot;</a></p>
<blockquote style="margin-left:-3px"><p>To the Members of the California State Assembly:</p>
<p>I am returning Assembly Bill 1176 without my signature.</p>
<p><font style="font-weight:bold;color:#a00004;">F</font>or some time now I have lamented the fact that major issues are overlooked while many<br />
<font style="font-weight:bold;color:#a00004;">u</font>nnecessary bills come to me for consideration. Water reform, prison reform, and health<br />
<font style="font-weight:bold;color:#a00004;">c</font>are are major issues my Administration has brought to the table, but the Legislature just<br />
<font style="font-weight:bold;color:#a00004;">k</font>icks the can down the alley.</p>
<p><font style="font-weight:bold;color:#a00004;">Y</font>et another legislative year has come and gone without the major reforms Californians<br />
<font style="font-weight:bold;color:#a00004;">o</font>verwhelmingly deserve. In light of this, and after careful consideration, I believe it is<br />
<font style="font-weight:bold;color:#a00004;">u</font>nnecessary to sign this measure at this time.</p>
<p>Sincerely,<br />
Arnold Schwarzenegger</p></blockquote>
<p>(Via <a href="http://www.techcrunch.com/2009/10/28/schwarzenegger-gives-california-legislature-a-hidden-finger/" target="_blank">TechCrunch</a>)</p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=136&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/arnold-schwarzenegger-win/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post a comment &#8211; Win a Google Wave invite!</title>
		<link>http://www.gabehabe.com/blog/post-a-comment-win-a-google-wave-invite/</link>
		<comments>http://www.gabehabe.com/blog/post-a-comment-win-a-google-wave-invite/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 20:17:24 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[Contests]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[invite]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/post-a-comment-win-a-google-wave-invite/</guid>
		<description><![CDATA[Google Wave is awesome. And as of today, I have some invites to dish out. So here&#8217;s a contest to win one.
Simple stuff really. Just post a comment. It asks for your email address, enter the email address you want the invite to go to. Subscribe to this post, and I&#8217;ll announce the winners in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gabehabe.com/blog/google-wave/" target="_blank">Google Wave</a> is awesome. And as of today, I have some invites to dish out. So here&#8217;s a contest to win one.</p>
<p>Simple stuff really. Just post a comment. It asks for your email address, enter the email address you want the invite to go to. Subscribe to this post, and I&#8217;ll announce the winners in a comment on Friday 13th November, 2009.</p>
<p>One entry per email address. 3 up for grabs. Get commenting. :)</p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=132&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/post-a-comment-win-a-google-wave-invite/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Uncharted 2: Pure awesome.</title>
		<link>http://www.gabehabe.com/blog/uncharted-2-pure-awesome/</link>
		<comments>http://www.gabehabe.com/blog/uncharted-2-pure-awesome/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 18:53:57 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[uncharted 2]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/uncharted-2-pure-win/</guid>
		<description><![CDATA[Since this is more a tech blog than a game blog, I&#8217;m not going to go really in-depth about the game. If you want loads of in-depth and galleries, check out joystiq, a great blog dedicated to gaming.
What I will say, is that this game is insanely good. I&#8217;d even go so far as to [...]]]></description>
			<content:encoded><![CDATA[<p>Since this is more a tech blog than a game blog, I&#8217;m not going to go really in-depth about the game. If you want loads of in-depth and galleries, check out <a href="http://www.joystiq.com/photos/uncharted-2-gamescom/2217191/" target="_blank">joystiq</a>, a great blog dedicated to gaming.</p>
<p>What I will say, is that this game is insanely good. I&#8217;d even go so far as to say it was better than the first, something rarely achieved by a sequel, especially a sequel to something so awesome as Uncharted.</p>
<p>The game overall is actually fairly short. I managed to complete the game in around 6-7 hours gameplay. Though it has a great replay factor, and I barely found any of the 100 hidden treasures. :(</p>
<p>The scenery in-game really makes up for the short gameplay, there really are some breathtaking visuals.</p>
<p>I think the thing that makes Uncharted 2 so good is the fact that it&#8217;s much more <em>real</em> than other games. Characters tend to react how you&#8217;d expect them to react to demon sasquatches coming charging at them, as opposed to running in, guns blazing.</p>
<p>And yes, Nate even seems to find the time to draw a picture of them and explain that they&#8217;re scarier than Sully&#8217;s moustache and a slippery naked guy in his notebook.</p>
<p><center><img src="http://www.gabehabe.com/blog/wp-content/uploads/2009/10/demon-sasquatch.png" title="Demon sasquatches are scarier than slippery naked guys" /></center></p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=126&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/uncharted-2-pure-awesome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monarch Recruitment: lolwut?</title>
		<link>http://www.gabehabe.com/blog/monarch-recruitment-lolwut/</link>
		<comments>http://www.gabehabe.com/blog/monarch-recruitment-lolwut/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:48:08 +0000</pubDate>
		<dc:creator>Danny</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[wtf]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[lolwut]]></category>
		<category><![CDATA[monarch recruitment]]></category>

		<guid isPermaLink="false">http://www.gabehabe.com/blog/monarch-recruitment-lolwut/</guid>
		<description><![CDATA[Got an email from Monarch Recruitment today, epic fail from a guy named Luke Osborne. (Yes, I&#8217;m hoping to get his name tied to the word &#8220;fail&#8221; in google)
First up, a bit of background:
About a year ago, I was looking for a job in IT. I tried everything, even putting my CV on some recruitment [...]]]></description>
			<content:encoded><![CDATA[<p>Got an email from Monarch Recruitment today, epic fail from a guy named Luke Osborne. (Yes, I&#8217;m hoping to get his name tied to the word &#8220;fail&#8221; in google)</p>
<p>First up, a bit of background:<br />
About a year ago, I was looking for a job in IT. I tried everything, even putting my CV on some recruitment sites: <em>bad idea</em>.</p>
<p>I received a hell of a lot of spam, and have been added to agency <strike>spam</strike><em>mailing</em> lists. But generally, they will send them out to just one person at a time.</p>
<p>Not Monarch. They&#8217;ve outdone themselves as a fail agency this time.</p>
<p>Received an email which was addressed to 810 people. I&#8217;d also like to point out that I don&#8217;t recall getting my name changed to FIRST_NAME by Deed Poll.</p>
<p>This&#8217;ll do a damage to the vscroll on this site for a while, but it&#8217;s so worth it.</p>
<p>All email addresses have been changed to x@domain.com for privacy. (regex ftw!)</p>
<p>Original email:</p>
<p>x@gmail.com<br />
Received: by 10.216.59.212 with SMTP id s62cs200799wec;<br />
        Thu, 22 Oct 2009 10:14:34 -0700 (PDT)<br />
Received: by 10.210.7.23 with SMTP id 23mr10862003ebg.27.1256231673349;<br />
        Thu, 22 Oct 2009 10:14:33 -0700 (PDT)<br />
x@monarchrecruitment.co.uk><br />
Received: from service37.mimecast.com (service37.mimecast.com [213.235.63.87])<br />
        by mx.google.com with SMTP id 28si6642383ewy.88.2009.10.22.10.14.32;<br />
        Thu, 22 Oct 2009 10:14:33 -0700 (PDT)<br />
x@monarchrecruitment.co.uk) client-ip=213.235.63.87;<br />
x@monarchrecruitment.co.uk<br />
Received: from bhammail-srv01.monarch.local (78-33-40-66.static.enta.net [78.33.40.66])<br />
	by service37.mimecast.com;<br />
	Thu, 22 Oct 2009 18:14:21 +0100<br />
X-MimeOLE: Produced By Microsoft Exchange V6.5<br />
Content-class: urn:content-classes:message<br />
MIME-Version: 1.0<br />
Subject: Senior .Net developer role<br />
Date: Thu, 22 Oct 2009 18:13:34 +0100<br />
x@bhammail-srv01.monarch.local><br />
X-MS-Has-Attach:<br />
X-MS-TNEF-Correlator:<br />
Thread-Topic: Senior .Net developer role<br />
thread-index: AcpTOv9pBHq7tlj0SgOJGBOSWSvH+A==<br />
x@monarchrecruitment.co.uk><br />
x@BTInternet.com>,<br />
	&lt;x@igsoftwaresolutions.co.uk>,<br />
	&lt;x@militantsouth.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@MSN.COM>,<br />
	&lt;x@computerscienceltd.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@fastmail.fm>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@GoogleMail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@dacservices.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@procensol.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@ICTConsultant.co.uk>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@jdw-techmanagement.co.uk>,<br />
	&lt;x@softchrome.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@swproj.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@swproj.com>,<br />
	&lt;x@symtex.co.uk>,<br />
	&lt;x@calidra.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@freenet.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gayeshan.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@kitcat.f9.co.uk>,<br />
	&lt;x@qpltd.com>,<br />
	&lt;x@oomagic.com>,<br />
	&lt;x@frequency7.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@sendo.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@stuartmassey.com>,<br />
	&lt;x@tinyworld.co.uk>,<br />
	&lt;x@authorsoftware.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@vaudin.net>,<br />
	&lt;x@mwbcomputing.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@cometx.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gavinsullivan.net>,<br />
	&lt;x@vaudin.net>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@radas.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@bulldoghome.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@mvps.org>,<br />
	&lt;x@infotech.com.pk>,<br />
	&lt;x@twoswans.f9.co.uk>,<br />
	&lt;x@bcs.org>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@pwcsoftware.com>,<br />
	&lt;x@retcorp.net>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@xansa.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@sitescraper.co.uk>,<br />
	&lt;x@USA.NET>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@wendtel.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@jethwas.com>,<br />
	&lt;x@live.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@toucansurf.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@aol.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@virgin.net>,<br />
	&lt;x@hancock14.freeserve.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@centricore.co.uk>,<br />
	&lt;x@wavecrestsoftware.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@phoenix3.co.uk>,<br />
	&lt;x@ajmerphull.com>,<br />
	&lt;x@microspherelimited.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@webcite.co.uk>,<br />
	&lt;x@auglobal.com>,<br />
	&lt;x@woodstown.co.uk>,<br />
	&lt;x@talk21.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@bt.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@rediffmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@tonyhales.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@davejsmith.co.uk>,<br />
	&lt;x@bcs.org.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@lineone.net>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@davefield.org.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@warriorsoftware.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@rediffmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@rediffmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@3rdPlanetMedia.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gold-code.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@3rdplanetmedia.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@quickweb.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@cwassociates.fsbusiness.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@andrewbibby.info>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@wanjeet.freeserve.co.uk>,<br />
	&lt;x@johnson-ashby.freeserve.co.uk>,<br />
	&lt;x@btconnect.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@sky.com>,<br />
	&lt;x@matrixss.f9.co.uk>,<br />
	&lt;x@nurvsoftware.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@sheerclass.net>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@fallingdusk.f2s.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@kidd.org.uk>,<br />
	&lt;x@gothictech.co.uk>,<br />
	&lt;x@xcoda.com>,<br />
	&lt;x@psmason.com>,<br />
	&lt;x@worcestershire.gov.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@csharp-architect.com>,<br />
	&lt;x@lineone.net>,<br />
	&lt;x@virgin.net>,<br />
	&lt;x@talk21.com>,<br />
	&lt;x@nuttwood.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@Hotmail.Com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@dna-solutions.com>,<br />
	&lt;x@liquidjelly.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&#8220;x@monarchrecruitment.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@lineone.net>,<br />
	&lt;x@creationof.net>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@fastmail.fm>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@ukonline.co.uk>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@robparker.me.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@bcs.org.uk>,<br />
	&lt;x@rediffmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@talk21.com>,<br />
	&lt;x@fastmail.fm>,<br />
	&lt;x@papermill-farm.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@msn.com>,<br />
	&lt;x@guoping.net>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@evesham.com>,<br />
	&lt;x@GMAIL.COM>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@ntlworld.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@kibble.me.uk>,<br />
	&lt;x@yasar.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@dsl.pipex.com>,<br />
	&lt;x@ntlworld.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@watkins.eclipse.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@sympatico.ca>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@360software.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@exservices.co.uk>,<br />
	&lt;x@ntlworld.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@sheerclass.net>,<br />
	&lt;x@ntlworld.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@theheads.demon.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@rdeeson.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@antonyclark.net>,<br />
	&lt;x@mrsajidmahmood.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@runbox.com>,<br />
	&lt;x@msn.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@coolestbananas.co.uk>,<br />
	&lt;x@Blueyonder.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@dustykeyboard.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@live.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@molloy1.plus.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@roberthancock.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@imnotplayinganymore.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@sjllewellyn.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@live.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@aol.com>,<br />
	&lt;x@sheerclass.net>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@rediffmail.com>,<br />
	&lt;x@tesco.net>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@btconnect.com>,<br />
	&lt;x@thebigbluehouse.co.uk>,<br />
	&lt;x@iname.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@ThreeLionsConsulting.com>,<br />
	&lt;x@fsmail.net>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gridbag.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@ishware.co.uk>,<br />
	&lt;x@zoom.co.uk>,<br />
	&lt;x@think-uk.biz>,<br />
	&lt;x@gofree.co.uk>,<br />
	&lt;x@mcgovern.co.uk>,<br />
	&lt;x@usa.net>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@sky.com>,<br />
	&lt;x@bigfoot.com>,<br />
	&lt;x@esdaniel.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@adlz.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gecko.org.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@northfieldbham.freeserve.co.uk>,<br />
	&lt;x@Blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@dialstart.net>,<br />
	&lt;x@aol.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@f2s.com>,<br />
	&lt;x@mail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@homesyte.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@register-software.net>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@dsherman.fsnet.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@uwclub.net>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@makeitdynamic.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@HOTMAIL.COM>,<br />
	&lt;x@pilkington.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@johnstone79.demon.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@JAKS-technology.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@stmail.staffs.ac.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@ukonline.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@aol.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@realworldbiker.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@grahamabbiss.f2s.com>,<br />
	&lt;x@ntlworld.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@zeeb-consulting.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@lloydspharmacy.co.uk>,<br />
	&lt;x@dan-goodwin.co.uk>,<br />
	&lt;x@huwbristow.co.uk>,<br />
	&lt;x@rosandpete.co.uk>,<br />
	&lt;x@neilbarnwell.co.uk>,<br />
	&lt;x@londonmet.ac.uk>,<br />
	&lt;x@bryth.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@austin1984.freeserve.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@wlv.ac.uk>,<br />
	&lt;x@talk21.com>,<br />
	&lt;x@aol.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@aim.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gavinlilley.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@dreamz.worldonline.co.uk>,<br />
	&lt;x@technologist.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@oxborrow.biz>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@rajvansh.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@extreme-europe.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@mhcs.org.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@aston.ac.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@live.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@wormpurple.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@jonathanandmary.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@alexjoyce.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@jamesdodd.com>,<br />
	&lt;x@mcgraynor.freeserve.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@triolink.co.uk>,<br />
	&lt;x@abs.me.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@costatek.com>,<br />
	&lt;x@sky.com>,<br />
	&lt;x@hairthieves.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@ntlworld.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@targettesting.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@student.staffs.ac.uk>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@acfdesign.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@mslancashire.plus.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@btinternet.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hastilow.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@f2s.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@HOTMAIL.CO.UK>,<br />
	&lt;x@Yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@YAHOO.COM>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@sskosborn.co.uk>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.co.in>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@fastermail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@goladderless.com>,<br />
	&lt;x@wedontbyte.com>,<br />
	&lt;x@tiscali.co.uk>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@poyner.me.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@msn.com>,<br />
	&lt;x@ryanaldred.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@blueyonder.co.uk>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@designdotworks.co.uk>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@rediffmail.com>,<br />
	&lt;x@dpfoc.com>,<br />
	&lt;x@gmail.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@yahoo.co.uk>,<br />
	&lt;x@googlemail.com>,<br />
	&lt;x@hotmail.com>,<br />
	&lt;x@yahoo.com>,<br />
	&lt;x@hotmail.co.uk>,<br />
	&lt;x@hotmail.com><br />
X-MC-Unique: 109102218142100201<br />
Content-Type: multipart/mixed;<br />
	boundary=&#8221;&#8212;-_=_NextPart_001_01CA533A.FF69C750&#8243;</p>
<p>This is a multi-part message in MIME format.</p>
<p>&#8212;&#8212;_=_NextPart_001_01CA533A.FF69C750<br />
Content-Type: multipart/related;<br />
	type=&#8221;multipart/alternative&#8221;;<br />
	boundary=&#8221;&#8212;-_=_NextPart_002_01CA533A.FF69C750&#8243;</p>
<p>&#8212;&#8212;_=_NextPart_002_01CA533A.FF69C750<br />
Content-Type: multipart/alternative;<br />
	boundary=&#8221;&#8212;-_=_NextPart_003_01CA533A.FF69C750&#8243;</p>
<p>&#8212;&#8212;_=_NextPart_003_01CA533A.FF69C750<br />
Content-Type: text/plain; charset=WINDOWS-1252<br />
Content-Transfer-Encoding: quoted-printable</p>
<p>Dear FIRST_NAME,<br />
=20<br />
You have previously registered your CV with monarch as looking for role. An=<br />
 opportunity has arisen for an experienced senior .Net developer based in t=<br />
he West Midlands, requiring extensive .Net, Vb.net, Asp.net and SQL experie=<br />
nce. Should this role be of interest to you, and should you meet the requir=<br />
ements and have the necessary experience, please do not hesitate to send me=<br />
 an updated CV, and state your interest in applying for this role.<br />
=20<br />
I look forward to hearing from you<br />
=20<br />
Kindest Regards=20<br />
=20<br />
Luke<br />
=20<br />
Luke Osborne<br />
Recruitment Consultant<br />
Monarch Recruitment Ltd<br />
=20<br />
Direct Dial                        0121 237 3233<br />
x@monarchrecruitment.co.uk <ma=<br />
x@monarchrecruitment.co.uk>=20<br />
=20<br />
=20<br />
               =20<br />
=20<br />
&#8220;Established in 1992 and employing 140+ consultants, we provide a fast recr=<br />
uitment service tailored across the SME &#038; corporate market place supplying =<br />
permanent and contract  I.T. professionals&#8221;<br />
=20<br />
Monarch Recruitment is an ISO9001:2000 certified company<br />
=20<br />
&#8212;&#8212;_=_NextPart_003_01CA533A.FF69C750<br />
Content-Type: text/html; charset=WINDOWS-1252<br />
Content-Transfer-Encoding: quoted-printable</p>
<p><html><br />
<head></p>
<style><!--
.Normal{text-align:left;font-size:11.00pt;margin-left:0.00in;margin-right:0=
.00in;}
.Default Paragraph Font{}
.EmailStyle15{font-size:11.00pt;color:black;}</p>
<p>--></style>
<p></head><body><br />
    <BR><br />
    <BR><br />
   =20</p>
<div><font face=3D"Calibri" size=3D3 color=3D"black">Dear <mergefield name=<br />
=3D&#8221;FIRST_NAME&#8221;>FIRST_NAME</mergefield>,</font></div>
<div>&nbsp;</div>
<div><font face=3D"Calibri" size=3D3 color=3D"black">You have previously re=<br />
gistered your CV with monarch as looking for role. An opportunity has arise=<br />
n for an experienced senior .Net developer based in the West Midlands, requ=<br />
iring extensive .Net, Vb.net, Asp.net and SQL experience. Should this role =<br />
be of interest to you, and should you meet the requirements and have the ne=<br />
cessary experience, please do not hesitate to send me an updated CV, and st=<br />
ate your interest in applying for this role.</font></div>
<div>&nbsp;</div>
<div><font face=3D"Calibri" size=3D3 color=3D"black">I look forward to hear=<br />
ing from you</font></div>
<div>&nbsp;</div>
<div><font face=3D"Calibri" size=3D3 color=3D"black">Kindest Regards </font=<br />
></div>
<div>&nbsp;</div>
<div><font face=3D"Calibri" size=3D3 color=3D"black">Luke</font></div>
<div>&nbsp;</div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><b><font face=3D"Cal=<br />
ibri&#8221; size=3D3 color=3D&#8221;black&#8221;>Luke Osborne</font></b></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;black&#8221;>Recruitment Consultant</font></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;black&#8221;>Monarch Recruitment Ltd</font></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;">&nbsp;</div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;black&#8221;>Direct Dial&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#038;nb=<br />
sp;&nbsp;&nbsp;&nbsp;&nbsp; 0121 237 3233</font></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;black&#8221;>Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#038;nb=<br />
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=<br />
 </font><u><font face=3D"Calibri" size=3D3 color=3D"blue"><a href=3D"mailto=<br />
:x@monarchrecru=<br />
itment.co.uk</a></font></u></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;">&nbsp;</div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;">&nbsp;</div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;black&#8221;>&nbsp;&nbsp; <img src=3D"cid:img1" style=3D"wid=<br />
th:2.07in;height:1.02in;&#8221;/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src=3D"cid:img2" style=3D"width:1.35in;h=<br />
eight:1.02in;&#8221;/></font></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;">&nbsp;</div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;gray&#8221;>&#34;Established in 1992 and employing 140+ cons=<br />
ultants, we provide a fast recruitment service tailored across the SME &#038;amp=<br />
; corporate market place supplying permanent and contract&nbsp; I.T. profes=<br />
sionals&#34;</font></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;">&nbsp;</div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;"><font face=3D"Calibr=<br />
i&#8221; size=3D3 color=3D&#8221;gray&#8221;>Monarch Recruitment is an ISO9001:2000 certified=<br />
 company</font></div>
<div style=3D"margin-left:0.00in;margin-right:0.00in;">&nbsp;</div>
<p>    <BR><br />
    <BR><br />
<font style=3D"font-family: Arial,Helvetica,sans-serif;" size=3D"2"><span s=<br />
tyle=3D&#8221;color: rgb(102, 102, 102);&#8221;>This message is intended solely for the=<br />
 use of the individual or organisation to whom it is addressed. It may cont=<br />
ain privileged or confidential information.=20<br />
If you have received this message in error, please notify the originator im=<br />
mediately. If you are not the intended recipient, you should not use, copy,=<br />
 alter, or disclose the contents of this message.<br />
All information or opinions expressed in this message and/or any attachment=<br />
s are those of the author and are not necessarily those of Monarch Recruitm=<br />
ent Ltd or its affiliates.=20<br />
Monarch Recruitment Ltd accepts no responsibility for loss or damage arisin=<br />
g from its use, including damage from virus.<br />
If you wish to be removed from the database or feel this email has no busin=<br />
ess with yourself, then please click on the following removal link to be re=<br />
moved from our database.<A href=3D"http://service37.mimecast.com/mimecast/c=<br />
lick?account=3DC18A8&#038;code=3Dddea0d311ecf4d3b78c6ee9298e82a0d&#8221;><font style=<br />
=3D&#8221;font-family: Arial,Helvetica,sans-serif;&#8221; size=3D&#8221;2&#8243;>remove</A></span><=<br />
/font><br /><br />
<font style=3D"font-family: Arial,Helvetica,sans-serif;" size=3D"2"><span s=<br />
tyle=3D&#8221;color: rgb(102, 102, 102);&#8221;>Monarch Recruitment Ltd. 8th Floor, 1 M=<br />
artineau Place, 44-80 Corporation Street,Birmingham, B2 4UW. Company Reg No=<br />
: 2774106, VAT No. 806 6627 20.</span></font>=20<br />
<br /></font></font></font><br />
</body></html></p>
<img src="http://www.gabehabe.com/blog/?ak_action=api_record_view&id=123&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.gabehabe.com/blog/monarch-recruitment-lolwut/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
