<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael Clarke Blog</title>
	<atom:link href="http://www.michael-clarke-blog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.michael-clarke-blog.com</link>
	<description>The Ramblings of a PhD Student</description>
	<lastBuildDate>Sat, 25 Feb 2012 13:16:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Last Week of the First Month&#8230;</title>
		<link>http://www.michael-clarke-blog.com/2010/10/the-last-week-of-the-first-month/</link>
		<comments>http://www.michael-clarke-blog.com/2010/10/the-last-week-of-the-first-month/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 20:46:41 +0000</pubDate>
		<dc:creator>Michael Clarke</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.michael-clarke-blog.com/?p=130</guid>
		<description><![CDATA[As I write this I am nearing the last week of the first month of my PhD. It truly is amazing how fast a month can go &#8211; it is already half-term for my brother and sister! This month has been relatively unproductive in terms of actual PhD work; I spent a large portion of [...]]]></description>
			<content:encoded><![CDATA[<p>As I write this I am nearing the last week of the first month of my PhD. It truly is amazing how fast a month can go &#8211; it is already half-term for my brother and sister! This month has been relatively unproductive in terms of actual PhD work; I spent a large portion of the month chasing up my funding and doing other generally boring administrative stuff such as induction meetings, registering, getting an office, desk, phone, computer, etc. I&#8217;ve also spent a significant portion of the month doing teaching duties &#8211; first a Perl course for 1st year students, then the marking of the assignment, usual demonstrating and I gave my first CS101 lecture this Friday past.</p>
<p>However, I have made a bit of a start on the PhD work. I&#8217;ve got a couple of books out the library which seem like they could be useful (I was further encouraged to see the same book on someone else&#8217;s desk, I must have made a good choice). I&#8217;ve also spent a fair bit of time finding papers relating to robotic navigation (generally from Space Robotics) and I read an interesting PhD thesis on autonomous scientific target identification for rovers on Mars (always a good idea to see what you&#8217;re ultimately aiming for). Otherwise, for the moment, I&#8217;ve spent a lot of time playing (by which I mean designing, ordering components and building circuit boards for the Argo; so I can actually do some research &#8211; honest).</p>
<p>I seem to have been in quite a number of meetings with people from the Geography department (who, despite having a reputation for colouring in maps seem [as you would hope] very knowledgeable, friendly and helpful) in an attempt to get a more concrete idea of the environment in Greenland that the Argo is likely to encounter. For the most part it sounds like there is little to worry about in March/April time; the melt season hasn&#8217;t  (usually) started and any holes are usually snow covered to a point that they can support vehicles. However, we still don&#8217;t want to risk having an Argo drive down a Moulin and so in some respect, although the snow may seem like an advantage, it actually causes more problems; how do you identify a hole that isn&#8217;t there? Another reason for these meetings has been to identify exactly what it is that the Geography department are interested in, in terms of scientific data. Whilst it is possible to do lots of &#8216;surface analysis&#8217; (snow coverage, storm and weather analysis, etc) and to develop high detailed Digital Elevation Models or DEMs (we&#8217;ve talked about tethered balloons with sensor equipment mounted, laser scanners, IR, camera systems, etc) they are much more interested in what is underneath the ice. So, at the moment, there is still a considerable amount of work to be done to identify which sensors we will and will not be installing on the Argo for deployment.</p>
<p>More recently I&#8217;ve been having some interesting ideas about other fun things to do with the Argo. In particular (and highly related to other research being undertaken at Aberystwyth within the Intelligent Robotics Group) I would like to try and have a go at getting some kind of  developmental learning algorithm on the Argo so that it can learn its own capabilities and learn to drive.</p>
<p>For the next month I&#8217;m going to be pretty busy sorting out the Argo, though I would very much like to start writing some of my thesis. Whilst most people I have spoken to seem to suggest it is very hard to complete a PhD in the 3 years and they usually use the 4th year for writing up, I would like to complete my PhD on time! So, looks like I&#8217;ve got a lot of work to do. I&#8217;ll try and keep this blog updated, even if it is only once a month, it&#8217;s still better than last year &#8211; so far so good!</p>
<p>Until my next (hopefully more interesting) post!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.michael-clarke-blog.com/2010/10/the-last-week-of-the-first-month/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TAROS Conference</title>
		<link>http://www.michael-clarke-blog.com/2010/09/taros-conference/</link>
		<comments>http://www.michael-clarke-blog.com/2010/09/taros-conference/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 15:53:28 +0000</pubDate>
		<dc:creator>Michael Clarke</dc:creator>
				<category><![CDATA[ARGO]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[TAROS]]></category>

		<guid isPermaLink="false">http://www.michael-clarke-blog.com/?p=103</guid>
		<description><![CDATA[This week I had the privilege of visiting the 11th annual TAROS (Towards Autonomous Robotics Systems) conference, this year hosted by Plymouth University. Unfortunately, I wasn&#8217;t in time for the first day of the conference, but I did manage to make the last two days. During the conference I saw a lot of interesting presentations [...]]]></description>
			<content:encoded><![CDATA[<p>This week I had the privilege of visiting the 11th annual <a href="http://www.taros.org.uk">TAROS (Towards Autonomous Robotics Systems)</a> conference, this year hosted by Plymouth University. Unfortunately, I wasn&#8217;t in time for the first day of the conference, but I did manage to make the last two days. During the conference I saw a lot of interesting presentations about all the different robotics and techniques currently under development and I got a chance to present my paper and to tell everyone there about the ARGO and all the exciting stuff going on at Aberystwyth.</p>
<p>Although my phone camera is pretty useless (or I am) I did take some photographs and a short video of &#8216;﻿﻿<a href="http://www.robothespian.com/">Robothespian</a>&#8216; who was on display for the final day of the conference.</p>
<p style="text-align: center;"><a href="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/VIDEO_007.mp4"></a> <a href="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/IMAGE_035.jpg"><img class="alignnone size-full wp-image-117" title="IMAGE_035" src="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/IMAGE_035.jpg" alt="" width="199" height="265" /></a> <a href="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/IMAGE_033.jpg"><img class="alignnone size-full wp-image-116" title="IMAGE_033" src="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/IMAGE_033.jpg" alt="" width="199" height="265" /></a> <a href="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/IMAGE_032.jpg"><img class="alignnone size-full wp-image-115" title="IMAGE_032" src="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/IMAGE_032.jpg" alt="" width="199" height="265" /></a></p>
<p style="text-align: center;"><object style="width: 300px; height: 300px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="300" height="300" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="cache" value="true" /><param name="src" value="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/VIDEO_007.mp4" /><embed wmode="transparent" style="width: 300px; height: 300px;" type="video/quicktime" width="300" height="300" src="http://www.michael-clarke-blog.com/wp-content/uploads/2010/09/VIDEO_007.mp4" cache="true" autoplay="false"></embed></object></p>
<p>During the final day of the conference there was a particularly interesting talk by Mike Smith from Oxford University on &#8216;Generating Implicit Surfaces from Lidar Data&#8217;. Most interesting was a technique he detailed from an earlier paper written by him and his colleges on &#8216;A generative framework for fast urban labelling using spatial and temporal context&#8217;. In essence this was a means of identifying surfaces and giving them labels such as &#8216;Tarmac&#8217; in real-time. I hope to investigate this more and see if it can be used with the ARGO to help with dynamic surface type identification and control system tuning.</p>
<p>I thoroughly enjoyed the conference this year and look forward to participating again next year (hopefully) &#8211; but for now, those interested can find the slides from my talk <a href="/downloads/talks/taros/slides.pdf">here</a>. As always, I welcome any comments and suggestions from those present; or anyone else for that matter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.michael-clarke-blog.com/2010/09/taros-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# &#8211; Dynamic Class Loading</title>
		<link>http://www.michael-clarke-blog.com/2010/08/c-dynamic-class-loading/</link>
		<comments>http://www.michael-clarke-blog.com/2010/08/c-dynamic-class-loading/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 12:52:04 +0000</pubDate>
		<dc:creator>Michael Clarke</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Mono/.NET]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.michael-clarke-blog.com/?p=77</guid>
		<description><![CDATA[I have noticed since moving this blog that a lot of people are trying to access some of my old posts. In particular, people seem very interested in my posts on C# Dynamic Class Loading. As such, I have decided to re-post the old version here for you. Note that this is a copy-and-paste job [...]]]></description>
			<content:encoded><![CDATA[<p>I have noticed since moving this blog that a lot of people are trying to access some of my old posts. In particular, people seem very interested in my posts on C# Dynamic Class Loading. As such, I have decided to re-post the old version here for you. Note that this is a copy-and-paste job from my old blog &#8211; there is nothing new except for a few minor typing corrections that were noticed by Chris, a commentator on my old blog &#8211; thanks! I hope this is useful for those people trying to find it.</p>
<p><em>The other day I wrote a small tutorial on getting dynamic class loading working for Java. In that post I mentioned that it could also be done in C# &#8211; but that it was more difficult, and from my personal experience, there is less information available about it &#8211; so here is how to do it!</em></p>
<p><em>First, as with the Java, we need to create our API. However, unlike the Java there is an additional requirement &#8211; a ‘module manager’ class needs to be within the API. As such you will need to create these two files…</em></p>
<pre>using System;
using System.Reflection;

namespace com.michaelclarkeblog.dynamic.api {

    public static class ModuleManager {

        public static Module getInstance(String fileName) {

            /* Load in the assembly. */
            Assembly moduleAssembly = Assembly.LoadFile(fileName);

            /* Get the types of classes that are in this assembly. */
            Type[] types = moduleAssembly.GetTypes();

            /* Loop through the types in the assembly until we find
             * a class that implements a Module.
             */
            foreach (Type type in types) {
                if (type.GetInterface("Module") != null) {
                    /* Create a new instance of the 'Module'. */
                    return (Module)Activator.CreateInstance(type);
                }
            }

            return null;

        }

    }

}</pre>
<pre>using System;

namespace com.michaelclarkeblog.dynamic.api {

    public interface Module {
        String getText();
    }

}</pre>
<p>﻿<em>Once you’ve got the two files you can compile them into a library….</em></p>
<pre>api $ mcs -t:library Module.cs ModuleManager.cs
api $ ls -a | grep .dll
Module.dll
api $</pre>
<p><em>Now that we’ve made the API the next thing to write is the application that is going to use it for loading modules. This is a very simple application…</em></p>
<pre>using System;
using com.michaelclarkeblog.dynamic.api;

namespace com.michaelclarkeblog.dynamic.application {

    public class Application {

        public static void Main(String[] args) {

            if (args.Length &gt; 0 ) {
                Module module = ModuleManager.getInstance(args[0]);
                Console.WriteLine(module.getText());
            } else {
                Console.WriteLine("Usage: mono Application module_name");
            }
        }

    }

}</pre>
<p><em>Now we can compile our ‘Application’ against the API…</em></p>
<pre>application $ mcs -reference:../api/Module.dll Application.cs
application $ ls -la | grep exe
-rwxr-xr-x 1 michaelfclarke michaelfclarke 3072 Apr  5 19:32 Application.exe
application $</pre>
<p><em>And now finally we can write a couple of modules!</em></p>
<pre>using System;
using com.michaelclarkeblog.dynamic.api;

namespace com.michaelclarkeblog.dynamic.modules {
  public class Mike : Module {
    public String getText() {
      return "Hello from Mike's Module!";
    }
  }
}</pre>
<pre>using System;
using com.michaelclarkeblog.dynamic.api;

namespace com.michaelclarkeblog.dynamic.modules {
  public class Another : Module {
    public String getText() {
      return "Hello from Another Module!";
    }
  }
}</pre>
<p><em>Compile the modules…</em></p>
<pre>modules $ mcs -t:library -reference:../api/Module.dll Another.cs
modules $ mcs -t:library -reference:../api/Module.dll Mike.cs
modules $ ls -la | grep dll
-rwxr-xr-x 1 michaelfclarke michaelfclarke 3072 Apr  5 19:36 Another.dll
-rwxr-xr-x 1 michaelfclarke michaelfclarke 3072 Apr  5 19:36 Mike.dll
modules $</pre>
<p><em>There is just one last thing we need to do before we can run our application. We need to copy the Module.dll API from the api directory into the application directory…</em></p>
<pre>modules $ cd ../application
application $ cp ../api/Module.dll .</pre>
<p><em>And now lets try running our dynamic application…</em></p>
<pre>application $ mono Application.exe ../modules/Mike.dll
Hello from Mike's Module!

application $ mono Application.exe ../modules/Another.dll
Hello from Another Module!

application $ mono Application.exe
Usage: mono Application module_name</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.michael-clarke-blog.com/2010/08/c-dynamic-class-loading/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A new look and feel, and new content to match!</title>
		<link>http://www.michael-clarke-blog.com/2010/08/a-new-look-and-feel-and-new-content-to-match/</link>
		<comments>http://www.michael-clarke-blog.com/2010/08/a-new-look-and-feel-and-new-content-to-match/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 18:01:05 +0000</pubDate>
		<dc:creator>Michael Clarke</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.michael-clarke-blog.com/?p=11</guid>
		<description><![CDATA[Those who have on occasion visited my website will be acutely aware that there has been a considerable change in the look and feel. They may have also noticed that all my old posts have evaporated, though they would of-course be forgiven for not noticing (especially considering the last time I wrote anything was September 2009). As [...]]]></description>
			<content:encoded><![CDATA[<p>Those who have on occasion visited my website will be acutely aware that there has been a considerable change in the look and feel. They may have also noticed that all my old posts have evaporated, though they would of-course be forgiven for not noticing (especially considering the last time I wrote anything was September 2009). As it happens I haven&#8217;t been hacked; in fact, quite the opposite. I have finally got around to closing down elephant designs, my once prosperous hosting company. Apart from the company no longer making any kind of profit (which is good as far as I&#8217;m concerned when it comes to filling in my tax return &#8211; though not so good the rest of the year), it was starting to take a lot of time to maintain; something which I fear will soon be in short supply, but more on that shortly. Nevertheless, as a direct consequence of closing down elephant designs I have moved all my clients to &#8220;outtherehosting.co.uk&#8221; (in short a company owned and run by a friend) and included in those clients was my own blog. So, with &#8220;new&#8221; webspace (although the same domain) I decided it was time for a new look. Further, whilst I could quite easily have copied over all my old posts, I decided that now would be a good time to start a fresh new blog to boot.</p>
<p>Questions may (or more likely not) be popping into your heads now regarding this need for more time. Surely now I&#8217;ve graduated from my degree I should have all the time in the world &#8211; I should be working in the day and have my evenings for my own, or perhaps I should be travelling the world, taking a gap year &#8211; a whole host of possibilities! Nope, wrong, being the numpty that I am, I have taken up the opportunity of a PhD with Aberystwyth University. Yes, yes, I know &#8211; three (ehem, more like four) more glorious years of researching (read as playing), writing papers (also read as playing), rushing towards the day that my viva will come (read as not another exam) and I will have to show the worth of it all. But, until that day, I figured what a better place to record my strife (playtime) than to blog. Now, I know I&#8217;ve said this before. Indeed, in the past I have promised great things - particularly during my final year project! All those hours of footage, photos, code updates you were expecting from my MEng dissertation never did materialise. However, this time, as a &#8216;mature and professional postgraduate student&#8217; I hope that such things will be more&#8230; apparent.</p>
<p>It is my wish to keep everyone up to date and informed as I progress through my three years as a PhD student, and indeed hopefully at the end of these three years I will have a valuable resource full with details of experiments, papers, and notes to help me with finishing my thesis. Well that is the cunning plan anyway.</p>
<p>So, to start it might be prudent to give a general idea as to the topic of my PhD and a few more details. Those who know me will be aware that during my final year of my masters degree I became particularly interested in robotics. Until this point robotics had (to me) been a &#8216;interesting topic&#8217;, but one that I didn&#8217;t really have much time for. When I say &#8220;I didn&#8217;t really have much time for&#8221;, I don&#8217;t mean to suggest I disliked robotics or thought it &#8220;wishy-washy&#8221;, more that I was far more interested in operating system design and theory. As a result of my masters dissertation I have &#8220;found time&#8221; for robotics and in the course have managed to get a paper written (due to be published at the Towards Autonomous Robotics Systems (TAROS) conference at the end of August 2010 in Plymouth). So, how does this lead to a PhD? Well, apart from anything else I applied (a good start), and was accepted pretty quickly. But, as anyone who has ever applied for a PhD will know, this is only the start of the story. Funding is the show-stopper!</p>
<p>I made various attempts to get funding &#8211; through the Aberystwyth Postgraduate Research Scholarship (APRS), a PhD scholarship with EADS, and even a Research Associate job within the Department of Computer Science at Aberystwyth University. However, all of these attempts were either unsuccessful or are still pending and stuck due to contract issues (most likely intellectual property but I&#8217;m not 100% sure myself). So, very kindly, the Computer Science department and Geography Department have agreed to jointly sponsor me for my first year until I can sort out more permanent funding. There is a catch &#8211; I am expected to (still within my interests and within the scope of a PhD) work on a project that they want. That project revolves around automated surveying of glaciers, ice caps and the water flows under these massive ice blocks in and around Greenland. As such, my next three years will be spent building robots to collaborate and automate complex and often life-threatening scanning and surveying of such glaciers, etc.</p>
<p>I must admit that my knowledge of ice (as you may have noticed) is somewhat lacking, and so this part is going to be a considerable learning curve. However, I always enjoy a good challenge and am really starting to look forward to my starting date of the 27th September 2010; but before then I intend to take it easy, relax a bit, perhaps start writing my lecture slides (did I mention I&#8217;m teaching some of the CS101 Computer Science module this year?) and at some point write my talk for the TAROS conference (I will blog nearer the time and let you all know how it goes).</p>
<p>However, for now, I think I have rambled on long enough and I&#8217;m sure you&#8217;re all quite board now. So, until the next episode.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.michael-clarke-blog.com/2010/08/a-new-look-and-feel-and-new-content-to-match/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

