Friday, January 30 2009

OCaml Meeting, FOSDEM and holiday

Next week will be quiet busy. I will travel a lot. Of course, I am talking about OCaml Meeting and FOSDEM.

The OCaml Meeting subscription is over and we reach a quiet good number of attendees: 45. This is the approximate number of people who come last year. There is now some details to finish (dinner for the previous day, schedule for talks...) but enough time left. The only thing I hope for the meeting is that it generates the same effect as last year: another impulse in the OCaml community. Many people are working continuously on OCaml but last year event has generated a lot of post-event discussion and many people started different project. Some of these projects are still alive, some are not as vivid as they deserve.

I enjoy being at FOSDEM last year, but I only stay 1 day and it was not enough. I will be able to stay during the 2 days and attend more Debian conference than last year.

I will visit Brussels and Ghent just after. Belgium is a really nice country and it has been a long time I haven't take a break.

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

Friday, January 23 2009

OCaml meeting 2009, subscription about to end

The subscription will end on January the 25th, for people willing to come to this unique OCaml event, this is your last chance !!!!

We have 40 participants for now. I am quite happy with this number because it is almost the same as last year -- except that we do it in Grenoble rather than Paris. Anyway, I see that a lot of people who were there last year, will come back to this year events. There is also a few more people, in particular more from CAML consortium members.

I have stepped down from the first talk about in favor of Stefano Zacchiroli. Zack has really helped me on this project since the begin (with Pietro Abate and Romain Beauxis). I am very happy that he can do the talk.

I will do myself, a talk about my last project for Talend. This was a great project targeting to be as fast as a standard C application but in OCaml. The point is that OCaml helped me to do quickly a working prototype and then optimize it for speed. All in all, after 6 months I was able to deliver Talend with a working and fast application. This kind of release cycle is harder to achieve in other programming language. OCaml compile time verification helped me a lot.

I hope that in the last remaining 2 days, some more people will subscribe.

Wiki Subscription

Friday, December 19 2008

OCaml meeting 2009 in Grenoble, progress

This morning, Alan sends me the link to the subscription form. We are now ready to accept participants for OCaml Meeting 2009.

Last week, I was at the annual CAML consortium meeting. We talked about OCaml Meeting with M. Leroy and other participants. Most of us, think this meeting is a real great way to make OCaml user meet. This can be the start of great projects, just because people realized that a real OCaml community exists. The INRIA seems really enthusiast about the meeting, maybe INRIA team will be directly involved in the organization in 2010.

I hope 2009 meeting will be as good as the former. At least this year, we are doing things quite in advance and the whole organization will be a little bit more "professional".

OCaml Meeting webpage

Sunday, November 9 2008

OCaml meeting 2008 participants

Unfortunately I forget to post the last year participant pictures. Here is the official picture.

Thanks to R.W.M Jones for reminding me.

OCaml meeting 2009 in Grenoble

Since September 2008, Alan Schmitt and I have decided to organize a new OCaml Meeting following the JFLA. This will be the second time of such an event. Last year we were 50 people -- after a very short period for organizing it (less than a month). This year we decided to prepare things earlier.

As a matter of fact, the last year events has at least generated a peak in OCaml mailing list (602 message in January, 487 in february...) It also has given birth to several things like planet and forge. It has also help to start things like batteries. I hope this year events will help people to meet and exchange great ideas for OCaml promotion.

Waiting to see a lot of "OCaml"ers at OCaml Meeting 2009.

Monday, September 15 2008

Distributing OCaml libraries: common problems for packager and how upstream author can help solving it

Having already done some Debian packages of OCaml libraries, I wish to share my experience on what are the most common problems. The intent is to help people releasing OCaml libraries to have a good interaction with (Debian) packager. I think most of the tips should also apply to other distributions as well. I consider the use of findlib mandatory for this task as described in the Debian OCaml packaging policy.

Problems listed here are common, and I have encountered them for my libraries... In fact, most of the time when I finished building a personnal OCaml library I package it for my own and to test that everything is fine. Being a packager and an upstream author is really a different job.

"Upstream author" is used for people developing and releasing OCaml libraries and "packager" for people doing packages for a distribution.

Here is the list of the most common problems and their solutions:

  • Missing the "static link clause" in COPYING/LICENSE

Libraries are linked statically in OCaml. It is an advantage and a problem. But upstream author should remember that the LGPL license doesn't support static link directly. If you link an executable with the library statically, the executable is contaminated by the license. This error is probably the most problematic, because it requires to go through the whole project fixing license header for explaining that there is an exception to the LGPL.

There is no way for a packager to fix this problem. Packager are not allowed to change the license. Library having this problem can be still packaged but complicate the legal aspect of building application using this library.

Good example of this can be found in OCaml LICENSE itself :

As a special exception to the GNU Library General Public License, you
may link, statically or dynamically, a "work that uses the Library"
with a publicly distributed version of the Library to produce an
executable file containing portions of the Library, and distribute
that executable file under terms of your choice, without any of the
additional requirements listed in clause 6 of the GNU Library General
Public License.  By "a publicly distributed version of the Library",
we mean either the unmodified Library as distributed by INRIA, or a
modified version of the Library that is distributed under the
conditions defined in clause 2 of the GNU Library General Public
License.  This exception does not however invalidate any other reasons
why the executable file might be covered by the GNU Library General
Public License.

Followed by the text of the LGPL.

Each file header looks like:

This file is distributed under the terms of the GNU Library General
Public License, with the special exception on linking described in 
file ../LICENSE.
  • Forget that some architecture doesn't have an ocamlopt compiler

By far this is the most common error I have seen. Upstream author consider that you are able to build a native and byte version of their library. Unfortunately this is not the case for most architectures. This error is pretty simple to fix by separating byte and opt targets in Makefile. The ultimate test is to rename /usr/bin/ocamlopt and /usr/bin/ocamlopt.opt to something different and try to rebuild the library from scratch.

  • Missing or incomplete META file

META file is the base of everything in findlib. This is very important to provide good META file because it helps other people to easily build thing over OCaml library. Each library should provide its own META file. Until now, Debian packager was used to write this missing META file and contribute it to upstream author. I think that now findlib has become a standard in OCaml developement, so upstream should take into consideration this file.

A good test for META file is to install it and:

~$ ocaml
        Objective Caml version 3.10.1

# #use "topfind";;
- : unit = ()
Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable threads

- : unit = ()
# #require "ZZZ";;

If you are able to load your library in ocaml toplevel, this is a good point.

  • Doesn't use ocamlfind to install library

ocamlfind allow to install library. Using it is the best way to install your ocaml library. Moreovoer, you should use the most simple way to install.

For pure OCaml library this is straightforward and allow Debian packager to override destination directory by using environment variable OCAMLFIND_DESTDIR.

      ocamlfind install toto META toto.mli toto.cmi toto.cmxa toto.cma toto.cmx

For non-pure library, you could add a OCAMLFINDFLAGS variable to allow Debian packager add "-ldconf ignore":

      ocamlfind install $(OCAMLFINDFLAGS) toto META toto.mli toto.cmi toto.cmxa toto.cma toto.cmx
  • Doesn't distribute .mli files

".mli" files is the human-readable interface to the library. Even if most OCaml programmers use the ocamldoc HTML API of the library, it is best to distribute these files. In particular, Debian packager use it to automatically generate up-to-date HTML API documentation directly.

  • Doesn't distribute .cmx files

".cmx" files contain more informations than ".cmxa". Distributing these files allow application based on the library to be more optimized.

  • Forget about other OS files

This one comes from my "Windows experiment". Most of the time upstream author doesn't forget about "*.a" but doesn't add "*.lib" (yes is this windows counterpart of ".a" file).

  • Use bad wildcard for file to distribute

This one is not very OCaml specific. In Makefile and sh you have the same wildcard "*.mli". But if the wildcard is not expanded into sh, it just stay as is. It will make the executable called looked for a file "*.mli" literally. Mixing Makefile wildcard and sh is the best option here:

     ocamlfind install $(OCAMLFINDFLAGS) toto META $(wildcard *.mli *.cmi toto.cmxa toto.cma *.cmx)

This way you test and expand to only existing files.

  • Use a custom build system

This is more or less a problem. In fact, if everything is fine, there is no problem and you should just forget about this point. If the custom build system is complex and if there is an error in it: it becomes a big problem.

I must confess that I have myself done this kind of mistake a lot of time. But looking back, I think that most of the time I should have used directly OCamlMakefile. I think relying on ocamlfind for library installation, simple Makefile, OCamlMakefile, OMake or ocamlbuild, is just enough.

  • Missing BTS

This point is a problem for upstream author and communication with packagers (from Debian and other distributions). A bug tracking system is a way to publish, comment, work on and find solution of bugs. If you have a single problem in a library having the bug public helps people to show you what is wrong.

Of course, Debian (and Fedora, FreeBSD...) has its own bug tracking system and upstream author can use it directly. This is less work for upstream but tends to make the bug "distribution specific". Having an upstream author BTS helps to track the bug across distributions.

If upstream author doesn't like maintaining their own BTS, he/she should consider hosting part of the project on a forge like Even if they don't host the source code, this is still a good idea.

That's all. If you have other common problems, feel free to comment, i will add it to the list.

Wednesday, April 30 2008

ocaml-gettext 0.3.0 is released

After three years, a new version of ocaml-gettext is out. I know that the delay is quite long... Been too busy to do anything regarding this.

This new version is mainly a bug fix release:

  • UTF-8 is better handled when merging PO/POT
  • multi-lines, special and continuation comments of PO file are supported
  • camomile implementation is now safer (less chance to fail if something goes wrong)
  • improve overall build system

However, the major event of this release is the fact that it is now compatible with OCaml 3.10.0. This is a big news, because string extraction heavily rely on camlp4, which has changed a lot.

I have also uploaded a debian package of ocaml-gettext.

Plans for next release:

  • website has not been updated because generating it is too much complicated, i should switch to something more simple layout and generation scheme
  • my home-made build system is not good at all (fail to detect changes and do incremental rebuild...), next release should move to ocamlbuild
  • PDF generation has been disabled, because it makes fop produce a lot of errorrs, it should be re-enable
  • finish the patch to xgettext to allow OCaml string been extracted

Homepage Download

Thursday, April 24 2008

ocaml-gettext on-going progress to version 0.3.0

Thanks to Richard Jones, from Red Hat, i have been able to be enough motivated to start thinking to do a new release.

Richard provide me with a patch which help to get rid of ocaml-ast-analyze and replace it using camlp4 from OCaml 3.10.1.

I spent the last week removing problems concerning the merge action of "ocaml-gettext" executable and reworking the build system to get something cleaner.

I will spend a few more days to get rid of camlidl and try to see if there is a simple solution to handle UTF-8 in PO file.

Probable release date: 2008/04/27....

Tuesday, April 15 2008

Debian accounts and keyring

Even if i don't like talking about this in public, Lucas Nussbaum blog entry decides me to write this, because I, too, agree that the Debian accounts and keyring situation is severely hurting Debian, and that a solution needs to be found RSN.

I wish to be more clear on some of my positions concerning this. First of all, I am actually being hit by a "GPG key expired" status that prevents me to vote and upload packages. It is a little bit my fault because 1) i set an expiration date on my GPG and 2) i only update this expiration date in less than 1 month before it expires -- but it was more than 3 months ago... I have pinged different people since then to get the keyring updated without success. I have reuploaded my key without expiration date, and now i know that things can take a long time inside Debian (2nd rank after waiting for my own Debian account creation).

Another point is concerning DM (Debian Maintainer). I was against the proposal when it was voted, because i was thinking it will create a "sub" status of Debian Developper (i.e people which are in between debian users and debian developers). I have changed my mind concerning this point the DM process is lightweight and everything seems to be faster with it. This is a really good points for DM (and jetring). I am also considering to sponsor myself to apply to DM, in order to have a non-expired GPG key somewhere.

Last but not least, i met several French NM at DebConf 7 (Kibi, Goneri...). At that time, i didn't know them. Since DC7, I have seen them working on different parts of Debian. I think it is a shame to make them wait so long. It is really the best way to make their motivations disappear. Looking back at my own situation, i realize that i was more active before my account creation. This is probably because it takes a long time to process, and i loose hope in a possible account creation. I am now more active in Debian, but still not doing as much as i want to.

I don't know the best solution to solve this problem. I tend to think that some key people should delegate their work to other DD (within a team ?). Last year at DC7, Sam Hocevar was already discussing this problem with the people involved in Account Creation. I don't know what was the result of this discussion...

Hope, this post will help to show that this problem is important.

Saturday, April 5 2008 fonts too big in XFCE

UI fonts of Writer and XFCE thunar are really not the same

... years of seeing this ugly font and being force to scale the UI display to 80%.

I just found the solution!

All his related to a X settings: Xft.dpi. People are suggesting around to set it to 96 or something like that. I just decide to use the one i can find xdpyinfo (does it make sense?) and send the result to X settings using xrbd.

Here is the script $HOME/bin/


xrdb -query Xft.dpi | grep Xft.dpi > /dev/null && exit 0
RESOLUTION=`xdpyinfo | grep resolution | sed "s/.* \\([0-9][0-9]*\\)x.*/\\1/"`
trap "rm -f $TMP" EXIT
echo "Xft.dpi: $RESOLUTION" > $TMP
xrdb -merge $TMP

Copy/paste/chmod a+x this file.

And then add a file $HOME/.config/autostart/xfce4-xft.desktop to autostart the previous script:

[Desktop Entry]
Comment=Fix XFCE Xft.dpi settings

(replace /home/gildor/ by your own home directory)

Thats it. Your Xft.dpi will be fixed depending on the configuration of your X server. This allow you to have a laptop and a desktop with different screen resolution.

I am waiting the email from to submit this script to XFCE bug tracking.



Following the comment of this entry, another better solution is to use which works out-of-the-box with a clean UI. I don't even have to force OO to gnome style.

Thanks to Dan Callahan, Vasilis and Corsac for their suggestion.

Wednesday, March 12 2008

Linux 2.6.24 and Debian Etch on a Thinkpad x60s

I just installed a new kernel on my thinkpad. The migration was done from a 2.6.23 kernel and brings a new 80211g driver: iwl3945.

This new driver is fully included in the kernel and only need an additional firmware, which can be found in firmware-iwlwifi Debian package. It works pretty well, seems to connect faster, but the blinking WIFI antenna on my laptop doesn't work anymore. It replaces ipw3945 with a daemon in user space.

The installation was not straightforward, since ipw3945 and udev persistent net rules prevent it. The solution is to remove lines concerning the net interface using ipw3945 (the line "# PCI device 0x8086:0x4227 (ipw3945)" and the line after) in the file /etc/udev/rules.d/z25_persistent-net.rules. After this, you must do:

modprobe -r iwl3945
modprobe iwl3945

The file /etc/udev/rules.d/z25_persistent-net.rules now contains a line for the iwl3945 driver.

Installing the driver for etch requires to update the package wireless-tools using its backport to etch and downloading/installing the package firmware-iwlwifi from unstable.

Monday, February 25 2008

Since 4 hours, the planet of is online.

This is the first service provided by to the OCaml community. In fact, team has decided to release it today, because Erik Castro de Lopo ask a question about another OCaml planet in China. The one in China seems to be gathered through google search...

Putting online the planet is also the occasion to test a little application to manage feed subscription: ocaml-planet. This script is quite trivial but it was a good first experiment of managing CGI/sqlite through OCaml. The application should help us to control subscription of feeds. I think this is a better way to subscribe than letting people commit changed planet.conf in some kind of SCM (like we do for planet debian). Once the forge of will be online, we will publish the source code of this application.

I hope that this planet will be of some help for the OCaml community...

Back from FOSDEM

I have spent one day and a half this week-end at FOSDEM. This was not as great as expected, but mostly because i don't have the time to stay the whole sunday. Next year, I will stay the whole week-end in order to have time to attend all the speak i should be interested in.

The beer event was overcrowded, but all the beer i found there was great (in particular the Floris Pear). It was also a great time to have a demonstration of the XO OLPC laptop. This little thing is funny, but i don't get the way the UI should be used. Another bad point, is that the first console allow to login as root by pressing "Enter" (at least on the one i try). I suppose this kind of device is not intended to be secured.

I also have time to talk with some Debian people and some other people -- in particular one who was thinking that Windows 2000 is the best ever OS. At least, it means that there were people from different horizons -- and this is a good thing.

During Saturday, i spend half of the day in the big amphitheater (Janson). The talk about Tux with Shades (Linux in Hollywood) was impressive, regarding the trailer they show us... The talk about FreeBSD was interesting -- but not impressive as a trailer.

I spend Saturday afternoon in the Debian devroom, following all the different talks. I miss the one from MadCoder about managing packages with git... That's a shame because i really want to see this one.

Since my train was at 12am on Sunday, i choose to only pay a visit to the different booths. I have the pleasure to have a demonstration of the EeePC on the Debian booth that really please me. I found the UI more easy to understand than the one from XO. Speaking with the person demonstrating the laptop, she explained me that EeePC is more "standard desktop" and XO more "creative desktop". Conclusion: i am not creative ;-)

Also talking about everything around talks and the meeting, i think Bruxelles is a really nice city for this kind of events. ULB is not near the center of Bruxelles but there are enough transportation. There was really a lot of people attending FOSDEM, and this is a good thing. I also have the pleasure to find some people from the OCaml Meeting.

Tuesday, February 19 2008 ongoing progress

With a small team, we are setting up For now the site is quite experimental. This site should help OCaml developpers to have a common place to share their coding experience with other. This includes, but is not limited to, a planet and a forge.

I think that we will be able to finish the setup of the planet quite soon, but i am uncertain about the forge settings, which is far more complicated. However, this is a great experiment, because i never have really try to set up this kind of things...

I think this week (and this week-end) will help us achieve a great part of the settings of We will have occasions to meet face to face with Stefano Zacchiroli and Romain Beauxis, either here in Paris or at FOSDEM.

Wednesday, January 30 2008

OCamlMeeting in Paris -- Debian summary

On January 26th 2008, the OCaml community has its first meeting in Europe. There was 5 different talks, including one from me. The meeting was pretty constructive and i think some great things should come out of it. In this post, i will focus on the Debian maintainer point of view.

The meeting was organized by me, with the help of Garbriel Kerneis and Vincent Balat. I wish to thank Mme Turgis from ENST/ParisTech who has made possible all this to happen.


I announce the creation of OCamlCore, a SS2L. It will provide commercial support for OCaml and related products. It will also provide community with some resources (including a GForge, a planet, some SCM repository...)

For now, i will open administration to Debian people who wish to help (for root rights) and from the whole community for other task (gforge and general administration). For now, i will choose alone who can administrate and who cannot... This is not a very open position, but this server is also for my company.

Xavier Leroy give us a nice talk that has let us see some future direction:

  • OCaml 3.11 will have native dynlink
  • hope to integrate GHC like type system (GADT: Generalized Algebraic Data Types)
  • need to work on parallelism, following different paradigm

But above all, Xavier talked about the fact that there is a lack of manpower at INRIA and invited the community to build tools and other things (including a CPAN like distribution) to make the language more widespread. He also stated that a lot of things will stay in place in the name of backward compatibility.


Vincent Balat has given us a nice talk about OCsigen, a new framework for programming web application. This program is already in Debian and it is at the root of Debian discussion about moving .cm[ao] into libxxx-ocaml package. This new framework allows to program web application using continuation, which should ease a lot of aspect. It also features static type checking, including static verification of the generated HTML pages.


I was impressed to see G. Stolpmann coming to the meeting. Unfortunately, i cannot follow the whole talk, since i have some phone call to make, in order to book the restaurant. From what i have seen, it seems that GODI is growing, in term of manpower. They have some issues with OCaml 3.10, because of camlp4 and some packages. At the end of the conference, he was pushing for a more general use of GODIVA. In particular, it requires to have a very uniform way of building software. It should be the foundation of a build standard for OCaml software. In my humble opinion, i don't agree on this point. Basically, its proposal was based on configure/make all, which is too C style way of doing. It is not bad, but just exclude ocamlbuild enabled software.


Nicolas Pouillard has made an introduction on how to use ocamlbuild. I have discovered how it was working, since i didn't have time to work on this topic. It seems a good thing. I hope to be able to try it at some point. The conclusion was about modifying ocamlbuild to allow the use of multiple plugins. For now, the plugin is a separate file which is compiled first and then loaded, as a special case. Nicolas is looking for a full OCaml way to handle this for multiple plugins.

OCaml in Debian

I have spoken about different aspect of Debian packaging. After a short introduction and some history about OCaml in Debian, I come to some conclusions/problems:

  • we have an early integration, which makes Debian handle a lot of packages, but this is due to a long history
  • we still are not able to cope with libraries incompatibilities when rebuilding, we only have addressed ocaml package ABI problem
  • the debian package management system is not really compliant with the OCaml way of creating libraries, which is our main problem
  • native compilation is broken on 3 arches (Xavier Leroy told us that this should be solved for ARM)
  • use of Alioth has made us more efficient to integrate packages
  • Debian team are working by step: from time to time we begin to integrate a lot of packages, mostly because of some maintainers wishing to integrate a software with a lot of dependencies

Talking with Xavier give me some additional informations:

  • ARM is fixed, it should compile with Debian stable on ARM, he explains that the problem is related to the multi ABI flavor of ARM
  • he says that we should not have any problem concerning bytecode stripping of executable, if there is still some we should find the OCaml library that triggers this behavior
  • I realize that this behavior can be triggered by ocamlmakefile, that still have a "-custom" option
  • he promises me that he will send me a simple test to find custom bytecode application (combination of "file X" and a specific string at the end of the file)

At the end of the presentation, there were some questions. I discover that many people are ignoring the ABI problem with OCaml and its libraries. They seem to discover that it requires regular rebuild of our packages.

I also have a discussion about the fact that Debian binary distribution doesn't fit developers need. It seems that developers prefer to have the source of libraries they compile and also the most recent release. But at the same time, people avoid using GODI, which also have the problem of needing to wait for a particular library to be released... After some discussion, I point that some companies prefer to live in a frozen world, which Debian stable can provide. Living in a frozen world helps company developers to have the same environment from the beginning to the end of a project - which can last years. It also help to avoid build environment de-synchronization between company developers.

There was also a question about interaction between installed OCaml package and GODI software. I cannot answer it, expect with a "patches are welcome".

OCaml on a JVM using OCaml-Java

Xavier Clerc explained us how he has achieved running a full OCaml environment on a JVM. This work was pretty impressive, because he was able to compile OCaml top level and provide it as an applet. This is something amazing (and working). He stated also that this should allow to do some binding with java graphical user interface from OCaml. I was pretty busy with a phone call (to a restaurant for the dinner), so i don't have attend the whole conference. Anyway, the project is promising, but it needs to recompile every library using its compiler. I think this is not suited for Debian for now.


The workshop was shorter than it should have been. This is due to accumulated time shift during the day. However, it was pretty interesting, because everybody can talked almost freely.

The initial discussion was about the "Unicode situation". This was a question about Unicode in Unison, but there is no real solution about it. For reader information, unison has problem with filename containing UTF-8 char. In particular when syncing two directories which are on two file system with a different encoding on each. Even if the file can be represented on the two file systems, the comparison (between UTF-8 and ISO8859-15) fails. This is because the comparison is a byte to byte comparison.

We discuss further the idea of OSR (OCaml standard recommendation) which was briefly discussed in the morning. I think David Teller (who have also done a great part of the IRC retranscription) was very keen on this idea.

I invited Nicolas Pouillard to discuss the three following subjects.

About camlp4 documentation, Nicolas told people about the he set up. About ocamlfind and ocamlbuild, he went back to the multiple plugin problems. About ocamlbuild and GODI, Gerd, Nicolas and Xavier tried to build a list of what metadata can be shared. This includes list of files to be installed (PLIST in GODI).

Concerning the "feedback from the Gallium", Xavier explains that he has done this in the morning (which is true). I think that Xavier implicitly agreed on the fact that if this kind of event happens again, he can do another talk about future of OCaml.

Concerning Summer of Code, I just remind that people can write description of Google Summer of Code project in the cocan wiki. Another one remind about Jane St Capital summer of code.

Points concerning common interfaces raise the discussion about OSR.

The organization of next year events doesn't raise particular interest. I think people would be interested to have one next year, if something comes out of this meeting.

Wednesday, January 16 2008

OCamlMeeting in Paris

Since 3 weeks, half of my worktime (but i don't have worked that much, due to another real life occupation) has been dedicated to setting up a meeting for the OCaml community in Paris.

This is the first public meeting about OCaml in France. It will be located at ENST (Telecom Paris) on January, the 26th 2008. This should be an occasion for the european OCaml community to meet in the real life and to discuss the hottest current topics of OCaml.

I hope that this meeting will help people to begin creating a more consistent community around OCaml. In fact, the community already exists -- but it will be a time to meet several members that has never meet before...

More information and subscribtion

Tuesday, January 15 2008

Born on january the first.

After 2 weeks of my new life, i just found time again to write this entry.

I think that some people were enjoying the new year when my wife and I were also waiting for our baby.

He is born at 3:30 am on 2008/01/01.

Happy new year!

Wednesday, December 5 2007

Thinkpad X60s configuration (ipw3945, network-manager, hda-intel...)

I spend quite a long time to fully configure my new Thinkpad X60s laptop. This will be my work computer and i wish to use Debian Etch on it. Since it is for my job, i want to use a stable debian release. The aim of this laptop is to always have something that works -- to keep focus on my job.

The configuration was tricky because there is a lot of people reporting that everything works with this laptop, but not a lot of people describing problems they encounter. Here is a list:


   hda_intel: azx_get_response timeout, switching to polling mode…
   hda_intel: azx_get_response timeout, switching to single_cmd mode…

It prevents to have the sound working. The problem is related to the modem. You need to be sure that the modem is enabled in the BIOS.


The WIFI driver of etch doesn't work well. To fix this, you must get the version 1.2.2 of ipw3945-source and rebuild it with module-assistant. I also use firmware-ipw3945 from unstable (v0.7) but I am not sure this is a firmware issue.

network-manager disconnects every 10 seconds or so:

This bug was pretty annoying. The wifi connection was good with wpasupplicant alone (or at least seems to be OK). With network-manager-gnome i keep getting messages about connection and disconnection every 10 seconds.

The solution is to remove everything which is related to bluetooth. This really improves the situation a lot! (i.e. i am not having disconnection messages for at least the time i am writing this blog entry).

 apt-get remove --Purge bluez-utils bluetooth

in file /etc/modprobe.d/myblacklist:

 blacklist bluetooth

and run:

 update-initramfs -u


As stated in a comment, this is not really an issue related to bluetooth. Using a kernel "with preemption enabled" is enough. The issue in fact as almost nothing to do with bluetooth, because there is no bluetooth module in the laptop.

"linux is an HDD killer":

You need to copy /etc/acpi/start.d/ from unstable and place it in /etc/acpi/{suspend|resume|start}.d. This prevents an increase of the Load_Cycle_Count.

Now the laptop seems stable, the wifi connection is up and running -- let's start working (again).

Tuesday, December 4 2007

Solving the dmraid and "attempt to access beyond end of device" problem

Yesterday, i decided to activate the so-called RAID 0 support on my P4P800 mainboard, to increase the performance of my 2 Seagate SATA disk -- bought for this purpose. The first unfortunate event was to discover that there is 3 levels of hardware RAID: controller, accelerator and fake. Of course fake RAID is not the better category and it is the one provided by my mainboard. Once, i have understood that i must use the package dmraid to activate my RAID, i fall into a syslog flood of messages concerning "attempt to access beyond end of device".

The problem is simple, the partition table are stored on the first disk of the RAID. Linux believes that he can reach the end of the device defined in the partition table of the first disk. But since, the partition table is for the whole RAID, it cannot access the last partition.

In fact, the solution is quite simple and described here . You must add files to udev and hal rules to ignore the partition found in the partition table of the first disk:


KERNEL=="sda1", OPTIONS+="ignore_device"
KERNEL=="sda2", OPTIONS+="ignore_device"
KERNEL=="sda3", OPTIONS+="ignore_device"

(where sda1/2/3 are the partition stored on my RAID)


<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
    <match key="scsi.model" string="ST3160811AS">
      <merge key="info.ignore" type="bool">true</merge>

(where ST3160811AS is my two Seagate disks)

You should not ignore the whole disk in udev -- as i think it is suggested in the spanish web page (i don't speak spanish so i really don't know what it explains). After adding this two files, you must update your initrd:

update-initramfs -u

If you have problem with this configuration (you have ignored too much things), you can go back to the former initrd from grub command line, by editing the menu entry and editing the standard initrd to add ".bak" at the end.

At least, i got what i want:

~$ sudo hdparm -Tt /dev/mapper/isw_dhgabfaiad_RAID_Volume1

 Timing cached reads:   1354 MB in  2.00 seconds = 676.78 MB/sec
 Timing buffered disk reads:  426 MB in  3.01 seconds = 141.51 MB/sec

Not that bad for an old P4.

Sunday, October 21 2007

Reading a 10 years old CD-R

This week-end, i decided to copy a collection of CD-R back to my hard drive, to make new copies. Everyone knows, that a CD-R only live for 10 years. After this date, the data on it are more difficult to read. So it's the time to know what brand of CD-R has the greatest lifetime.

I begin to write CD-R sometimes around 1997. From this date, i keep using the same scheme to do this task: use high-end CD recorder (Plextor), good quality disc, always write at the minimum speed (ranging from 4x to 16x for the latest CD-R -- because sometime you cannot go under a defined speed), keep data on a separate partition to prevent buffer underun (10 years ago this was mandatory). The way i do this has almost not changed, expect maybe for the buffer underun, which doesn't happen anymore on modern hardware.

They have been in the same place at the same date. They have always been kept out of direct sunlight exposure, in 18-25°C environment (i.e. near my computer). I didn't often use them. None have "scratches" on theirs surface. I have written the name of the CD with a permanent marker (Stabilo).

For reading back the data I use a DVD-Recorder (Plextor PX-716UF) that can lower its speed if there are too many errors during the read.

The result is somehow what you should think:

  • Verbatim CD-R DataLifePlus metalAzo (blue surface): lost something like 5 files on 50 CD-R
  • Kodak DS (gold surface): 0 lost on 2 CD-R
  • Memorex CD-R (gold surface): 20 files lost on 2 CD-R

The Verbatim and Kodak can be read at full speed. I think the data on this two media are really well conservated. Even, if i have lost some data from the Verbatim medium, i think it is a really good rate for a 10 year old CD-R. The Kodak medium seems also good, but i don't have enough of them to be sure that i won't have the same error rate as Verbatim. Memorex CD-R is by far the worst media. I think all the data i have on these CD-R are lost. It takes me something like 1 hour to conclude that the first disc i try was totally destroyed.

At the time i have bought Verbatim medium, it was the best medium around. I gave a try to the Memorex medium to reduce the price per unit.

Conclusion: i have lost 15 CD-R with their content because 10 years ago i was thinking that i will save 2-3F (0,5€) by replacing Verbatim with Memorex...

- page 3 of 5 -