Freesteel Blog » University
I just got myself a new laptop and installed Ubuntu-Linux on it. Scares the hell out of me the speed with which I got it up and running. I am now lost in a sea of code. It’s like walking into a public library after you’d been out in the sticks for a month with only two dog-eared issues of the Reader’s Digest to keep you company. There’s almost too much here. I want to read all of it. And any book or manual you do pick up and spend an hour with means there’s another ten thousand you’ve not picked up that you should have been reading.
Anyways, while doing my apt-cache searching stuff for stuff, I noticed stimfit – Program for viewing and analyzing electophysiological data show up in the search for scipy.
It appears to take datasets of electo-potential readings from a single neuron at every tenth of a milisecond and then fit exponential decay curves [the thick grey line] to selected sections from the (negative) peak to the baseline.
A bit like a temperature sequence, eh?
Oh, and it has a funky Python shell built into it to help you automate the analysis functions. What’s not to like?
Students have been getting all uppity about university fees of late and channeling their anger into marches in London that are supposedly going to get noticed by politicians.
Seems like a waste of time to me, given that the actual origin of the policy has been on campus, pushed by the cadre of senior managers circulating through the higher education institutions like generals on tour of their military bases.
In 1999 Mr Newby had already made his position clear — especially on the importance of controlling access to the best universities by the ability to pay:
In spite of many incoming links to this blog from this trivial post, Gary (the unnamed owner of that very-new-but-already-much-more-popular-than-this blog) didn’t make it to Pycon 2008, so I went there knowing only one person.
I’d gone to Cambridge (to hack on Tunnel) using someone else’s return train ticket to London and didn’t want to get screwed by a single train ticket back to Liverpool (prices hiked by another £20 last week), so caught the bus which involved a 40 minute stay in a layby in Milton Keynes where I could see the great avenues of horse chestnut trees dying due to global warming (the mild winters not killing off the parasites). Apparently, this isn’t news, though it was news to me, and I wonder how it connects to the business of planting trees to offset a gratuitous jet-set flight across the Atlantic for a handful of hours at a conference when it’s about time someone started experimenting with telepresentations.
I checked in at Birmingham Central Backpackers and spent half an hour walking around in the rain unable to find their second bunkhouse because it was in a converted pub which still looked exactly like a pub, so I walked past it.
The talk schedule was so-so. But some of the talks turned out to be very good and important, though I couldn’t tell from the titles. The keynote speakers were Mark Shuttleworth, who seemed kind of ordinary, and Ted Leung, whom I would have recognized as being very important if he had phoned his talk in from Sun headquarters on a big screen, instead of being flown over bodily, as is the standard, unquestioned, routine practice at geek conferences that are supposedly tuned in to the future of the internet and planet. Readers of this blog will know that this is a big issue for me, and I don’t want to hear arguments about how presenting in person is better than doing it as a giant video conference, because I Have Never Yet Seen It Attempted.
I quickly wrote up and scheduled a lightning talk about the Metroscope project and cunningly inserted it into the half hour slot before Mark Shuttleworth’s speech, making sure to mention my wholly unsupported but very farsighted work on undemocracy.com, (where you can find some of the international documents establishing the Registration Convention, among other things). The video channel failed to work when I tried to display my slides from someone’s machine which had recently been installed with Ubunto, so I was lucky enough to move my slot on by ten minutes and get them to show up on a Windows machine donated by someone in the audience.
undemocracy.com still has no supporters whatsoever, but a lot of people could see the point of the Metroscope. I have developed the notion that scrapers and parsers for these tiny sources of civic data should be run using a codewiki that runs in a sandbox using pypy. I have not found such a sandbox on-line. trypython.org is not it, because it’s python running in your browser with the right plugins. Who wants to work on it? I must get a new laptop urgently as I my old one is really beginning to hamper this work.
The conference dinner which came with free wine and beer was excellent. The conference hangover the next day was not so good. I got back to the hostel at 3:30am, got up at 8am, sat on the road for 20 minutes until they opened the door and I could have breakfast of lots of tea with peanut butter and banana sandwiches. Still felt terrible. I needed to find a talk that was boring enough to fall asleep in, but failed because instead I went to one on software complexity where the speaker made us all stand up and talk in pairs to our neighbours about the problems we’ve had with software complexity.
To me, the most important talk was about pro bono work converting climate science software to python from its old, incredibly impenetrable FORTRAN implementations. You could guess it would be them from reading their company’s heartful goals. Far too little pro bono programming happens outside of the field. A huge amount of volunteer work is done by programmers to improve and promote the public free open source software tools used by programmers (eg Python), but the phenomenon rarely breaks out of this arena and into dealing with civic and government software and data. I don’t know why. It’s considerably easier as the quality can be so ultra-bad outside the open source communities, especially when it relates to billion dollar government contracts. But, on the other hand, nobody out there seems to give a damn about software quality, so you for sure won’t get any thanks. It’s like writing poetry in a language nobody understands. The belief that good quality software is a gift that keeps on giving is nowhere around. Consequently, there’s a disincentive to produce it in the professional world.
Next year there is no UK Pycon. Instead they are holding EuroPython. This is a very good thing and everybody should go.
Evidently this is related to the conference in Hamburg she’s just been to. I can’t give you a link because conference alerts takes things down too quickly, and I can’t even check it up yet on archive.org. I’ll be able to find out maybe in 5 months time what it was without asking. This is an information black-hole.
A tip for any of you reporters who don’t see your job as sitting back and waiting for the PR industry to spoon-feed you with well-crafted press-releases, she’ll be at the ECVP 2008 in Utrecht showing off her haptic experiments.
Update: Stumbled upon this crude visualization of point-cloud data used to make a music video. For decades CADCAM engineers have been trying to convert this sort of data into usable surface models (eg at the meshing round table). This is one of those insoluble problems, because only when you make a concerted effort to solve it do you realize that what seems to be enough data is in fact insufficient, and everyone who hasn’t gone through that process just thinks it’s because you’re not smart enough.
Anyway, what’s makes this effort cool is they’ve released the point cloud data in downloadable format so people can play with it. Some results, using standard applications, are here. Maybe someone in the wider audience will prove smart enough, having been exposed to some real messy data. Working from clean data at the start seems always to spoil the intuitive understanding of the problem. That’s why I am thankful that my initial CADCAM experience was with the output of NCG Toolmaker, where everything was broken and none of the surfaces connected up, as you get from proper solid modellers these days.
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.
- 18 March 2004 – Henry Bellingham MP (Con) doubted the story because Mann wouldn’t have launched a coup against Equatorial Guinea starting from Zimbabwe, a short plane flight away.
- 20 May 2004 – Peter Bottomley MP (Con) raised questions about Simon Mann’s treatment.
- 1 July 2004 – Henry Bellingham MP (Con) this time had more details of Simon Mann’s perfectly innocent activities, when he “went to Zimbabwe approximately a month before he was arrested, held meetings with Zimbabwe Defence Industries and put in an order for various weapons, mainly hand guns. Zimbabwe Defence Industries led him to believe that he was allowed to purchase those weapons but he was arrested a month later.” How unfair!
- 9 December 2004 – Hugo Swire MP (Con) asked a question.
- Nothing in 2005
- 5 June 2006 – Ben Wallace MP asked a question.
- 14 December 2006 – James Arbuthnot MP (Con) asked a question.
- 4 June 2007 – Lord Maginnis of Drumglass (Crossbench) asked a question.
- 3 July 2007 – Geoffrey Clifton-Brown MP (Con) asked a question. (Clearly there’s some organization cycling through the Tory MPs, possibly alphabetically)
- 5 February 2008 – Julian Lewis MP (Con) decided that Simon Mann was his constituent and made a point of order.
- 7 February 2008 – Iain Duncan Smith MP (Con) asked a question.
- 7 February 2008 – Mark Pritchard MP (Con) asked a question.
- 7 February 2008 – James Clappison MP (Con) asked for time for a debate.
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.
- 20 February 2008 – Earl Cathcart asked a question.
- 20 February 2008 – Ben Wallace MP (Con) asked a question.
- 21 February 2008 – Vince Cable MP (LibDem) asked a question. Notable as being the only MP who is not in the Conservative Party to give a damn.
- 21 February 2008 – Lord Maginnis of Drumglass (Crossbench) asked a question.
- 21 February 2008 – Lord Hylton (Crossbench) asked a question.
- 25-29 February 2008 – Julian Lewis got ten more questions answered, including ones about sanctions against EG and the horror of Mann’s shackling.
- 3 March 2008 – Earl Cathcart asks about his recent visit by the US ambassador to EG.
- 3 March 2008 – Keith Simpson MP (Con) asks three questions.
- 6 March 2008 – Henry Bellingham MP (Con) puts Mann’s case into the wider context of British citizens who are unlawfully imprisoned abroad. Regarding the wider context of illegal kidnapping and imprisonment, here’s all Bellingham’s statements about Guantanamo Bay, and here’s his comments about extra-ordinary rendition.
- 17 March-22 May 2008 – Julian Lewis MP (Con) asked 21 more mostly repeatitive questions.
- 24 June 2008 – Julian Lewis MP asks the most recent written question in Parliament.
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.
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.
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.