Thursday, February 28, 2008

Eug

I am ill.

My glands are like beach balls and my head feels like it has the entire cast of the Dutch clog-dancing goat herd in it.

Yet I'm still in work.

This is for three reasons:
- I'm teaching a lab today and the effort of arranging cover would be too much (& I'd miss the opportunity to infect the little bastards).
- I'm being assessed today on my presentation skills. I hope that "looks like there's only max strength Beechams between him and the plague" isn't on the list of common presentation errors.
- I have journal paper corrections due in on Saturday that I'm still in the thick of.

I suspect that I will be taking a large proportion of next week off.

Wednesday, February 27, 2008

Deja-vu

I'm not going into the details and I'm not going to waste your time with a long rant, but let me simply say this.

It's 9pm and I'm still at work, not because of my admittedly poor time management but because for the first time since I left industry, I have suffered at the hands of an incompetent co-worker to the point where I think that they are either out to deliberately sabotage me or they are simply a monkey that has been strategically shaved to look vaguely like a person.

Damn them and all of their kind...

Unless they actually are a monkey...

In which case I would like to spare bubbles...

And barbary macaques.

Message ends - go about your business.

Friday, February 22, 2008

I is not stupid

They say that pride comes before a fall. I personally wish that I'd had that sense of pride, as it may have warned me about the steep precipice that I was careering towards.

Let me explain.

This week I have been a guest lecturer on a computer security course. Teachin' the younguns about cryptology. Whilst trying to teach them about a basic piece of maths, I wrote the wrong number down on the board, didn't notice it and continued on in my rant about the world being full of malicious idiots until I referred back to my example and realised that, horror of horrors, I had totally fucked the whole thing up.

The more I think about it, the more I realise that it was probably a mistake to try to do an example in class without working it out beforehand. Especially when the mistake that I made was to basically claim that 3/3 is 1.5, ("yeah, that second three... probably should have been a two shouldn't it, boB".)

A room full of 3rd year computer science undergraduates and four final year PhD students didn't notice it when I wrote it down the first time... so I'll take some comfort in that.

This afternoon I have to go into a room filled with those same people and persuade them that someone who doesn't appear to be able to perform basic mental arithmetic is someone that you want to learn about encryption from. Not my finest hour.

Thursday, February 21, 2008

2nd Years

First year students have the fear of god in them. They are eager and have attention to detail, (when they're not hung over) and they still have a thirst for knowledge.

Final year students have the fear of god in them. They've generally had the realisation that "my god, if I don't put some effort in, I'm going to leave with a crappy degree!"

Second years piss me off. They don't have a thirst for knowledge, they don't have The Fear, and generally they just want to get the work done and get out. I'm currently working with a group of particularly obnoxious 2nd years who quite obviously don't give a crap about the tutorial I busted a gut to write for them and tried REALLY hard to make interesting. But no. When I sit there and enthuse about the wonder of control, they just sit there looking at me like I'm an idiot. Barstards.

Not that I'm bitter.

Wednesday, February 20, 2008

Geeky Interlude

I've decided that today I'm going to start the long over-due corrections on my journal paper so I can submit it to the almighty editor for publication.

As promised I did play around with the lego robots on Friday, and they are a joy. The API is pretty good and whilst the compiler is flaky, (structs are not your friend) I really think that they're capable of being standalone research machines not just prototypes.

I managed to implement a basic "learning", (not really learning, it just looks like it) behavior that is loosely based on something I saw people do in Reading once.

1) I use the sensor data to classify the current situation into one of 10 different situations
- Freespace
- Wall to the left
- Wall to the right
- Wall in front of you
- Wall behind you
- Corner (front left)
- Corner (front right)
- Corner (back left)
- Corner (back right)
- Collision (any direction)

2) The robot has a randomly generated rule book that says what signals to pump out to the motors in each situation, (I only allow -100 to +100 in increments of 10). To help things along a little, (and to cheat slightly) I tell it that in freespace it should go (80,80) and in a collision it should just stop. I also have a rule that says it is not allowed to be at a complete stop in any case other than collision.

3) The robot runs round its pen, and if it ends up in a collision, it looks at the last state it was in before it got there and moves the motor signals by a random amount between +-50, (again it can't be in a complete stop.)

4) Then I let the little bugger free! When it enters "collision" mode, (closer than 10cm to a wall) it stops and I pick it up and put it back down in a safe part of the pen. After a while it never collides with walls and if you introduce new objects to the pen, it happily avoids those too.

It's a nice little demo that really quickly finds a solution that allows it to "survive" in its limited environment.

So, my geeky friends I have a new challenge for you. Any, (vaguely sensible) ideas about what my next robot project should be? You come up with a concept and I'll have a bash at implementing it. Try to make it simple, but interesting. If you want to supply example code, just email it to me and I'll publish it, along with a video/plot of the wee beasty doing its thang. I can't guarantee when my schedule will let me do these things, but I like playing with this stuff as it reminds me that I am actually doing a PhD in robotics, not just doing maths and writing reports that nobody will EVER read, (from my last meeting that includes my supervisors.)

Ooh - the stuff we have to play with per robot is:
- up to three motors variable speed, variable direction motors, with encoders
- up to four sensors which can be:
- sonar range sensors
- light sensors
- sound sensors
There is also a camera and a couple of infrared sensors, but I've not got those working yet. I'm not sure how hard it is.

The robots can also communicate to PCs and other robots over bluetooth.

Enjoy!

Friday, February 15, 2008

BRICK WALL!

I have an awful lot to do.

I can't deny it, there are lots of corrections to make, a couple of slides to create. I'm giving a ten minute presentation as part of a mandatory "Advanced Presentation Skills" course soon that I haven't started AND experiments to run, analyze and reproduce before the end of the month.

But I've hit a bit of a wall. I've been productive in one way or another for weeks and I've simply run out of steam.

Today, what I'm going to do is play with a totally PhD unrelated experiment with the lego bots that I've been itching to do for ages. Maybe that will make me happy.

Is it wrong that writing code seems far more appealing to me when I'm at a low ebb, than writing English?

Thursday, February 14, 2008

...and so is your face

I have been fortunate enough to get a journal entry accepted to a special issue of "The Journal of Evolutionary Intelligence" on artificial immune systems (AIS). My particular contribution was an investigation of an AIS algorithm called the denrdritic cell algorithm, invented right here in Notts by one of my colleagues. I looked at its frequency characteristics which, to me, was actually really interesting.

Most of the reviewers made really good points and had a lot of really good feedback, with the exception of one. The paper was very rough around the edges, having been written in a rush, and having only been read by myself and someone sitting in my office, (my supervisors were on holiday.) Sadly, one reviewer, it would appear, didn't so much read the paper, as skim it, their chief criticisms largely being the fact that they didn't understand it after only really reading the abstract and the results. They recommended that I remove several equations, (including the one that the paper was actually about) because they "introduced complex systems into the paper" and then complained that I hadn't done a comparison of my technique and another... you know... except for that comparison I did... in the most prominent section... the one I talked about in the abstract... and spanned around four pages of a 20 page document... other than that he had a really good point.

Anyway, students have descended upon my peacful lab looking for learning, so I must be off!