Month: April 2007

Vote électronique (electronic vote)

(This post will be in French since it concerns French and French-speaking Belgians and gives links to websites written in French)

Les élections françaises approchant (c’est demain !), un certain nombre de personnes ont émis de vifs doutes sur le vote électronique, doutes relayés par la presse (exemple). Je voulais juste épingler le blog de Laurent Pieuchot, conseiller municipal d’Issy-les-Moulineaux (près de Paris, en France). Il y décrit les cafouillages, gaffes, incertitudes et autres mensonges à propos du vote électronique et des ordinateurs de vote dans plusieurs communes françaises. Et ils vont voter pour la plus haute fonction de l’État français …

Quelques liens intéressants sont également répertoriés, comme ordinateurs-de-vote.org, un site web regroupant “citoyens et informaticiens pour un vote vérifié par l’électeur”. Ou encore la section vote électronique du blog de François Nonnenmacher (un consultant informatique), recensant les dernières nouvelles françaises sur le sujet (il y en a qui sont édifiantes !). Pour se rendre compte plus pratiquement des problèmes posés par le vote électronique, une machine à voter virtuelle va vous montrer qu’un ensemble de votes peut être falsifié tout en présentant les apparences de sécurité, vérification (vérifiabilité ?), agrément, certification, etc. (lisez la foire aux questions par après pour voir si vos doutes peuvent être levés ou vos certitudes ébranlées).

Finalement, pour les belges, si vous pensez que vous êtes à l’abri de ce genre d’histoire, vous pouvez vous rendre sur le site pour Eva. Vous verrez que même Eva n’est pas très sure que son vote électronique soit correctement pris en compte en Belgique (je sais le jeu de mot est facile).

Conversion of address book from SquirrelMail to Yahoo!Mail

In case someone will need it, here is a very small Python script that will convert your address book from SquirrelMail to a file you can import in a Yahoo!Mail address book: addressbookS2Y.py (2ko).

To use it:

  1. save the "program" in the same directory as your address book you imported from SquirrelMail
  2. rename your address book from SquirrelMail as “addressbook1.csv”
  3. download and install Python (if not already installed)
  4. launch the "program"

Voilà! You have now a file named “addressbook2.csv” that is suitable for Yahoo 🙂

Both SquirrelMail and Yahoo!Mail export/import CSV files for their address book. But the elements order is different and Yahoo requires much more details (city, country, etc.).

Mapping cameras in Liege

A lot of publicity is made around CCTV cameras in London (e.g. recently). But surveillance cameras are also invading other cities like Liege. You can be pro or against. The least thing is awareness: citizen should know where they are and how data is used. But nor the Liege city, nor the Liege police websites display a map of cameras. So I decided to create such a map here (in French). Of course, I cannot do everything by myself. If you know the location of some camera, just let me know and I will add them on the map.

Mapping my ride

GPS trackerNearly 2 months ago, I got a GPS tracker. I discovered its antenna is sufficiently sensitive to work in my pocket so I took it on my Saturday morning bike ride. Back home, I was able to retrieve data from the tracker in various formats. What can I do with this data? Find the total distance I rode, of course!

I am lazy 😉 so I decided to use the Kompass track file since it’s only a CSV text file (I should have used the GPX file format but parsing XML is still more difficult for me than a plain text file). With a rather simple Python script, I was able to store all the latitudes and longitudes in a collection of objects. But, hey, how do I compute the distance from longitudes and latitudes?

To find the distance between 2 points of which you only have latitudes and longitudes, there is a formula given by Dr. Math for example. To use this formula, you need the Earth radius. Since the Earth is not a perfect sphere, I’ll use an approximation of its radius at a given geodetic latitude (based on the latitude of the start point of my bike ride). With these two formulas, you can find the total distance of a GPS track (of course, it will still be an approximation).

So, this morning, I rode 14.5km at a mean speed of 27.5km/h (it’s only the beginning …).

But I want more! I want to see where I went on a real map! No problem … For that purpose, I’ll use Google Maps. In the same Python script, I define two GPoint: one for the start and one for the end of the trip (I also wanted to show the time of these points on the map). The path I did is just a GPolyline. The map is centered in the middle between the start and end points. The following elements can easily be customized: zoom level, path color, width and transparency. I added a parameter to be able to downsample data (in case of large data set). So, finally, I succeeded to draw this kind of map …

The map is included in a frame. If you can’t see it, here is the link to the map. Enjoy!

Now the most interesting part: here (22ko) is the Python code, all the graphic elements, the HTML template page, an example of track file from my GPS tracker and the map below (as usual, everything is under the GNU GPL licence).

Of course, you already have some similar services on the web. But only the GPS Visualizer is better than my solution, imho. In all other services I found (Gmaps Pedometer, MapMyRun et Walk Jog Run), you have to draw your path yourself: this is not precise and can be a pain if you have to enter many points. And, with my solution, I am happy I was able to solve this problem 🙂

All that to tell you that I started to ride my bike this year 🙂

Under attack

Short message for spammers: you lose your time trying to add irrelevant comments on this blog since no comment is published before I agree so. Moreover, I activated Akismet spam filter since this morning

… But I doubt spam robots read notices where they put spam comments.

Although I disallowed comments (and even pings) on some posts, I felt something strange this morning: more and more comments had to be moderated on this blog. By default, no comment are directly published. If the comment is relevant (even if the author has a different opinion than mine), I publish the comment (1 click). Otherwise, I delete the comment (another click) and disallow comments and pings (human contributors can still send me their comments by e-mail and I’ll publish them). From 1.50pm to 2.50pm (some minutes ago), I received 153 spam comments. Sorry guys, unless you found a serious flaw in this blog engine, comments will still be moderated by a human who dislike spam.

Proton transactions history

Did you know that the last 3 transactions you made with a Proton card (the Belgian electronic purse) are stored in the chip? I simply used the card reader/challenge solver given by my bank to have access to the online banking system. Usually, you press on the “M1” button. If you press on the “Info” button, you’ll get the last 3 transactions you made with Proton, the reader EPCI number, battery level and embedded software version.

Example of a Proton transactions history (now you know everything about my finances ;-)

Although I know this information is not really important (you only know how much and when you spend money), it could be useful for a jealous wife/husband 😉 or simply to survey how often people use Proton. Are there anything else stored in that chip? (I did a short search on the internet but I didn’t find anything relevant)

Open source animal behaviour monitoring

In the last issue of the Journal of Neuroscience Methods (impact factor: 1.5), 3 papers deal with animal behaviour monitoring and 2 of them introduce open source software.

Roseanna Ramazani and her colleagues “designed an automated system for the collection and analysis of locomotor behavior data, using the IEEE 1394 acquisition program dvgrab, the image toolkit ImageMagick and the programming language Perl” [1]. What is interesting is that they highlight the longevity and reliability of open source software, leaving behing the simplistic view “open source = free as in free beer”:

Some of these previous methods might have been able to meet our needs. Unfortunately, these previous programs are no longer available and all use proprietary software and/or hardware that no longer exists. The methods that we describe use only open source software tools and run interchangeably on different hardware platforms (we have used Mac OSX, Windows XP and Linux, although the data in this paper was all analyzed with a computer running Linux). Open source tools tend to have greater permanence than closed source since they are maintained by communities and they can be modified by the end user. It also is not limited to a single camera system or computer platform. It is readily available to the public, and can be modified by future users, provided that they have a general understanding of the programming language Perl.

In a second paper, Ganea and colleagues describe “a novel home cage activity counter for the recording of basal activity in rodents” [2]. It is not open source but they describe a system similar to Gemvid (my system) and they even don’t cite it! They submitted their paper after mine was published and they even cite Pasquali’s paper which describe a similar method and was published in the same journal as Gemvid. But maybe, if they would have cited my paper, their discussion about cost, limitation to light phase of circadian phase and special hardware would fizzle out 😉

In a third paper, Jonathan Peirce introduce a “Psychophysics software in Python” [3]. I must admit I didn’t know what is a “psychophysics software” until I read the paper and visited the website: http://www.psychopy.org.

So, it seems open source software slowly gain more and more attention in biomedical science … (when I started my Ph.D., nearly no one spoke about open source software, open access to scientific litterature neither, btw).

[1] R.B. Ramazani, H.R. Krishnan, S.E. Bergeson and N.S. Atkinson, “Computer automated movement detection for the analysis of behavior” Journal of Neuroscience Methods 162 (1-2): 171-179
[2] K. Ganea, C. Liebl, V. Sterlemann, M.B. Müller and M.V. Schmidt, “Pharmacological validation of a novel home cage activity counter in mice” Journal of Neuroscience Methods 162 (1-2): 180-186
[3] J.W. Peirce, “PsychoPy—Psychophysics software in Python” Journal of Neuroscience Methods 162 (1-2): 8-13

Contamination!

Last week, our proteomic group did a 2D of a purified protein but, unfortunately, it seemed we had a contamination. So, this week-end, we performed blank tests in order to see if the contamination came from our experiment (or from the purification). We tested our fluorescent markers and different 1D strip holders. At a normal gain, the image looks fine: contamination doesn’t come from the 2D

But when I increase the gain, the image (and thus our gel) is really contaminated! 😦 We really have to look where did the contamination happen! Look at this:

In France the person fooled is known as poisson d’avril. This has been explained as arising from the fact that in April the sun quits the zodiacal sign of the fish. The French traditionally celebrated this holiday by placing dead fish on the backs of friends. Today the fish has been replaced with paper cut-out.
(Explanation from Wikipedia)