Category: Projects

Introduction aux Logiciels Libres

Après ma présentation d’hier à la soirée du Liege Linux Team, j’ai placé ma présentation en ligne : “Introduction aux Logiciels Libres” (ou directement : fichier PDF, 1.8Mo). Tout commentaire ou amélioration possible est le(la) bienvenu(e) !

English version Edit (a little bit later): since I usually write in English here, I translated my presentation in English. It’s here: “Introduction to Free Software” (PDF, 1.9Mb).

Mapping cameras in Liege, 1 month later

Nearly a month after the initial launch of my map of CCTV cameras in Liege, quite a number of people contributed to add cameras on this map (some people contributed heavily ; thanks to all of them). Currently, we have identified 79 cameras but it seems we are far from finishing this work since, according to some sources, there were more than 109 CCTV cameras in Liege at the end of 2006! Did this put you at rest: 40 cameras added in one go?

How are you using tags?

I’m wondering how people are using tags and how it differs from keywords usage in the scientific literature.

Usually when I add tags on web services like del.icio.us or Flickr, I tend to add as many tags as possible. For example, even if a man is not the main subject of a photo, I’ll use the tag “man”. The rationale is we never know if, one day, I (or someone) would like to find a photo with a man and a tree (for example), the tree being the main subject. The problem is that I think I’m “diluting” the power of main tags. Another example … about a website helping find post-doc jobs, I’ll use the following tags: “jobs postdoc research science grants PhD job”. The problem is that “grants” is not really related (there are no list of available grants but only some jobs require grants and you never know what you’ll look for later).

In the biomedical sciences field (and many other scientific fields, I guess), we are using “keywords” when submitting a paper to a peer-review journal. This helps in the selection of peer-reviewers but, more important, it allows us to find interesting papers. The main difference with tags, imho, is that we only use a small number of keywords. For example, in this article, the author only used 4 keywords (and it’s considered sufficient). If this article would have been a webpage, I would have added some more tags: MS, Mw, pI, proteomics, …

Why is there a difference? Is it relevant? How are you using tags? Is there a “good” strategy?

I collected tag-lists from some del.icio.us users and tried to compare (*) to my tag list …

user abbrev N links N tags Mean citation per tag Max citation for a tag
je 401 757 3.52 84
ad 614 1123 3.07 98
do 113 195 2.33 27
ch 2320 582 15.86 326
de 3528 1550 13.29 923

With 5 people, I don’t pretend that it’s significant … We have clearly two groups: me and my friends (the 3 first lines) with < 1000 links and a mean citation per tag of around 2-3. The two last lines are from 2 people taken “at random” (well, I eliminated people with < 1000 links like the 1st group). When I plot the histogram of tags usage, I always get the same trend: a huge amount of tags used a few times and very few tags cited very often (as expected, see figure below).

histogram of my tags usage

Rashmi Sinha’s cognitive analysis of tagging is a good start to understand the tagging process. But it could be nice to find other important ressources and/or learn from others experiences …

(*) data and Python scripts available upon request. I had to write my own Python scripts to retrieve data since, unfortunately, Michael G. Noll’s Unofficial del.icio.us Python API for research are not available anymore.

Update on May 6th (a bit later): Michael’s API is back! I’ll use it later 🙂 Thanks Michael. If you want to spend your holiday in Canada, you can go to the ACM Document Engineering 2007 where he’ll introduce a paper related to this subject. Another thing: when I looked again at the table above, there are two “trends” (remember, I don’t pretend to be exhaustive nor significant): people with < 1000 links have more keywords than links ; with > 1000 links, more links than keywords. Is there a more precise limit? I guess this has something to do with the fact people are only interested in a “small” number of subjects and tend to collect as many variations (links/webpages) as possible on the subject.

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 🙂

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.

I give up!

OK, I am giving up the Jadoo project. It could have been a very interesting project. But if I don’t give up now, it will stay in my mind and prevent me from starting new projects or continuing more important projects. But it’s a temporary giving up: who knows how much time I’ll have in 2 or 3 months.

For those interested in Jadoo, here is the short story: everything started with a post on Alexandre Dulaunoy’s blog, then I tried a first version and finally I wrote a small update. Files are still here: jadwrite.py and jadpub.py.

I think the two main drawbacks with Jadoo are that I need to update files manually (a Python script could have done the job) and that I cannot post from any computer (I need Python, a text editor and all the previous posts -at least the last 10 ones- in order to update the blog). These are some points to think about before a possible come back.

Some news about Jadoo

Here are some news about the Jadoo blog engine …

  • I updated the CSS file (2ko) and corrected some mistakes; now, all HTML/CSS tags are correctly used.
  • I updated the main script in order to link to Technocrati for all tags
  • I also updated the footer (= the side bar in the published page); it now includes the Technocrati search box
  • I added the blogroll. It’s not showing links in random order like many other blog engines. But do we need that feature?

Some tasks still need to be done:

  • Recover all my previous posts and add them here (it will be in PHP since everything is still in the DB on this website)
  • To show previous posts, I am still wondering how it could be done. I want it to be fast and simple for the engine (no DB, remember?). And I want it to be simple and easy to navigate for the reader.
  • Correct the RSS file (1ko) by adding the content in it and see why it doesn’t seem to work in most RSS feeds readers
  • Think about how people can send comments. For the moment, readers can’t send comments. It’s a feature, not a bug. And it’s also like that in some other blog engines (like oddmuse but it uses "comment pages"). The vast majority of blog engines do include a comment tool. Do  I  you need it?

Although I didn’t do an in-depth (Merise/UML) analysis of what a blog engine should do and how it should do it (programmatically), I can say a blog is a really easy to write, at least its most common tasks like publishing posts. Nearly everything else is static text added (could be dynamically updated with PHP if you want) and a CSS style sheet. That’s why Jadoo can even work with non-PHP hosting plans. And you have a backup of all your posts, you don’t need to worry about dumping a database, etc. 🙂

Any further comment and/or advice are welcome (by e-mail).

First tryout of Jadoo

Hi

This is my first post with the Jadoo blog engine. As I stated before, I was planning to write my own blog software with these goals:

  • Simplicity
  • No PHP nor any script for the client
  • All the processing done un Python, offline
  • No DB
  • (maybe some other goals but I don’t remember them, right now)

I’ll try to apply the "release soon, release often" principle (where does it came from?): before writing an entry, launch jadwrite.py ; to create html files, launch jadpub.py ; then upload html files with your FTP client (scripts are highly customized for my blog, for the moment ; and everything doesn’t respect all the standards). I’ll also to retrieve all my previous posts (but the URL will be changed ; the RSS URL also changed). But for the moment, I have other important work to do … There is no system for comments for the moment (I don’t know if there will be one in the future) but you can send me comments and requests to jepoirrier@gmail.com.

Oh yes, and I’ll try to add a decent CSS 🙂