Tuesday, July 8th, 2008 at 11:30 am - - University, Whipping 1 Comment »

It’s outrageous. A mere five months after his ordinary rendition from Zimbabwe to Equatorial Guinea, Simon Mann suffered an unfair trial that lasted three weeks and found him guilty of something for which he was caught red-handed and has continued to confess to, providing evidence that is consistent with many other facts on the ground.

Clearly, Simon Mann was trying to cause a public emergency threatening the life of the government nation, and in a civilized country like Britain, this would get officially declared so that those guys who were a threat to the nation could be held in captivity indefinitely without taking them to trial or even telling anyone exactly what they had done wrong.

Timelines of this plot have been printed in the press. But this single link gives you a timeline for what’s been happening in the UK Parliament about this important issue of a colleague and friend in need.

Then our man from the Campain for Nuclear Weapons, Julian Lewis, went berserk and had 9 questions answered on 18 February 2008. The issue at hand was the sudden transfer of Simon Mann from Zimbabwe to Equatorial Guinea when the appeals case against extradition had not been fully exhausted in the Zimbabwe courts.

Man, you’ve got problems if you’re fighting to stay within the jurisdiction of the Zimbabwean courts!

One of Lewis’s questions was:

Will the Secretary of State “make representations to the United States Administration requesting it to exert its influence on Equatorial Guinea to secure the safe return of Simon Mann.”

You see, the problem was, Simon Mann wasn’t going to get a fair trial in Equatorial Guinea of the kind that Mark Thatcher got in South Africa, where he was allowed to confess to something no one believed was possible (ie that he gave money away to a humanitarian cause and accidentally bought a tactical weapons system), pay some cash, and run home to mummy.

That’s the issue at stake.

Lewis isn’t concerned about those British citizens who were in Guantanamo Bay. There’s this strange concept that the bad guys are all powerful, and, for example, because al-Zarqawi was not arrested in Iraq 2004, the whole US bombing of Falluja was a response to the havoc this single guy was causing.

I mean, the amount of damage that can plausibly be caused by someone who is being evil must relate to the quantity of resources he has at his disposal. And Mann connects to a lot more resources than al-Zarqawi. Also, Mann’s removal from the field of battle was followed by no coup against the government of Equatorial Guinea. Meanwhile, after the 2006 photo of al-Zarqawi’s mutilated corpse was tastefully framed in gold by the US military, the war in Iraq quickly drew down, didn’t it?

Now, Simon Mann hasn’t yet been killed and had the photo of his corpse put up on display, but Julian Lewis was sure of the threat:

“My constituent, Mr. Simon Mann, has been illegally handed over by Zimbabwe to a dictator in Equatorial Guinea who has promised to sodomise him, skin him alive and drag him through the streets of the capital city. What steps can the Government take against Zimbabwe for the outrageous breach of my constituent’s human rights when he was handed over before his appeal procedures were completed.”

And it went on.

What more to say?

Well, the fingerprints of a campaign are scattered all across the Official Record, if one cares to look for them. And each incident makes its mark and leaves a permanent blemish on the fool who took part in the process.

Now there’s nothing wrong with standing up for individual and unpopular causes like this one, just as there’s nothing wrong with donating a helicopter air-ambulance to an impoverished African country who may or may not benefit from the generosity.

Mistakes happen.

But form means something, and can be found in the evidence.

If Henry Bellingham’s and Julian Lewis’s concern for due process of the law extends to certain privileged individuals, and not to other more blatant cases which ought to demand their attention, then maybe their cries for human rights are not as helpful as they seem.

There are other cases, someone else can go into. Maybe starting with Natwest Three. Here’s the wikipedia article.

The tools and the techniques are now all here. Essentially it’s about getting a complete assessment of the wider context, and observing which cases are chosen from it for focused attention, and asking why.

It dries down to the single question when you hear of a politician going on about something:

What are they not going on about?

Wednesday, November 15th, 2006 at 4:17 pm - - University

Python programmes can be for mulltiple platforms. If you can get away with not using platform specific packages in theory at least you should be able to run one python script on several different operating systems with the same look and feel.
I recently (last week Friday 10-11-2006) had the pleasure to put this to the test once again: I was asked to programme a psychology experiment where the person experimented on is exposed to a series of 3 letter sylabels on the screen, one of which is red. They have to press a corresponding key and time as well as the correctness of the answer is saved to a file for later statistical analysis. I programmed this in python and used Python Imaging Library and wxwidgets for the graphics and the user interfacey bits. All done on windows xp, and it works fine. Now, making a Mac version should be very easy: you should be able to take the code and run it on the Mac. Some hours later, compiling all sorts of stuff to be able to read and render font files on the Mac, work around the fact that a Mac keyboard has a different layout than a PC keyboard… In short, you still have to do platform specific programming; and the biggest annoyance is that there does not seem to be a very simple sound interface to just do a beep on the Mac. Do I really have to read and play back a wave file to just sound an acoustic warning? And, I have the suspicion that keyboard events are buffered differently on the Mac version of wx than the PC version. This is critical, because i have to filter out multiple key strokes, when the tested person goes maybe into ‘computer game’ mode and starts hammering one key…

Saturday, October 21st, 2006 at 6:13 pm - - University

Friday was a day at the psychology department. I battled with wxwidgets to get a full screen frame without any window decorations on Mac OS X, not with the desired outcome. The best I can get is a screen filling frame, but with a title bar and a ‘close window’ button at the top. Acceptable. Shame that it works as desired under windows. The other thing I looked at was using py2app to wrap up a python application that uses Python Imaging Library and wxwidgets to run on another mac. After some unsuccessful attempts I decided to upgrade python and site packages to newer versions. I upgraded python from version 2.3 to 2.4 and downloaded wxwidgets latest available version. The new site-packages installation meant I had to reinstall py2app. Success, with the latest versions py2app created mac a working application. A lot of these different packages come with their own installation tools. Ever heard of ez_install.py (say eazee(!))? Well, that is used for setuptools and py2app. Or python eggs? Don’t quite know what they are good for, but some got laid in my working directory.

And I had a chat with another scientist at the department about programming some experiments for her.

Thursday, October 19th, 2006 at 8:07 am - - University

On Tuesday afternoon I went to the engineering department and together with Carl rejigged the python script he uses to control their machine. We now use two python threads, one controls all moves of the motors, updates the user interface edit boxes with the current position and speed data, and also controls buttons that are pressed or unpressed automatically when the machine is rotating. We have a separation of user interface and motor control so that the user interface is always responsive. The UI passes requests for movements through a queue to the motor thread.

In the past we could use just one thread because we always ever had to handle one request for the motors to move. The calls to the DLL for the controller card always return immediately, the controller maintains it’s own motion queue. But we had to implement sequences of movements of different speeds and pauses. The queueing system we have now in place in the python thread allows that now easiy.

Thursday, October 12th, 2006 at 7:01 pm - - University

I did some work in the engineering department of Liverpool University today. Some time ago Carl did a write up of something we had programmed to print undistorted images with one or more rotating print heads, assembled in a row. The inkjet print heads they use are meant for normal printing with paper moving rectangular to the print width. But in their machine the medium to print rotates underneath the print head, with one side of the head closer to the centre of rotation than the other. So, a rectangular bitmap would be distorted to a pie wedge. We wrote a little algorithm that transforms a bitmap into a new bitmap that, when printed on this setup, prints undistorted.
I had read it on the train last night and had a few comments and suggestions to make it clearer what this does.

Then looked into extending the controller of the machine that performs these rotations. In order to shine a light on the same area on the print medium for a specified time they want to be able to stop the rotation, then start it again, and so on. We use a python thread that monitors the machine position and when it has reached the target of the rotation joins the main thread that in turn can sleep for the specified time, then start the motion again.

I had hoped we could use some sort of callback mechanism in the DLL that controls the digital controller card: When a motor has reached it’s target position we get a user specifiable callback. We had found something in the documentation for the DLL and started coding. But we got stuck and had to call the support phone line for the card manufacturer. The friendly support person told us we were following a red herring: The documentation we had used was for a different card, using a different (probably real-time) operating system.

Last week I also spend a day there:
We had looked into rewriting the user interface of the motion controller: The old user interface got out of hand, partly because a master student had used unsuitable GUI code generators on it (python glade). We had decided to shelve this code and write a much simpler new interface. Now that this motion controller has been in use for more than a year we could also reduce the functionality to what was really needed.

Another half day last week was spent in the department of psychology. I am working on a framework to programme visual perception experiments using python, wxwidgets and python image library (PIL) on a mac os x system. More about that some other time.