PROJET AUTOBLOG


Ploum

source: Ploum

⇐ retour index

Liblarch, a python library to handle trees and acyclic graphs

jeudi 8 novembre 2012 à 19:58

Lesson number one Some of you may be aware that Getting Things GNOME! 0.3 was released. What you may not know is that GTG is now using a python library called liblarch and that liblarch 2.1.0 was released today.

Liblarch is a python library specifically designed to handle complex trees (including directed acyclic graphs) and to display them. A liblarch-gtk component allows you to display different views of your tree in a GTK TreeView widget without any effort.

During the development of GTG, we faced major problems to handle our tree of tasks and our tree of tags. The features we wanted proved to be very complex to implement and very fragile : solving a bug would create two others. And the performance work was a nightmare.

We decided to abstract the whole concept of tree and to make it a standalone, well tested and optimized library. We are very proud of it and we are looking for more applications that would benefit from using liblarch.

Liblarch is designed to be as simple as possible from the programmer point of view. The nodes of your tree can be any python object. You only need to inherit from liblarch TreeNode. Once you have a node, you will connect it to a tree. It can be a node without parent, with a single parent or even with multiple parents.

Where liblarch becomes powerful is to display a given tree : you can have multiple views over the same tree, add a complex filter or even a combination of multiple filters. And all of that can be quite easily displayed in a GTK TreeView. Easy and GTK TreeView in the same sentence? Sounds impossible? Not with liblarch!

How liblarch is working

As an example, you can test our implemenation of a dummy contact list. By reading the code, you will see how straightfoward it is to have searching capabilities in the contact list, contacts in multiple groups, hiding offline contacts or updating automatically when a new contact comes online.

Liblarch comes with an extensive test suite. The next challenge is to port it to Python3/GTK3 and to write a good built-in documentation. Any help is welcome :-) (EDIT: we are also looking for packagers)


Flattr our API Documentation

Les opportunités manquées du Libre 2: la décentralisation

mercredi 7 novembre 2012 à 10:39

Je vous ai déjà parlé de l'importance de la décentralisation : il faut créer des services indépendants qui communiquent entre eux (l'email) plutôt qu'un gros service qui contrôle tout le monde (Facebook, Google).

Mais créer un service décentralisé est une véritable gageure. Si les problèmes techniques sont légions (compatibilité, communication, standardisation), ils ne sont rien face à l'immense défi humain. Je pense notamment aux abus comme le spam ou la fraude. Un service centralisé peut gérer les spammeurs au cas par cas en désactivant les comptes. Un service décentralisé doit mettre en place une stratégie complètement différente. Le seul réseau décentralisé d'envergure, le mail, n'a d'ailleurs jamais résolu ce problème.

Pour réussir, un service décentralisé doit donc offrir une solution au moins équivalente en termes de confort d'utilisation, une résolution des problèmes propres à la décentralisation et un petit plus qui fera la différence, qui poussera les utilisateurs à abandonner la concurrence.

Un cadenas sur une statue de liberté

Le résultat est sans appel : depuis l'email, aucune solution décentralisée n'a réellement percé auprès du grand public. Même le protocole de chat XMPP ne doit son succès qu'à son adoption par Google. Et, soyons honnêtes, si Google décide d'arrêter d'utiliser XMPP demain, ce ne seront pas les utilisateurs de Google Chat qui se plaindront mais bien les utilisateurs des autres serveurs qui n'auront plus accès à la majorité de leurs contacts.

Les raisons d'un échec

Comme je vous le disais précédemment, les libristes se sont concentrés sur la résolution des problèmes techniques, faisant fi de l'expérience utilisateur. La décentralisation ne fait pas exception. Ainsi, il est hors de question de mélanger un serveur de mail avec un serveur de chat XMPP. Chaque outil doit être indépendant. La conséquence directe est que la majorité des utilisateurs de solutions libres ont une adresse pour le mail et une pour le chat. Et, quand bien même certains services offriraient une adresse commune, il n'y aucune réelle intégration contrairement à Google qui, entre autres, envoie par mail les messages reçus lorsqu'on est déconnecté.

Face au succès des services webs centralisés, le monde libre a répondu avec la license AGPL. Plutôt que de se poser la question de l'indépendance, de ce que nous souhaitions construire et offrir aux utilisateurs, nous nous sommes contentés de nous vautrer dans notre petite zone de confort : l'accès au code source et l'évangélisme.

Les avantages de la centralisation

Mais il y a pire : la décentralisation est censée nous garantir l'indépendance, la sécurité par rapport à une seule entreprise. Mais, entre nous, quels sont les risques lorsque vous utilisez un service en ligne ?

  1. Le serveur est indisponible pour une période prolongée suite à une défaillance matérielle
  2. Vos données sont perdues suite à une défaillance matérielle et un mauvais plan de sauvegarde.
  3. Vos données sont volées suite à un piratage
  4. Votre fournisseur fait faillite et disparaît dans la nature
  5. Votre fournisseur décide de couper l'accès à vos données sans préavis

Chez un géant comme Google, la probabilité de souffrir d'un des 4 premiers problèmes est virtuellement nulle. Quand à la cinquième, elle arrive de temps en temps. Cela fait d'ailleurs un certain buzz et cela permet aux libristes d'avoir des exemples concrets pour illustrer le problème de la centralisation.

Les alternatives à la centralisation

Fuyant les géants, vous vous êtes installé chez un petit fournisseur indépendant. Tristement, il faut reconnaître que les 5 problèmes deviennent beaucoup plus probables. Vous devenez donc extrêmement dépendant de ce fournisseur qui peut faire faillite, se faire pirater ou brusquement augmenter ses prix sans que vous n'ayez la moindre chance d'alerter l'opinion publique.

Étant très doué en informatique, vous faites partie de cette minorité capable de gérer des services de base et vous décidez alors de passer à l'autohébergement. Malheureusement, cela a un coût non négligeable. Si il permet de résoudre les deux derniers points, il maximise la probabilité des trois premiers. Cela vous coûte de l'argent, cela vous prend un temps fou et cela vous force à être disponible en permanence. Un exemple célèbre est Rick Falkvinge, fondateur du Parti Pirate. Il héberge son site sur son propre serveur dans son bureau. Régulièrement, son site est indisponible pendant plusieurs jours suite à une panne de courant ou un problème de disque dur alors qu'il est à l'étranger. Dans ces cas-là, il ne communique plus que par Twitter, Google+ et Facebook, les réseaux centralisés…

Il s'en suit, de manière paradoxale, que la solution la plus sécurisée et qui vous donne le plus d'indépendance est… d'utiliser un géant centralisé comme Google.

Google plus libre que Diaspora

Et à ce petit jeu, Google est très fort et se permet le luxe d'offrir une fonctionnalité de Libération de Données : vous pouvez à tout moment télécharger toutes vos données dans un format aisément exploitable. Photos, publications, commentaires, contacts : tout y est ! Il s'en suit que j'ai un meilleur contrôle de mes données chez Google que celles sur Diaspora, où l'outil d'export n'est pas encore complet !

Diaspora et Status.net sont les exemples mêmes de l'échec du libre face à la décentralisation. Se contentant de copier les solutions centralisées en aposant un protocole décentralisé dessous, elles ont justifié leur échec par le monopole des acteurs de Facebook et Twitter. Le récent succès de Pinterest montre pourtant qu'il y a de l'espace pour l'innovation.

Et pourtant…

C'est dommage ! La décentralisation aurait pu devenir le cœur de notre expérience utilisateur. L'analyse du problème montre que la seule solution qui rende réellement indépendant est l'autohébergement mais qu'il faudrait le rendre simple, accessible à tous et sûr. Imaginez un instant une version serveur et une version client de votre distribution préférée. La version serveur s'installe en un clic sur le boitier dans votre salon et une interface graphique permet de créer les comptes sous forme d'une adresse email. Quand à la version client, il suffit de s'y connecter avec son adresse mail pour avoir aussitôt accès aux mails, aux calendriers, au chat, au partage de fichiers, à votre flux d'informations continues. C'est un rêve que certains n'abandonnent pas.

Simple et efficace.

Mais… Attendez une seconde ! C'est exactement ce que Google est en train de faire avec ChromeOS. Des services décentralisés, redondants, accessible du monde entier en un clic. Il n'y a qu'un seul hic : ils sont contrôlés par une seule société. Un société qui fait tout trop bien, allant jusqu'à financer la concurrence pour encourager la compétition. Si vous étiez à leur place, que feriez-vous de différent ? Sincèrement ?

Alors, préférez-vous mettre tous vos œufs dans un unique panier très solide ou … pas de panier du tout ?



Photo par Mark Tominski


Flattr our API Documentation

[Oneliner 19]

mardi 6 novembre 2012 à 15:06

L'aborigène arboricole abhorre l'abord bâbord de l'abordage.


Flattr our API Documentation

Le flux total

mardi 30 octobre 2012 à 22:53

Malgré sa centralisation, je suis un énorme fan de Google+. Il me permet de m'informer, de confronter mes idées avec le monde, de partager automatiquement mes photos avec mes proches, d'organiser des évènements, de discuter avec mes amis sans remplir la boîte aux lettres de ceux qui ne le souhaitent pas et sans que ceux qui étaient partis en weekend aient à rattraper une myriade de fils de discussion. Il me permet également également de rendre mes réactions publiques sans tomber dans l'infamie suprême, le tristement célèbre « reply all ».

Une jolie chute d'eau, un « stream »

Le mail a ses limites. J'ai moi aussi finalement fait cette expérience qui arrive à tout le monde un jour ou l'autre : à partir d'une certaine quantité, le mail est inefficace. Comme on dit en bon franglais d'ingénieur : « le mail ne scale pas ».

Chaque jour est un véritable combat contre son inbox. Sans parler du lecteur RSS qu'il faut ramener à 0. N'avez-vous jamais entendu un collègue rentrer de vacances et passer les deux jours qui suivent à « répondre à ses mails » ?

Le mail souffre de multiples problèmes conceptuels. Il n'expire pas. Si il est inutile il nécessite une action (effacer). Alors que s'il est important, que vous comptez faire quelque chose avec, il ne faut pas y toucher pour bien le garder dans votre inbox. Joli paradoxe non ?

Quand, comme moi, vous êtes un adepte de la méthode Inbox 0, vous devenez super efficace pour les petits trucs sans importance. Vous répondez immédiatement aux mails les moins urgents. Par contre, tout ce qui prend un peu de temps ou est important est relégué au second plan, dans mon GTG.

C'est pourquoi, subtilement, le monde est en train de passer de l'email et du RSS au concept de flux. Un flux ne s'arrête jamais. Il vous donne autant à lire que vous le souhaitez. Mais si vous ne le lisez pas, les informations se succèdent malgré tout. Un flux n'a pas de limite de contenance.

Twitter est l'archétype du flux : personne ne lit tous les tweets de sa timeline. Vous lisez juste ce que vous avez sous la main quand vous allez au petit coin. Facebook fonctionne sur ce principe. Mais, à mon sens, le plus réussi au niveau fonctionnel reste Google+.

G+ a tout pour être un véritable « lifestream », un flux total : il peut remplacer les RSS de vos sites préférés (comme Linuxfr, Ars Technica ou Ploum.net). Il remplace les services de partage de photo, les services de chat, de vidéoconférence, de calendrier partagé et, ironiquement après l'échec de Google Wave, il peut même remplacer le mail.

Oui, effectivement, on peut rater certaines choses. Mais, avouez-le, c'est déjà le cas de la majorité des inbox mail. Que celui qui n'a jamais sorti l'excuse « Il doit être dans mes spams » me jette le premier tweet.

En ce sens, G+ est la première véritable ébauche de flux total. Ne me parlez pas de Facebook qui mélangent allègrement tout et n'importe quoi avec des messages privés, des messages sur des murs, des messages dans des groupes et des tas d'autres concepts que je n'ai toujours pas compris. Dans G+, tout est un élément du flux et il n'y a qu'un seul flux, c'est aussi simple que cela.

Une solution de flux total devrait cependant posséder une fonction pour « épingler » un message. Une sorte de liste de lecture qui permettrait de marquer un message comme important, que ce soit pour le lire, pour y répondre ou effectuer une action liée. La situation s'inverse donc par rapport au mail : il faut marquer ce qui est important. Une fonction qui fait encore cruellement défaut dans G+ (j'utilise Pocket à cet effet mais les deux s'intègrent très mal).

Mais je vous parle de G+, je m'oublie ! Ne perdons pas de vue qu'il s'agit d'un service propriétaire et fermé. Un service totalement contrôlé par une société unique. Il est bien entendu que le véritable flux total sera libre et décentralisé.

N'est-ce pas ?



Image par Jean Mottershead


Flattr our API Documentation

For a fistfull of votes

lundi 15 octobre 2012 à 19:02

Yesterday was an election day in Belgium. We voted for the municipal and provincial elections.

It was the second time that the Pirate Party was candidate, first being in 2010 when it was only in one place and performed at 0.26%.

This Sunday, we were in multiple districts of nearly all the provinces. With the exception of two 0.9%, we did more than 1% everywhere it was possible to vote for us. Paul Bossu did also an incredible 3.42% in his own district (Tournai).

Vote pour Lionel Dricotà Ottignies-Louvain-la-Neuve

We were also in 14 cities and I was personally leading the list in Ottignies-Louvain-la-Neuve, a city of 30,000 where we scored an outstanding 5.16%.

Which is my biggest disappointment… During all the night, official results gave us a seat at the city council. This was announced in the major medias and, at some point, we were not far from winning a second seat. Journalists were calling me one after another, I received lot of congratulations messages. Too bad, the very last result took us down and we missed the seat for a total of 14 votes. Journalists stopped to call and I had to explain to my friends congratulating me that the television was wrong.

When you know that more than 2500 people decided to not vote that day, it's very frustrating. 3 of my friends who wanted to vote Pirate decided, for various reason, to not vote. This should be a lesson for everyone who is not voting : every single vote counts.

But the result is there : we have 5.16% of the votes and none of the 31 seats. The major reason is that I was not able to achieve everything I wanted to do during this campaign, I was not enough organized and I realized too late that we needed to talk about real solutions, not about concepts. Talk about how you will do it, not why. Show proof that you can do it like the transparency challenge, launched too late but very well received! Valérie told me several times to get more into the actions, less into the ideas, she was right, you can blame me for missing that seat.

As pointed by Valérie and Michel, my fellow pirates, it's not because we are not elected that we cannot do things. With more than 5% of voters, we are not completely unknown. We now have contacts with every elected representative and we can move things forward.

If we forget that disapointment, we scored really well. The province of Brabant-Wallon was entirely covered because there is only two districts and we scored 2.61% there. We are the sixth party, behind the traditional five and far far better than any other "small" party.

This gives us a ground for the election of 2014 in that province and partial results in other provinces look really promising thanks to the hard work of pirates in the whole country.

Now that the campaign is over, that there's no pirate elected in Belgium, it's time to think differently : what can we do now, as citizens. And why aren't we doing it now?

It's time for action! If you are hesitating, get in touch with your local Pirate crew and become a pirate.

But let's get some sleep first…


Flattr our API Documentation