Category: Open Source

When business got things right about Free/Open Source licenses

It’s always interesting to see “business” people getting things right about the Free/Open Source world. For example, the last month Boulder Open Coffee Club was dedicated to “open source issues that developers face”. The NVA blog contains a summary of the recommendations. Basically, it is: “know the licenses you are using and what you can(‘t) do with them“. And AskTheVC gives links to Lawrence Rosen’s book: “Open Source Licensing” (not read yet, maybe for a future post). They also link to a Boulder’s company (Openlogic) that helps you to maximize returns, minimize risks and accelerate innovation with Open Source (all keywords you should have in a business plan! ;-)). They also have some resources about Open Source for businesses.

We were sure about it but now other people are actually creating things with Free/Open Source software 🙂

Disappointed by BSN meeting

Disappointed by this BSN meetingI’m very disappointed by this BSN meeting. This event is organised every 2 years so you might expect some quality standards. Well, don’t expect too much … (don’t expect anything, in fact).

Morning talks were ok, nothing more: it was not better nor worse than any other congress. But the poster session was not organised at all and there was no support from senior scientists … Moreover, authors of about 1/3 of posters didn’t even deign to come and hang a poster! Most of senior scientists left before the afternoon poster sessions (usually, questions from seniors are more useful than other students’ questions); maybe 2-3 seniors were left (for the whole Belgium!!!). And the final touch, lunch was not free (not even sandwiches!) although we paid 45€ for registration (free for members – membership is 12€ per year for students). Instead we were redirected to the UAntwerp canteen … Are they not smart enough to find a sponsor? I think it would have been better to attend the Neuroinformatics Meeting only.

We decided to leave at 16.00: on the 200 people there at 14.00, approximately 20 were left, most of the posters were already removed and no one was there anymore 1) from my lab 2) to have interesting discussions (apart from the weather topic). It’s sad for the last speaker but, hey, if the meeting organising committee is treating us like s..t, what do you expect? We spent at least one day designing our posters (I know people who spent the whole week on it!) and no one is there to discuss about it? We spent hours on highways and traffic jams trying to enter Antwerp at 9.00 to be at the same level as inept people not even coming to hang their poster? I’m sure they even didn’t designed their posters. And the result is the same for everyone: 1 line on the cv. I’m really disappointed.

Note: Alexandre Dulaunoy already left a comment on one of my photos of the meeting on Flickr.

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 🙂

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

How do I handle my bibliographic data?

In science, you have to justify nearly all your assertions and this is done by citing another scientific paper, called a “reference”. With practise and advices of some people, I arrived to a satisfactory references management system I’ll explain below. My “problem” is that in the academic world where I work nearly everyone use EndNote or Reference Manager, two proprietary reference management software for MS-Windows. And I want to use the simple yet powerful BibTeX system.

I used both MS-Windows software and they all have advantages and drawbacks. Reference Manager has the nicest user interface but it lacks of support for other documents than MS-Word, RTF parsing and BibTex export. EndNote has an ugly and sometimes not logical UI but at least it has RTF document support (but nor OpenOffice nor Wordperfect documents are supported). With EndNote, you can find tricks on the web to import and export references from and to BibTeX. But you always lack something in the conversion. The reason is you have fields in EndNote that are not supported by standard BibTeX (this is not a problem since BibTeX simply ignore them without error but they are still available in your .bib file – you don’t loose any information) and fields in BibTeX that are not supported by EndNote (and EndNote simply discards them – you loose information).

I tried many other software, both free/open source and proprietary but I stay with my simple BibTeX file (simple, powerful, no additional markers, file not easily corrupted, small size, …). Maybe when the OpenOffice.org bibliographic project will be ready, I’ll try it.

In biology and medicine, the source/database of article references is PubMed. 99% of my references are first found on PubMed (the 1% left contains books, multimedia files and some articles not referenced on PubMed). Each reference is associated with a “PubMed ID” (PMID).

When an electronic version of an article is read, I change its file name following this convention: “first author’s name – last two digits of year – journal abbreviation – issue number – first page – some keywords” (without spaces nor punctuation marks, e.g. maquet01-science-294-1048-sleep-learning-memory.pdf). All the files are stored in the same directory. When a paper version of an article is read, I write keywords/tags on top of the first page and put the article in a file (each file has one subject ; it’s sometimes difficult to choose in which particular file an article should go).

Then I go to PubMed, find the PMID and look for this ID in both EndNote and PyP2B. I add the result of PyP2B in my BibTeX file with the keywords/tags ; this is simple (eveything is done by the script, even the key generation – I use something like “firstauthorsnameXX” where XX are the publication year last two digits). Since EndNote only understands reference numbers, I have to add the BibTeX key as a “label”. Fortunately, EndNote can sort references based on their labels. I also add a link to the PDF if it exists. I first thought that it will take me a lot of time to maintain these two lists of references but, practically, it doesn’t take much time.

With this system, I can:

  • look for a particular article in my server directory based on keywords/tags, first author, journal name and publication year
  • look for a particular reference in my BibTeX file
  • look for a particular reference in my EndNote files
  • use my BibTeX file in any LaTeX documents
  • use my EndNote files with MS-Word documents if someone ask for this type of document
  • 🙂

Previously, I had the project of writing a central repository of all the references in a real database and then generate both EndNote and BibTeX files from it. But I lack time to write this and EndNote file format is not open (why bother reading unofficial specifications about this format then?).

Sunday @ Fosdem

This Sunday, I attended only two talks. These talks were in the embedded track since I was with my brother who is interested in this. The first talk, “SH-2A Linux kernel” by Yoshinori Sato, was very difficult to follow since Yoshinori did not tell us what is the SH-2A microprocessor (it is apparently used in cars, a.o.) and his English was very bad. In the second talk, Vitaly Wool introduced XIP, a way to directly run portions of software from where it’s stored in a type of Flash memory (instead of being copied to RAM first). With XIP, you can reduce boot time (or at least the “time to splashscreen”, especially interesting in handheld devices where you want to quickly be “productive”). But you can have other occasions where speed of execution is more important than price (because the type of Flash memory used is more expensive than standard RAM). Yesterday, Jim Gettys said the OLPC laptop can boot very quickly but it was thanks to the use of LinuxBIOS (and maybe XIP?). I also liked when he took a pen to show us something on a slide and said that it’s “because my wife is here and she said it’s bad manners when I point at things with my finger”. 😉

During the afternoon, I was moderator for the Lightning Talks where people has 15 minutes to introduce their projects. This afternoon, it was about SIP Communicator (an open source VoIP and Instant Messaging client), OSSIE (a free radio software project), the OpenOffice.org port for Mac OS X, Mapyrus (a software for creating vector elements – mainly for cartography – and output them in various formats), PSPP (a free replacement for the commercial statistical package SPSS), OpenEmbedded (about how to make their porting task easier) and Mozart-Oz (a “multi-paradigm programming language”). It was nice to see all that life around free software (moreover, nearly all the speakers respected the time limit).

If you want to see how it was, you can have a look at photos on Flickr with the fosdem2007 tag (or simply fosdem). I guess slides and videos will be on the Fosdem website soon.

First trace for OpenStreetMap

OpenStreetMap is a “project aimed squarely at creating and providing free geographic data such as street maps to anyone who wants them. The project was started because most maps you think of as free actually have legal or technical restrictions on their use, holding back people from using them in creative, productive or unexpected ways.” I thought it was worth participating and more documented than the UPCT project. So I got a Locosys NaviGPS GT-11 and used it for the first time on the way to FOSDEM (and back). I did a small mistake by taking an interval between points of 30s: on a highway, at 120km/h, 30s means 1km and the road direction can change a lot. When I’ll have more time, the next step will be to do some edition and mark roads, highways, interesting landmarks, etc. Stay tuned …

The GT-11 is only a GPS data logger. It has no built-in maps, road finder, etc. That’s why I got lost a little bit while trying to exit Bruxelles 😦 But, at least, you can see your errors later.

Saturday @ Fosdem

I spent this Saturday at FOSDEM, listening to some interesting talks.

Pieter Hintjens spoke about the Status of Software Patents in Europe. As the FFII president, he should clearly be against software patents. But, although his speech went in this direction, the 3 new FFII initiatives are diluting his/its position as well as the threat (the 3 initiatives are European patent conferences, the creation of the European Software Market Association to lobby the EU and a Campaign for Ethical Patents). Let’s talk seriously: software patents are not a solution and shouldn’t be allowed ; no trade-off.

Jim Gettys talking about the One Laptop Per Child project was good and exciting. I thought that the project was just about reducing the cost of a laptop with the 100 US$ goal in mind. But, technically, no one can just give regular laptop (as we have in developed countries): they are not designed to save enough power, to resist water and dust, to be readable under the sun, … The OLPC team came with bright ideas like a CPU that can be turned off (saving power) with display still on (allowing children to read) and wireless still on too (allowing the reception and transmission of network packets). They are using Open Source software because transparency is empowering (but it also really helps reducing costs and is the only thing you can use if you want to modify and fine-tune software).

Simon Phipps‘keynote about the “liberation” of Java was disappointing. It was rather a Sun/Java commercial show than a real developers talk. Of course, they are working on the next release of Java and Sun became a corporate patron of the FSF. But nor the JDK nor the JRE are free for the moment.

During the afternoon, I saw a very nice introduction (à la Lessig) of Jabber by Peter Saint-Andre, a hypnotic introduction to Fedora by Chitlesh Goorah and Max Spevack, a clear talk about the Belgian eID on CentOS by Fabian Arrotin (although nothing was said on concerns about privacy) and finally Wim Dumon’s talk on Wt (bof).

In general, I noticed 3 general trends: more women are interested in free/open source software/movement (even more than last year), more Mac PCs are shamelessly turned on 😉 and more SLR cameras are used.