14 May 2008

Ctrl-A

Select All: Ctrl A: Selects all content in the current document.

GNOME HIG v2

Whose bright idea was it to have Ctrl-A close the current note in the version of Tomboy shipping with Ubuntu 8.04? This was a really bad idea.

/dev/random

About DSA-1571 openssl , I totally aggree with Eric ... openssl is just like this XKCD strip. So whatever distro you run, cross your fingers while you generate your keys from so-called uninitialized memory so it's uninitialized enough. Why don't we just drop openssl ?

PS: http://wiki.debian.org/SSLkeys gives better explanation. The problem is that one of the cleanups is harmless, while the other one actually commented the code that seeds the PRNG with real entropy. Ouch.

Déclaration de La Haye

Cette Déclaration concerne directement l'avenir de notre société de l'information. http://www.digistan.org/hague-declaration:fr

J'espère que vous supporterez cette position (et que vous la ferez connaître ;-) ).

Merci d'avance.

Faille SSL / SSH : regénération des clés

http://lists.debian.org/debian-security-announce/2008/msg00152.html

Ca semble spécifique à Debian et dérivés (donc Ubuntu aussi) mais il y a également 2 failles dans OpenSSH ce qui veut dire que ce n'est probablement pas propre à Debian.

Pour les clés et certificats, il faut les regénérer après application du correctif ou installation des nouveaux paquets.

Au passage, je constate que cette annonce date de ce mardi 13 mai à 14h et le correctif est déjà disponible aussi bien en Debian que sur Ubuntu en fin de soirée.

Je sais, c'est normal... ça ne surprend plus que les Windowsiens et les nouveaux convertis à la secte du pingouin. :p

13 May 2008

12 May 2008

Reduce open calls on Ubuntu

You’ve installed a fresh Ubuntu and you’re not English. Just try:

$ strace gnome-terminal

and you’ll see this long list of calls only to open gtk20.mo (12 calls on Hardy Heron):

open("/usr/share/locale/fr_FR.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr_FR.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr_FR.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr_FR/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr/LC_MESSAGES/gtk20.mo", O_RDONLY) = 3

There are many solutions to workaround this performance problem, either you use my little script reduce-mo-open-calls.sh which detect your current locale and create only some symlinks, or you can try someting more adventurous (I don’t know the result after a upgrade of your langpack), move /usr/share/locale-langpack/fr/LC_MESSAGES/* to /usr/share/locale/fr/LC_MESSAGES/ and create the following symlinks after deleting of /usr/share/locale-langpack/fr:

ln -s /usr/share/locale/fr /usr/share/locale-langpack/fr

then from /usr/share/locale/, /usr/share/locale-langpack and /usr/lib/locale:

ln -sfvT fr fr_FR.UTF-8
ln -sfvT fr fr_FR.utf8
ln -sfvT fr fr.UTF-8
ln -sfvT fr fr.utf8
ln -sfvT fr fr_FR

If someone knows a better solution to configure the paths order, I’m interested! I’m intend to post a bug report if I don’t see any strange systems calls in the next weeks.

This hack removes 89 open calls at the launch of gnome-terminal (the result is better with bigger applications), it’s pretty nice, isn’t it?

11 May 2008

10 May 2008

End of vacation

I spent 5 great days in Saint Petersburg this week!

This was my first visa and I was worried about the needed paperwork (insurance, hosting certificate, ...), and then the registration after arriving. Getting the visa was not easy as you need to go to the embassy on Monday, Tuesday or Thursday between 9:00 and 12:00 and spend some time there (queuing 3 times...). Then you can chose to get the visa as soon as it is ready (the same day) for 70 euros, or wait 7 days before picking it up and only pay 35 euros...

At the airport I was welcomed with huge queues for passport checks (I think I spent about 30 minutes there) and then by Ирнина which was better :)

Apart from usual buildings and museums (I admit I haven't visited some major ones), I visited a great bar/club on the first evening, which I enjoyed even if I had not slept the night before (We went there again the next day and it was much better :) ).

I can now pronounce most letters (not all) and often understand the word when it sounds like French or English (or other, like CYШИ for sushi) but reading letter by letter is so slow... And I can't manage to read anything hand written :(

I hope I'll have the opportunity to go there again!

Photos are already online!




09 May 2008

Crack, and uncrocked

I was amazed by FunPidgin. Whilst some of the features aren't actually crack, making things like these options is:
An option to use stock GTK+ close buttons on tabs.
An option?!

Anyway, Totem's playlist parser is now ported to GIO. I'll make a release soon, but I'd like to ask people to please test the hell out of it. If opening or saving a particular playlist produces warnings, errors, or crashes, please file a bug.

You can test easily by recompiling and using as normal: Rhythmbox (Podcast and playlist parsing, playlist saving), and Totem and its web browser plugin.

08 May 2008

PIG - Prelude IDMEF Grapher

The Prelude IDMEF Grapher written to illustrate one aspect of Intrusion Detection Systems for the conference on the subject at CanSecWest this year is getting some attention.



Upon Raffy's request, I added to the excellent Secviz.org the generated graphs from three well-known scanners: Retina, Saint and Nessus.

I attacked my Prelude IDS machine which has two agents: Snort and Prelude LML. Those agents generate IDMEF alerts and PIG connects to the Prelude Manager to listen to any IDMEF event received.

With the power of Python+QT, in one hour I got the code up and running.

If you want to read what Ron Gula from Tenable say about it, you can read his blog post about PIG.

Right now pig's code must be ported to the recent additions from Yoann on top of what Pierre and I wrote to get Prelude easy bindings working. The merge will happen very soon with trunk and then PIG will be improved.


05 May 2008

Build a deb package with debug info

I often find the need to rebuild a package with debug symbols (if no -dbg is available).

sudo apt-get build-dep <package>
apt-get source <package>
cd <package>
# eventually patch sources
DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -rfakeroot -uc -us
cd ..
dpkg -i <package>.deb

Et voilà :) Now i can gdb it or run sysprof. (It's also a very fast way to start hacking on a program)

04 May 2008

Recent Happenings

Claude was kind enough to add JHBuild Manual to damned lies, in the infrastructure section; translations teams that were sitting on their 100% waiting for something to happen can rejoice, that's 561 new messages for you to translate. Keep up the excellent work.

Totally unrelated I played a little bit with Clutter to add nice explanations (fading in, moving out, with alpha channel) to some screencasts, as a proof of concept for some I would want to do at work (ultra-basic example, Epiphany on Acid3).

Clutter is really great there; but the whole screencast process is tedious at the moment, lacking solid tools. I had to resort to xvidcap for capture (Istanbul and Byzanz were failing, and I forgot about gtk-recordMyDesktop) and I had to write a Clutter program embedding a video texture, moving some rectangles and texts on it and recapturing it all again with xvidcap; tedious, as I wrote.

I thought a little bit about the correct architecture and I believe the ideal would be a gstclutteroverlay, just like there is gsttextoverlay; anybody working on this ?

03 May 2008

demosaic and pixbuf

I just committed some code in libopenraw that allow displaying digital camera RAW files in eog (or anything else using GdkPixbuf). The colors and the gamut are still off, that's because I only perform the demosaic.

Just to be clear, I haven't changed a single line of code in eog. It is the stock version from openSUSE 10.3.

01 May 2008

A new place to hang my hat

Yesterday was my last day as an OpenedHand employee. Working at OpenedHand has been a breeze, really. The crew there is an impressive pool of clever geeks. A high density of skills, enthousiasm and willingness to do the right thing. Clearly, there is no doubt that amazing things are going to be popping up from the OpenedHand towers. Ciao fellows, and thank you for the warm and fruitful atmosphere.

Now I have to write the coming pages of my personal history. I have been given the chance and honour to settle at Red Hat, in the tools group. I am really looking forward to working with the bright folks there, and keep on modestly helping to shape the future of Free Software as much as I can.

Alpha blondy, un grand monsieur

Aujourd'hui, je me suis remis à écouter l'album "Jah Victory" de Alpha Blondy.

Clairement, j'avais oublié à quel point ce monsieur était fort. Cet homme à le sens du texte et du rythme . J'apprécie particulièrement la sobriété de ses rythmes. Au lieu de simplement se faire plaisir "techniquement", ses rythmes et ses mélodies restent simples, portant ainsi ses textes au plus haut de leur sens. Bien sûr, souvent, il faut comprendre le Dioula pour saisir toute l'essence de ses textes. Sur ce point la, j'ai la chance d'être un peu dans sa cible :-)

A mon sens, Alpha est dans la tradition des griots ouest africains qui racontaient des histoires et véhiculaient leurs réflexions sur leurs sociétés. Véritables colonnes vertébrales de ces sociétés à fortes traditions orales ou le verbe conté était roi. Les mélodies Reggae de ses morceaux, souvent associées à des rythmes africains, aident par ailleurs à ne pas les cantonner à des cercles élitistes. Il reste très populaire.

Alpha Blondy est un grand monsieur de l'Afrique.

Pour ceux qui sont intéressés, des morceaux qui roxent et qu'on peut écouter dans des soirées sont: Ranita, I wish you were here, Bahia, Le bal des pompiers, Les Salauds, Cameroun, Tampiri ...

30 April 2008

Interview published

Free Software Magazine published a long interview of the main Ekiga developers and contributors.

It gives a deeper insight of what Ekiga is, what it will become, how we are working together. I think it is always good to remember that Ekiga is a pure collaborative project, on which people program during their spare time only, without any funding unlike much free software nowadays.

Enjoy the reading and big thanks to Tony Mobily for the time spent with us for this interview!

Sonnerie

À côté de combien de belles et grandes histoires passe-t-on parce que « oh la, 9h20, qui sonne à la porte, tant pis, je reste sous la douche » ? Combien de Machine le doigt sur la sonnette, « hep, il fait beau, tu veux pas venir t'ébattre entre pelouse et soleil, dans un de nos beaux parcs ? »; combien de Marotte hors d'haleine, « coucou je viens d'arriver à Bruxelles, tape des affaires dans un sac, on part enfin »; combien ?

Souche

18 août 2005, parc du Cinquantenaire

Mais là c'était encore le voisin qui avait oublié ses clés, et de toute façon il pleut.

29 April 2008

Tip of the day: tar is now smart

As toady pointed out on IRC, you no longer need to tell tar that it needs to uncompress an archive with gzip or bzip2. So, instead of calling tar xzf on tar.gz archives and tar xjf on tar.bz2 ones, you can now call tar xf on both.

Update: To answer Beranger, this was introduced by tar 1.15 on 2004-12-29, and should be available in all recent distributions (According to Distrowatch: Mandriva since 10.2, Debian since Etch, Ubuntu since 5.10, Fedora since FC4).

exempi 2.0.1

Just released a bug fix version of exempi. Version 2.0.1 address issues with error handling and some building issues on non-Linux systems.

This is likely to be the last 2.0.x release. 2.1.0 is on its way.

27 April 2008

[RELEASE] Wolfotrack 1.0

To put an end to a teaser.

Along with Laurent and Victor, we've written a Netfilter connection tracking manipulation tool based on the fabulous Wolfenstein 3d game.

You need only two dependencies: SDL library and libnetfilter_conntrack.

Description from the release notes:

Tears were flowing from our bellowed
Administrators out there.

Connection tracking is not always easy,
hence Wolfotrack, the conntrack killer that
aims to reduce the firewall use difficulty
that many people complained about for years.
This software makes this time gone! We are now
enhancing netfilter at the user level.

The idea is simple: with statefull firewall such as Netfilter, the Linux kernel firewall, connection states are kept in memory and allow you to use this simple rule to only allow answers to a previously initiated connection:
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Because of the great work put by Netfilter core team into nfnetlink, and especially with the nfnetlink_conntrack socket, it is made trivial to grab the information Netfilter has with any connection state.

For example this code registers the callback function that is then used to set the players connection:
void ct_list_create(void)
{
        int ret;
        u_int8_t family = AF_INET;

        h = nfct_open(CONNTRACK, 0);
        if (!h) {
                perror("nfct_open error: Oh my god! this is terrible! you cannot kill conntracks out from Netfilter!!");
                return;
        }
        nfct_callback_register(h, NFCT_T_ALL, ct_cb, NULL);
        ret = nfct_query(h, NFCT_Q_DUMP, &family);
        if ( ret == -1 ) {
                exit(EXIT_FAILURE);
        }
}


The, the callback prototype is:
int ct_cb(enum nf_conntrack_msg_type type,
                struct nf_conntrack *ct,
                void *data)

And to set the source/destination ip and port out from the nf_conntrack structure:
        if (nfct_get_attr_u8(ct, ATTR_ORIG_L3PROTO) == AF_INET) {
                ip_src = nfct_get_attr_u32(ct, ATTR_ORIG_IPV4_SRC);
                saddr = strdup(inet_ntoa(ip_src));
                ip_dst = nfct_get_attr_u32(ct, ATTR_ORIG_IPV4_DST);
                daddr = strdup(inet_ntoa(ip_dst));
                port_src = nfct_get_attr_u16(ct, ATTR_ORIG_PORT_SRC);
                sport = strdup(port_ntoa(port_src));
                port_dst = nfct_get_attr_u16(ct, ATTR_ORIG_PORT_DST);
                dport = strdup(port_ntoa(port_dst));
        }


Finally, when you kill the actor, we run the following function:
void ct_remove_from_id(int id)
{
        if (ct_list_get(id))
                nfct_query(h, NFCT_Q_DESTROY, ct_list_get(id)->ct);
}


And that's all for the netfilter code (modulo a few tricks to set a connection tracking to a non-dead actor, ..). And here begins the Carmack magic...

I have a high respect for this guy, he started great games that I enjoyed playing in my childhood and I am still amazed by this:
i  = 0x5f3759df - ( i >> 1 );

Yes, this is the famous magic constant to calculate the square root of a number with NO loop of any sort.

Putting the hands in the code, there was no PrintXY, so we wrote the function:
void US_PrintXY(char *str, word X, word Y)
{
    char c, *se, *s, *sz = strdup(str);
    word w, h;
    s = sz;
   
    while (*s)
    {
        se = s;
        while ((c = *se) && (c != '\n'))
            se++;
        *se = '\0';

        USL_MeasureString(s,&w,&h);
        px = X;
        py = Y;
        USL_DrawString(s);

        s = se;
        if (c)
        {
            *se = c;
            s++;

            X = WindowX;
            Y += h;
        }
        else
            X += w;
    }
   
    px = X;
    py = Y;
   
    free(sz);
}


and in wl_draw.c, to draw the text about connection trackings, we need to have the actor in our visual spot:
        if (*visspot
        || (*(visspot-1) && !*(tilespot-1))
        || (*(visspot+1) && !*(tilespot+1))
        || (*(visspot-65) && !*(tilespot-65))
        || (*(visspot-64) && !*(tilespot-64))
        || (*(visspot-63) && !*(tilespot-63))
        || (*(visspot+65) && !*(tilespot+65))
        || (*(visspot+64) && !*(tilespot+64))
        || (*(visspot+63) && !*(tilespot+63)))


and there while browsing the linked list of every object, we need to know if this actor is not dead, so we added this function:
int ActorDead(objtype *obj)
{
        int retval = 0;

        switch(obj->state) {
                case s_grddie4:
                        retval = 1;
                        break;
                default:
                        retval = 0;
        }
        return retval;
}


and then, in the code we use it:
if ( ( obj->obclass == guardobj ) && ( ! ActorDead(obj)) ) {

ok, shame on me, we put the connection tracking only to guards. But if you want to improve the code, this is what you must patch.

And then, if we get an appropriate connection tracking object, we run:
source = malloc(strlen(entry->saddr) +
                strlen(":") +
                strlen(entry->sport) + 1);
target = malloc(strlen(entry->daddr) +
                strlen(":") +
                strlen(entry->dport) + 1);
sprintf(source, "%s:%s", ct_list_get(obj->id)->saddr, ct_list_get(obj->id)->sport );
sprintf(target, "%s:%s", ct_list_get(obj->id)->daddr, ct_list_get(obj->id)->dport );

SETFONTCOLOR(68, BKGDCOLOR);
US_PrintXY(source, 30, 20);
US_PrintXY(target, 30, 30);
SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR);

free(source);
free(target);


Then, we go into the function KillActor (objtype *ob) and if the object is a guard, we run the killing function:
ct_remove_from_id(ob->id);

And this is it! So in summary:
  • That was fun to do
  • The Wolf3d source code is crystal clear: I have never looked for hours where this or that function was. I am really amazed by the work done by the ID software team back in the early '90. Everything is very logical and I am not involved in video games in any way, so there is a lot of things I don't know
  • We need people to improve now. Please go to the Wolfotrack project page and download, send patches etc..

And congrats to Laurent and Victor, that was fun working in team on this kind of project ;-)





Live from GUADEMY (bis)

So, Richard is giving his talk about PackageKit. But you, know even his talk has major bugs. Clearly bad. I guess he will argue that it's not his fault, and that's because we went to a typical spanish restaurant on Friday evening. I'm not sure I can talk about this unique experience, though, to be honest. Will doesn't want to share too much details either, but I'm sure Richard will be glad to write about the whole story.

On the constructive side, yesterday, I've been hacking a bit on desktop-file-utils and ironing out the plan to take over the world, err, I mean, the plan to fix many issues with the fd.o specs. Hopefully, everything will go smooth.

25 April 2008

Live from GUADEMY

It feels like summer here. Oh, you might not know where "here" is: Valencia. I got invited to talk at GUADEMY, and so far it's pretty good. Good to see some friendly faces (can't find all the links to all blogs), and to be lost in translation again (although I can get a few words here and there if I listen carefully). Thanks to the organizers for having thought to me (and of course, to Novell for having let me come ;-)).

I finished my freedesktop.org specifications: are they boring? talk nearly a hour ago. I should probably put the slides somewhere, but basically it was about explaining the current status of the specifications and describing the huge list of things that we're doing wrong there. But there's no need to be negative about the future: there are some basic steps that we can follow to help improve the situation. Like better hosting, better update process, better consistency, more visibility. I'll probably talk a bit more about this in the future. The feedback was good, so at least, it seems I'm not thinking totally wrong ;-) Also, the talk was live-translated, which was pretty amazing, although I can't be sure I wasn't insulted in some way in the translations (nah, kidding, everybody is warmly welcoming here).

Oh, and I wish we had university campus in France as nice as the one in Valencia. It surely feels good. Or maybe it's just that it feels like summer :-)

22 April 2008

Enterprise Social Search slideshow

Enterprise Social Search is a way to search, manage, and share information within a company. Who can help you find relevant information and nothing but relevant information? Your colleagues, of course

Today we are launching at Whatever (the company I work for) a marketing campaign for our upcoming product: Knowledge Plaza. Exciting times ahead!

21 April 2008

Mandriva positioning on the Linux market

Here's an insightful vision of the current Linux distro's market, from Dave Neary, former member of the GNOME foundation board.

I don’t want to pick on Mandriva, but it’s true that right now they’re aiming for the general consumer, the enterprise desktop and the enterprise server, and are not competing particularly well with the front-runners in any of those markets.

And I agree with him. Even if there was some good progress on the general consumer market, the short/mid/long-term strategy is still unclear...

PS: I also noticed that the free (as in beer) mention about Mandriva One disapeared from the french download page... I'm pretty sure it was there before...

15 April 2008

Il s’appelle Pierre

Dimanche 13 avril est né mon deuxième fils, Pierre, quelle merveilleuse surprise !

Tant de bonheur à partager…

14 April 2008

Voice and video calls with Empathy

Thanks to the hard work of the Empathy, Telepathy and Farsight teams, VoIP is finally usable with Empathy. So you can now very easily do audio/video calls using Jingle and SIP. There is still a lot of UI polishing to do but it should basically work, so feel free to test and report problems.

You'll need Empathy 0.22.1, recent versions of Farsight, telepathy-stream-engine, gstreamer, gstreamer-plugins-farsight, and a gstreamer0.10-ffmpeg with H263 encoder if you want video support.

If you're using Debian Sid you should have the right versions of the Telepathy stack but need the Debian multimedia repo for video support (which is optinnal).

On Ubuntu Hardy you have to use Telepathy PPA and Medibuntu repos if you want video support. So just add to your sources.list:

deb http://ppa.launchpad.net/telepathy/ubuntu hardy main restricted universe multiverse
deb http://fr.packages.medibuntu.org/ hardy free non-free

Happy calling!

13 April 2008

La grande culture

Un conflit d'intérêts

L'hypothèse de base de cette analyse est que tout acteur social est influencé de façon consciente ou, et c'est très souvent le cas, inconsciente, par la défense de ses propres intérêts, qui peuvent se traduire comme la défense de son pouvoir relativement aux autres acteurs.

Le créateur, travailleur spécialisé

Un créateur est avant tout un individu qui s'est spécialisé dans la création, de la même façon que d'autres travailleurs se spécialisent dans la médecine ou la plomberie. La fonction de créateur est donc une création comme une autre du principe de la division du travail, qui veut que la spécialisation augmente la productivité.

Division du travail et effets de monopole

Selon un principe économique d'efficacité très simple, les individus spécialisés dans la création étant, du fait de cette spécialisation, bien plus productifs que les autres, le reste de la population tend donc à abandonner la création pour devenir consommateur des spécialistes, ce qui a pour effet de laisser à ces créateurs le monopole de la création.

Ayant accès dans une certaine mesure, du fait de leur fonction, à l'instruction et à la communication, et présentant une relative communauté d'intérêts objectifs, ces créateurs développent une conscience de classe, souvent d'ailleurs partiellement inconsciente, qui les pousse à aligner leurs positions dans le but de la défense de leurs intérêts.

Tout d'abord, du fait de leur monopole, ils sont indispensables, et peuvent user de ce fait pour augmenter leur pouvoir, comme pouvoir de marché.

Ensuite, du fait de leur monopole et dans le but de le consolider, ils sont amenés à définir eux-mêmes ce qui est ou n'est pas création culturelle : ainsi, ils empêchent l'arrivée de franc-tireurs, concurrents aux intérêts divergeants, organisent la pénurie en contrôlant leur propre nombre, et moralisent ou mystifient leur pouvoir en ne divulguant pas leurs critères de distinction aux individus extérieurs.

Culture et domination

Dans une société capitaliste, le seul pouvoir matériel direct est le capital, qui est donc la seule ressource matériellement indispensable, dont la bourgeoisie détient le monopole. De la même façon que les travailleurs, détenant le monopole du travail, doivent sous la forme du salariat passer des accords avec la bourgeoisie pour obtenir du capital, les créateurs doivent passer un contrat avec la bourgeoisie. Si le travail est nécessaire à la bourgeoisie pour augmenter sa masse de capital, la culture lui est nécessaire pour masquer la nature de sa domination et donc la renforcer.

La différence de pouvoir entre la bourgeoisie et les travailleurs vient du fait que la possession de capital facilite infiniement plus le développement d'une conscience de classe que la possession de force de travail dans le monde capitaliste. Cependant, la bourgeoisie et les créateurs sont autant à même de développer cette conscience, leur contrat se fait donc sur des bases égalitaires et non de domination. Ainsi, les créateurs servent la bourgeoisie et sa domination, et la bourgeoisie sert les créateurs en reconnaissant leur pouvoir symbolique et en leur fournissant du capital.

Culture légitime

La culture légitime est donc celle qui est validée par les créateurs. Par la division du travail, elle est reconnue par le peuple, contraint de leur fait confiance. Par effet de monopole des critères culturels, il est impossible pour des individus extérieurs de la maîtriser : pour qu'il le fasse, un individu doit se spécialiser dans cette culture, ce qui a également pour effet d'aligner ses intérêts objectifs sur ceux des créateurs, de la même façon qu'un travailleur voulant acquérir du capital en masse devient objectivement un capitaliste.

Est alors automatiquement défini comme sous culture toute production culturelle qui n'est pas validée par les créateurs ; typiquement, toute culture produite par des individus ne partageant pas les intérêts objectifs des créateurs, comme des travailleurs effectuant des créations dans le cadre d'un travail salarié ou durant leur temps libre, et mettant donc en péril leur monopole.

11 April 2008

People?!

I find the recent posts about that project pretty interesting ; and since I’m the one who rewrote most of ekiga’s contact management code, you can tell having a look at the api is of great interest to me : can ekiga easily integrate and use that?

Unfortunately, it seems there’s no good doc yet, which isn’t that surprising for such a young project. Luckily, I’m not that bad at code-diving, and this is where things get interesting : vala!!! Don’t take me wrong, vala is a nice and interesting idea (didn’t I already blog about it?), but for a framework which is supposed to get wide use, I’m not sure that’s such a good idea : doesn’t a vala interface mean a GObject-based interface? If so, won’t that alienate kde, gnustep and enlightenment people (yes, they are people, and they do interesting things)?

Aside from the previous points, there are a number of questions which spring to mind when reading the vala api : an addressbook seems to be something which can be opened and closed, and to which one can ask a contact from an identifier. How do I find the correct identifiers? Ah, there’s a view interface, and the comment there tell I get it from performing a request on an addressbook — but there’s nothing about it in the addressbook api! There a nice iterator api on a view, which does the strict minimum : next and get… It’s pretty young, indeed.

I hope it will age well!

PS: sigh… that meme looks less stupid than the others :

jpuydt@noether:~$ history|awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -rn|head
49 make
48 git-checkout
41 git-rebase
38 cd
36 git-gui
28 ./src/ekiga
25 git-svn
21 git-status
20 su
20 grep

(can you guess I keep several branches in my ekiga.git/ directory?)

10 April 2008

10 Apr 2008

Releases

I pushed a bunch of releases on Tuesday, trying to catch the Fedora-9 train (I nearly missed it, it led to a not so fun curl_is_failing_to_upload debug session which led to nss3 for firefox3 is not compatible with nss3 for fedora8 curl), thanks to everybody who helped catch that train !

The releases are mostly bugfixes, libvirt-0.4.2 leading the pack, but libxml2-2.6.23 has a lot of fixes too thanks to various people reporting bug and giving patches, notably the Huawei team. Libxslt-1.1.23 includes the dozen or so fixes since last summer.

Developments

Clearly libxml2 and libxslt are in maintance mode, the focus is on libvirt, maybe I will just add support for the latest Proposed Recommendation of XML-1.0 in libxml2 before the Summer.

For libvirt, clearly we need to extend the number of hypervisor supported, maybe update and clean up the OpenVZ support too. IBM is actively contributing the Linux Container driver, I just commited a second set of patches today, you can expect good support in Fedora 10 I guess. On the high end side Sun just posted the patches for the lDOM virtualization on their Niagara based machines, lot of patch reviews those days. I also want to get a complete set of bindings for Java integrated, and now that Fedora java packaging guidelines are out, this is a good opportunity to add this.

History meme

that one is interesting, here is my contribution, as you can see I'm an old fashionned old fart, main workstation at home:

paphio:~ -> history | awk '{a[$2]++ } END{for(i in
a){print a[i] " " i}}'|sort -rn|head
319 vi
257 ssh
255 cd
156 cvs
130 make
125 ls
79 svn
60 scp
48 su
43 ping
paphio:~ ->

and on my second workstation in Annemasse:

wei:~ -> history | awk '{a[$2]++ } END{for(i in
a){print a[i] " " i}}'|sort -rn|head
362 vi
263 cd
262 make
136 cvs
115 svn
105 ssh
78 ls
67 scp
40 xmllint
38 grep
wei:~ ->

09 April 2008

Next step to rule the world : done

Yup, Mandriva Linux 2008.1 Spring has been released today. What is amazing is that it's been released on time, which hasn't been the case for years !

I've started testing it quite late in this development cycle (RC2), but I still was able to find a few annoying bugs, which were corrected on time, thanks to Mandriva's hard working team. While I was a bit disapointed with 2008.0 (and 2007.0), what I saw pleased me, ans I really think this release is Mandriva Linux at its best (200X.1 releases seem to be better at Mandriva).

Everything you should know about it is here:

And the most important : the link to download Mandriva Linux with your prefered bittorrent client (Transmission in my case).
Many thanks to everyone who worked on this release. Now Enjoy !

MacBook Pro fixed

Six months after the 1.4 EFI firmware release which destroyed my Macbook Pro display, Apple finally released a firmware that fixes it.

GNU/Linux users can finally enjoy using that machine again.

06 April 2008

Le monde de Haruhi

(Où le lecteur apprendra avec stupéfaction qu'il est possible de réfléchir sérieusement sur le monde à partir de l'animation japonaise.)

Suzumiya Haruhi est une jeune lycéenne, belle, intelligente et sportive. Son problème : elle s'ennuie. Aucune des activités proposées à ses camarades ne lui convient, et, à longueur de journée, elle ne rêve que d'extraordinaire : rencontrer des aliens, des voyageurs dans le temps ou des individus dotés de perceptions extra-sensorielles. Elle décide donc de créer un club dont le but est de rechercher parmis les évènements de la vie quotidienne des éléments permettant de remonter à ces éléments extraordinaires.

Cependant, au cours du récit, le spectateur apprend que ce monde dans lequel Haruhi vit n'est en fait que le produit de son imagination, créé pour combler son ennui ; mais qu'il est impossible de le lui révéler directement sans provoquer la destruction de ce monde, ce qui aurait de graves conséquences sur son esprit.

La jeune fille se retrouve donc dans une quête désespérée d'aliens, de voyageurs dans le temps et d'extra-lucides dans un monde dans lequel sa propre imagination les a placés, mais dont le rôle est précisément de se cacher à tout prix, car leur découverte effective provoquerait la découverte de la vérité et donc l'effondrement de ce monde.

La série s'achève par l'apaisement de Haruhi par le seul vrai élément extra-ordinaire qu'il lui est possible de découvrir : l'amour.

La particularité de cet anime est d'illustrer les propos de Hiroki Azuma dans "Génération Otaku". Il y explique qu'après l'abandon des grands récits transcendants, qui permettaient autrefois d'expliquer la multitude de petits récits constituant la vie, les individus se sont mis à tenter de retrouver ces grands récits à travers les petits, quitte à en créer de toutes pièces des fictifs. Cependant, comme ils sont factices, les individus en question ne peuvent les trouver ; pire, s'ils les trouvent, c'est que la frontière entre réel est irréel est tombée dans leur esprit, et donc qu'ils sont devenus fous. Ils sont donc condamnés à les croire, sans poursuivre cette croyance jusqu'au bout.

Ainsi, ne trouvant aucun sens à sa vie, Haruhi crée un monde imaginaire dans lequel des causes extra-ordinaires se cachent derrière des évènements banals ; cependant, pour éviter son effondrement psychique, elle ne peut les y trouver, ce qui provoque également son désespoir, et donc aussi un effondrement potentiel.

Le point de comparaison évoqué par Azuma est l'étude menée par Slavoj Zizek des soutiens soviétiques au régime stalinien. Ces cadres étaient en quelque sorte condamnés à croire au grand récit que constituait l'idéologie du système ; s'ils en doutaient, non seulement l'ensemble de leurs certitudes et convictions s'effondraient, mais en plus ils risquaient leur vie, ainsi qu'une éventuelle guerre civile en cas d'écroulement de l'autorité de l'État.

Cependant, à la fois la réalité, ne correspondant pas aux prédictions énoncées, ainsi que l'idéologie marxiste elle-même, les empêchaient d'y croire totalement. En effet, le parxisme prône notamment le refus de la domination d'une classe sur une autre, ce que les dirigeants du Parti pratiquaient en URSS tout en se disant marxistes. L'idéologie elle-même aurait donc dû pousser le peuple à se révolter, ce que les cadres staliniens ne souhaitaient pas.

Pris dans cette situation où ils doivent croire sans croire totalement, les individus sont poussés au cynisme, c'est-à-dire à un mode de vie dans lequel ils évoluent, voir tirent parti, sans se poser de questions, pour éviter de remettre en question l'ordre social. Pour Azuma, de façon métaphorique, et avec des intensités et enjeux différents, ce dilemme est également celui des otakus "vivant" dans leur monde artificiel, le monde réel n'offrant plus aucun sens à leur vie. Haruhi offre donc une allégorie de ce type de problématique.

Enfin, si la conclusion de cette histoire, c'est-à-dire l'oubli par Haruhi de son ennui grâce à la rencontre de l'amour, peut passer pour un happy end hollywoodien tranchant le problème de manière définitive mais banale, il soulève tout de même une question.

Dans l'imaginaire classique, la découverte d'une transcendance, comme l'amour, est un moyen de mettre fin au monde imaginaire, qui permettait jusque là d'échapper au réel, en redonnant du sens à la réalité. Air TV, autre série d'animation réalisée par le studio Kyoto Animation, illustre dans l'une de ses sous-histoires, consacrée à la jeune Minagi, ce principe.

Pour échapper à la réalité, dans laquelle la plus jeune fille de la famille, Michiru, est décédée, Minagi et sa mère vivent dans un monde imaginaire dans lequel Minagi est en fait Michiru, et où Minagi est partie rejoindre son père dans une ville lointaine. Cependant, réalisant le caractère malsain et triste de la situation, Yukito, le héros de l'histoire, fait redécouvrir à Minagi et sa mère l'amour qu'elles éprouvent l'une pour l'autre, ce qui a pour effet de mettre un terme à l'illusion.

Mais, concernant Haruhi, le but de la découverte de l'amour n'est absolument pas de sortir de ce monde que son esprit a créé ; au contraire, son rôle est de lui faire oublier à la fois sa recherche d'éléments qui lui prouveraient son caractère factice ainsi que son insatisfaction, qui auraient pu mener à sa destruction. L'amour renforce donc le monde imaginaire au lieu de le détruire.

Ainsi, dans Air TV, un choc, une révolution, peut bouleverser le monde en brisant le mirage pour l'amener à une situation meilleure ; mais dans Haruhi, en dehors du rêve, il n'y a que l'obscurité, et on doit donc à tout prix s'y accrocher : la révolution est impensable.

Voilà qui nous emmènera sur une réflexion future sur le cynisme moderne et le "There Is No Alternative" thatchérien comparé aux les résistances anti-capitalistes et anti-staliniennes de la guerre froide. Otanoshimini !

Rugby

En Challenge européen, Montpellier et Brive : out. Dommage.

En Coupe d’Europe, Perpignan out, mais bravo Toulouse.  Le Stade Toulousain ira donc en demi-finale contre les London Irish.

01 April 2008

People … again


 

A few days ago Johann wrote a nice blog post about the People Framework, explaining what People is and what is the scope of the project. Unfortunately he didn’t include any kind of graphic, so here is one:

People basic architecture

This diagram is based on icons from the Tango project and is licensed under CC Attribution Share Alike 3.0.

31 March 2008

Geotag photography with n810

In preparation to my trip to Nepal, I'd like to share with you experiments I've conducted in the previous weeks regarding GPS in n810 (thanks Nokia for selecting me in Maemo developer program, BTW) and geotagging photos.

First, some comments about GPS in n810 :
  • it is a good way to learn some things about GPS technology (thanks to Wikipedia) when you want to understand why it is taking so long to get a position fix. And then, you start to speak about sky search (take about 12 minutes to download satellites constellation rough positions for your position, called almanac, valid for several weeks), cold fix (take about 6 minutes to download satellite precise position, called ephemeris, only valid 4 hours) and warm fix (take about 30s, when ephemeris is still valid in the device).
  • Of course, there is no way to easy way to guess what kind of search n810 is doing when starting GPS. For the first time you use it in a geographical area, you can expect to wait for about 20 minutes. If you didn't get a GPS fix in the last 4 hours, you can expect a fix between 5 to 10 minutes. If you got a fix in the last 4 hours, you can get a fix in 30s to 1 minute (it is not impossible, I've been able to get such fast hotfix in a moving bus in Paris ;)
  • You should really install Maemo-Mapper. Preinstalled software (called Maps) is a stripped version of Navicore. Unfortunately, it is barely usable, since its main goal is to see license for full version. Its main feature is using vectoral maps (so you get France maps for about 300MB) and being able to do address search offline. It is quite funny to discover it uses ogg vorbis audio files, despite no "official" support for Ogg Vorbis in IT2008 from Nokia. OTOH, Maemo Mapper, after preloading maps from either OpenStreetmap, Google, Yahoo or Virtual Earth, is way more powerful : you can easily record tracks, way points, import POI (with help of gpsbabel, you get virtually import any GPS data into Maemo Mapper).
My first experiment was done in Brussels during FOSDEM in February. I spent an entire day walking and photographing in Brussels, with GPS tracking enabled (with Maemo-Mapper) on my n810. It worked fine with a full charge (about 7h of tracking) but the initial fix was quite slow to get (it was my first real experience with GPS, I learned a lot about it after FOSDEM). You take a photo of n810 displaying GPS time (to record time offset between camera and GPS) and then, you can start shooting and keep Maemo-Mapper in tracking mode. A nice addition to Maemo-Mapper would add a "low consumption" mode (ie no maps nor tracks drawing) but if you disable "auto-center","display track" and "show GPS details", you can get something decent.

Then, back at home, after developing Raw photos (using Ufraw), I geotagged them, using gpscorrelate and gpx track from Maemo-Mapper and pushed photos to Flickr. Et voilà : they are available on Flickr, with geo data. I've noticed a Geotag extension for F-Spot is being developed so I hope to be able to use it for my next batch of photos.

Summer of Code

Students! There are only a few days left (until Monday) for you to submit your Google summer of code applications. This year, I’m hoping to mentor students working on Farsight 2 or on integrating Farsight in various applications. The most interesting project I’m proposing this year is adding plugins for the various non-free protocols to Farsight (see details), MSN is particularly easy since most of the reverse-engineering has already been done, its just a matter of coding it. GStreamer has a page on how to write a good application (hint hint, Farsight’s project are part of GStreamer this year!). I’m also a mentor on Gnome & Gentoo in case anything interesting is proposed there, so if you have good idea, go submit them now, time is running out!
Update: Google has extended the application period for one more week, so there’s still time… And we already have a good applicant for MSN, but please do apply for Yahoo, AIM, ICQ, etc!

29 March 2008

Windows linuxisé…

… ça se dit ?

J’avais reçu ceci il y a quelques temps, j’avais touvé ça mignon :

Linux vs XP

27 March 2008

People: a contact management framework


Today, people subscribe to social networks, use instant messaging, subscribe to podcasts and blog feeds, use electronic mail, and communication devices to exchange information but more importantly to keep in contact with their contacts and their entourage. Tomorrow people may use different means to achieve this same goal, but in the end it will always be about contacting people, and maybe by then smarter solutions would be found. But in the mean time, we are are stuck with the proliferation of independent and disconnected applications and appliances, each one tearing unique logical entities away to make them fit into limited models. In simpler words, the way applications treat contacts brings a bad user experience.

Unfortunately, we cannot really do much about it, but we can still try to attenuate the effects on the Free Desktop by providing a unified vision of who is a person to the user. The solution we propose is named “People“.

Many people agree that, in the desktop, a “people framework” is needed. Things get more complicated when it comes to define the scope of it. The People project intends to provide an unified way to access and manipulate contacts for the desktop applications. The goal is not, at first, to gather the pieces and simulate unity, but more to bring the tools allowing to do it in a smart way, among other things. In People, we consider that each contact source is incomplete and provides just a restricted vision on contacts (the way they are represented and the way we can act on them). With that vision, contact sources can be as numerous and lightweight as needed to cover every place where the notion of person appears: LDAP, Google Contacts, Facebook, MIT Public Key Server, Telepathy, EDS, phone address book…

Among the possible top level components that People aim to bring, a service providing meta-contacts (gathering all the little pieces of contacts and bringing back the notion of unique persons) is fundamental, as well as a synchronization solution (to update or enhance whatever contact source from another one). Another idea would be to provide a service managing ephemeral contact-related information (like the presence status of a person) to be shared among applications. An obvious and really great use of People would be an address book management application.

The idea behind the People Project is people sanity for the desktop: when some start to talk about amazing people integration in GNOME, the first step is to get consistency around the notion of a person. As the semantic of a person can’t be defined as a standard, we have to allow and exploit all the possible representations of it.

There are tons of possible applications to be explored: meta-contacts in Empathy, Gimmie or Soylent, integration with Seahorse, personal presence handling, activity framework, contact relationships, multiplayer games… People also fits the definition of what the address book component should be in the Online Desktop.

People is architectured around two libraries: a low level one to build backends and a higher one on top of which will lay a D-Bus interface. That interface must not be tainted by People as other implementations could come up. The libraries are developed using the Vala programming language. We want to allow backends to implement custom interfaces when it makes sense so we are not heading to a less common denominator syndrome. As an example, a relationship interface could be implemented by backends supporting FOAF. We have neat feature ideas that we take care to bring with several hot spots in mind, amongst which stand memory usage, network bandwidth usage (use on mobile devices) and i18n (name representation, automatic phone number formatting, …).

The idea that gave birth to People came up during a discussion I had one year ago with Felipe Contreras. It took some time for us to realize the potential of it. Few months ago, Ali Sabil got interested and passed it as a university project to get some time to hack on it, which brought some helpful hands as well. Lately, the development of People has been more and more active. We are constantly questioning our work in an iterative process to get the better implementation we can provide and each added feature is tested. Our effort aims to provide a working and validating implementation as soon as possible (with the release of a first usable version by June). There is currently a resource request for the People project at Freedesktop.org.

We hope to give a talk at GUADEC to get more people interested!

23 March 2008

Crazy April

I'm feeling a crazy month of April coming :
  • we are in the final rush for Mandriva Linux 2008 Spring (RC2 was released some days ago) and it should be out in the first days of April.
  • I've accepted new responsabilities at Mandriva : in addition of being GNOME / HAL / Freedesktop.org guy, I'm now Manager of France Engineering team (located in Paris), whose main task is to work on Mandriva Linux distribution (as well with our Brazilian colleagues).
  • As part of those new responsibilities, I'll be flying to Linux Foundation Collaboration Submit to attend Desktop Architect Meeting (I'll be part of the Distributions panel) in Austin, TX from April 8 to April 10 (but I'll be in Austin from April 5).
  • just one week after this meeting, I'll be flying to Nepal for two weeks holidays (part visit, part trekking). I'll share my photo setup soon.
A side note for French readers : I've started back to blog in french on subjects only relevant to French people (or French speakers). Those posts won't be visible in Planet GNOME and Planet Mandriva.

21 March 2008

Tele2 sucks (or “QoS for dummies”)

I just discovered that, since I enabled the TV over DSL option, Tele2 limited my downstream bandwidth to 8mbps (instead of 20 mbps). All the time. Even when I don’t use the TV. Because allowing 20 mbps could have affected the quality of TV reception (when the TV is off?).

They proudly advertise that offer as:

  • unlimited DSL up to 20 mbps
  • 41 TV channels and 32 radio channels included

It seems that they forgot the “OR” in between.

08 March 2008

bzr-interactive


 Yesterday I updated the bzr-record plugin and renamed it to bzr-interactive. The name change comes from the fact that the plugin aims at adding support for user interactivity for the core commands in a similar fashion to Darcs. For now bzr-interactive only supports the commit command.

The plugin works by adding a –interactive (-i) option to the supported commands. For the commit command, running bzr commit -i will prompt you for the hunks you want to commit in an interactive manner, and also prompt you for the commit message. I hope to add support for other commands in the future, especially for the merge command (cherry-picking :p).

Concerning the record-patch command, it works by asking which hunks you want to save into a patch, the patches are saved in the patches/ subdirectory, and should be easily manageable using quilt. I would however suggest using bzr-loom instead, if your goal is upstream tracking.

06 March 2008

OpenIM and IMFreedom


Few months ago I wrote a bug report on the freedesktop.org bugzilla to ask for means to start a new project. The goal of that project, called “OpenIM” was to gather effort on the opening of closed instant messaging protocols. In the bug thread and on the pidgin mailing list, a discussion started to determine if freedesktop was the right place to host that kind of project (i.e. support reverse engineering and documentation of proprietary protocols) and a lot of people joined it, agreeing that such an effort was needed, regarding the poor and all over the place documentation parcels (at least referring to the MSN protocol ones). Those people included valuable guys from amsn, pidgin, pymsn, jabber, and other worthy individuals of the IM field.

Instead of freedesktop, the pidgin guys proposed to host the initiative on IMFreedom, a Foundation they did setup as a façade when they got justice problems with AOL. We all agreed that using IMFreedom for OpenIM would make more sense. That gave birth to a brand new wiki to collect our efforts.

Be interested, sweat, contribute!

03 March 2008

Une journée, deux continents, cinq pays

Hier, je me suis levé à Paris, j’ai déjeuné à Bruxelles, j’ai diné à Londres, soupé à Chicago et je me suis couché à Montréal.

01 March 2008

mailing list for cross-distributions collaboration

A few months ago, I asked a set of questions on development mailing lists of a few GNU/Linux distributions. This resulted in very interesting discussions. As promised back then, all the answers from all distros I contacted can be read on the web or as an mbox file.

Also, Freedesktop.org kindly agreed to host a mailing list to ease discussions between distributions, and act as a central point of contact. You can subscribe, and post to distributions at lists dot freedesktop dot org.

This mailing list is for people involved (or interested) in the development of distributions. Questions that are on-topic are both technical and social/organizational issues, like:

  • How do you achieve graphical boot in your distro? Do you use some kind of dependancy-based or events-based boot?
  • How do you package both ruby 1.8, ruby 1.9 and jruby, or handle KDE vs KDE4?
  • Do you use a system that gives a limited set of rights to new contributors?

Off-topic stuff obviously include trolling about which distribution is the best one, or user support.

Don’t hesitate to forward this announcement to all interested parties. Let’s make this mailing list something useful together!

Also, I really apologize for procastinating announcing this list for sooo long. I’m really good at procastinating interesting stuff, it seems.

18 February 2008

Empathy IRC account configuration

Yesterday Xavier merged my Empathy irc-account branch. You can now very easily configure IRC accounts using empathy-accounts. We ship a XML file containing lot of well know IRC networks so users don't have to care about server address, port, etc.

This is the first step in my "use Empathy as a real IRC client" plan. Now we'll start a new set of libempathy-gtk widgets in order to create a dedicated application for multi users conversations (probably based on the interface of xchat-gnome).

14 February 2008

GMarkup : memories

A few years ago, we wanted to make it as easy as possible to port then-gnomemeeting to win32, and of course, since we had no access to a win32 box, that mostly meant we would make as much of the code portable as we could, by relying on as few dependancies as possible, which meant : glib/gtk+ for the frontend and pwlib/openh323 for the backend.

For that reason, one of us (Damien?) made bonobo optional with careful #ifdef magic ; I took the gnome-druid source and made it pure gtk+ (so gnomemeeting with gnome used normal gnome druid, and gnomeeting without gnome used those butchered sources) ; this took care of most of the ‘offenders’.

Unfortunately, there was still one big hurdle, in the form of numerous and scattered lines of code : we used gconf! So I did the obvious thing : I wrote a nice gmconf api to act as a proxy for gconf, with a mostly trivial gconf implementation, and a mostly trivial glib implementation, and replaced the thousands of call to gconf by calls to gmconf (boring to say the least).

Once there, I could store, modify and react to changes during runtime, but couldn’t store them across runs. This problem is closely related to the issue of default settings. That was also something gconf was doing for us, which had to be handled separately. Creating another default settings file besides the existing .schema didn’t look like a bright idea : that would have meant keeping them in sync, by hand!

This is where GMarkup comes into the picture : it’s a nice and easy way to handle simplified XML, readily available in glib. And what is a gconf .schema file? A simplified XML file! So I dived into GMarkup’s documentation and examples, and quickly had an honestly working piece of code.

This code is still used in ekiga today : when compiled either without gnome support on GNU/* or *BSD or on win32, parsing settings (system or user) is still GMarkup’s task. I’m not sure that will last very long : it’s much easier to port to win32 those days, with already-ported and already-packaged base libs, so perhaps having a non-gnome version loses interest — especially since the gmconf-glib implementation is a piece of code which only us ekiga developpers maintain (although most bugs must have been ironed out since…).

05 February 2008

5 Feb 2008

Happy new Year

yeah it's either really late or a bit too early for Chinese New year, proof that I should blog more often !

backlog

I have been away for the last month and a half, first vacation in China, and then in Paris for Solution Linux expo. As a result an awful lot of mail piled up in various folders that I didn't really had time to process, I am slowly trying to go though them, so if you get replies from a mail in November that's normal, or if you didn't get a reply, it's probably a good idea to ask again !

libvirt and Co.

libvirt development is progressing fast thanks to DanB, Rich, Jim and the many people porting, testing and using it. I really hope we will soon have easy support for most platform - including Windows and OS-X - at least as a client to remotely access the virtualization servers, Rich did most of the work. The development of the CIM provider seems to be progressing nicely thanks to DanS and the IBM'ers :-). During last week Solution Linux i got asked a few times about P2V tools i.e. tools allowing to automatically save the state of a server to allow to start it as a virtualized domain, Rich just released virt-p2v 0.9.1, it is still experimental, what it needs now is a wider range of testing to find and remove limitations, give it a try and provide feedback, thanks !

For libvirt core we still have a number of pending extensions, like support for new hypervisors, adding APIs for storage management which have been worked on by DanB, we also need to finalize a good XML scheme for 'partition' based virtualization, probably update OpenVZ, and add sound and more USB support. I will post on the list soon to try to clarify the roadmap, much work ahead !

Solution Linux

SL 08 was last week, it's the Linux event of the year where I'm sure to go, it was good seeing people around the Fedora and Gnome booth, and of course Red Hat one. My presentation on virtualization went well, even if it was more than 2 hour long, the PDF is available and a lot of people seems to have fetched it already, I assume it's a positive feedback from the audience :-)

China

I was for a month in China, what a blast! It's impossible to try to describe in just a few lines, but we went from the very cold Dalian and Beijing to tropical Xishuanbanna, most of the time within the chinese family and environment, picking only a few selected tourist spot. Things like Shanghai museum, the Great Wall or the Forbidden city are definitely must-go, but to me the most amazing was to stay and live with the chinese inside the family. The cultural gap is huge, there is so much to learn, too bad mandarin is so hard to an occidental brain (and ears), very challenging, but also very fun and enjoyable !

28 January 2008

Ubuntu stable updates

There was some blog entries this week about GNOME stable updates on Ubuntu. There is no reason new bug fix versions could not be uploaded to stable out of the fact that the SRU rules require to check carrefully all the changes and doing this job on all the GNOME tarballs is quite some work, or the ubuntu desktop team is quite small and already overworked.

There is a list of packages which have a relaxed rules though, we have discussed adding GNOME to those since the stable serie usually has fixes worth having and not too many unstable changes (though the stable SVN code usually doesn’t get lot of testing) and decided than the stable updates which look reasonable should be uploaded to hardy-update.

There was also some concerns about gnome-games, 2.20.3 has been uploaded to gutsy-proposed today which should reduce the number of bugs sent to the GNOME bugzilla. The new dependencies on ggz has also been reviewed and 2.21 should be built soon in hardy.

14 November 2007

GNOME and Ubuntu

The FOSSCamp and UDS week has been nice and a good occasion to talk to upstream and people from other distributions. We had desktop discussions about the new technologies landing in GNOME this cycle (the next Ubuntu will be a LTS so we need a balance between new features and stability), the desktop changes we want to do, and how Ubuntu contributes to GNOME.

Some random notes about the Ubuntu upstream contributions:

  • Vincent asked again for an easy way to browse the Ubuntu patches and Scott picked up the task, the result is available there
  • The new Canonical Desktop Team will focus on making the user experience better, most of the changes will likely be upstream material and discussed there, etc
  • Canonical has open Ubuntu Desktop Infrastructure Developer and Ubuntu Conceptual Interface Designer positions, if you want to do desktop work for a cool open source company you might be interested by those ;-)

GNOME updates in gutsy and hardy

  • Selected GNOME 2.20.1 changes have been uploaded to gutsy-updates
  • The GNOME 2.21.2 packaging has started in hardy, some updates and lot of Debian merges are still on the TODO though
  • We have decided to use tags in patches to indicate the corresponding Ubuntu and upstream bugs so it’s easier to get the context of the change, technical details still need to be discussed though

Update: Scott pointed that you can use http://patches.ubuntu.com/n/nautilus/extracted to access to the current nautilus version

03 November 2007

git commit / darcs record

I’ve been working wit git lately but I have also missed the darcs user interface. I honestly think the darcs user interface is the best I’ve ever seen, it’s such a joy to record/push/pull (when darcs doesn’t eat your cpu) :)

I looked at git add --interactive because it had hunk-based commit, a pre-requisite for darcs record-style commit, but it has a terrible user interface, so i just copied the concept: running a git diff, filtering hunks, and then outputing the filtered diff through git apply --cached.

It supports binary diffs, file additions and removal. It also asks for new files to be added even if this is not exactly how darcs behave but I always forget to add new files, so I added it. It will probably break on some extreme corner cases I haven’t been confronted to, but I gladly accept any patches :)

Here’s a sample session of git-darcs-record script:

$ git-darcs-record
Add file:  newfile.txt
Shall I add this file? (1/1) [Ynda] : y

Binary file changed: document.pdf

Shall I record this change? (1/7) [Ynda] : y

foobar.txt
@@ -1,3 +1,5 @@
 line1
 line2
+line3
 line4
+line5

Shall I record this change? (2/7) [Ynda] : y

git-darcs-record
@@ -1,17 +1,5 @@
 #!/usr/bin/env python

-# git-darcs-record, emulate "darcs record" interface on top of a git repository
-#
-# Usage:
-# git-darcs-record first asks for any new file (previously
-#    untracked) to be added to the index.
-# git-darcs-record then asks for each hunk to be recorded in
-#    the next commit. File deletion and binary blobs are supported
-# git-darcs-record finally asks for a small commit message and
-#    executes the 'git commit' command with the newly created
-#    changeset in the index
-
-
 # Copyright (C) 2007 Raphaël Slinckx
 #
 # This program is free software; you can redistribute it and/or

Shall I record this change? (3/7) [Ynda] : y

git-darcs-record
@@ -28,6 +16,19 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

+# git-darcs-record, emulate "darcs record" interface on top of a git repository
+#
+# Usage:
+# git-darcs-record first asks for any new file (previously
+#    untracked) to be added to the index.
+# git-darcs-record then asks for each hunk to be recorded in
+#    the next commit. File deletion and binary blobs are supported
+# git-darcs-record finally asks for a small commit message and
+#    executes the 'git commit' command with the newly created
+#    changeset in the index
+
+
+
 import re, pprint, sys, os

 BINARY = re.compile("GIT binary patch")

Shall I record this change? (4/7) [Ynda] : n

git-darcs-record
@@ -151,16 +152,6 @@ def read_answer(question, allowed_responses=["Y", "n", "d", "a"]):
        return resp

-def setup_git_dir():
-       global GIT_DIR
-       GIT_DIR = os.getcwd()
-       while not os.path.exists(os.path.join(GIT_DIR, ".git")):
-               GIT_DIR = os.path.dirname(GIT_DIR)
-               if GIT_DIR == "/":
-                       return False
-       os.chdir(GIT_DIR)
-       return True
-
 def git_get_untracked_files():

Shall I record this change? (5/7) [Ynda] : y

# On branch master
# Changes to be committed:
#   (use "git reset HEAD file..." to unstage)
#
#       modified:   document.pdf
#       modified:   foobar.txt
#       modified:   git-darcs-record
#       new file:   newfile.txt
#
# Changed but not updated:
#   (use "git add file file..." to update what will be committed)
#
#       modified:   git-darcs-record
#
What is the patch name? Some cute patch name
Created commit a08f34e: Some cute patch name
 4 files changed, 3 insertions(+), 29 deletions(-)
 create mode 100644 newfile.txt

Get the script here: git-darcs-record script and put in somewhere in your $PATH. Any comments or improvements is welcome !

25 July 2007

RMLL 2007

De retour des RMLL, cette année à Amiens, j'allume enfin mon PC après 15 jours d'absence... En réalité, je n'ai pas fait un vrai break informatique, j'avais mon portable ;o)
Comme d'hab, une très bonne édition. Dès que j'ai mis mes photos en ligne, je fournis l'URL.

Les points forts de cette édition : un nouvel étalon pour le terme "cocktail dinatoire", un repas du libre qui n'a pas démérité, des nocturnes sympathiques et bien sûr les confs et ateliers où j'ai pu faire de nouvelles rencontres intéressantes. Cerise sur le gateau, j'était logé en VIP, au même titre qu'Alan Cox (rien que ça), au QG de l'équipe d'organisation. Un lieu calme entouré de verdure et bordé par un canal. Idéal pour récupérer des longues soirées mais qui n'incite pas à se lever tôt pour assister aux premières confs.
On m'a invité à y rester une semaine de plus pour prendre le temps de visiter Amiens et sa région, invitation que j'ai malheureusement du décliner à cause d'un emploi du temps hélàs peu favorable :((

J'avais entre autres prévu d'assister aux festivités nocturnes du 14 juillet à Paris. Étant hébergé chez un copain qui habite prés de Montparnasse, ce fut déjà une immense galère pour arriver chez lui en voiture... tout le centre de Paris étant coupé à la circulation, et bien sûr pas un seul symphatique policier pour indiquer courtoisement et avec le sourire par où passer pour arriver à destination. 2 heures de perdu dans des embouteillages à la con et la pollution qui va avec ! Enfin arrivé, visite touristique de Paris en vélo... départ 19h... on tourne, on tourne, on tourne, pour info, Notre Dame de Paris ne vaut pas sa renommée en comparaison de Notre Dame d'Amiens. Les parigots devraient sortir du périphérique de temps en temps pour gagner en humilité... vers 23h on se dirige vers le Champ de Mars et là, on voit une marée humaine gigantesque qui visiblement quitte les lieux. J'ai loupé les festivités !!!!!! Mais qu'est-ce que c'est que ce délire, il parait que Paris est une ville nocturne et ils font un feu d'artifice à 10h30 !!! Aucun village en France ne fait ça si tôt !!! Je m'en foutait complètement du concert d'un vieux qui vient finir sa vie tranquille en France après s'être exilé à l'étranger pour ne pas payer ses impots, mais pa