Older blog entries for DV (starting at number 184)

Software Patents

Anybody able to read french should read the on-line article from Le Monde where Michel Rocard (ex french Prime Minister, socialist) explains how much battle and pressure occured under the hood at the the European commision on software patents. To borrow a short translation found from a commentator on /.:

We never could have talked a common language with the companies representatives we met - in particular those from Microsoft. Speaking about free ideas circulation, free access to knowledge, was like speaking chinese to them. In their way of thinking, everything that is not usable for immediate profit cease to be a growth vector. They don't seem to be able to understand that an invention which is a pure spirit creation can't be pattented. It's simply terrifying. Many of us, at the Parliament, agree to say that they never have know such a pressure and such a verbal violence during their parliamentary work. It is a huge case.

Other translations from me that time:

The Parliament vote, the 24th of September 2003, adopted by 361 vote for, 157 against and 28 abstain of amendments [restricting the field of software patentability]. This caused the furor of the commission and led to a storm of mails coming from 15 large groups led by Microsoft.

We learned that to draft the first project, the Commission used the work of external experts because this was a new topic to them. But many of those external experts were coming from Microssoft and other software companies.

What IMHO make this big, is that it's such a failure and there is so much griefs that someone with a very high position like Rocard ends up exposing the case himself, publicly and to the main newspaper in France !


I didn't blogged for 2 months, but I did some code anyway, I just released version 0.0.24 of gamin which should fix the damn Desktop update problem people on Fedora Core 3 have been complaining about. I also worked on libxml2 for example working on XPath streaming subset but this is not finished, it's in part used by Kasiemir to finish the implementation of XML Schemas constraints.


Okay I also worked on sabayon, mostly by giving its name in a 2mn IRC challenge with Mark, implementing python bindings for gamin, and working on the RPM packages. You can visit us on #sabayon on gnome IRC if needed, but best is to use the RPM packages, it requires very recent versions of various packages. We also lack a mailing-list (asked) and a web site :-).

Internet Radio

I have been pointed to Radio Paradise Internet radio, and have been listening to it from xmms the whole day, truely excellent, I'm tempted to make a donation since they re listener supported (no ads !).


Seems I will be back on the board again next year. A bit disapointed by the low number of overall casted votes.

Mapping file in partitions

Old-timers like me probably remember the PCTools defragger interface where you could see the map of the blocks moving while data were compacted. I had the need to at least get an equivalent static picture for a set of files in Linux partitions. Shortest way was
1/ a small program extracting filesystem and data index informations and generating XML data, this need to run as root. It takes the list of files either on the CLI or using a --list filelist option
2/ a small XSLT stylesheet generating SVGs out of it (there is a line wrapping bug I know, not implemented yet).

First example was to map the set of file from /etc/readahead.files, here is the first map. Then by doing:

mkdir /temp
for f in `cat /etc/readahead.files` ; do \cp -f $f . ; done
rm -f temp/*
for f in `cat /etc/readahead.files` ; do \cp -f $f . ; done

The new set of files in /temp looks easier to fetch from disk. So at least from a basic experiment it seems one could do some interesting trick to speed up loading a bunch of files even without implementing hard kernel APIs. This still need a lot of work to really get an estimate of how best to do this and how efficient it would really be (plus the map does not include the directories and fs metadata)

BTW is there an SVG viewer with <title> support, i.e. showing a tooltip with the string associated with the element, that would allow to just point at the block and see what file it maps to, that would be extremely convenient and possibly fun too. Speaking of fun I ran it for the list generated by rpm -ql openoffice.org ... try it, it's scary ! The fact that I ran multiple upgrades of my system instead of fresh reinstalls is likely to have made thing worse.


Not much to say except :

paphio:~/XML -> ./testapi -q
xmlRegisterCharEncodingHandler: NULL handler !
Total: 1092 functions, 267029 tests, 0 errors
paphio:~/XML ->

I strongly suggest people upgrade if possible .

Gnome Board

So I'm running again after a one year break. Seems to me the next step is to grow the GNOME project awareness, build local representations in countries outside the US, try to federate them in a loose way, and ramp up the propaganda machine. I'm not sure I'm really the best person for this but apparently most candidates share the same goal, and I can still take minutes, and work on the web site.

Hardening libxml2

I have spent last week focusing on a single task: hardening libxml2 code by the mean of autogenerated regression tests. Though the principle is extremely simple: for every type in the public API then build generators and destructors for those types, then for every entry in the public API generate a set of calls for all the autogenerated values, then run the resulting program tracking illegal memory accesses and leaks. It has proved extremely efficient raising tons of issues in not frequently used libxml2 API. This kept me really busy for the last 10 days, extending the set of API and types covered, running gdb, valgrind, and testing on 64bits. I don't know if I should be happy by nearly finishing this very boring but needed task or ashamed by the number of issues found.

The current version of the tests covers approximately 1100 libxml2 entry points and generates more than 250,000 test calls to the API. Once I think I'm done with it I will release a 2.6.16 version.

Land of confusion

I positively dislike when people, by lack of grasping a concept just fall back to using the words without trying to understand them. When this is used to make propaganda then I get really annoyed. When this is used to attack something I believe in using the disparity between the word and its meaning then I really want to bite. Sun's CEO has been telling "Solaris is our implementation of Linux" for years, not just recently. It always made me angry. To me, Linux is a *process*, successful Open Source is a process. An Open Source Licence is a necessary condition to develop an Open Source process, but this is *not* what makes a software have the properties that are usually praised in Open Source development. The history is now full of example of code which got switched to an Open Source licence, and failed as an Open Source project. Adopting an Open Source Licence is a necessary first step, but not sufficient. Growing a community, distributing the decision process among that community, making that process fully transparent are keys to understanding what the words really mean behind "Open Source Success". I also strongly suggest people read Linus write up on Linux kernel management style, yes I consider this a MUST READ, it applies globally to any well managed Open Source project, and it's even fun to read !


There are still some nasty bugs embedded in gamin. First make sure you use a recent version, 0.0.14 fixed a big problem. I got a good bug report where gamin would deadlock client and server on reconnect, nasty but at least it's now understood. Also check the debugging page. I'm looking forward discussing with rml In Boston this week-end. I'm seeing more and more reports from people using the inotify back-end, this is good.

Boston Botanical Garden

I lived in Boston/Cambridge for 18 months, and while I'm quite fond of botanic and especially orchids I do not remember seing any botanical garden. Apparently there is a new project to build a big Botanical Garden between center downtown and the seaPort. Looks interesting but not yet ready.

Sleep troubles

I have had serious sleep trouble for the last week or so, I just can't get asleeep before 2-4am, I hope I will be able to sleep in the plane and that the timezone change will allow me to get my sleep back in shape.

I'm blocked by AOL

I discovered that mail from veillard.com is being blocked by AOL:

>    ----- Transcript of session follows -----
> ... while talking to mailin-04.mx.aol.com.:
> <<< 554- (RTR:RD)  http://postmaster.info.aol.com/errors/rtrrd.htm
> <<< 554- AOL does not accept e-mail transactions from dynamic or residential
> <<< 554- IP addresses.
> <<< 554  Connecting IP:
> ... while talking to mailin-03.mx.aol.com.:
> >>> QUIT

Sure I come from an ISP provided address range (free.fr) but the domain is legit, I even have a working reverse DNS. So they block the mail, which is bad, then to prove how careless they are, the URL they give as the explanation of their policy generates a 404 Not Found !

Blogging and corporate

I feel a bit uneasy about the two being mixed more and more, okay AOL being a Red Hat customer for example, should I not report my disagreement ? I think I should. But I also feel uneasy seeing Schartz Sun's blog, and how much it turned into a pure propaganda, basically a personalized way to generate media noise. In the advogato tradition, the way we blogged before the word was coined was for an individual to express some of his opinions to *share* them with a community, which quite often turns into a exchange of opinions if the topic is hot/interesting/hit someone else nerve. I like discussions, debates but I hate advertizing, and I'm afraid we may loose that media too (after News/Mail) as a way to make progresses collectively.


Is on its way to become a W3C Recommendation, assuming W3C membership don't vote against it, yay ! I also like the fact that the W3C XML Core working group mailing-list is now publicly archived. Let's say historically there have been a set of the people involved who wanted it public but that it really got institutionalized within W3C only recently.


So I will be around Boston from Oct 9 to the 13 for the Gnome Summit and also to pay a visit to the colleagues of the desktop group. I'm looking forward entering the bizarre new Strada building, maybe see some ex-W3C colleagues too :-).


The inotify interface seems to gain grounds (thanks rml !) in the kernel circles. To help people play with it while keeping a sane environment, gamin will now compile inotify support by default and use it if the server founds it at startup. So even if we don't ship inotify based kernels now, people can try them out easilly (people are more used to install a new kernel than rebuild a piece of the infrastructure, especially if the kernel comes prepackaged.)

Network shuffling

I think I'm done with rhgb revamp, and will not focuse on the network manager, to this effect I wanted to be able to test various network scenario. This resulted in a big shuffling I moved the wireless on the other side of the appartment, the veillard.com also migrated in a cabinet far away from my desk, I then realized how noisy my work environment was, and after moving the test boxes to another room, changing the CPU fan of my athlon 2600, this is all nice and quiet, I moved the desk too to have a view other Grenoble and the mountains from my desk ... way better, now I need to work on the software :-)

Graphical boot

Spent most of last week doing some cleaning and fixes on rhgb the Red Hat/Fedora graphical boot, it's kind of crazy but fun, starting an X server while you just have / mounted read-only, I think I learnt quite a bit in the process.


I also made a new release of gamin today, seems the inotify in-kernel replacement for dnotify starts to get some momentum, this is cool. At the moment gamin is really Linux specific, but if you want to make it work on Solaris (or something else) and know how to do this, I take patches, see #153105.

Grinding the Gnome

Okay maybe I should have done this before the 2.8 release but I didn't really had time. I just valgrinded a Gnome session, I had to stop once the gnome session got ready the VM exploded (I used the full --tool=memcheck a lighter tool would allow to do further checking). The result aren't too bad, it is a bit difficult to separate what might be false positive though, it would be great if valgrind could use the -debuginfo packages to provide better logs too.

The Seven Samurais

I got the DVD of Kurosawa masterpiece. In general I have zero interest for war movies like Hollywood tend to produce, but fifty years later even if in black and white Kurosawa's film is still an impressive piece, and the final message about the decline and fate of warlords in a world dominated by the lower casts is still worth thinking about. It used to be the sign of a society rising to better standard that the lower class were getting wealthy, if you don't see this trend, your society is on the decline.

Crazy week

A really busy week, culminating Wednesday with a release of gamin, the deadline for Fedora Core Test2 freeze, my birthday, getting my new laptop and cooking for 10 persons in the evening.


Killed the last know obvious gamin bugs and made the 0.0.9 release so that I don't get thousand of bug reports when people start installing FC3 test2 where gamin deprecates the original fam implementation. I also pushed a release of libxml2 and libxslt fixing a few bugs in the previous releases. Kasimier is busy cleaning up the Schemas stuff against the W3C (NIST/Sun/Microsoft) based testsuite. Apparently the whole set of tests are not totally clean but apparently there is an update from W3C coming "soon".


Sep 1st was really crazy. At some point I was cooking, building the gamin release and following the W3C XML Core teleconf at the same time. Luckily I didn't burnt any food and everything went well. Main dishes were a fish curry and ducks roasted with peaches, mangoes and a bit of honey. Lot of punch and wine disapeared too. I got a book, a DVD and an orchid... The orchid is very nice apparently a breeding of Brassia and Miltonia. I'm quite fond of orchids but so far I have resisted growing some because of the work needed, I cleaned up a small green house left by my mother and put the orchid and a few other plants in it, it's now sitting in my office, it's nice maybe I will start collecting orchids again.


I also finished installing the Dell P800 laptop, a bit heavy, doesn't feel very solid, but the 1920x1200 screen is amazing, looking at pictures on it is baffling. I got most everything working, except the wireless card as the centrino 2200 chipset is not yet really ready, so I'm just using my old wireless card which works out of the box. Also there is no manual brightness control, so how to you lower brightness to preserve batteries ? I could not find any key to do it, and the printed doc is ... useless. A nice box overall !

Rich and HTML validation

Try HTML Tidy the original, and if you have a linux or Solaris box around "xmllint --noout --html http://.....html", if it is XHTML then "xmllint --noout --valid ...." instead. Note that xmllint does not do SGML pure validation so the first case is not complete. You should generate XHTML1 anyway if you're concerned about validity really.


Released 0.0.7 yesterday, this fixes monitoring of files initially missing. It also enable both kernel (dnotify) and polling monitoring of resource. It serves 2 purpose at the moment, one is checking when monitored resources do not exist (dnotify forces to open[1]() the file) the second one is to minimize the monitoring costs on bysy resources, in that case monitoring is switched to polling untill the resource comes back to a quiet status. An example of this is that watching an active directory (say you're running make in a source tree you're watching) should not eat all the CPU anymore due to the constant flow of kernel dnotify events, FAM events, and nautilus redisplay.

[1] why on earth is advogato post replacing open followed by () with concat () in the articles, it did hit me once and I though I made the mistake myself but I just experienced that again, the engine replaced the string.

libxml2 and libxslt

I made new releases last week-end, libxml2-2.6.12 looks fine, fixes a lot of bugs and Kasimier really improved the W3X XML Schemas support. On the other hand libxslt-1.1.9 has a C file with a character \0 in it in a comment, gcc doesn't see a problem there, but Solaris compiler really dislike it, the patch is in CVS but I may roll a new release to get this fixed. Otherwise seems the integration in Safari is progressing nicely.


There is a lot of thing I realize I wanted to talk about but I just can't remember what it was. My attention span is getting short (old age effect ? ;) and opening the Advogato page to post is not convenient. As a result, the more busy I am the less I blog, while it should really be the way around. I also realize I miss blogging in French, there are things I don't feel can be appropriately carried in english. But I don't want to drop advogato either, as a result I don't blog much, maybe it's a good thing actually.


With the help of John McCutchan, the code base is being cleanup up seriously. There is still a big problem to work around involving polling when dnotify doesn't work (temporary storage, NFS or non-existing resources) and a mysterious bug.

libxml2 and libxslt

So Apple is now using libxml2 for XML parsing in Safari and working toward implementing XSLT client side with libxslt. Rather than trying to work out the transformation in a KHtml DOM they plan to use libxml2/libxslt, reserialize and reparse, it will be interesting to see the performances of such an approach, after all a from a user point of view this won't be slower than XSLT (or PHP or both) on the server (except when caching). A simpler DOM not intended to be a base for rendering is likely to prove more effective even if it means a reparsing. Well at least this will provide some feedback for libxslt on the browser. Maybe Mozilla will be able to drop Transformix after all ;-P !

While I'm focusing on gamin, William Brack has been working continuously on cleaning up the libxml2 bugs which accumulated lately. Kasimier Buchcik also provided lot of improvement to XML Schemas support lately. I shall do a new release within a few week to bring those to the masses.

64 bits

I finally ordered a 64 bit CPU, it just arrived with a motherboard, I have been toying with the idea of getting a 64bit boxes for testing for ages (for examples the old Multia Alpha), but never made the investment. Found a cheapo mobo for an Athlon64 3000+, which makes an affordable deal, I will finally be able to try Fedora Core x86_64 and run regression tests there easilly.

One of the thing I wanted to talk to AMD representative at OLS but never managed to do: get valgrind on the x86_64. If they want to make it the developper platform of choice then that's one of the key tools we want. It can be done in 2 ways:

  • valgrinding 64bits apps: i.e. the common usage.
  • valgrinding 32bits apps: use the extra set of registers, dedicate them to the 32bits CPU emulation, the main problem of valgrind is the execution cost, and such an approach could seriously improve the emulation speed.

This might be a bit more expensive than cloning 500 CDRoms to give away to developpers, but far more effective !

175 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!