Benj's tavern

Le Pacte du Logiciel Libre

À l'occasion des élections européennes de juin 2009, l'April lance une nouvelle campagne sous la bannière de l'initiative Candidats.fr : tous les citoyens attachés au Logiciel Libre sont invités à proposer le Pacte du Logiciel Libre aux candidats. Le Parlement européen est effectivement le théâtre de débats majeurs pour le Logiciel Libre et les standards ouverts.

L'April souhaite par cette campagne prévenir le retour des brevets logiciels, les atteintes à la neutralité des réseaux, et favoriser l'interopérabilité et la libre concurrence sur le marché européen du logiciel. L'April souhaitant que cette campagne soit l'occasion de sensibiliser aussi largement que possible les futurs députés européens elle propose à tous les citoyens européens attachés au Logiciel Libre de se joindre à cette campagne. L'April propose donc, avec l'association italienne Associazione per il Software Libero, un portail européen.

[08/Apr/2009] | [APRIL] | Link


Single-sign-on avec WWS

Une problématique à laquelle j'ai été confronté pour l'April est l'interfaçage entre l'outil de gestion des adhérents et l'interface de gestion de listes de discussion sympa (wws) Ce dernier permet aux adhérents de gérer leurs abonnements aux listes de discussion sympa utilisé par l'April.

La problématique est la multiplication des mots de passe, ce qui introduit tous les soucis de gestion qu'on puisse imaginer.

La solution retenue pour partager l'authentification consiste à forger l'authentification de wws pour lui faire croire que le membre est déjà authentifié. Si on regarde le code source ainsi que le manuel de sympa, on se rend compte que wws utilise un cookie pour la gestion de session. Ce cookie, appelé sympauser contient l'adresse email de l'utilisateur authentifié, ainsi qu'une somme de contrôle MD5 utilisant un secret contenu dans la configuration de sympa.

Il ne reste donc à une application qui veut faire du SSO sur wws qu'à forger ce cookie. C'est donc ce que fait gDTC à chaque authentification. Ainsi, lorsque l'utilisateur s'authentifie, on lit le secret de wws (qui est placé dans /etc/sympa/cookie sous Debian GNU/Linux, ne pas oublier de corriger les permissions pour permettre à gDTC de pouvoir le lire).

La partie délicate est que le client autorise le cookie en question sur les deux applications. Il est donc nécessaire qu'elles soient placées sur le même serveur web ou à défaut dans le même domaine. gDTC positionne d'ailleurs le cookie de sympa pour tout le domaine configuré.

[05/Aug/2008] | [APRIL] | Link


ACPI for fun and profit

Une petite astuce qui utilise l'ACPI et qui me permet de gagner 2 secondes de temps de cerveau humain disponible : comment faire pour que mes applications de messagerie instantanée et d'IRC soient automatiquement mises en suspension lorsque mon portable est en veille (écran replié ?). C'est assez pénible de taper la commande idoine à chaque pause café alors autant que le système le fasse pour moi !

Pour ce faire, il suffit (sous Debian GNU/Linux) de créer un répertoire /etc/acpi/local et d'y placer deux scripts lid.sh.pre et lid.sh.post (qui doivent être exécutables) et qui seront exécutés à chaque mise en veille puis en mode normal du portable.

Voici le script lid.sh.post :

#!/bin/sh                                                                       
users=$(ps auxw | grep emacs | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
    su $user -c "gnuclient -batch -eval '(erc-cmd-GAWAY \"\")(message \"Welcome back\")'"
done
users=$(ps auxw | grep gaim | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
    su $user -c "gaim-remote 'setstatus?status=available&message='"
done

Et le script lid.sh.pre :

#!/bin/sh                                                                       
users=$(ps auxw | grep emacs | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
    su $user -c "gnuclient -batch -eval '(erc-cmd-GAWAY \"Laptop suspended\")'"
done
users=$(ps auxw | grep gaim | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
    su $user -c "gaim-remote 'setstatus?status=away&message=Laptop suspended'"
done

Ces deux scripts envoient les commandes idoines aux programmes Emacs et Gaim. Concernant Emacs, il utilise le programme gnuclient, donc gnuserv doit être lancé dans le fichier .emacs des utilisateurs:

(load-library "gnuserv")
(gnuserv-start)

Également, j'utilise la gaim-remote pour envoyer l'ordre à gaim. Ceci implique que python-dbus soit installé.

Bien évidemment, on peut adapter ces scripts pour son propre client de messagerie instantanée. Même, cette astuce peut être utilisée pour exécuter des tâches coûteuses en temps machine lors des pauses café.

[18/Mar/2008] | [APRIL] | Link


Où est-ce qu'on paye sa cotisation ?

Cette question, longtemps posée par les adhérents de l'APRIL, est enfin répondue : gDTC !

En effet, le SI de l'APRIL intègre désormais une fonction de paiement par carte bancaire directe. Plus besoin de passer par la boutique en ligne, qui était il faut l'avouer peu adaptée au paiement de cotisation en ligne.

Amis adhérents en retard de cotisation, pour payer votre cotisation par carte bancaire, rendez vous désormais sur http://adherents.april.org/my/ !

[18/Jan/2008] | [APRIL] | Link


Etags, ça poutre sévère

Dans la catégorie « l'outil ultime qui déchire, » il y a Etags.

Etags est, comme on peut le deviner, un outil d'Emacs qui gère les tags dans les codes sources. Les tags en question sont des pointeurs vers les fonctions, variables, defines et autres symboles qui permettent de savoir où ils sont placés dans le code source.

L'idée est de maintenir un fichier contenant ces positions (le fichier TAGS) puis de l'utiliser comme base de données pour tout travail ultérieur de recherche. Ce fichier est créé avec la commande suivante (exemple pour du code C, mais ça marche avec tous les langages majeurs) :

  $ etags *.c

En mode d'édition, si on désire savoir où est définie telle fonction, on déplace le curseur sur un appel à cette fonction et on appuie sur M-.. Emacs demande où se trouve le fichier TAGS si c'est la première utilisation (et fait une proposition de nom), il suffit ensuite de valider. Et là, magie!, Emacs ouvre tout seul comme un grand le fichier contenant la fonction appelée et positionne la marque au début de la fonction.

Il est également possible d'effectuer une recherche sur un symbole particulier. Par exemple, vous voulez savoir à quel endroit du code telle fonction est appelée et comment. Facile ! Tapez M-x tags-search puis le nom de votre fonction. Emacs déplacera le point vers la prochaine occurence de la définition ou de l'appel de votre fonction, tout en ignorant les commentaires. L'appui sur M-, permettra de passer à l'occurence suivante.

Finies les longues minutes à rechercher les fonctions d'un code à coups de grep ... encore une victoire de canard !

[18/Dec/2007] | [APRIL] | Link


Une sacrée Tramp

L'autre jour, j'ai appris avec horreur qu'il y a des emacsiens qui ne connaissent pas encore tramp, l'ultime évolution du système Emacs. C'est un tort !

Tramp, pour Transparent Remote (file) Access, Multiple Protocol, est comme son nom l'indique un module Emacs permettant d'accéder à distance à des fichiers, mais pas uniquement. Il supporte plusieurs protocoles, dont SCP/SSH, FTP, Telnet, rsync, smb, mais aussi sudo et su. Il est possible d'utiliser la plupart des commandes Emacs à travers Tramp, comme dired ou le gestionnaire de version. Oui monsieur !

Comment ça marche ? C'est très simple, il suffit d'installer tramp (apt-get install tramp sous les distributions modernes), puis de demander à Emacs d'ouvrir ou de sauvegarder un fichier en utilisant un nom de fichier de la forme:

/utilisateur@machine:/chemin/fichier.txt

Ensuite, Emacs se charge comme un grand du reste, il vous demande un mot de passe (sauf si ce n'est pas nécessaire, par exemple pour accéder à un serveur SSH dont l'authentification passe par une clef), puis télécharge le fichier et vous l'affiche comme s'il était en local. À chaque sauvegarde, il le met à jour sur le serveur, de manière transparente. C'est très pratique, par exemple si on a besoin de développer un applicatif web à distance sur un serveur sans environnement graphique mais que l'on souhaite conserver son environnement de travail habituel (Emacs bien sûr ;-)). À titre d'exemple, ce billet est rédigé en utilisant Tramp et le mode blogmax d'Emacs.

[16/Oct/2007] | [APRIL] | Link


Planète APRIL powered by gDTC!

Ça y est, planète APRIL utilise le nouveau système de gestion des adhérents mis en place tout récemment. Ce système, gDTC (pour gestion Des Tâches Courantes) permet aux adhérents de mettre à jour directement leur blog dans planète APRIL sans intervention des admins. C'est un gain de temps appréciable. :-)

Plus d'info et le lancement officiel bientôt !

[30/Aug/2007] | [APRIL] | Link


1500 !

L'APRIL a lancé une campagne d' adhésion pour atteindre l'objectif des 1500 membres d'ici la fin de l'année.

Richard Stallman avait à cet occasion appelé à adhérer à l'APRIL et de nombreuses personnes ont répondu à cet appel et rejoint les rangs de l'interlocuteur de référence du logiciel libre en France.

L'objectif du 1500è membre a été atteint lors des Rencontres Mondiales du Logiciel Libre et c'est une très bonne chose !

Pour autant, l'objectif de l'association est de continuer à grandir et toutes les énergies sont les bienvenues. Nous avons déjà un poids plus important à 1500, mais nous serons encore mieux écoutés à 5000.

Alors si ce n'est pas déjà fait, j'adhère à l'APRIL

[14/Jul/2007] | [APRIL] | Link


Geek!

Ça y est, je suis devenu officiellement un geek, j'ai investi dans un portable (non pas un téléphone). Il me servira d'une part à pouvoir travailler dans le train que pour des trajets réguliers de 5 ou 6h et d'autre part à bosser plus efficacement quand dans les locaux de l'APRIL pour faire la trésorerie.

J'ai choisi un Acer 5613WLMI, car il répondait au cahier des charges suivants:

  • fonctionnel avec des drivers libres
  • autonomie d'au moins 2h30
  • au moins 512M de RAM
  • moins de 700 euros

L'installation d'une Debian Etch à partir du lecteur de DVD se passe sans problème. À vrai dire les temps glorieux de l'installation manuelle sont bien révolus, l'installeur Etch est d'une simplicité d'utilisation déroutante.

Un reboot plus loin, un joli bureau Gnome m'accueille ! Il reste cependant quelques réglages à effectuer, par exemple 915resolution doit être installé pour une résolution d'écran correcte.

Ce qui marche et ce qui ne marche pas :

OK Carte graphique (i950). Le DRI est détecté directement, aucune configuration à faire.
Non Webcam. Avec les versions SVN de linux-ucv la caméra est détectée mais pas ce qu'elle renvoie ... à suivre. En même temps je m'en moque un peu. :-)
OK Carte son. Le HP intégré crachote un peu mais ça marche.
OK Carte ethernet.
Non Wifi. Nécessite des drivers propriétaires ... mauvaise surprise, je me suis trompé sur ce composant.  Ça sera donc ethernet ou avec une carte wifi PCMCIA supplémentaire.
OK Lecteur de DVD
OK Hibernation sur disque
Non Hibernation sur RAM. Problème support ACPI sur mon kernel, à voir mais ça doit être juste de la configuration à faire.
À tester PCMCIA (ça devrait fonctionner).

Autre surprise, l'autonomie est plus importante que les 2h30 annoncée. Avec un peu de tuning, à voir...

Bref, mis à part la surprise du wifi (et la webcam) une bonne configuration qui marche avec des drivers libres.

[02/Jul/2007] | [APRIL] | Link


Easyneuf gagne un lutèce d'or !

Lutèce d'Or Le 13 juin dernier a eu lieu la remise des Lutèces d'Or, qui sont en quelque sorte les Césars du logiciel libre.

Parmi les concurrents, le projet Easyneuf me concerne tout particulièrement car j'y suis impliqué depuis pratiquement un an. Et c'est avec plaisir que j'ai appris que ce projet avait reçu le prix spécial du jury.

C'est à ma connaissance la première fois que du logiciel libre est ainsi distribué au grand public (le vrai, la ménagère de moins de cinquante ans tout comme ma grand-mère) et que ce grand public peut bénéficier d'un support professionnel sur des logiciels libres inclus dans l'offre. Bref, un prix bien mérité !

[15/Jun/2007] | [APRIL] | Link