<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Tomes Of Experience</title>
	
	<link>http://www.xerxesb.com</link>
	<description>'Cause there are some things you just *can't* get from a book...</description>
	<lastBuildDate>Sun, 28 Jun 2009 23:23:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TheTomesOfExperience" type="application/rss+xml" /><item>
		<title>Turning your Asus eeeBox B202 into a XBMC</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/oR-1Lc7gb2k/</link>
		<comments>http://www.xerxesb.com/2009/turning-your-asus-eeebox-b202-into-a-xbmc/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 04:41:00 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[eeebox]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[xbmc]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=623</guid>
		<description><![CDATA[I recently became owner and custodian of one of these cheap puppies
It’s a cute bit of hardware. Not sporting a powerful CPU, not boasting a kachunga of RAM and not carrying a large HDD, but for $360 what can you expect? The original intention behind this purchase was to use it as a cheap replacement [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2008/mounting-nas-drive-under-ubuntu/' rel='bookmark' title='Permanent Link: Mounting NAS drive under Ubuntu'>Mounting NAS drive under Ubuntu</a> <small>I&#8217;ve</small></li><li><a href='http://www.xerxesb.com/2008/photoshop-under-linux/' rel='bookmark' title='Permanent Link: Photoshop under linux'>Photoshop under linux</a> <small>This morni</small></li><li><a href='http://www.xerxesb.com/2008/tunnel-world-of-warcraft-through-ssh/' rel='bookmark' title='Permanent Link: Tunnel World of Warcraft Through SSH'>Tunnel World of Warcraft Through SSH</a> <small>On Saturda</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I recently became owner and custodian of one of these cheap puppies<br />
<div class="wp-caption alignnone" style="width: 310px"><img alt="Asus EEEBox B202  (Intel Atom 1.8GHz; 1GB RAM; 80GB HDD)" src="http://external.ak.fbcdn.net/safe_image.php?d=d6b04ba55c8ae5bcdac4e230967d7f3f&#038;url=http%3A%2F%2Fwww.geekscribes.net%2Fblog%2Fwp-content%2Fuploads%2F2008%2F08%2Fasus-eee-box-b202-lg.jpg" title="Asus EEEBox B202 (Intel Atom 1.8GHz; 1GB RAM; 80GB HDD)" width="300" height="322" /><p class="wp-caption-text">Asus EEEBox B202 <br /> (Intel Atom 1.8GHz; 1GB RAM; 80GB HDD)</p></div></p>
<p>It’s a cute bit of hardware. Not sporting a powerful CPU, not boasting a kachunga of RAM and not carrying a large HDD, but for $360 what can you expect? The original intention behind this purchase was to use it as a cheap replacement for a Linux based web-server, but it seemed like such a shame to let what little spare power it has go wasted – turning it into a miniature media centre was an easy decision. The nice thing about XBMC is that there’s a version for Linux running on Ubuntu. This brief notation is my experience setting it up to run on my TV. It assumes you know Ubuntu reasonably well and are comfortable hacking at it.</p>
<h3>Tools Required</h3>
<ul>
<li>1x Asus eeeBox B202</li>
<li>1x External CD/DVD-ROM drive (or equivalent – see below)</li>
<li>1x <a href="http://www.ubuntu.com/products/whatisubuntu/904features/">Ubuntu 9.04 (Jaunty) Desktop Edition (aka Live CD)</a></li>
<li>1x <a href="http://xbmc.org/download/">XBMC Live CD</a> for testing XBMC before installation (optional)</li>
<li>1x connection to the intertubes</li>
</ul>
<h3>Preparation</h3>
<p>The eeeBox doesn’t come with a native CD/DVD-ROM, but you can easily jig something together by using an external EIDE HDD enclosure and a DVD-drive from any old PC. Just connect the cables together and you have yourself a working USB DVD-ROM.</p>
<h3>Install Ubuntu</h3>
<p>Firstly make sure you run a network cable into the eeeBox. Even though the wifi works fine, you’ll be downloading a stack of updates and doing that over 100MBps is better than 54MBps.</p>
<p>So pop in the Ubuntu desktop live CD and go through the standard installation. This might take a while depending on your setup, but just install the plain operating system and reboot. The installation has good defaults for partitioning when you let it decide what to do with the whole disk – just roll with it, unless you know what you’re doing. The nice thing about the desktop edition of Ubuntu as opposed to (say) the server edition is that it comes pre-packaged with all the necessary drivers:</p>
<ul>
<li>Video: Intel Mobile 945GME Express Integrated Graphics Controller</li>
<li>Audio: Intel 82801G High Definition Audio Controller</li>
<li>WiFi: RaLink RT2860</li>
<li>Ethernet: Realtek RTL8111 Gigabit Ethernet controller</li>
</ul>
<p>Additionally, it installs things like a working x-server and <a href="http://www.alsa-project.org/main/index.php/Main_Page">ALSA</a> so that you don’t have to. <strong>It’s (by far), easier to start with desktop edition and cut-back, than to start with server and build up.</strong></p>
<p>After reboot and login, the system will take you directly to your Gnome desktop. The autoconf would have detected the network connection and (assuming you have a local router/DHCP server) you’ll be on the network in seconds. Update Manager will then run a check for updates. You want to download and install these updates! In particular, Jaunty had <a href="https://wiki.ubuntu.com/ReinhardTartler/X/RevertingIntelDriverTo2.4">graphics performace issues with the Intel GME 950</a> in its original release. I’ve found that an out-of-the-box installation doesn’t exhibit this problem anymore but its still a good idea to run the update first.</p>
<p>The desktop edition of Ubuntu doesn’t come with ssh natively installed. you can rectify this with:</p>
<pre class="console">
$&gt; sudo apt-get install ssh
</pre>
<p>There’s a good chance you’ll need to restart again after the updates.</p>
<h3>Install XBMC</h3>
<p>Once re-booted, we want to install XBMC from the package archive for your version of the system (again, assuming Jaunty). Using your fresh ssh install, you can <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY </a>into the box (my personal favourite) and add the two following lines to your /etc/apt/sources.list:</p>
<pre>
deb http://ppa.launchpad.net/team-xbmc/jaunty-ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/team-xbmc/jaunty-ppa/ubuntu jaunty main
</pre>
<p>Then you need to add the signed public key to the apt key register:</p>
<pre class="console">
$&gt; sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9317790E
</pre>
<p>The most important step of all:</p>
<pre class="console">
$&gt; sudo apt-get install xbmc-standalone
</pre>
<p>Why standalone? The standalone version of XBMC contains “<em><a href="http://www.xbmc.org/wiki/?title=XBMC_Live">certain functions that are not available in normal XBMC for Linux, (or XBMC for Mac, or for Windows), these functions include Power Management, and Network Management.</a></em>“. The power management alone is worth it.</p>
<p>At this point I recommend testing the installation. Load XBMC from the Applications menu and set your resolution + other options. Setting the resolution is quite important here because (as i found out later) you’ll need them if you decide to run a seamless boot sequence into XBMC</p>
<h3>Configuring A Seamless Boot Sequence</h3>
<p>By this, what I mean is that when your system boots, it will automatically log in as you and boot into XBMC and you wont incur the unnecessary overhead of running Gnome in the background as you might otherwise have. You can fall-back to Gnome if need be, but the default desktop environment will be set to XBMC.</p>
<p>In Gnome, click System > Administrator > Login window. In the dialog, make sure you set your password and for the default session choose XBMC. I’d also suggest the auto-login feature. It gives you a chance to break into Gnome or a failsafe terminal should you need it.</p>
<p>Restart your box in preparation!</p>
<p>At this point, if you should be unlucky (like me) and your resolution settings are lost after changing the default session, you’ll need to copy them from the original settings we set earlier. Fortunately this should be easy. Log onto the box as you and enter the following:</p>
<pre class="console">
$&gt; cd ~/.xbmc
$&gt; mv userdata userdata_backup
$&gt; cp /usr/share/xbmc/userdata . -r
$&gt; killall xbmc
</pre>
<p>If you set up Gnome correctly, you should go back to the login screen and be able to log back into XBMC with full res.</p>
<h3>Wireless Configuration</h3>
<p>The last piece of the puzzle is getting the wireless to work. This should be too easy. Just edit the <em>/etc/network/interfaces</em> file and add the entry for the RaLink RT2860 wireless device (ra0). In my setup, i’m using WEP so it looks like this:</p>
<pre>
iface ra0 inet dhcp
  wireless-essid &lt;SSID&gt;
  wireless-key s:&lt;PASSPHRASE GOES HERE&gt;
auto ra0
</pre>
<p>Reboot one last time just to make sure it all works and you’re done!</p>
<p>What this doesn’t cover is how to configure an IrDA device for truly integrated experience. The B202 doesn’t have IR built-in but once i find a <a href="http://www.lirc.org/">suitable device</a>, you can bet i’ll be writing about it.</p>
<p> <img src='http://www.xerxesb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2008/mounting-nas-drive-under-ubuntu/' rel='bookmark' title='Permanent Link: Mounting NAS drive under Ubuntu'>Mounting NAS drive under Ubuntu</a> <small>I&#8217;ve</small></li><li><a href='http://www.xerxesb.com/2008/photoshop-under-linux/' rel='bookmark' title='Permanent Link: Photoshop under linux'>Photoshop under linux</a> <small>This morni</small></li><li><a href='http://www.xerxesb.com/2008/tunnel-world-of-warcraft-through-ssh/' rel='bookmark' title='Permanent Link: Tunnel World of Warcraft Through SSH'>Tunnel World of Warcraft Through SSH</a> <small>On Saturda</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/oR-1Lc7gb2k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/turning-your-asus-eeebox-b202-into-a-xbmc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/turning-your-asus-eeebox-b202-into-a-xbmc/</feedburner:origLink></item>
		<item>
		<title>Using Object IDs in C#’s Debugger to chase object references</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/ACccwnyD-TY/</link>
		<comments>http://www.xerxesb.com/2009/using-object-ids-in-cs-debugger-to-chase-object-references/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 05:14:45 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=605</guid>
		<description><![CDATA[I&#8217;ve needed this a few times in the past and figured I best note it down for my own reference.
If you have created a number of objects and you want to be able to compare them during debugging, you can assign an Object ID to each instance of the object in the watch window like [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/references-are-not-addresses/' rel='bookmark' title='Permanent Link: References are not addresses'>References are not addresses</a> <small>Just read </small></li><li><a href='http://www.xerxesb.com/2008/object-inspectors-will-eat-your-mocking-expectations/' rel='bookmark' title='Permanent Link: Object Inspectors will eat your mocking expectations'>Object Inspectors will eat your mocking expectations</a> <small>I was writ</small></li><li><a href='http://www.xerxesb.com/2008/this-action-is-invalid-when-the-mock-object-is-in-verified-state/' rel='bookmark' title='Permanent Link: This action is invalid when the mock object is in verified state'>This action is invalid when the mock object is in verified state</a> <small>I&#8217;ve</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve needed this a few times in the past and figured I best note it down for my own reference.</p>
<p>If you have created a number of objects and you want to be able to compare them during debugging, you can assign an Object ID to each instance of the object in the watch window like this:<br />
<img src="http://static.flickr.com/35/63916624_b5e3283f7a_o.jpg" alt="Assign Object ID to object instance" /></p>
<p>Once assigned, you can evaluate that particular object instance either in the watch window or in the expression evaluator:<br />
<img src="http://static.flickr.com/30/63918454_ea1ad3750f_o.jpg" alt="Evaluating an object using its ID" /></p>
<p>(The above images have been pilfered from <a href="http://blogs.msdn.com/jimgries/archive/2005/11/16/493431.aspx">Jim Griesmer</a>)</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/references-are-not-addresses/' rel='bookmark' title='Permanent Link: References are not addresses'>References are not addresses</a> <small>Just read </small></li><li><a href='http://www.xerxesb.com/2008/object-inspectors-will-eat-your-mocking-expectations/' rel='bookmark' title='Permanent Link: Object Inspectors will eat your mocking expectations'>Object Inspectors will eat your mocking expectations</a> <small>I was writ</small></li><li><a href='http://www.xerxesb.com/2008/this-action-is-invalid-when-the-mock-object-is-in-verified-state/' rel='bookmark' title='Permanent Link: This action is invalid when the mock object is in verified state'>This action is invalid when the mock object is in verified state</a> <small>I&#8217;ve</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/ACccwnyD-TY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/using-object-ids-in-cs-debugger-to-chase-object-references/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/using-object-ids-in-cs-debugger-to-chase-object-references/</feedburner:origLink></item>
		<item>
		<title>Enabling Colours In Git’s Console Output</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/XCzs36xC3iY/</link>
		<comments>http://www.xerxesb.com/2009/enabling-colours-in-gits-console-output/#comments</comments>
		<pubDate>Thu, 28 May 2009 01:06:34 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=600</guid>
		<description><![CDATA[Mainly to serve as a reminder for myself: To enable colour output in MSysGit&#8217;s console, issue the following command from the bash prompt:
$&#62; git config --global color.ui auto


Related posts:Enabling Permalinks For Wordpress There are Reverting Changes In Git I&#8217;veManaging Multiple Git Accounts I&#8217;m 


Related posts:<ol><li><a href='http://www.xerxesb.com/2008/enabling-permalinks-for-wordpress/' rel='bookmark' title='Permanent Link: Enabling Permalinks For Wordpress'>Enabling Permalinks For Wordpress</a> <small>There are </small></li><li><a href='http://www.xerxesb.com/2009/reverting-changes-in-git/' rel='bookmark' title='Permanent Link: Reverting Changes In Git'>Reverting Changes In Git</a> <small>I&#8217;ve</small></li><li><a href='http://www.xerxesb.com/2009/managing-multiple-git-accounts/' rel='bookmark' title='Permanent Link: Managing Multiple Git Accounts'>Managing Multiple Git Accounts</a> <small>I&#8217;m </small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Mainly to serve as a reminder for myself: To enable colour output in MSysGit&#8217;s console, issue the following command from the bash prompt:</p>
<pre class="console" style="overflow:auto"><span style="color:lime;">$&gt;</span> git config --global color.ui auto</pre>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2008/enabling-permalinks-for-wordpress/' rel='bookmark' title='Permanent Link: Enabling Permalinks For Wordpress'>Enabling Permalinks For Wordpress</a> <small>There are </small></li><li><a href='http://www.xerxesb.com/2009/reverting-changes-in-git/' rel='bookmark' title='Permanent Link: Reverting Changes In Git'>Reverting Changes In Git</a> <small>I&#8217;ve</small></li><li><a href='http://www.xerxesb.com/2009/managing-multiple-git-accounts/' rel='bookmark' title='Permanent Link: Managing Multiple Git Accounts'>Managing Multiple Git Accounts</a> <small>I&#8217;m </small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/XCzs36xC3iY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/enabling-colours-in-gits-console-output/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/enabling-colours-in-gits-console-output/</feedburner:origLink></item>
		<item>
		<title>e Text Editor: “ruby: no such file to load — ubygems (LoadError)”</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/29JpExnlDHQ/</link>
		<comments>http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/#comments</comments>
		<pubDate>Wed, 27 May 2009 07:05:37 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[e text editor]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubygems]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=595</guid>
		<description><![CDATA[i&#8217;ve installed e text editor on my desktop and trying it out for some Ruby development.
E is heavily dependent on using Ruby in the background to perform a number of its refactoring and text-based actions. Unfortunately, sometimes you can end up in a situation where E reports the following error whenever you trigger one of [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/' rel='bookmark' title='Permanent Link: Ruby and .NET for the uninitiated'>Ruby and .NET for the uninitiated</a> <small>Coming wit</small></li><li><a href='http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/' rel='bookmark' title='Permanent Link: Poor-man&#8217;s Benchmarking in Ruby'>Poor-man&#8217;s Benchmarking in Ruby</a> <small>As part of</small></li><li><a href='http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/' rel='bookmark' title='Permanent Link: Specification Testing in .NET using Ruby'>Specification Testing in .NET using Ruby</a> <small>Not long a</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>i&#8217;ve installed <a href="http://www.e-texteditor.com/">e text editor</a> on my desktop and trying it out for some Ruby development.</p>
<p>E is heavily dependent on using Ruby in the background to perform a number of its refactoring and text-based actions. Unfortunately, sometimes you can end up in a situation where E reports the following error whenever you trigger one of these actions:</p>
<blockquote><p>ruby: no such file to load &#8212; ubygems (LoadError)</p></blockquote>
<p>It looks obvious that the error is caused because E is trying to load the gem <em>ubygems</em> when it actually meant <em>rubygems</em>, but the problem is more involved than just that.</p>
<p>In my case, it turns out that after running the Ruby one-click installer, the installation creates an system-level environment variable <strong>RUBYOPT=<em>-rubygems</em></strong>. This variable setting is what&#8217;s giving E its grief.</p>
<p><a href="http://www.e-texteditor.com/forum/viewtopic.php?t=1091">To fix</a>: Simply remove the environment variable from your system settings and restart e for safe measure. In my experience, there&#8217;s no need to download the rubygem package and re-install it as mentioned on <a href="http://flux88.com/blog/e-text-editor-no-such-file-exists-ubygems/">another site</a>.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/' rel='bookmark' title='Permanent Link: Ruby and .NET for the uninitiated'>Ruby and .NET for the uninitiated</a> <small>Coming wit</small></li><li><a href='http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/' rel='bookmark' title='Permanent Link: Poor-man&#8217;s Benchmarking in Ruby'>Poor-man&#8217;s Benchmarking in Ruby</a> <small>As part of</small></li><li><a href='http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/' rel='bookmark' title='Permanent Link: Specification Testing in .NET using Ruby'>Specification Testing in .NET using Ruby</a> <small>Not long a</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/29JpExnlDHQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/</feedburner:origLink></item>
		<item>
		<title>What do the following people have in common?</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/JhXkUA0hCxI/</link>
		<comments>http://www.xerxesb.com/2009/what-do-the-following-people-have-in-common/#comments</comments>
		<pubDate>Wed, 20 May 2009 05:33:08 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[adam sandler]]></category>
		<category><![CDATA[fred flinstone]]></category>
		<category><![CDATA[greg grunberg]]></category>
		<category><![CDATA[roy osherove]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=587</guid>
		<description><![CDATA[



They are all the same person.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mp3lyrics.org/a/adam-sandler/adam-sandler_1.Jpg" alt="Adam Sandler" width="200" /><br />
<img src="http://zookins.files.wordpress.com/2008/07/fred_flintstone.jpg" alt="Fred Flinstone" width="200" /><br />
<img src="http://files.osherove.com/Roy_Pic_BW_Small.jpg" alt="Roy Osherove" width="200" /><br />
<img src="http://www.thefamilygroove.com/greg%20grunberg.jpg" alt="Greg Grunberg" width="200" /></p>
<p>They are all the same person.</p>
<img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/JhXkUA0hCxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/what-do-the-following-people-have-in-common/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/what-do-the-following-people-have-in-common/</feedburner:origLink></item>
		<item>
		<title>Re: Email Account Verification Update</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/ZdGr9NCCvlo/</link>
		<comments>http://www.xerxesb.com/2009/re-email-account-verification-update/#comments</comments>
		<pubDate>Wed, 20 May 2009 00:34:54 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=581</guid>
		<description><![CDATA[I had the following email exchange this morning:

---------- Forwarded message ----------
From: Xerxes Battiwalla
Date: Wed, May 20, 2009 at 10:31 AM
Subject: Re: Email Account Verification Update
To: account_upgrade1@programmer.net

Sure thing - happy to oblige.

My username is: Whydontyou
And my pass is: Shoveitupyourarse

Enjoy!

On Wed, May 20, 2009 at 9:52 AM, HELPDESK ADMINISTRATOR
&#60;Amanda.Warren@selu.edu&#62; wrote:
&#62;
&#62; The Helpdesk Program that periodically checks the [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/hiding-items-from-windows-update/' rel='bookmark' title='Permanent Link: Hiding Items From Windows Update'>Hiding Items From Windows Update</a> <small>having fre</small></li><li><a href='http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/' rel='bookmark' title='Permanent Link: Organising GMail&#8217;s Inbox and Weirdness with Starring Items'>Organising GMail&#8217;s Inbox and Weirdness with Starring Items</a> <small>If you</small></li><li><a href='http://www.xerxesb.com/2009/managing-multiple-git-accounts/' rel='bookmark' title='Permanent Link: Managing Multiple Git Accounts'>Managing Multiple Git Accounts</a> <small>I&#8217;m </small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I had the following email exchange this morning:</p>
<pre>
---------- Forwarded message ----------
From: Xerxes Battiwalla
Date: Wed, May 20, 2009 at 10:31 AM
Subject: Re: Email Account Verification Update
To: account_upgrade1@programmer.net

Sure thing - happy to oblige.

My username is: Whydontyou
And my pass is: Shoveitupyourarse

Enjoy!

On Wed, May 20, 2009 at 9:52 AM, HELPDESK ADMINISTRATOR
&lt;Amanda.Warren@selu.edu&gt; wrote:
&gt;
&gt; The Helpdesk Program that periodically checks the size of your e-mail
&gt; space is sending you this information. The program runs weekly to ensure
&gt; your inbox does not grow too large, thus preventing you from receiving or
&gt; sending new e-mail. As this message is being sent, you have 18 megabytes
&gt; (MB) or more stored in your inbox. To help us reset
&gt; your space in our database, please enter your current
&gt; username (_________________) password (_______________).
&gt;
&gt; You will receive a periodic alert if your inbox size is between 18 and 20
&gt; MB. If your inbox size is 20 MB, a program on your Webmail will move your
&gt; oldest e-mails to a folder in your home directory to ensure you can
&gt; continue receiving incoming e-mail. You will be notified once this has
&gt; taken place.
&gt; If your inbox grows to 25 MB, you will be unable to receive new e-mail and
&gt; it will be returned to sender. All this is programmed to ensure your
&gt; e-mail continues to function well.
&gt; Thank you for your cooperation.
&gt;
&gt; HELPDESK ADMINISTRATOR.
&gt;
&gt;
&gt;
&gt;
&gt;
&gt;
&gt; ----------------------------------------------------------------
&gt; This message was sent using IMP, the Internet Messaging Program.
&gt;
&gt;
</pre>
<p>Just quietly, i&#8217;m surprised it managed to get through GMail&#8217;s spam filter&#8230;.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/hiding-items-from-windows-update/' rel='bookmark' title='Permanent Link: Hiding Items From Windows Update'>Hiding Items From Windows Update</a> <small>having fre</small></li><li><a href='http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/' rel='bookmark' title='Permanent Link: Organising GMail&#8217;s Inbox and Weirdness with Starring Items'>Organising GMail&#8217;s Inbox and Weirdness with Starring Items</a> <small>If you</small></li><li><a href='http://www.xerxesb.com/2009/managing-multiple-git-accounts/' rel='bookmark' title='Permanent Link: Managing Multiple Git Accounts'>Managing Multiple Git Accounts</a> <small>I&#8217;m </small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/ZdGr9NCCvlo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/re-email-account-verification-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/re-email-account-verification-update/</feedburner:origLink></item>
		<item>
		<title>Add shortcuts to your Send-To menu</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/i-h1JsoeEqk/</link>
		<comments>http://www.xerxesb.com/2009/add-shortcuts-to-your-send-to-menu/#comments</comments>
		<pubDate>Thu, 14 May 2009 23:34:56 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=578</guid>
		<description><![CDATA[In Windows 2000/XP you can add/remove content from your Send-To menu just by navigating to the SendTo directory of your profile (eg: C:\Documents and Settings\Xerxes\SendTo\
In Vista they changed the location of the SendTo directory and I never found out where until now! If you navigate to the shell extension &#8220;sendto&#8221; (eg: Start &#8211;> Run &#8211;> [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2008/10-must-know-visual-studio-shortcuts/' rel='bookmark' title='Permanent Link: 10 Must Know Visual Studio Shortcuts'>10 Must Know Visual Studio Shortcuts</a> <small>Found this</small></li><li><a href='http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/' rel='bookmark' title='Permanent Link: Organising GMail&#8217;s Inbox and Weirdness with Starring Items'>Organising GMail&#8217;s Inbox and Weirdness with Starring Items</a> <small>If you</small></li><li><a href='http://www.xerxesb.com/2009/dont-overcomplicate-it-the-simple-solution-is-always-the-best/' rel='bookmark' title='Permanent Link: Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best'>Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best</a> <small>I could sl</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>In Windows 2000/XP you can add/remove content from your Send-To menu just by navigating to the SendTo directory of your profile (eg: <em>C:\Documents and Settings\Xerxes\SendTo\</em></p>
<p>In Vista they changed the location of the SendTo directory and I never found out where until now! If you navigate to the shell extension &#8220;sendto&#8221; (eg: <em>Start </em>&#8211;> <em>Run </em>&#8211;> &#8220;shell:sendto&#8221;), it opens up the list of items in the send-to menu when you right-click a file in Explorer.</p>
<p>I normally like to add a shortcut Notepad so no matter what file type i&#8217;m opening, I can have quick access to drop it in Notepad if necessary.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2008/10-must-know-visual-studio-shortcuts/' rel='bookmark' title='Permanent Link: 10 Must Know Visual Studio Shortcuts'>10 Must Know Visual Studio Shortcuts</a> <small>Found this</small></li><li><a href='http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/' rel='bookmark' title='Permanent Link: Organising GMail&#8217;s Inbox and Weirdness with Starring Items'>Organising GMail&#8217;s Inbox and Weirdness with Starring Items</a> <small>If you</small></li><li><a href='http://www.xerxesb.com/2009/dont-overcomplicate-it-the-simple-solution-is-always-the-best/' rel='bookmark' title='Permanent Link: Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best'>Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best</a> <small>I could sl</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/i-h1JsoeEqk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/add-shortcuts-to-your-send-to-menu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/add-shortcuts-to-your-send-to-menu/</feedburner:origLink></item>
		<item>
		<title>Reverting Changes In Git</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/gvjT8SESCg8/</link>
		<comments>http://www.xerxesb.com/2009/reverting-changes-in-git/#comments</comments>
		<pubDate>Wed, 13 May 2009 23:49:50 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=547</guid>
		<description><![CDATA[I&#8217;ve used a lot of SCM&#8217;s in my time, and none of them have been as esoteric as Git. This post serves as a reminder of the different ways to &#8220;revert&#8221; changes to a git repository
Scenario:
We are in directory with a local git repository. This repo contains 4 files and no sub-directories. Each file is [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/managing-multiple-git-accounts/' rel='bookmark' title='Permanent Link: Managing Multiple Git Accounts'>Managing Multiple Git Accounts</a> <small>I&#8217;m </small></li><li><a href='http://www.xerxesb.com/2007/3rdrail-craziness/' rel='bookmark' title='Permanent Link: 3rdRail Craziness'>3rdRail Craziness</a> <small>Installed </small></li><li><a href='http://www.xerxesb.com/2008/ccnet-will-crash-and-die-when-you-run-out-of-disk-space/' rel='bookmark' title='Permanent Link: CCNET will crash and die when you run out of disk space'>CCNET will crash and die when you run out of disk space</a> <small>Maybe its </small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used a lot of <a href="http://en.wikipedia.org/wiki/Source_Code_Management">SCM</a>&#8217;s in my time, and none of them have been as esoteric as Git. This post serves as a reminder of the different ways to &#8220;revert&#8221; changes to a git repository</p>
<h3>Scenario:</h3>
<p>We are in directory with a local git repository. This repo contains 4 files and no sub-directories. Each file is in one of the 4 different states a file could be in for Git (not considering ignored files for the time being)</p>
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>File is unchanged in local directory</td>
</tr>
<tr>
<td>New.txt</td>
<td>File is new to the repo</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>File has been deleted from local directory</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>File has been modified in the local directory</td>
</tr>
</tbody>
</table>
<p>All files except <strong>New.txt</strong> are being tracked and none of these changes have been staged/committed (yet).</p>
<h3>Action: <em>checkout</em></h3>
<pre class="console" style="overflow:auto;"><span style="color:lime;">$&gt;</span> git checkout</pre>
<ul>
<li>This command has an implicit head of [HEAD]</li>
<li>This command has an implicit working file/directory of the CWD</li>
<li>This command will only affect <em>tracked</em> files</li>
</ul>
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>no action</td>
</tr>
<tr>
<td>New.txt</td>
<td>no action (because it&#8217;s untracked)</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>no action (will not restore the file UNLESS explicitly stating file in command)</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>no action (will not restore the file UNLESS explicitly stating file in command)</td>
</tr>
</tbody>
</table>
<hr />
<h3>Action: <em>checkout &lt;file/path&gt;</em></h3>
<pre class="console" style="overflow:auto;">
<span style="color:lime;">$&gt;</span> git checkout .
<span style="color:lime;">$&gt;</span> git checkout Deleted.txt
</pre>
<ul>
<li>This command has an implicit head of [HEAD]</li>
<li>This command has an explicit working file/directory of the path on line 1, and of the file <strong>Deleted.txt</strong> on line 2</li>
<li>This command will only affect <em>tracked</em> files</li>
</ul>
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>no action</td>
</tr>
<tr>
<td>New.txt</td>
<td>no action (because it&#8217;s untracked)</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>File is reverted back to its original from the current head</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>File is reverted back to its original from the current head </td>
</tr>
</tbody>
</table>
<hr />
<h3>Action: <em>reset</em></h3>
<pre class="console" style="overflow:auto;">
<span style="color:lime;">$&gt;</span> git reset .
</pre>
<ul>
<li>This command has an implicit head of [HEAD]</li>
<li>This command has an explicit working directory of the CWD</li>
<li>This command will unstage staged changes</li>
</ul>
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
<tr>
<td>New.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
</tbody>
</table>
<hr />
<h3>Action: <em>reset</em> (with staged content)</h3>
<pre class="console" style="overflow:auto;">
<span style="color:lime;">$&gt;</span> git add .
<span style="color:lime;">$&gt;</span> git reset
</pre>
<ul>
<li>This action assumes that all changes have been staged (line 1), so the repo is in the following state:<br />
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>File is unchanged in repo</td>
</tr>
<tr>
<td>New.txt</td>
<td>File is staged for adding</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>File has been staged for deletion</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>File has been staged with modification</td>
</tr>
</tbody>
</table>
</li>
<li>This command has an implicit head of [HEAD]</li>
<li>This command has an implicit working directory of the CWD</li>
<li>This command will unstage staged changes</li>
</ul>
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
<tr>
<td>New.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>no action (changes are unstaged)</td>
</tr>
</tbody>
</table>
<hr />
<h3>Action: <em>clean</em></h3>
<pre class="console" style="overflow:auto;">
<span style="color:lime;">$&gt;</span> git clean -d -f
</pre>
<ul>
<li>This command has an implicit head of [HEAD]</li>
<li>This command has an explicit working directory of the CWD</li>
<li>This command will remove files and directories which are untracked in the repo</li>
</ul>
<table>
<thead>
<tr>
<th>File Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unchanged.txt</td>
<td>no action</td>
</tr>
<tr>
<td>New.txt</td>
<td>File would be deleted</td>
</tr>
<tr>
<td>Deleted.txt</td>
<td>no action</td>
</tr>
<tr>
<td>Modified.txt</td>
<td>no action</td>
</tr>
</tbody>
</table>
<hr />
<p>So in summary, if you want to completely revert your working directory to a clean state (IE: the equivalent of an <em>svn revert</em>) is to:</p>
<pre class="console" style="overflow:auto;">
<span style="color:lime;">$&gt;</span> git clean -fd
<span style="color:lime;">$&gt;</span> git checkout .
</pre>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/managing-multiple-git-accounts/' rel='bookmark' title='Permanent Link: Managing Multiple Git Accounts'>Managing Multiple Git Accounts</a> <small>I&#8217;m </small></li><li><a href='http://www.xerxesb.com/2007/3rdrail-craziness/' rel='bookmark' title='Permanent Link: 3rdRail Craziness'>3rdRail Craziness</a> <small>Installed </small></li><li><a href='http://www.xerxesb.com/2008/ccnet-will-crash-and-die-when-you-run-out-of-disk-space/' rel='bookmark' title='Permanent Link: CCNET will crash and die when you run out of disk space'>CCNET will crash and die when you run out of disk space</a> <small>Maybe its </small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/gvjT8SESCg8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/reverting-changes-in-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/reverting-changes-in-git/</feedburner:origLink></item>
		<item>
		<title>Search Engine Showdown: Google vs AOL</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/JQirUrRoLGE/</link>
		<comments>http://www.xerxesb.com/2009/google-vs-aol/#comments</comments>
		<pubDate>Tue, 12 May 2009 23:28:21 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[AOL]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=539</guid>
		<description><![CDATA[I think it&#8217;s safe for me to say &#8220;shea right &#8211; if i hate AOL Search as much as I despise AOL the ISP, this article will not be favourable to AOL in any way, shape or form&#8221;.
Let the games begin.
Wow off to a flying start here, boys&#8230;. &#60;/sarcasm&#62;
The second thing to peeve me off [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-ask/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Ask'>Search Engine Showdown: Google vs Ask</a> <small>In this, t</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I think it&#8217;s safe for me to say &#8220;shea right &#8211; if i hate AOL Search as much as I despise AOL the ISP, this article will not be favourable to AOL in any way, shape or form&#8221;.</p>
<p>Let the <a href="http://www.xerxesb.com/2009/one-search-engine-per-week/">games</a> begin.<br />
<div id="attachment_543" class="wp-caption aligncenter" style="width: 484px"><a href="http://www.xerxesb.com/wp-content/uploads/2009/05/aol_search_page1.png"><img src="http://www.xerxesb.com/wp-content/uploads/2009/05/aol_search_page1.png" alt="AOL Search fails to render properly in Google Chrome" title="AOL Search fails to render properly in Google Chrome" width="474" height="326" class="size-full wp-image-543" /></a><p class="wp-caption-text">AOL Search fails to render properly in Google Chrome</p></div></p>
<p>Wow off to a flying start here, boys&#8230;. &lt;/sarcasm&gt;</p>
<p>The second thing to peeve me off is that AOL Search doesn&#8217;t have a search provider exposed in their meta-data. So I have to create one for myself. Fortunately, Chrome makes this pretty easy, but that&#8217;s not the point &#8211; You guys are providing a search service. Irrespective of how shit it may or may not be, FFS at least make it easy for me to *<strong>TRY</strong>* and use your product?</p>
<p>&#8230;all this, and I haven&#8217;t actually started using it yet. How ominous. I&#8217;m hoping that the little &#8220;powered by Google&#8221; actually means &#8220;we cant do search anymore, and have given up. Here&#8217;s one which does it better&#8221;.</p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;</p>
<p>One week (maybe a little more) has passed and well, lets just say i&#8217;m not as disappointed as I thought I would be. Mainly because AOL search really does seem to be effectively a wrapper around Google. As an example, I searched the hottest topic going around on the tubes at the moment (<em>the effects of socialism on post-war Germany</em>), and most of the results were the same, except that Google also listed a result to its <a href="http://books.goole.com">Book Search</a> service. Apart from little things like that, these two are inseparable. Even AOL&#8217;s image search is just a face-mask over Google Images.</p>
<p>The design of the page leaves a little to be desired however, as AOL shamelessly place advertisements on the top of the page in an attempt to drive click-throughs. My ad-busting eyeballs detect this easily so the placement of the ad isn&#8217;t so much the problem. The problem is that they have sneakily set the length of the HREF for each paid link to be the full width of the page, which means by clicking in what should be &#8220;blank space&#8221; you trigger the link and click-through the paid ad. Naughty, naughty.</p>
<p>All said and done, I couldn&#8217;t help but realise I just commented to a colleauge without realising that I&#8217;m finishing up this post so that &#8220;I can go back to using Google&#8221;. I guess even subconsciously I find any experience outside Google&#8217;s to be less than engaging. </p>
<p>On a final note, The Wolfram Alpha didn&#8217;t launch as soon as I was hoping it would, so there&#8217;ll be a week&#8217;s rest where I go back to Google, before trying out the new kid on the block on 18th May. Yes, I am aware of the broad misrepresentation of Alpha being as &#8220;Google killer&#8221; but it would still be fun to try <img src='http://www.xerxesb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-ask/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Ask'>Search Engine Showdown: Google vs Ask</a> <small>In this, t</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/JQirUrRoLGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/google-vs-aol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/google-vs-aol/</feedburner:origLink></item>
		<item>
		<title>Search Engine Showdown: Google vs Ask</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/OMB0doJMwEc/</link>
		<comments>http://www.xerxesb.com/2009/google-vs-ask/#comments</comments>
		<pubDate>Mon, 04 May 2009 23:26:53 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[Ask]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=525</guid>
		<description><![CDATA[In this, the 3rd installment of The (Not So) Great Search Engine Showdown, I reflect on my experience using Ask.com compared to Google. 
I don&#8217;t have a great deal of time so this post is going to be brief. I really only have one _serious_ gripe about Ask &#8211; that stupid fu#@$%g Answerbar at the [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>In this, the 3rd installment of <a href="http://www.xerxesb.com/2009/one-search-engine-per-week/">The (Not So) Great Search Engine Showdown</a>, I reflect on my experience using Ask.com compared to Google. </p>
<p>I don&#8217;t have a great deal of time so this post is going to be brief. I really only have one _<em>serious</em>_ gripe about <a href="http://ask.com">Ask</a> &#8211; that stupid fu#@$%g Answerbar at the top of the page everytime you navigate to a search result. NO, ask.com! I wanted you to give me the search result, not a pain in the ass waste of screen real estate. What also frustrated me about this &#8220;feature&#8221; was it&#8217;s sheer unpredictability. Most web results would display the Anusbar at the top, but others (like Wikipedia) would be displayed in full glory without being crippled.<br />
The &#8220;Close Permanently&#8221; button was never hit with such gusto, i&#8217;m sure. To demonstrate just how much, i&#8217;ve prepared the following illustration:<br />
<div id="attachment_526" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.xerxesb.com/wp-content/uploads/2009/05/askdotcom.png"><img src="http://www.xerxesb.com/wp-content/uploads/2009/05/askdotcom.png" alt="How to close the Ask.com Answerbar" title="How to close the Ask.com Answerbar" width="300" height="62" class="size-medium wp-image-526" /></a><p class="wp-caption-text">How to close the Ask.com Answerbar</p></div></p>
<p>By way of quality of results, I actually found Ask to be better than I was expecting. Certainly I felt like I wasn&#8217;t missing Google, though on a few occassions I had to drop back just to be sure I wasn&#8217;t missing anything (turns out I wasn&#8217;t). Overall the web search results were as good as Yahoo&#8217;s, though one thing that irritated was that Ask.com mixes the paid advertising results in with the organic search results. I&#8217;m sure they&#8217;ll claim that they&#8217;re putting the top-most organic result first and then allowing the rest of the results to be shown underneath the paid section, but we all know the truth. Money grubbers.</p>
<p>When it was originally launched as &#8220;Ask Jeeves&#8221;, the website&#8217;s search technology was based on doing some <a href="http://en.wikipedia.org/wiki/Neuro-linguistic_programming">NLP</a> against your search query and it would try to return the best results based on the context of your question. A few years ago Jeeve&#8217;s was given the arse from his job, and the company took the arse to their search results, because (quite simply) their NLP wasn&#8217;t advanced enough to provide accurate results compared to <a href="http://google.com">Big Brother</a></p>
<p>However having played with with Ask.com this week, I noticed they still have a Q&#038;A section (it claims is in Beta) which allows you to phrase a question and let the NLP try and answer it for you. Not one to turn down a good opportunity to test NLP products (and get a comparative feeling for the upcoming <a href="http://www.wolframalpha.com/">Wolfram Alpha</a> test i&#8217;ll hopefully be  performing), I Ask&#8217;ed the following question in the name of science:<br />
<div id="attachment_531" class="wp-caption aligncenter" style="width: 541px"><a href="http://www.xerxesb.com/wp-content/uploads/2009/05/askdotcom_qna_s.png"><img src="http://www.xerxesb.com/wp-content/uploads/2009/05/askdotcom_qna_s.png" alt="Putting Ask.com&#039;s NLP to the Public Service Announcement test." title="Putting Ask.com&#039;s NLP to the Public Service Announcement test." width="531" height="580" class="size-full wp-image-531" /></a><p class="wp-caption-text">Putting Ask.com's NLP to the Public Service Announcement test.</p></div></p>
<p>It&#8217;s heart-warming to see that even if you speak broken English like the second guy, you can still get valuable advice on the interwebs.</p>
<p>This week, I throw away all credibility as I try out <a href="http://search.aol.com.au/aol/webhome">AOL&#8217;s search</a>. If using this website results in me getting another fking AOL starter CD, i&#8217;ll sht the roof.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/OMB0doJMwEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/google-vs-ask/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/google-vs-ask/</feedburner:origLink></item>
		<item>
		<title>Poor-man’s Benchmarking in Ruby</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/i4gAzdtZhSE/</link>
		<comments>http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 21:00:53 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=422</guid>
		<description><![CDATA[As part of evaluating several libraries for specification testing in Ruby (MSpec, RSpec, Bacon), I wanted to benchmark the performance of the library against a simple suite of tests to see if one was particularly slower than any of the others. It wasn&#8217;t intended to be very scientific but to at least expose a slow [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/' rel='bookmark' title='Permanent Link: Ruby and .NET for the uninitiated'>Ruby and .NET for the uninitiated</a> <small>Coming wit</small></li><li><a href='http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/' rel='bookmark' title='Permanent Link: Specification Testing in .NET using Ruby'>Specification Testing in .NET using Ruby</a> <small>Not long a</small></li><li><a href='http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/' rel='bookmark' title='Permanent Link: e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;'>e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;</a> <small>i&#8217;ve</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>As part of evaluating several libraries for <a href="http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby">specification testing in Ruby</a> (<a href="http://rubyspec.org/projects/show/mspec">MSpec</a>, <a href="http://rspec.info/">RSpec</a>, <a href="http://www.ruby-forum.com/topic/137928">Bacon</a>), I wanted to benchmark the performance of the library against a simple suite of tests to see if one was particularly slower than any of the others. It wasn&#8217;t intended to be very scientific but to at least expose a slow framework, if any.</p>
<p>Each benchmark was performed by creating a suite of specifications based around Bacon&#8217;s whirlwind sample (consisting of 5 specs), and executed the suite 10,000 times. This benchmark test was run 5 times in order to weed out any statistical anomolies. Nb: For this analysis, I didn&#8217;t benchmark RSpec because it&#8217;s not terribly compatible with IronRuby just yet.</p>
<p>The results and code can be found below. In a nutshell, it does seem as though MSpec performs slower than Bacon, but when you consider that over a 50,000 test sample it was only (roughly) 10 seconds slower, the difference is negligible.</p>
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>Bacon</th>
<th>MSpec</th>
</tr>
</thead>
<tbody>
<tr>
<td>Run 1</td>
<td>27.642</td>
<td>37.337</td>
</tr>
<tr>
<td>Run 2</td>
<td> 25.598 </td>
<td> 37.755 </td>
</tr>
<tr>
<td>Run 3</td>
<td> 25.607 </td>
<td> 37.424</td>
</tr>
<tr>
<td>Run 4</td>
<td> 25.317 </td>
<td>36.439</td>
</tr>
<tr>
<td>Run 5</td>
<td> 25.105 </td>
<td>36.352</td>
</tr>
</tbody>
</table>
<pre name="code" class="ruby">
# This is the code for the spec test wrapper.
# To execute, save the file as "spec_runner.rb" and execute
#    ruby spec_runner.rb
#
#

ITERATIONS = 10000

require 'rubygems'

@old_stdout = $stdout
$stdout = StringIO.new

def milestone(n)
$stdout = @old_stdout
puts ("Reached milestone: ##{n}")
$stdout = StringIO.new

end

def time_it(&#038;func)
	start_time = Time.now
	1.upto(ITERATIONS) do |n|
		func.call
		milestone(n) if n % 1000 == 0
	end
	end_time = Time.now
	end_time-start_time
end

bacon_time = time_it do
	load 'whirlwind_bacon.rb'
end

mspec_time = time_it do
	load 'whirlwind_mspec.rb'
end

$stdout = @old_stdout
puts "bacon time: #{bacon_time}"
puts "mspec time: #{mspec_time}"
</pre>
<pre name="code" class="ruby">
# This is the Bacon test file. Save it as "whirlwind_bacon.rb"
#
#

require 'bacon'

describe 'A new array' do
	before do
		@ary = Array.new
	end

	it 'should be empty' do
		@ary.should.be.empty
		@ary < < 1
		@ary.should.include 1
	end

	it 'should have zero size' do
		@ary.size.should.equal 0
		@ary.size.should.be.close 0.1, 0.5
	end

	it 'should raise on trying fetch any index' do
		lambda { @ary.fetch 0 }.
			should.raise(IndexError).
			message.should.match(/out of array/)
	end

	it 'should have an object identity' do
		@ary.should.not.be.same_as Array.new
	end

	palindrome = lambda { |obj| obj == obj.reverse }
	it 'should be a palindrome' do
		@ary.should.be.a palindrome
	end
end
</pre>
</pre>
<pre name="code" class="ruby">
# This is the MSpec test file. Save it as "whirlwind_mspec.rb"
#
#
require 'mspec'

describe 'A new array' do
	before do
		@ary = Array.new
	end

	it 'should be empty' do
		@ary.should be_empty
		@ary < < 1
		@ary.should include(1)
	end

	it 'should have zero size' do
		@ary.size.should.equal 0
		@ary.size.should be_close(0.1, 0.5)
	end

	it 'should raise on trying fetch any index' do
		d = lambda { @ary.fetch 0 }
		d.should raise_error(IndexError, /out of array/)
	end

	it 'should have an object identity' do
		@ary.should !equal(Array.new)
	end

	palindrome = lambda { |obj| obj == obj.reverse }
	it 'should be a palindrome' do
		(palindrome.call @ary).should be_true
	end
end
</pre>
</pre>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/' rel='bookmark' title='Permanent Link: Ruby and .NET for the uninitiated'>Ruby and .NET for the uninitiated</a> <small>Coming wit</small></li><li><a href='http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/' rel='bookmark' title='Permanent Link: Specification Testing in .NET using Ruby'>Specification Testing in .NET using Ruby</a> <small>Not long a</small></li><li><a href='http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/' rel='bookmark' title='Permanent Link: e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;'>e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;</a> <small>i&#8217;ve</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/i4gAzdtZhSE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/</feedburner:origLink></item>
		<item>
		<title>Search Engine Showdown: Google vs Yahoo Search</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/yu81ciuBk3M/</link>
		<comments>http://www.xerxesb.com/2009/google-vs-yahoo-search/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 22:30:10 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=502</guid>
		<description><![CDATA[In the second installment in my series of evaluating search engines, I take a look at Yahoo&#8217;s search offering &#8211; specifically the locally-branded Yahoo7 search
The first test &#8211; TICK. A Yahoo search on my name turns up very good results. My website first, and underneath that one of my blog posts. Closely followed by Facebook [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-ask/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Ask'>Search Engine Showdown: Google vs Ask</a> <small>In this, t</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>In the second installment in my <a href="http://www.xerxesb.com/2009/one-search-engine-per-week/">series of evaluating search engines</a>, I take a look at Yahoo&#8217;s search offering &#8211; specifically the locally-branded <a href="http://www.yahoo7.com.au/">Yahoo7 search</a></p>
<p>The first test &#8211; TICK. A <a href="http://au.search.yahoo.com/search?ei=UTF-8&#038;fr=crmas&#038;p=xerxes+battiwalla">Yahoo search on my name</a> turns up very good results. My website first, and underneath that one of my blog posts. Closely followed by Facebook and LinkedIn. If i wanted to stalk myself, this is clearly a good place to start.</p>
<p>A cute little feature is that my Facebook search result contains deep links to come Facebook features like &#8220;<a href="http://au.wrs.yahoo.com/_ylt=A0oGk3Kj_utJzlABuxAL5gt./SIG=1267p6kqj/EXP=1240289315/**http%3a//www.facebook.com/message.php%3fid=693311395">Send Message</a>&#8220;, and &#8220;<a href="http://au.wrs.yahoo.com/_ylt=A0oGk3Kj_utJzlABuhAL5gt./SIG=123emrm3i/EXP=1240289315/**http%3a//www.facebook.com/poke.php%3fid=693311395">Poke</a>&#8220;. Way to get in with the 2.0, Yahoo.</p>
<p>After that, it starts getting a bit weird, and the results lose a lot of meaning. Some old documentation I wrote when in another job shows up on the first page, despite it being excessively out-of-date and not updated for at least 3 years, I didn&#8217;t think this content would fare at all.</p>
<p>In terms of visuals, the search results are very Google&#8217;esque&#8230;nay, identical. Yahoo results are minimalistic with Web, Image, Video, News, Maps and More at the top of the screen and a link to the cached version located conveniently in a position which makes defending a case of plagiarism from Google infinitely hard. I guess the up-side to this is that people will hit Yahoo search results and feel like they&#8217;re in familiar territory.</p>
<p>Which I guess leads me into Yahoo&#8217;s foray into Federated search called <em><a href="http://au.alpha.yahoo.com/">Alpha</a></em>. Yahoo claim that <em>&#8220;Alpha is a new beta product from Yahoo!7 that introduces the concept of Federated Search. With Alpha, you can search across many different information sources all on one place&#8221;.</em>. Holy tuna, batman! &#8220;Search across many information sources from one place&#8221;?&#8230;.Sounds like a regular search engine to me. *bored* The quality of search results don&#8217;t appear to be any different to regular Yahoo, but the UI is very different. Kind of like Live Search (and we all <a href="http://www.xerxesb.com/2009/google-vs-live-search/">remember how that went</a>)&#8230;</p>
<p>&lt;fast-forward one week&gt;</p>
<p>I&#8217;ve been using Y7&#8217;s search now for the week and I have to admit, I was acutally quite comfortable with the results it was giving. When evaluating MS Live Search, I was constantly living in this fear that I was missing quality search results and would fall back to Google just to make sure I was getting the right information when I needed it. However with Yahoo, I felt confident enough with what it gave me to not feel like I was missing out on good results. I honestly feel like I could replace Google with Yahoo if I needed to (which I don&#8217;t).</p>
<p>The next engine to go under the knife &#8211; <a href="http://ask.com">Ask.com</a>. They don&#8217;t have any locally branded content, and I&#8217;ve just got a gut-feeling this will be a difficult week <img src='http://www.xerxesb.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-ask/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Ask'>Search Engine Showdown: Google vs Ask</a> <small>In this, t</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/yu81ciuBk3M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/google-vs-yahoo-search/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/google-vs-yahoo-search/</feedburner:origLink></item>
		<item>
		<title>Getting CruiseControl.NET To Talk To Git</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/xpR7K4GJyuA/</link>
		<comments>http://www.xerxesb.com/2009/getting-cruisecontrolnet-to-talk-to-git/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 01:53:29 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[ccnet]]></category>
		<category><![CDATA[cruisecontrol.net]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=509</guid>
		<description><![CDATA[CruiseControl.NET is an automated build system ported from Java to the .NET framework. The current stable release of CCNET is v1.4.3.  Unfortunately this version of CCNET does not natively support using Git as a source control provider. So if you&#8217;re making the switch from (say) SVN or VSS, at the time of writing, you [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2008/microsoft-source-code-analysis-for-c/' rel='bookmark' title='Permanent Link: Microsoft Source Code Analysis for C#'>Microsoft Source Code Analysis for C#</a> <small>Also known</small></li><li><a href='http://www.xerxesb.com/2008/vs2005-iis-binding-can-be-removed/' rel='bookmark' title='Permanent Link: VS2005 IIS Binding Can be removed'>VS2005 IIS Binding Can be removed</a> <small>In Visual </small></li><li><a href='http://www.xerxesb.com/2008/ccnet-will-crash-and-die-when-you-run-out-of-disk-space/' rel='bookmark' title='Permanent Link: CCNET will crash and die when you run out of disk space'>CCNET will crash and die when you run out of disk space</a> <small>Maybe its </small></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.NET</a> is an automated build system ported from Java to the .NET framework. The current stable release of <abbr title="CruiseControl.NET">CCNET</abbr> is v1.4.3.  Unfortunately this version of CCNET does not natively support using <a href="http://git-scm.com/">Git</a> as a source control provider. So if you&#8217;re making the switch from (say) SVN or VSS, at the time of writing, you will have a few bumps in the road ahead. NB: This page assumes you have a working copy of git running on your machine</p>
<p>To get Git working with CCNET, I found the excellent <a href="http://github.com/dogeth/ccnet.git.plugin/tree/master">ccnet.git.plugin</a> project on Github. This code is a plugin for CCNET which exposes basic functionality (and a little more) to allow CCNET to use Git as a source repository. </p>
<p>Firstly you need to download said source and compile the binaries. In case you&#8217;re super lazy, here&#8217;s one I prepared earlier &#8211; <a href='http://www.xerxesb.com/wp-content/uploads/2009/04/ccnetgitplugin.zip'>ccnet.git.plugin binary download</a></p>
<p>The plugin works by dropping it straight into your CCNET server&#8217;s folder with the other binaries. In most cases, this will be <em>c:\Program Files\CruiseControl.NET\server\</em>. Make sure your restart CCNET.</p>
<p>The next thing is to configure your project to use git as the source control provider. The README has an excellent example of how to configure the project. My initial project block ended up looking something like this (renamed to protect the innocent):</p>
<pre>
  &lt;project name="FittingApp.Project" queue="FittingApp.Project"&gt;
    &lt;sourcecontrol type="git"&gt;
	&lt;repository&gt;git@bumblebee:FittingProject.git&lt;/repository&gt;
	&lt;timeout&gt;30000&lt;/timeout&gt;
	&lt;executable&gt;c:\program files\git\bin\git.exe&lt;/executable&gt;
	&lt;workingDirectory&gt;C:\build\projects\FittingApp.Project\&lt;/workingDirectory&gt;
    &lt;/sourcecontrol&gt;

    &lt;triggers&gt;
    &lt;/triggers&gt;

    &lt;tasks&gt;
    &lt;/tasks&gt;

    &lt;publishers&gt;
      &lt;xmllogger /&gt;
      &lt;statistics /&gt;
    &lt;/publishers&gt;
  &lt;/project&gt;
</pre>
<p>One important thing to note is that the README (at the time of writing) doesn&#8217;t mention the <em>timeout</em> element you can use in your configuration. The default value is quite high. I prefer to lower it and found this property by perusing the tests.</p>
<p>Finally after all that, everything should be done and ready to rock, right? Turns out not so. One problem I stumbled into (and took a while to resolve) was the build timing out when it was doing a fetch. The CPU was idle and there was no traffic over the network. The process would timeout and the build would fail. The funny thing was that I could open a command-prompt console myself and fetch the remote repo no problem. But when being performed by CCNET, it would timeout during the fetch.</p>
<p>Afer digging further, it looked like the SSH authentication wasn&#8217;t working and that the auth process didn&#8217;t accept the default SSH credentials <a href="http://www.xerxesb.com/2009/managing-multiple-git-accounts/">I created earlier</a>. I suspect it was waiting for me to enter a password for the remote git account. Of course there&#8217;s no interaction with this process so eventually it times out. After a long back-and-forth with the problem, I got in touch with the author of the plugin and he suggested checking that the <strong>HOME</strong> environment variable is set to <em>%USERPROFILE%</em>, otherwise git wouldn&#8217;t be able to find the git config settings. This solved the problem, and the build started working sweet. (big props, Kevin &#8211; thanks <img src='http://www.xerxesb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>With all that done, you should now be staring down the barrel of a CCNET installation successfully talking to Git. Hope this helps someone else out there.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2008/microsoft-source-code-analysis-for-c/' rel='bookmark' title='Permanent Link: Microsoft Source Code Analysis for C#'>Microsoft Source Code Analysis for C#</a> <small>Also known</small></li><li><a href='http://www.xerxesb.com/2008/vs2005-iis-binding-can-be-removed/' rel='bookmark' title='Permanent Link: VS2005 IIS Binding Can be removed'>VS2005 IIS Binding Can be removed</a> <small>In Visual </small></li><li><a href='http://www.xerxesb.com/2008/ccnet-will-crash-and-die-when-you-run-out-of-disk-space/' rel='bookmark' title='Permanent Link: CCNET will crash and die when you run out of disk space'>CCNET will crash and die when you run out of disk space</a> <small>Maybe its </small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/xpR7K4GJyuA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/getting-cruisecontrolnet-to-talk-to-git/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/getting-cruisecontrolnet-to-talk-to-git/</feedburner:origLink></item>
		<item>
		<title>Search Engine Showdown: Google Vs Live Search</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/Q1zfVZXCPG8/</link>
		<comments>http://www.xerxesb.com/2009/google-vs-live-search/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 04:37:25 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Live]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=450</guid>
		<description><![CDATA[In my (what i hope to complete) series of comparing Google to other search engines, The first engine i&#8217;m testing out is Microsoft Live Search.
I guess the first (obvious) thing to try is to search for my name (on a side note, i&#8217;m soooo tempted to use &#8220;google&#8221; as a verb, but that would be [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-ask/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Ask'>Search Engine Showdown: Google vs Ask</a> <small>In this, t</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>In my (what i hope to complete) series of <a href="http://www.xerxesb.com/2009/one-search-engine-per-week/">comparing Google to other search engines</a>, The first engine i&#8217;m testing out is <a href="http://www.live.com.au">Microsoft Live Search</a>.</p>
<p>I guess the first (obvious) thing to try is to <em>search</em> for my name (on a side note, i&#8217;m soooo tempted to use &#8220;google&#8221; as a verb, but that would be inappropriate when testing out the competition, no?). The first two results are correct, or at least relevant (ie: <a href="http://www.xerxesb.com/">my website</a>) and the rest of the results are neither here nor there in terms of relevance &#8211; there really wasn&#8217;t a whole lot it could do with my name except find literal matches in page content.</p>
<p>One thing which surprises me is that the results returned vary greatly depending on how many results I show on each page. Setting the limit to the minimum of 10, and I seem to get results all about me and most of them pretty relevant chronologically. However if i switch it to 30 results per page the niceties pretty much drop dead as the search results spew into variations of my Facebook profile in different culture sub-domains (ja-jp being the most relevant out of about 7 others). FAIL.</p>
<p>Live search, (unlike Google) has a neat little equation solver (<a href="http://search.live.com/results.aspx?q=8x%2B3x%3D256&#038;go=&#038;form=QBRE3">example</a>), which would have been great about 10 years ago when i was actually doing calculus and <a href="http://search.live.com/results.aspx?q=x^2+-+4+%3D+0&#038;go=&#038;form=QBRE">solving quadratic equations</a>. Relevant now? Probably not. I would expect the Wolfram Alpha to drop a big steaming shizzle all over this feature given it&#8217;s company history. So Maths equation solving &#8211; FAIL.</p>
<p>One problem i&#8217;m finding is that i&#8217;m  just not used to the format of search results from Live search. I find that if what i&#8217;m searching for is not essential to what i&#8217;m doing (or should be doing) it turns me off and i want to just leave the site without getting any results. This is a very bad <a href="http://en.wikipedia.org/wiki/User_experience">UX</a> and it&#8217;s probably all in my perception of what &#8220;good&#8221; search results look like.<br />
<span style="letter-spacing:+5px;text-transform:uppercase">Must fight urge to judge a book by it&#8217;s cover.</span></p>
<p>&#8230;&#8230;&lt;fast forward a few days&gt;&#8230;&#8230;</p>
<p>and so it is i come to the end of the week and in all seriousness it couldn&#8217;t come soon enough. I tried, I really did. Microsoft has a loooong way to go before they could even begin to think about claiming that their search engine is actually a competitor to Google, and not just another smoking pile of crap. You know things are in trouble when you need to create a short-cut to Google&#8217;s search because the Live results are just plain inadequate.</p>
<p>Suffice to say, i&#8217;m very disappointed with Live Search and don&#8217;t think it&#8217;s ready to be considered a contender for search king of the net. i&#8217;m glad to get my browser away from it and move onto something else.</p>
<p>Yahoo &#8211; stand up. You&#8217;re next.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-ask/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Ask'>Search Engine Showdown: Google vs Ask</a> <small>In this, t</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/Q1zfVZXCPG8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/google-vs-live-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/google-vs-live-search/</feedburner:origLink></item>
		<item>
		<title>Managing Multiple Git Accounts</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/NDXhrhpll64/</link>
		<comments>http://www.xerxesb.com/2009/managing-multiple-git-accounts/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 23:00:11 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=463</guid>
		<description><![CDATA[I&#8217;m in a situation where I want to keep different settings for several Git repositories. My work&#8217;s Git repo and settings (like email address and private key) would be different to my GitHub email address and key.
After following the setup details on GitHub of how to setup username and email for github, and providing your [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/getting-cruisecontrolnet-to-talk-to-git/' rel='bookmark' title='Permanent Link: Getting CruiseControl.NET To Talk To Git'>Getting CruiseControl.NET To Talk To Git</a> <small>CruiseCont</small></li><li><a href='http://www.xerxesb.com/2009/reverting-changes-in-git/' rel='bookmark' title='Permanent Link: Reverting Changes In Git'>Reverting Changes In Git</a> <small>I&#8217;ve</small></li><li><a href='http://www.xerxesb.com/2009/turning-your-asus-eeebox-b202-into-a-xbmc/' rel='bookmark' title='Permanent Link: Turning your Asus eeeBox B202 into a XBMC'>Turning your Asus eeeBox B202 into a XBMC</a> <small>I recently</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in a situation where I want to keep different settings for several Git repositories. My work&#8217;s Git repo and settings (like email address and private key) would be different to my GitHub email address and key.</p>
<p>After following the setup details on GitHub of how to <a href="http://github.com/guides/tell-git-your-user-name-and-email-address">setup username and email for github</a>, and <a href="http://github.com/guides/providing-your-ssh-key#msysGit">providing your SSH keys </a>, I was left in an awkward situation where my global configuration was setup for GitHub, but didn&#8217;t know how to configure my work repo to authenticate properly.</p>
<p>It turns out that <a href="http://www.xerxesb.com/2009/one-search-engine-per-week/">Live search does actually work for one scenario</a>, and I found another guide on GitHub explaining everything required to <a href="http://github.com/guides/multiple-github-accounts">configure multiple Git accounts</a>.</p>
<ol>
<li>What&#8217;s most important is knowing that unless you&#8217;re using the same public/private key pair, you will need to generate a new key for the server, and give it a filename different to the default <em>id_rsa</em>
<pre class="console">$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Documents and Settings/Xerxes/.ssh/id_rsa): /c/Documents and Settings/Xerxes/.ssh/id_rsa_github</pre>
<p>This file needs to be given a name different to the default <em>id_rsa</em>, ideally consisting the name of the repo.
</li>
<li>Once the key is generated, you need to create a <em>config</em> file in your ~/.ssh/ directory. This file allows you to configure connection settings per repository, overriding the global values set earlier.
<pre>
Host github
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github
</pre>
<p>Save that file.</li>
<li>
One final step in the mix is to configure the repo itself to use the correct email address when committing to the git repo. This is really only to ensure that the commit history has a valid email address associated to it. For instance, I don&#8217;t want my private email address being recorded in my work commit logs, and similarly I don&#8217;t want my work email address getting recorded in my GitHub commit logs.</p>
<p>I&#8217;m sure there would have to be a way to do this using the console, but the way I know to set the email address for a single repo is to use the <em>git gui</em> command, goto <em>Edit -> Options</em> and do it via the interface.<br />
<div id="attachment_484" class="wp-caption alignnone" style="width: 416px"><img src="http://www.xerxesb.com/wp-content/uploads/2009/04/gitgui_config1.png" alt="git gui repo configuration" title="gitgui_config" width="306" class="size-full wp-image-484" /><p class="wp-caption-text">git gui repo configuration</p></div></p>
</li>
</ol>
<p>Now you should be right to issue any commands to GitHub and have it authenticate using the key. When you push back to the origin, it will now also use the repo settings and not the global settings. </p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/getting-cruisecontrolnet-to-talk-to-git/' rel='bookmark' title='Permanent Link: Getting CruiseControl.NET To Talk To Git'>Getting CruiseControl.NET To Talk To Git</a> <small>CruiseCont</small></li><li><a href='http://www.xerxesb.com/2009/reverting-changes-in-git/' rel='bookmark' title='Permanent Link: Reverting Changes In Git'>Reverting Changes In Git</a> <small>I&#8217;ve</small></li><li><a href='http://www.xerxesb.com/2009/turning-your-asus-eeebox-b202-into-a-xbmc/' rel='bookmark' title='Permanent Link: Turning your Asus eeeBox B202 into a XBMC'>Turning your Asus eeeBox B202 into a XBMC</a> <small>I recently</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/NDXhrhpll64" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/managing-multiple-git-accounts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/managing-multiple-git-accounts/</feedburner:origLink></item>
		<item>
		<title>Specification Testing in .NET using Ruby</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/Lvcy4xEbJaY/</link>
		<comments>http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 23:10:25 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[ironruby]]></category>
		<category><![CDATA[mspec]]></category>
		<category><![CDATA[rspec]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=397</guid>
		<description><![CDATA[Not long ago, I posted a big fat blat of information  from my investigation in trying to get Ruby based spec testing integrated with .NET. In this post, I make some sense of all that content and (more importantly) drop a sample of taking advantage of this. (nb: This post is essentially a direct-rip [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/' rel='bookmark' title='Permanent Link: Ruby and .NET for the uninitiated'>Ruby and .NET for the uninitiated</a> <small>Coming wit</small></li><li><a href='http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/' rel='bookmark' title='Permanent Link: Poor-man&#8217;s Benchmarking in Ruby'>Poor-man&#8217;s Benchmarking in Ruby</a> <small>As part of</small></li><li><a href='http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/' rel='bookmark' title='Permanent Link: e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;'>e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;</a> <small>i&#8217;ve</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Not long ago, I posted <a href="http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/">a big fat blat of information</a>  from my investigation in trying to get Ruby based spec testing integrated with .NET. In this post, I make some sense of all that content and (more importantly) drop a sample of taking advantage of this. (nb: This post is essentially a direct-rip of an internal document I created for this purpose)</p>
<h3>Overview</h3>
<p>The purpose of this page is to run through a process which will ultimately allow the reader (thats <em>you</em>) to write Ruby based specifications for your .NET code.</p>
<h3>Why?</h3>
<p>Why would you want to do this? The intended purpose for this practice is to gain the most benefit when doing <a href="http://dannorth.net/introducing-bdd">BDD</a>. Trying to do BDD in C# results in a lot of syntactical noise in the code which distracts from the goal of having clear, readable specifcations of how the intended function should behave. Additionally, any traditional C# BDD toolset requires the specifications to be statically compiled into a test binary in order to be executed. The advantage of using Ruby is that the scripted nature of the language allows physical (as well as logical) separation of speficiations from code, opening up the realm of possibility that specifications are written by non-technical folk. Furthermore, the Ruby syntax lends itself to building DSLs perfect for the purpose of allowing clean, almost human-readable code.</p>
<h3>Scope of investigation</h3>
<p>The investigation work preceding this post was set 3 goals:</p>
<ul>
<li>Determine the viability of using <a href="http://wiki.github.com/aslakhellesoy/cucumber">Cucumber</a> as an automated feature verification utility</li>
<li>Determine the viability of using <a href="http://rspec.info/">RSpec</a> as an automated specification verification utility</li>
<li>Determine the viability of using <a href="http://www.ironruby.net/">IronRuby</a> as conduit to allow Ruby specificaitons to execute against compiled C# code. (applicability to any other CLR-supported language is then assumed).</li>
</ul>
<h3> Investigation results</h3>
<p>The results of the investigation showed that:</p>
<ul>
<li>RSpec is currently not supported on IronRuby due to a number of bugs in the IronRuby project. (Based upon a discussion with <a href="http://www.twitter.com/jschementi">@jschementi</a> and <a href="http://msdn.microsoft.com/en-us/magazine/dd434651.aspx">this article</a> (toward the bottom))</li>
<li>Accordingly, Cucumber is currently not supported on IronRuby due to it using RSpec internally (explained on<a href="http://www.ruby-forum.com/topic/183002">the ruby forums</a>)</li>
<li>The IronRuby team have worked to incorporate support for a more lean specification testing tool <a href="http://rubyspec.org/projects/show/mspec">MSpec</a> which is very similar in syntax to RSpec, but not as functionally complete.</li>
<li>MSpec will work with IronRuby to write Ruby based specifications to verify .NET compiled applications.</li>
</ul>
<h3>What tools are we using?</h3>
<p>Based on the results of the investigation, the best way to approach this method of testing is to use the MSpec library to write specifications against C# code, execute them using IronRuby and in future, once IronRuby is more stable we can look to migrating over to cucumber for feature-style verification on top of M/RSpec.<br />
</p>
<h5> RubyGems</h5>
<p>RubyGems is a package which allows you to download ruby components and utilities (known as Gems). The default RubyGems package which comes with the one-click installer might be outdated when you download it, so the best thing to do here is to update RubyGems to the latest version</p>
<blockquote><p>
gem update &#8211;system
</p></blockquote>
<p>In the event you&#8217;re behind a company firewall, or you need to use an HTTP proxy for whatever reason, you need to tell the GEM command to use the http proxy as it doesn&#8217;t honour your default internet options. Substitute the server and port where appropriate and then run the gem update:</p>
<blockquote><p>
SET HTTP_PROXY=http://your.proxy.server:3128
</p></blockquote>
<p>You&#8217;re now minty fresh with the latest RubyGem package.<br />
</p>
<h5> IronRuby (IR) </h5>
<p>Go and <a href="http://www.ironruby.net/Download">download</a> the latest release of the IronRuby project from <a href="http://www.ironruby.net">ironruby.net</a>. The current &#8220;official&#8221; pre-release release is v0.3, and it doesn&#8217;t have any installer. To &#8220;install&#8221;, make sure you extract the contents to the location</p>
<blockquote><p>
c:\ironruby\*
</p></blockquote>
<p>This is the standard installation location for IR. Once there, it&#8217;s recommended that you update your system path to include the path your IR&#8217;s bin folder.</p>
<p><div id="attachment_408" class="wp-caption alignnone" style="width: 420px"><img src="http://www.xerxesb.com/wp-content/uploads/2009/04/irpath.jpg" alt="Setting PATH Environment for IronRuby" title="irpath" width="410" height="449" class="size-full wp-image-408" /><p class="wp-caption-text">Setting PATH Environment for IronRuby</p></div><br />
</p>
<h5> Required Gems </h5>
<p>We now get to the part where you need to install some of the gems required for specification testing. As mentioned at the start, RSpec and Cucumber isn&#8217;t 100% working with IR just yet, however it&#8217;s worthwhile installing them anyway to test things are working as expected and whatnot.</p>
<blockquote><p>
gem install mspec<br />
gem install cucumber<br />
gem install win32console<br />
##gem install rspec<br />
##gem install hoe
</p></blockquote>
<p>The last 2 should automatically be installed when you install cucumber as they&#8217;re dependencies, but if they don&#8217;t make sure you install them! If you really want to keep it lean you can get away with just mspec and none of the others.</p>
<p>Now the standard install of IR has its own repository of gems which can be managed thorugh IR&#8217;s <em>igem</em> utility. The reason we don&#8217;t use IR&#8217;s gem utility to install mspec is because mspec is a pretty special script which (basically) allows us to tell it which ruby interpreter we wish to use for running tests (<a href="http://www.ruby-forum.com/topic/183511#802328">explanation</a>, thanks to <a href="http://www.twitter.com/jredville">@jredville</a>). The neato thing here is that we then don&#8217;t need to install mspec speficially for IR, we can repurpose the MRI&#8217;s version.</p>
<h3> Testing it out </h3>
<p>Now that all the major stuff is installed lets test it out by creating a simple app in C# and write a specification in Ruby to verify its behaviour. Create a new folder to save the source files in.</p>
<pre name="code" class="c#">
using System;

namespace HelloWorld
{
    public class HelloClass
    {
        public string SayHello()
        {
            return "Hello from C#";
        }
    }
}
</pre>
<p>Here we have a class which returns a string when the method SayHello() is invoked.</p>
<pre name="code" class="ruby">
require "mspec"
require "HelloWorld.dll"

describe "the hello dot net app" do
	before do
		@app = HelloWorld::HelloClass.new
	end

	it "should say hello from c#" do
		@app.say_hello.to_s.should == "Hello from C#"
	end
end
</pre>
<p>This is our specification for the behaviour of the application.</p>
<p>To compile the C# class, open up a Visual Studio Command Prompt, CD to the source directory and type</p>
<blockquote><p>
csc /target:library /out:HelloWorld.dll HelloWorld.cs
</p></blockquote>
<p>&#8230;and now to run this puppy:</p>
<blockquote><p>
mspec -t c:ironrubybinir.exe sayhello_spec.rb
</p></blockquote>
<p>Here, we are invoking the mspec ruby script and passing two arguments. The first <em>-t c:ironrubybinir.exe</em> tells the ruby script that we with to execute the mspec specifications using a different Ruby interpreter to MRI. The interpreter we want to use in this case is IronRuby. The second argument tells it which spec we&#8217;re running. When mspec runs, it finds the <em>-t</em> argument and hands-off execution of the spec to another instance of mspec executing under IronRuby. This gives us the flexibility of being able to execute standard ruby specs and also calling out to IronRuby for .NET interop if needed.</p>
<p>The observant of you might notice that the call to <strong>@app.say_hello</strong> has a <em>to_s</em> chained afterward. IronRuby will return a ClrString as the object type when the interop call returns a CLR type string. the CLR&#8217;s <em>ClrString</em> and Ruby&#8217;s <em>string</em> are not interchangeable. You need to call <em>to_s</em> on the ClrString to treat it like a ruby string. This behaviour <a href="http://blogs.microsoft.co.il/blogs/shayf/archive/2009/01/09/ironruby-tip-ruby-string-and-clrstring.aspx">is at least explained</a>, albeit I need to dig deeper to understand why they couldn&#8217;t have an implicit cast operator (or dynamic language equivalent thereof).</p>
<p>One thing that&#8217;s important to note is that although i&#8217;ve dropped a few source files without too much explanation, you would actually build this up iteratively using the same TDD testing style you&#8217;ve always been used to. In fact, this form of specification testing makes test-first easier to do.</p>
<h3> Further work </h3>
<p>This article gives a straightforward overview of how to begin testing C# code with Ruby but it doesn&#8217;t go all the way.</p>
<ul>
<li>Ideally we would like to use Cucumber for automated feature acceptance test verification. Unfortunately the current build of IronRuby doesn&#8217;t work with Cucumber and RSpec but there should be ways to get the current IR implementation to work with a few tweaks. </li>
<li>Need to define and configure a standard project skeleton such that you don&#8217;t need to download and extract IR in order to get the system working. In a perfect situation, we could download only the source for the software without requiring any dependencies installed (including ruby!).</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/' rel='bookmark' title='Permanent Link: Ruby and .NET for the uninitiated'>Ruby and .NET for the uninitiated</a> <small>Coming wit</small></li><li><a href='http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/' rel='bookmark' title='Permanent Link: Poor-man&#8217;s Benchmarking in Ruby'>Poor-man&#8217;s Benchmarking in Ruby</a> <small>As part of</small></li><li><a href='http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/' rel='bookmark' title='Permanent Link: e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;'>e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;</a> <small>i&#8217;ve</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/Lvcy4xEbJaY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/</feedburner:origLink></item>
		<item>
		<title>One Search Engine Per Week</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/IyXKQyNYhMQ/</link>
		<comments>http://www.xerxesb.com/2009/one-search-engine-per-week/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 23:57:44 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=442</guid>
		<description><![CDATA[I had a little time over the long weekend to reflect on things in the past, and one conversation which came to mind was a casual chat with an engineer at Yahoo7 I met at a party about a year ago. I can&#8217;t for the life of me remember his name, but I do remember [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I had a little time over the long weekend to reflect on things in the past, and one conversation which came to mind was a casual chat with an engineer at <a href="http://www.yahoo7.com.au">Yahoo7</a> I met at a party about a year ago. I can&#8217;t for the life of me remember his name, but I do remember our conversation.</p>
<p>Maybe it was bravado, maybe it was arrogance, and it certainly was alcohol induced, but I asked him point blank &#8220;You work at Yahoo7. Compared to Google, how do you personally find Y7&#8217;s search results?&#8221;. Not unlike me to put some fuel into the fire, I was kind of expecting him to defend his company, defend the search engine backing his company&#8217;s website, stomp his foot and <a href="http://uncyclopedia.wikia.com/wiki/Duel">slap me across the face with a glove</a>&#8230;&#8230;&#8230;and he did (except for the glove).</p>
<p>The reason this moment stuck with me wasn&#8217;t because he launched into a tirade of fact vs fiction and MapReduce mumbo-jumbo, but because his answer was a brutally honest &#8220;Personally, I find the results on par and sometimes maybe a little less than Google, but the real test is in inviting you to try it&#8221;. The night went on, and i&#8217;m sure i stumbled into a taxi and got home safely, but I never really forgot his response.</p>
<p>Admittedly i&#8217;ve been putting it off for a while, and on occasion i&#8217;ve considered doing it but always found an excuse to stay within the comfort zone that Google provides. Well that changes this week as I&#8217;ve finally decided to bite the bullet and drop Google for a few weeks as I try using a different search engine each week in my daily routine and see how it feels and whether all search engines really are so close that Google&#8217;s superiority of results is just perception.</p>
<p>Having looked at some statistics of <a href="http://statowl.com/search_engine_market_share.php">search engine market share</a>, the candidates up for testing in this very un-scientific assessment are:</p>
<ul>
<li><a href="http://www.google.com.au">Google</a></li>
<li><a href="http://www.live.com.au">Live Search</a></li>
<li><a href="http://www.yahoo.com.au">Yahoo Search</a></li>
<li><a href="http://ask.com/">Ask</a></li>
<li><a href="http://search.aol.com.au/">AOL</a></li>
<li><a href="http://www.wolframalpha.com/">Wolfram Alpha</a></li>
</ul>
<p>This at least helps me weed out most of the <a href="http://search.netscape.com/">smaller players</a> and the engines of <a href="http://www.altavista.com/">eras</a> <a href="http://www.excite.com/">long</a> <a href="http://www.hotbot.com/">since</a> <a href="http://www.lycos.com/">forgotten</a>.</p>
<p>Where appropriate, i&#8217;ve tried to use locally branded variants of the website purely for my own benefit. I&#8217;ve thrown the Wolfram Alpha into the list because it generated significant interest in the blogosphere in the last 30 days to at least warrant a look once it&#8217;s released.</p>
<p>Starting this week, i&#8217;m going to try Live search. It&#8217;s set as my default search engine for Chrome and i&#8217;ll be consciously trying to use it over Google..</p>
<p>Wish me luck.</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/google-vs-yahoo-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs Yahoo Search'>Search Engine Showdown: Google vs Yahoo Search</a> <small>In the sec</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-live-search/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google Vs Live Search'>Search Engine Showdown: Google Vs Live Search</a> <small>In my (wha</small></li><li><a href='http://www.xerxesb.com/2009/google-vs-aol/' rel='bookmark' title='Permanent Link: Search Engine Showdown: Google vs AOL'>Search Engine Showdown: Google vs AOL</a> <small>I think it</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/IyXKQyNYhMQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/one-search-engine-per-week/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/one-search-engine-per-week/</feedburner:origLink></item>
		<item>
		<title>Xerxes Future Predictions – Computing Power</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/979oVRDFcB0/</link>
		<comments>http://www.xerxesb.com/2009/xerxes-future-predictions-computing-power/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 20:28:36 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[Predictions]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=383</guid>
		<description><![CDATA[I was thinking a few days ago about how things have changed in IT and software over the last number of years and how some things were overwhelmingly successful and of course others were quite underwhelming.
This got me thinking about what will probably happen in a few years, and I thought i&#8217;d put it down [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2008/power-levelling-enchanting/' rel='bookmark' title='Permanent Link: Power-levelling enchanting'>Power-levelling enchanting</a> <small>World of W</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I was thinking a few days ago about how things have changed in IT and software over the last number of years and how some things were <a href="http://www.apple.com/ipod/">overwhelmingly successful</a> and of course others were <a href="http://en.wikipedia.org/wiki/ReiserFS">quite underwhelming</a>.</p>
<p>This got me thinking about what will probably happen in a few years, and I thought i&#8217;d put it down on paper (of sorts) to look back at in a few years time and wonder wtf was I thinking. NB: I don&#8217;t make these statements because I actually think I know &#8211; i&#8217;m just taking educated guesses here&#8230;</p>
<p>In terms of computing power, we&#8217;ve seen <a href="http://en.wikipedia.org/wiki/Moores_law">Moore&#8217;s Law</a> hold true for over 40 years, albeit with a slight shift around the early part of this decade when we started reaching the physical speed limits of single-core processors. However this problem was easily circumvented as manufacturers continued to reduce transistor size and throw <a href="http://en.wikipedia.org/wiki/Multi-core_(computing)">more cores</a> on the same die. Inherently this has shifted the problem of maximising software performance from raw CPU throughput to parallelism of software operations.</p>
<p>Of course despite all of this progress, there will be a physical limit that current design and manufacturing processes can sustain. Beyond that, we would need to look into <a href="http://en.wikipedia.org/wiki/Quantum_computing">quantum computing</a> to continue pushing down the speed and size of computing. </p>
<p><strong>Xerxes Predicts:</strong></p>
<ul>
<li><strong>1-2 years</strong>:
<ul>
<li>Consumer computing power will remain dual-core for netbooks and laptops</li>
<li>Quad-core processors will become more common for desktop machines </li>
<li>Transistor manufacturing technology will remain largely in the 45nm range, possibly getting smaller.</li>
<li>Quantum computing will remain more research based</li>
</ul>
</li>
<li><strong>2-5 years</strong>:
<ul>
<li>Power-efficient processors like Intel&#8217;s Atom used for netbooks will get faster in CPU &#8211; meeting current desktop speed limitations </li>
<li>Note/netbooks will have quad-core standard, with more power pushed to individual components (eg: video, I/O)</li>
<li>Desktop computing will move to around 8-cores up to 10 or 12 per processor, however heating considerations will become more prevalent</li>
<li>Quantum computing will make its foray into the commercialised world. Until the technology is commercialised it will have virtually nil adoption. Possible uses for commercial quantum computing would be in research facilities for genome decoding, genetic folding or weather modelling.</li>
</ul>
</li>
<li><strong>5-10 years</strong>:
<ul>
<li>Consumers will discuss CPU-cores in their computers as we currently discuss CPU speed</li>
<li>Quantum computing will become more prevalent in dedicated hardware electronics like Cisco routers or hardware firewalls.</li>
<li> Consumer commercialisation of quantum computing is still a little bit away but will bolster a new generation of technological advancements </li>
</ul>
</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2008/power-levelling-enchanting/' rel='bookmark' title='Permanent Link: Power-levelling enchanting'>Power-levelling enchanting</a> <small>World of W</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/979oVRDFcB0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/xerxes-future-predictions-computing-power/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/xerxes-future-predictions-computing-power/</feedburner:origLink></item>
		<item>
		<title>Ruby and .NET for the uninitiated</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/sxhUFRQMOsw/</link>
		<comments>http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 01:13:05 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[ironruby]]></category>
		<category><![CDATA[mspec]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=389</guid>
		<description><![CDATA[Coming with no experience in both Ruby or IronRuby, this is just a big dump of my thoughts on the topic as i make my way around to learn them both and bring them into direct use within our project.


Most frustrating thing i want to say upfront and get out of the way now &#8211; [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/' rel='bookmark' title='Permanent Link: Specification Testing in .NET using Ruby'>Specification Testing in .NET using Ruby</a> <small>Not long a</small></li><li><a href='http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/' rel='bookmark' title='Permanent Link: Poor-man&#8217;s Benchmarking in Ruby'>Poor-man&#8217;s Benchmarking in Ruby</a> <small>As part of</small></li><li><a href='http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/' rel='bookmark' title='Permanent Link: e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;'>e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;</a> <small>i&#8217;ve</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Coming with no experience in both Ruby or IronRuby, this is just a big dump of my thoughts on the topic as i make my way around to learn them both and bring them into direct use within our project.</p>
<ul>
<li>
Most frustrating thing i want to say upfront and get out of the way now &#8211; almost all documentation i&#8217;ve found for Ruby (the language) is discussed in the context of using Rails. Whilst this might be true for 95% of Ruby users, it frustrates the poo-poo&#8217;s out of me. Rails is quite obviously a very advanced framework, and it really helps blur the distinction between what is &#8220;Ruby&#8221; and what is &#8220;Rails&#8221;. Particuarly to do with shortcuts provided by the rails framework I haven&#8217;t found elsewhere (for example, <em>ruby script/generate rspec</em>)
</li>
<li>
<p>Installing Ruby is as difficult as downloading the installer for Windows and running it. That&#8217;s where my degree pays for itself.
</li>
<li>
<p>Of course depending on how old the download package you&#8217;re using is, you&#8217;ll need to update your gems to the latest version with <em>gem update &#8211;system</em>
</li>
<li>
<p>In the event you&#8217;re behind a company firewall, or you need to use an HTTP proxy for whatever reason, you need to tell the GEM command to use the http proxy as it doesn&#8217;t honour your default internet options. <em>SET HTTP_PROXY=http://your.proxy.server:3128</em>, substituting the server and port where appropriate.
</li>
<li>
<p>When it comes time to play with IronRuby, you&#8217;ll need to install a few gems which didn&#8217;t seem to come with the pre-built version of the assembly. </p>
<p>Firstly, make sure you put your IronRuby bin directory into the path. If you want to use RSpec (which you do), then you&#8217;ll need to <em>igem install rspec</em> and <em>igem install hoe</em>. if you do <em>igem install cucumber</em> you should get both for free.</p>
<p>Secondly, it seems like recent changes to the IR project have broken the implementation of the expand_path method. Although there is claimed to be <a href="http://www.ruby-forum.com/topic/182692">an available workaround</a>, I have not had any luck thusfar with it. (Will try recompiling from source). A quick chat with <a href="http://twitter.com/jschementi">@jschementi</a> confirms there is something broken with the current build and will be fixed soon.
</li>
<li>
<p>mspec works, though you might have some complications with getting mspec to use the right ruby interpreter. big props go out to <a href="http://twitter.com/jredville">@jredville</a> for <a href="http://www.ruby-forum.com/topic/183511">helping me sort that one out</a>. If you run mspec by itself or try to invoke it directly through IR, you will invariably end up with an error like this: </p>
<blockquote><p>
c:\source\ruby\calcdotnet>imspec spec<br />
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]</p>
<p>1) An exception occurred during: loading c:/source/ruby/calcdotnet/spec/calculator_spec.rb ERROR<br />
LoadError: 127: The specified procedure could not be found.   &#8211; Init_calculator<br />
c:/source/ruby/calcdotnet/lib/calculator.dll<br />
c:/source/ruby/calcdotnet/lib/calculator.dll<br />
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require&#8217;<br />
c:/source/ruby/calcdotnet/spec/calculator_spec.rb:1</p>
<p>Finished in 0.090000 seconds</p>
<p>1 file, 0 examples, 0 expectations, 0 failures, 1 error
</p></blockquote>
<p>The trick here is that mspec is designed to allow itself to swap one copy out for another. If you pass mspec the argument &#8220;-t c:\ironruby\bin\ir.exe&#8221; it will use IR instead of the ruby interpreter. eg: <em>mspec -t c:\ironruby\bin\ir.exe spec/</em>
</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/specification-testing-in-net-using-ruby/' rel='bookmark' title='Permanent Link: Specification Testing in .NET using Ruby'>Specification Testing in .NET using Ruby</a> <small>Not long a</small></li><li><a href='http://www.xerxesb.com/2009/poor-mans-benchmarking-in-ruby/' rel='bookmark' title='Permanent Link: Poor-man&#8217;s Benchmarking in Ruby'>Poor-man&#8217;s Benchmarking in Ruby</a> <small>As part of</small></li><li><a href='http://www.xerxesb.com/2009/e-text-editor-ruby-no-such-file-to-load-ubygems-loaderror/' rel='bookmark' title='Permanent Link: e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;'>e Text Editor: &#8220;ruby: no such file to load &#8212; ubygems (LoadError)&#8221;</a> <small>i&#8217;ve</small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/sxhUFRQMOsw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/ruby-and-net-for-the-uninitiated/</feedburner:origLink></item>
		<item>
		<title>Organising GMail’s Inbox and Weirdness with Starring Items</title>
		<link>http://feedproxy.google.com/~r/TheTomesOfExperience/~3/GJUABBm0v1U/</link>
		<comments>http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 07:08:07 +0000</pubDate>
		<dc:creator>Xerxes</dc:creator>
				<category><![CDATA[IT & Software]]></category>
		<category><![CDATA[GMail]]></category>

		<guid isPermaLink="false">http://www.xerxesb.com/?p=376</guid>
		<description><![CDATA[If you&#8217;re like me, you&#8217;ve already thrown out the system of creating folders and meticulously sorting your email on arrival. It was a frustrating system because it was time-consuming and lets face it, humans aren&#8217;t designed to be organised machines. So I love the GMail model where I don&#8217;t *have* to file my email I [...]


Related posts:<ol><li><a href='http://www.xerxesb.com/2009/hiding-items-from-windows-update/' rel='bookmark' title='Permanent Link: Hiding Items From Windows Update'>Hiding Items From Windows Update</a> <small>having fre</small></li><li><a href='http://www.xerxesb.com/2009/dont-overcomplicate-it-the-simple-solution-is-always-the-best/' rel='bookmark' title='Permanent Link: Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best'>Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best</a> <small>I could sl</small></li><li><a href='http://www.xerxesb.com/2009/re-email-account-verification-update/' rel='bookmark' title='Permanent Link: Re: Email Account Verification Update'>Re: Email Account Verification Update</a> <small>I had the </small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me, you&#8217;ve already thrown out the system of creating folders and meticulously sorting your email on arrival. It was a frustrating system because it was time-consuming and lets face it, humans aren&#8217;t designed to be organised machines. So I love the GMail model where I don&#8217;t *have* to file my email I can just read it and forget about it. </p>
<p>My system for prioritising mail works like this:</p>
<ol>
<li>If its obviously spam, I spam it</li>
<li>If its new, I read it.</li>
<li>After reading, if it was useful information i&#8217;ll do one of two things:
<ol>
<li>If I need to follow up on the item, i&#8217;ll mark it as unread</li>
<li>If I need to keep it for reference because I suspect i might need it quickly in the near future, i&#8217;ll star it.</li>
</ol>
</li>
<li>All other mail stays in the inbox, or is already covered by another filter which applys a label and archives.</li>
</ol>
<p>This means that my inbox can usually fill pretty quickly. I like being in control of what I archive and when, but the downside is that my inbox can grow out of control before I take it back. The important point here though, is that <strong>the software works for me and not the other way around.</strong></p>
<p>My inbox is generally my default view, but I&#8217;ve also used some of the GMail labs features to set-up a system to quickly find the items i&#8217;d previously flagged for one reason or another. Using GMail&#8217;s QuickLinks lab feature, i&#8217;ve setup a search shortcut to my &#8220;Unread Or Starred&#8221; emails (<em>label:starred OR is:unread in:inbox</em>). Direct access, and i&#8217;m happy once again.</p>
<p>Unfortunately, ultimately I get to the point when even I realise just how much crap i&#8217;ve accumulated in my inbox. In order to sort out my &#8220;flagged&#8221; emails from all the other crap in the inbox, I follow the following process:</p>
<ol>
<li>Open my &#8220;Unread or Starred&#8221; search link, and apply a label called &#8220;TEMP MARK&#8221; to the emails. Gmail allows you to have multiple labels per message so no sweat here</li>
<li>Perform a search (or use another Quick-Link shortcut) to the following search criteria (<em>!label:temp-mark in:inbox</em>). This does an inverted selection on my inbox to pick out anything that doesn&#8217;t meet my criteria</li>
<li>
</li>
<li>Hit &#8220;Select all&#8221; and archive.</li>
<li>Go back to the inbox and remove the temp mark from the current inbox items. mainly for cleanup</li>
</ol>
<p>Now the astute of you reading this would ask why don&#8217;t I just use an inverted query of Unread or Starred (<em>!label:starred AND !is:unread in:inbox</em>) and use that? Well i&#8217;ve tried it and GMail screws it up and somehow returns more emails than it actually should. I really cant understand why&#8230;.</p>
<p>All suggestions are welcome <img src='http://www.xerxesb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>UPDATE</strong><br />
I just spent 10 mins trying to work it out &#8211; its so baffling&#8230;.<br />
My inbox contains 10 items, of which I have specially flagged 7, I would expect the inverted query  to return 3. But it returns 5. What are the 2 extra emails? They are emails which were starred from within a conversation and not from the item list. It seems like GMail doesn&#8217;t recognise items which are starred within the conversation view as having the label &#8220;starred&#8221;, so my initial query of &#8220;Unread Or Starred&#8221; isn&#8217;t actually bringing everything back in the first place. *sigh*</p>


<p>Related posts:<ol><li><a href='http://www.xerxesb.com/2009/hiding-items-from-windows-update/' rel='bookmark' title='Permanent Link: Hiding Items From Windows Update'>Hiding Items From Windows Update</a> <small>having fre</small></li><li><a href='http://www.xerxesb.com/2009/dont-overcomplicate-it-the-simple-solution-is-always-the-best/' rel='bookmark' title='Permanent Link: Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best'>Don&#8217;t Overcomplicate It &#8211; The Simple Solution Is Always The Best</a> <small>I could sl</small></li><li><a href='http://www.xerxesb.com/2009/re-email-account-verification-update/' rel='bookmark' title='Permanent Link: Re: Email Account Verification Update'>Re: Email Account Verification Update</a> <small>I had the </small></li></ol></p><img src="http://feeds.feedburner.com/~r/TheTomesOfExperience/~4/GJUABBm0v1U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.xerxesb.com/2009/organising-gmails-inbox-and-weirdness-with-starring-items/</feedburner:origLink></item>
	</channel>
</rss>
