Monthly Archives: September 2006

materials arrived for my college course

Yesterday, a package arrived for me from Open University – a load of handbooks covering diverse database subjects, and a cd with copy of IBM’s DB2 on it.

Unfortunately for me, they seem to have neglected the Linux installation of DB2. It’s mentioned in the readme.txt file, but the installation files are simply not there. I feel a complaint coming on.

So, yeah… me doing college!? My highest qualification so far was my Junior Certificate. I didn’t bother with the Leaving Cert. – got bored, then got a job. That was a bad decision on my part, but hopefully it’s not too late to rectify that.

M877 is “Advanced Database Technology”, a post-graduate course, which I hope to use as a stepping stone to an MSc or even MBA.

The tutor contacted me to ask if I was actually qualified to do this course. I gave him my job history, and he was satisfied – I’ve been working with databases professionally for at least 7 years, and if I don’t know something straight-out, I’ve at least used it or read about it it.

So yesterday (Jareth’s 3rd birthday by the way), I had a quick glance through the handbooks and was relieved to find that I understood what I read, and was able to answer some of the sample exam questions correctly.

I’m looking forward to this -and eventually being called “Dr Kae” 🙂

use the oceans for transport and energy?

I watched this interesting video earlier today, then went back to work. In the last few minutes, then, a few thoughts came to mind.

It would be interesting to create a pontoon-floated bridge between countries. Actually, I just ran a search for “pontoon bridge”, and was pointed to this article which already mentions what I was going to suggest next – pontoon-supported submerged tunnels spanning the Atlantic ocean. Doesn’t say it’s impossible – just expensive and unproven.

Another idea is to stick a load of photovoltaic arrays on styrofoam floats, and simply lay them out across a large area of water – after all, it’s not being used for anything else, is it? This would be bloody simple, in my opinion. You could gather the electricity from them either by using microwave transmitters, or by using small robot boats to shuttle uncharged batteries to the floats, and retrieve charged ones. This would allow the floats to be wireless, so sailing boats, etc could go through them without worrying about snagging on lines.

my robot is now an actual robot

I took the time today to connect up some wheels to the base of my bot. I can now place the bot on the ground on the far side of the room from me, and tell it to move forward or backward from my laptop.

The next step is left and right. I just need to scrounge up two transistors. I’m sure I can find them somewhere.

robot - from front From the front, you see the mini-itx me6000 motherboard, powered by a 12v battery, using a pw200 dc-dc convertor to control the power input. You can also see two cameras and a wireless card.

robot - from back From the back, you can see my messy wiring. I took a parallel port cable and stripped it. The “ground” wire is connected to the bracket on the left. After a bit of testing, I found the wires that correspond to the 1 and 2 bits when accessed through 0x0378 (the parallel port address on my machine). those wires are connected to the circuit board, and control the power going to the motors through some transistors I ripped from an old radio.

robot - from bottom The bottom view shows the wheels and motor controller. A friend of Bronwyn’s dropped them in to me a few weeks ago. They’re from an iBotz robot – maybe this one. They’re powered by a 5v connection I found on the pw200.


I’m sitting here, at 11:30pm, reading through Richard P. Feynman’s “The Pleasure Of Finding Things Out“.

I have two copies of the book of his lectures, “The Character Of Physical Law“. The reason is, I bought a copy a long time ago, and read it straight through. After a few years, I wanted to read it again, but couldn’t find it, so I bought another copy. Now I have two (If anyone wants the spare one, please mail me).

Anyway – I came across a poem, which impressed me:

I stand at the seashore, alone, and start to think.
There are the rushing waves…
mountains of molecules, each minding its own business…
trillions apart…
yet forming white surf in unison.

Ages on ages…
before any eyes could see…
year after year…
thunderously pounding the shore as now.
For whom, for what?
…on a dead planet, with no life to entertain.

Never at rest…
tortured by energy…
wasted prodigiously by the sun…
poured into space.
A mite makes the sea roar.

Deep in the sea, all molecules repeat the patterns of one another ’til complex new ones are formed.
They make others like themselves
…and a new dance starts.

Growing in size and complexity…
living things, masses of atoms, DNA, protein
…dancing a pattern ever more intricate.

Out of the cradle onto the dry land…
here it is standing…
atoms with consciousness
…matter with curiosity.

Stands at the sea…
wonders at wondering…
a universe of atoms
…an atom in the universe.

I wish I could speak with the man. He would have been a joy.

30 in 1:30, arrr….

In one hour, thirty minutes, it’ll be September the 19th, I’ll be 30 years old, and it will also, probably most importantly, be talk like a pirate day.

What I am doing right this moment:

  • installing sqlite on my home server for the next batch of kfm upgrades.
  • upgrading my robot from fc4 to fc5 – it’s a mini-itx motherboard with a wireless card, sturdy wheels, two cameras and a 12v lead battery. currently sitting on my kitchen table
  • being harassed by my wife, who thinks that I’m old – ignoring that she will also be this age in about two years.

I was reading about foreign keys in mysql earlier. the last time I’d looked at them was about 5 years ago, and they were just being introduced with the InnoDB storage engine. I haven’t really had the time since then to mess around. today, I took an hour out to read up on them and try out some code, and was pretty impressed to find that they work great – even automatic cascades triggered by index deletes. Maybe I shouldn’t really be surprised at that, though – they have been supported since about mysql 3.4 or so.

not even wrong

I’m on a new antidepressant now which I take at 10pm every night. This causes me to be basically dead to the world by the time it’s 10:30pm.

Last night I got a phone call at 11:30pm. I blearily answered, and after a minute or two of trying to understand what the hell was being asked of me, I figured out that my dad, who lives in Britain somewhere, had dialled me, then immediately passed the phone to someone else, who was asking me a very strange question:

Why can’t you have two motherboards and two CPUs in one computer?

That’s a fucked up question to ask anyone at 11:30pm when they’re drugged and half asleep.

I couldn’t answer the question as it was just too damned weird.

Basically, you can do that, but it would be pointless, unless you had a very specialised operating system and applications to make use of them both.

The analogy I’ve come up with to explain this weirdness is:

You buy a tractor in order to get your work done. A few years down the line, you find that you need more horsepower in order to get your work done. You then have a choice – do you replace the tractor completely with a new tractor which is bigger and stronger (expensive), or do you simply buy one more simple tractor (cheap) and drive that at the same time?

It would take some very specialised driving to try to run two tractors at the same time using one driver, so it makes sense to simply get a new replacement. Yes, it would be more expensive, but it would also be vastly easier.


I’ve been thinking recently that my life should reflect my coding.

With my coding, I like to write an application out in “full” (ie, no shortcuts), then look over the code I’ve written, and try to abstract out as much as I can, which helps to simplify the code, making it easier to understand and to extend.

As some people know, I’m a diagnosed depressive, which means that I tend to get overwhelmed by things pretty easily. I came to an understanding recently that this was partly because I had been living my life “in full”, where it was now time to abstract out as much as possible.

One example is my books and media. I have a very extensive library, with hundreds each of books, VHS videos, and DVDs. Whenever I need to find something, I have to go digging through all those things, which are scattered around my house, crammed wherever they will fit.

It is that “scattering” which I think is an apt description of how my life is at the moment – I have too many different types of bill, there are too many projects I’m trying to keep track of, and in general, my attention is too scattered to be able to progress with anything.

So, it’s time to abstract it all. I’ve started, by calling up almost every company I have a bill from, and organising direct debits with them. Next, I need to convert all my media into one single format (divx), and pack away the originals (in computer terms, the divx files might be considered an “abstraction layer”). Then I need to prioritise my projects, and cut myself off from those that I have no time for.

Then, I can sit down again and see if my life is still complex. If so, then there is more pruning to do. If not, then I can finally progress with my life.

mysql vs pgsql

I’m doing a bit of work for a company, which involves working with PGSQL instead of MySQL, as I usually do.

I know this is a religious issue for some people, but I’m finding PGSQL to be a bit …abstruse. It’s not the SQL – that’s pretty-much the same, but the local commands are just baffling.

For example, in order to open up the console command, in MySQL you type “mysql“, but in PGSQL, you type “psql” – huh?

To see a list of the database’s tables in MySQL, you type “show tables“. In PGSQL, you type “SELECT tablename FROM pg_tables WHERE tableowner = current_user“, which doesn’t always work – huh?

To see details of the various fields in a table, in MySQL, you type “describe the_table“. In PGSQL, you type “SELECT attnum,attname from pg_class, pg_attribute WHERE relname='the_table' AND pg_class.oid=attrelid AND attnum > 0” – huh?

I hope it all becomes clear, or this could be a long day…

kae's guide to contact juggling

In a past life, I was a contact juggler, and created the website

During that time, I wrote a book, Kae’s Guide To Contact Juggling, intending it to be an update of James Ernest’s “Contact Juggling”.

I wasn’t looking for money, and wasn’t a great marketer, so the book never really took off.

However, it turns out the book has become a minor hit in the contact juggling world, with it being shared person to person.

The question arose recently, is it okay to amend the book? In short, my answer is “please, go ahead!”.

The license I published this book under was “You have permission to copy this book and share with friends. You do not have permission to sell this or any copies of this book.” That license sticks. Feel free to share the book, and to change it, but do not sell it or remove the license, or claim that it is your own work.

Here it is: cj.doc

bicentennial man

I just watched Robin Williams’ Bicentennial Man, based on Isaac Asimov’s robot story of the same name.

This was an incredibly powerful film! I was blubbering by the end of it, trying to keep quiet, in case I woke my daughter up (she was asleep in my arms).

The story is about a robot, Andrew (played by Robin Williams), who is purchased by Richard Martin (played by Sam Neill), who is “flawed” in a way which means that he is emotional and creative, whereas all other robots are mere tools.

This “flaw” inspires Andrew to become more and more human. First, by adopting clothes, then a bank account, then cosmetic appearance, and by inventing prosthetic organs which can be used by himself and by “real” humans.

I really loved this film. It may have been a flop in the box office, but that appears to have just been unfortunate timing.

Andrew’s wish to become human opens up the question – what is “human”? When it is brought up in a court case, he points out that it cannot be just based on what a person is made of – after all, that would make people with artificial limbs or organs somehow less human!

The answer he is given, which I disagree with even though it makes a good story, is that to be human is to die. It is the awareness of ourselves and of our impending non-existence that defines the human condition. As Andrew was a robot and essentially immortal, he could not, therefore, be considered “human”.

Interesting logic, but a trifle unfair.

Watch the film. You’ll be glad you did.