On the down side the machines are taking over and could pose a threat to all our jobs - I say we target the headquaters of this project with a R.O.N. (Reality or Nothing) terrorist strike.
http://www.flickr.com/photos/pkdouyk/244835186/
(Joking of course) Err.. is that insightment to violence?

I didn't mean it - don't prosecute me under the terroism act - please - it was a joke - honest - look - I'm smiling - you can see I'm smiling - can't you?

There, see? Its was a sarcastic ironic smile - you can see that can't you? I'm being ironic - I don't condone violence - and thats thats the truth - not irony

see - serious face.
Phew!

Think I got away with that obviously ironic not insighting violence joke. Ha. Ha. Life is so funny.
Seriously though, I was wondering about how to simulata a brain on the Pi.
I think you could do it with a massive square shaped 2D array representing a large number of neurons and all the possible connections between them.
In this array you would keep the synapse weighting of the interconnections ranging from 0 (no connection) to a maximum value.
There would be 2 additional 1 dimensional buffer arrays each as long as the side of the square connection array whose length relates to the number of neurons. These could contain the summed input of the outputs of the firing connected neurons.
There would also be a second similar 1D array representing the firing threshold of each neuron.
I envisage each cycle of the simulation program checking the threshold of each neuron against input buffer 1 to ascertain whether this input strength is sufficient to switch it on into firing mode and then following the associated connections in the 2D array to add the firing signal strength to the buffer array 2.
After this is done, input buffer 1 would be transferred to buffer 2 (or use assignment flags swapped) before input buffer 1 is cleare and the whole process is repeated.
The fun part would be assigning initial stae conditions and tweaking those according to a training program in relation to a simple pre-chosen task and working out how to input and output from the system.