Benj's tavern

Migration du Planet de l'April

Si vous pouvez lire ça, c'est qu'elle s'est bien passée. Nous utilisons donc désormais une version packagée toute propre du Planet, sur un serveur virtuel de l'April en Debian stable ... et donc, du siècle en cours !

[20/Oct/2011] | [APRIL] | Link


Comment intégrer org-mode/mercurial et perdre 5kg sans effort

Org-Mode c'est bien. Mercurial c'est bien. Mais les deux ensemble c'est encore mieux. Notamment parceque mercurial permet d'historiser son fichier .org et donc d'éviter de perdre des données. Et en plus, étant distribué, il permet de synchroniser des repositories mercurial

Ce qui serait pratique serait d'intégrer mercurial AVEC emacs. Heureusement, il y a mercurial.el. Mais ce qui serait encore mieux, c'est de l'interfacer façon loutre avec emacs, que tout soit fait automagiquement. Voici donc un bout de code qui répond à ce besoin :

(defun gtd ()
    (interactive)
    (benj/org-hg-update)
    (find-file "~/.org/perso.org"))
 
(load-library "mercurial")
 
(defun benj/org-hg-commit ()
  (interactive)
  (find-file "~/.org/")
  (hg-commit-start))
 
(defun benj/org-hg-auto-commit ()
  (interactive)
  (save-window-excursion
    (find-file "~/.org/")
    (hg-run0 "commit" "-m" "Auto-commit upon emacs exit.")))
 
(defun benj/org-hg-update ()
  (interactive)
  (save-window-excursion
    (find-file "~/.org/")
    (hg-update)))
 
(defun hg-update (&optional repo)
  "Update repository."
  (interactive)
  (hg-view-output ((format "Mercurial: update %s"
			   (hg-abbrev-file-name (hg-root))
			   ))
    (call-process (hg-binary) nil t nil "update")))
 
(add-hook 'kill-emacs-hook 'benj/org-hg-auto-commit)

Et voilà, lors du démarrage d'emacs, un petit M-x gtd met à jour le mercurial et ouvre le fichier .org idoine. Et à la sortie, on commit le tout avec un message standard. Il est cependant possible de commiter avec un messsage personnalisé en executant (benj/org-hg-commit). Elle est pas belle la vie ?

PS: pour la perte de poids je n'ai pas encore trouvé de solution, par contre. /o\

[04/Apr/2011] | [APRIL] | Link


Petite commande IRC utile

Glanée en piochant à droite et à gauche, voici une petite commande bien utile à tous les opérateurs IRC utilisant, ERC l'excellent client IRC pour Emacs. J'ai nommé la commande /fuck :

(defun erc-cmd-OPME ()
  "request a chanop op to me"
  (erc-message "PRIVMSG"
               (format "chanserv op %s %s"
                       (erc-default-target)
                       (erc-current-nick)) nil))
 
(defun erc-cmd-DEOPME ()
  "Deop myself from current channel"
  (erc-cmd-DEOP (format "%s" (erc-current-nick))))
 
(defun erc-cmd-BAN (nick)
  (let* ((chan (erc-default-target))
         (who (erc-get-server-user nick))
         (host (erc-server-user-host who))
         (user (erc-server-user-login who)))
    (erc-send-command (format "MODE %s +b *!*@%s" chan host))))
  
(defun erc-cmd-KICKBAN (nick &rest reason)
  (setq reason (mapconcat #'identity reason " "))
  (and (string= reason "")
       (setq reason nil))
  (erc-cmd-BAN nick)
  (erc-cmd-KICK
   (erc-default-target)
   nick
   (or reason
       ".")))
 
(defun erc-cmd-FUCK (nick &rest reason)
  (erc-cmd-OPME)
  (sleep-for 0.5)
  (apply #'erc-cmd-KICKBAN nick reason)
  (erc-cmd-DEOPME))
[16/Mar/2011] | [APRIL] | Link


Clocker à la vitesse de la lumière

Dans org-mode, clocker c'est bien(tm). Mais c'est surtout très chiant quand on doit clocker souvent les mêmes choses. Bon alors certes, on rétorquera qu'il suffit de faire un C-u C-c C-x TAB et ensuite, de sélectionner une tâche parmis les plus récentes.

Oui mais comment on fait si on a plein de tâches entre ? Ben on installe org-shortcuts et voilà. Maintenant, c'est l'heure du café : C-u C-c C-x TAB c et hop, c comme café et c'est clocké.

Le module org-shortcuts fonctionne avec org-mode 7.5 ou supérieur et est disponible dans par ici.

[14/Mar/2011] | [Emacs] | Link


Tsocks will Rock You

Tsocks c'est le bien. C'est du bien en barre, même. On ne présente plus socks, qui est un protocole réseau permettant entre autres d'envoyer des données à un proxy de manière transparente. Proxy, qui peut ensuite les tuneler à travers un tunnel SSH.

Tsocks, est un "hack" permettant d'exécuter une commande et de router tous ses appels systèmes réseau (basés sur la bibliothèque socket) vers socks. La configuration de tsocks se fait via /etc/tsocks.conf:

server = 127.0.0.1
server_type = 4
server_port = 3128

Ensuite, plus qu'à exécuter un client SSH avec écoute sur un port en SOCKS :

ssh benj@foo.chezmoi.org -D 3128

Et plus qu'à exécuter une commande, par exemple emacs, via tsocks :

tsocks emacs

Et voilà ! On a un emacs dont tous les appels à une fonction réseau seront socksifiés via le tunnel SSH. Et hop, totale privacy.

[11/Feb/2011] | [APRIL] | Link


Sélection locale des jours avec org-schedule

M-x org-schedule, c'est le bien(tm). C'est le bien parce qu'avec Org-mode on peut plannifier des tâches plus tard. Org-schedule vient avec une interface de saisie bien complète, avec la possibilité de saisir des dates dans pas mal de formats différents.

Par exemple :

  • +3d : dans trois jours
  • +1w : dans une semaine
  • 12 : le 12 du mois prochain (ou le 12 du moins si ça vient avant)
  • sat : le prochain samedi

Hey ! Mais ! Sat ... c'est de l'Anglais ! Vade retro ! Heureusement, il est possible de configurer la variable parse-time-weekdays pour rentrer une date bien franchouillarde :

(defvar parse-time-weekdays '(("sun" . 0) ("mon" . 1) ("tue" . 2) ("wed" . 3) ("thu" . 4) ("fri" . 5) 
			      ("sat" . 6) ("lun" . 1) ("mar" . 2) ("mer" . 3) ("jeu" . 4) ("ven" . 5) 
			      ("sam" . 6) ("dim" . 7) ("sunday" . 0) ("monday" . 1) ("tuesday" . 2) 
			      ("wednesday" . 3) ("thursday" . 4) ("friday" . 5) ("saturday" . 6)))

Elle est pas belle la vie ?

[25/Jan/2011] | [APRIL] | Link


Calcul des jours fériés et vacances avec le calendrier d'Emacs

Mon camarade Fred s'est posé la question sur une manière d'inclure les vacances scolaires dans le calendrier d'Emacs (et dans org-mode). Ça m'a titillé alors voici une solution possible (dont une partie du code est tirée d'une recherche sur le web.

Ce fichier fonctionne pour la zone C et l'année 2010, il y aura des ajustements à faire pour les années suivantes (et il est possible de renseigner dès maintenant les dates pour les années 2011 ou 2012 qui sont déjà connues).

(defun vacances (string sd sm sy ed em ey)
  "Compute holiday lists"
  (filter-visible-calendar-holidays
   (vacances-i string 
	       (calendar-absolute-from-gregorian (list sm sd sy))
	       (calendar-absolute-from-gregorian (list em ed ey)))))
 
(defun vacances-i (string s e)
  "Holidays iterator"
  (if (= s e)
      nil
    (cons (list (calendar-gregorian-from-absolute s) string)
	  (vacances-i string (+ s 1) e))))
 
(defun feries-paques ()
  "Liste des jours de vacances  relatifs a paques."
  (let* ((century (1+ (/ displayed-year 100)))
	 (shifted-epact	;; Age of moon for April 5...
	  (% (+ 14 (* 11 (% displayed-year 19))	;;     ...by Nicaean rule
		(- ;; ...corrected for the Gregorian century rule
		 (/ (* 3 century) 4))
		(/ ;; ...corrected for Metonic cycle inaccuracy.
		 (+ 5 (* 8 century)) 25)
		(* 30 century))	;;              Keeps value positive.
	     30))
	 (adjusted-epact ;;  Adjust for 29.5 day month.
	  (if (or (= shifted-epact 0)
		  (and (= shifted-epact 1) (< 10 (% displayed-year 19))))
	      (1+ shifted-epact)
	    shifted-epact))
	 (paschal-moon ;; Day after the full moon on or after March 21.
	  (- (calendar-absolute-from-gregorian (list 4 19 displayed-year))
	     adjusted-epact))
	 (abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
	 (day-list
	  (list
	   (list (calendar-gregorian-from-absolute abs-easter)
		 "Pâques")
	   (list (calendar-gregorian-from-absolute (+ abs-easter 1))
		 "Lundi de Pâques")
	   (list (calendar-gregorian-from-absolute (+ abs-easter 39))
		 "Jeudi de l'ascension")
	   (list (calendar-gregorian-from-absolute (+ abs-easter 49))
		 "Pentecôte")
	   (list (calendar-gregorian-from-absolute (+ abs-easter 50))
		 "Lundi de Pentecôte")))
	 (output-list
	  (filter-visible-calendar-holidays day-list)))
    output-list))
 
;; Les vacances francaises
(setq calendar-holidays
      '((holiday-fixed 1 1 "Nouvel an")
	(holiday-fixed 5 1 "Fête du travail")
	(holiday-fixed 5 8 "Victoire 1945")
	(feries-paques)
	(holiday-fixed 7 14 "Fête nationale")
	(holiday-fixed 8 15 "Assomption")
	(holiday-fixed 11 11 "Armistice 1918")
	(holiday-fixed 11 1 "Toussaint")
	(holiday-fixed 12 25 "Noël")
	(holiday-float 5 0 2 "Fête des mères")
	(holiday-float 6 0 3 "Fête des pères")
	(vacances "Vacances de la Toussaint" 23 10 2010 4 11 2010)
	(vacances "Vacances de Noël" 18 12 2010 3 1 2011)
	(vacances "Vacances d'hiver" 12 2 2011 28 2 2011)
	(vacances "Vacances de printemps" 9 4 2011 26 4 2011)
	(vacances "Vacances d'été" 2 7 2011 5 9 2011)))
 
;; afficher les fetes
(setq mark-holidays-in-calendar t)
[29/Oct/2010] | [APRIL] | Link


Au pays d'org-mode, épisode 2

Adopter l'inbox 0 implique un certain nombre d'ajustements et de pré-requis. En particulier, bien catégoriser les flux de mails entrants et réduire la taille des mails à traiter.

La première condition est déjà atteinte en ce qui me concerne, car j'utilise la méthode suivante pour gérer mes mails. Un fetchmail est mis en tâche de fond pour récupérer les mails sur différentes boîtes aux lettres. Puis le mail est trié par procmail de manière assez agressive, pour séparer les mails automatiques (mailing-lists et notifications, principalement) des mails personnels qui me sont réellement adressés. Ainsi, ma boîte aux lettres principale ne contient QUE les mails les plus importants et aucune notification ne m'est indiquée pour les autres, ce qui limite la tentation de lire et relever ses mails en permanence. Puis, lorsque je relève mes mails avec gnus, ils sont à nouveau classés en groupes, sous-groupes, etc.

Ensuite, il faut bien limiter le nombre de mails reçus, car ça prend du temps de trier ses mails et les groupes qu'on ne lit pas sont inutiles. Je me suis donc désinscrit de tout un tas de mailing-lists que je ne suivais plus. Bien qu'au début ça fasse bizarre d'acter la sortie d'un projet de sa vie (je pense principalement à Grisbi, qui a été mon bébé mais auquel je ne contribue plus), ça libère vraiment l'esprit et notamment d'un certain sentiment de culpabilité.

J'espère ainsi limiter la quantité de mails reçus et la faire tomber de plus de 500 par jours à une centaine, voir quelques dizaines.

Sur le front org-mode, je commence à utiliser le clocking, bien pratique pour plusieurs raisons, entres autres se rappeler ce sur quoi on travailler et augmenter le focus. J'ai découvert les subtilités de org-todo-keywords et notamment la possibilité de coloriser les différents états. Je m'amuse aussi avec les faces et org-hidden-keywords. Org-Mode commence à ressembler à un sapin de noël !

[26/Oct/2010] | [APRIL] | Link


Au pays d'org-mode, épisode 1

Avoir rangé tous mes mails dans org-mode n'a pas été une mince affaire. Tous ces vieux truc qui traînent sont ils toujours d'actualité ? Vérifier cela prend un temps fou, la tentation de tout mettre à la poubelle est grande ... et d'ailleurs, cela fait partie du jeu, au final beaucoup TODOs divers et variés ont été trashés.

Reste la problématique du classement, cela ne sert à rien de tout entasser dans un bazar, qu'il s'appelle gnus ou org-mode. J'ai donc réfléchi à des contextes de rangement et pour cela il faut se poser la question: comment retrouverais-je les actions en cours ? Quelles revues mettre en place pour être sûr de ne pas oublier une tâche ?

Tout naturellement, j'emprunte des contextes à mon camarade Fred : les personnes avec qui je travaille le plus à l'April auront leur contexte: FRED, POLUX, EVA, JEANNE. Des contextes MAISON, BUREAU_APRIL et BUREAU seront également créés en fonction des lieux. Je résiste à créer un contexte FATIGUE pour les tâches no-brainer comme Fred, mais un contexte LECTURE et FLIM sera mis en place pour les oeuvres à se rappeler au prochain passage à ma librairie préférée par exemple. Il se peut que je crée dans un futur plus ou moins proche des tags à la GTD pour effectuer une revue quotidienne et hebdomadaire des tâches.

Au niveau des différents états de TODO, j'opte pour une organisation simple avec la séquence NEXT, TODO, STARTED, WAITING, DONE, CANCELLED, SOMEDAY. Ainsi, je peux facilement déterminer les tâches en cours, pour lesquelles j'attends quelque chose ou alors qui seront à faire ... « un jour. »

L'organisation la plus empirique reste le classement arborescent par projet et sous-projet. La politique que je m'astreins à suivre consistera à séparer projets professionnels et privés en deux fichiers .org. Le fichier professionnel sera séparé en projets, portant le nom des clients, avec un projet « général » contenant les tâches globales (négocier augmentation, backup serveurs, etc.).

Le fichier privé sera quant à lui séparé en projets April et personnels. J'essaye de ne pas utiliser plus de deux niveaux d'imbrication et n'utiliserai les niveaux inférieurs que pour horodater les projets récurrents (RMLL, assemblée générale April, vacances, etc.).

Enfin, reste à déterminer les cas d'utilisation de l'agenda. J'ai déjà commencé à utiliser extensivement la vue hebdomadaire pour déterminer les tâches du jour, mais c'est peu satisfaisant. L'utilisation de contextes me semble plus intéressant, mais c'est très difficile de résister à scheduler toutes les tâches. Il faudra donc faire émerger les cas pratiques et adapter les contextes. La suite au prochain numéro.

[23/Oct/2010] | [APRIL] | Link


Bienvenue dans le monde de Org-Mode

Mon camarade Fred est un utilisateur enthousiaste d'Org-mode, au point d'avoir mis sa vie en plain text dans Emacs et de faire de l'advocacy pour ce formidable outil.

J'ai donc tout naturellement jeté un coup d'oeil à la bête, mais une première tentative n'a pas donné grand chose : trop de flemme, trop compliqué, pas l'envie ni le besoin. Bref, comme la plupart des systèmes de todo utilisés par le passé, au bout de deux semaines, retour à la méthode de la todo liste écrite sur un coin d'enveloppe et des mails non traités empilés comme non lus dans la boîte de mails. Tristesse !

Ce week-end, lors d'une réunion de l'April, le besoin vital de suivre mes actions m'est apparu vraiment nécessaire, je me suis donc posé la question à laquelle une idée simple répond parfaitement : comment rendre indispensable l'utilisation d'un outil comme Org-Mode ? La réponse est : archiver tous les mails reçus dans Org-Mode. Et donc, pratiquer l'inbox 0.

La première étape consiste à trier les mails pourrissant dans la boîte aux lettres. Pour ça, pas de pitié, chaque mail doit subir l'un des trois traitements suivants :

  • traitement immédiat si cela nécessite deux minutes ou moins ;
  • poubelle ;
  • archivage dans org-mode.

Au bout d'une première journée de tri, je passe de plus de 450 mails à 45, que j'espère archiver complètement d'ici à ce soir. Pourquoi ne pas avoir tout archivé d'un coup ? J'ai tout simplement souhaité ne pas archiver par défaut tout ce que je ne savais pas traiter dès le début, pour ne pas me retrouver avec un Org-Mode rempli de tâches « à évaluer, » ce qui ne me semblait pas encourageant pour un début.

Cette méthode portera-t-elle ses fruits ? L'avenir le dira, mais j'avoue avoir eu le réflexe d'ouvrir Org-Mode ce matin au réveil, tout comme j'ai l'habitude d'ouvrir mon logiciel de mail (Gnus). Également, la sensation de zenitude lors de l'ouverture de la boîte aux lettres est très agréable, tout comme la possibilité d'attacher une date d'échéance aux choses à faire.

Moralité de l'histoire: une habitude peut facilement être créée en l'adjoignant à une autre habitude.

[11/Oct/2010] | [APRIL] | Link


LifeHacking, ne pas oublier l'aspect physique

Cet article a pour but de présenter un court lifehack que j'utilise désormais quotidiennement. D'abord, c'est quoi un lifehack ? D'après la définition de Wikipédia, un lifehack est une manière élégante ou non usuelle de résoudre un problème, généralement de productivité.

Le problème

Ceux qui me connaissent bien savent mon inorganisation dès qu'il s'agit de prendre des notes et de conserver les idées qui me passent pas la tête. C'est à vrai dire sans doute un travers assez répandu, qui consiste à faire confiance à sa mémoire alors qu'elle n'est pas faite pour se rappeler de détails.

J'ai déjà tenté à plusieurs reprises d'acheter un petit carnet et d'y noter ce qui est important, mais à chaque fois les tentatives se sont soldées par des échecs et par deux pages griffonnées suivies d'un carnet vide et moisi par le séjour prolongé dans une poche.

La solution

Ceux qui me connaissent très bien savent qu'une de mes perversions est la papeteriephilie. La visite d'une papeterie me fait instantanément saliver et aller dans un magasin de beaux-arts me fait le même effet qu'un(e) accroc de la mode dans une magasin de chaussures le jour de l'ouverture des soldes. L'odeur de l'encre fraîche ou le contact avec un beau papier ou une toile enduite me procurent un plaisir sensuel non dissimulé et c'est sans doute pour cela que mes techniques picturales préférées sont le pastel et l'aquarelle, où le contact avec le support est essentiel.

Pour me motiver à prendre des notes, j'ai pensé à allier l'utile et l'agréable. J'ai donc craqué et opté pour un carnet Moleskine dont j'avais envie depuis des années. Pour ceux qui ne connaissent pas, c'est un petit carnet noir à couverture rigide, dont la mystique est savamment entretenue par le fabriquant (un des arguments de vente étant qu'Hemmingway ou Picasso utilisaient de tels carnets). La texture du papier est très agréable, la reliure impeccable et plusieurs petits détails en font un objet très pratique à utiliser. Tout cela a évidemment un coût, ce sont plutôt des carnets de luxe.

Pour écrire et pour rester dans la même logique, j'utilise un stylo Waterman dont mon camarade Luc m'a fait cadeau et une encre noire.

À l'usage, c'est jusqu'à présent la tentative la plus réussie de prise de notes, car la manipulation agréable de l'objet la facilite. Et à vrai dire, la réussite est telle que lors des transports, je ressors régulièrement le carnet en me demandant « qu'ais-je oublié de noter ? »

En conclusion, ne pas négliger d'introduire une part de plaisir physique, voir animal dans la prise d'une nouvelle habitude. Il y a gros à parier que la motivation sera plus forte qu'avec tous les raisonnements de la terre.

Mon autre camarade Fred a décrit les bénéfices des la prise de notes systématique sur son blog.

[15/Feb/2010] | [LifeHack] | Link


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&nbsp;!

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


Rejoignez l'APRIL !

L'APRIL joue depuis 1996 un rôle majeur dans la défense et la promotion du logiciel libre. Pour continuer son action toujours plus importante et pour continuer à répondre aux nouveaux défis qui attendent le logiciel libre toujours plus nombreux, elle a besoin de moyens.

Ces moyens passent par une base d'adhérents solides. Chaque adhésion compte, le logiciel libre aura d'autant de poids qu'une association représentative existe.

C'est pourquoi Richard Stallman, le père du logiciel libre encourage les utilisateurs de logiciels libres à rejoindre l'association: « L'APRIL joue en France un rôle fondamental et unique pour la promotion et la défense du logiciel libre et de ses différents acteurs. La liberté informatique est un enjeu de société et il est essentiel, aujourd'hui plus encore qu'avant, de soutenir celle-ci en rejoignant l'APRIL. J'encourage tous les citoyens épris de liberté informatique à adhérer dès maintenant à l'APRIL ».

Vous vous sentez concernés par le logiciel libre ? Alors participez maintenant, adhérez !

[24/May/2007] | [APRIL] | Link


L'APRIL contre-attaque

Issu du communiqué de l'APRIL :

L'APRIL (Association pour la Promotion et la Recherche en Informatique Libre) a déposé ce jour au Conseil d'État une requête en annulation contre le décret du 23 décembre 2006 «relatif à la répression pénale de certaines atteintes portées au droit d'auteur et aux droits voisins» (NOR: MCCA0600979D).

Contrairement à l'intitulé donné par le gouvernement, ce décret ne vise en effet nullement des atteintes au droit d'auteur ou aux droits voisins. Il rend par contre passible d'une contravention de 4ème classe des actes légitimes comme, par exemple, la lecture avec un logiciel libre d'un DVD acheté dans le commerce, ou de toute autre information contrôlée par une mesure technique.

L'APRIL soutient dans son recours que, ce faisant, ce décret contredit le droit communautaire, méconnaît la loi DADVSI, contrevient à plusieurs principes généraux du droit, et menace la sécurité juridique du Logiciel Libre, déjà mise à mal par les dispositions légales complexes et parfois contradictoires relatives à l'interopérabilité.

En savoir plus sur le site de l'APRIL.

[21/Feb/2007] | [APRIL] | Link


De retour des SGL 2007

Ça y est, le salon solutions (GNU/) Linux 2007 est terminé. Un bon cru pour l'association, avec son lot de rencontres intéressantes, de partenariats et de trolls. Comme toujours, de nombreux adhérents impliqués, un stand qui déchire et des afters toujours sympas.

Les + de cette année :

  • un tee-shirt sympa qui s'est vendu comme des petits pains
  • l'adhésion de GCU-squad à l'APRIL, au cours d'une cérémonie inoubliable pour sceller ce rapprochement (non, les photos ne seront pas publiques !). Le GCU et l'APRIL se connaissent depuis 1998 où le squad avait débarqué pour nous donner un coup de main lors d'une manifestation, ça fait bien plaisir de croiser leur route à nouveau
  • une action de « nettoyage » du salon par le GCU (encore eux!) spectaculaire et ludique, qui nous l'espérons aura des répercussions sur les stands corporate l'année prochaine. Notons ainsi que de nombreux stands corporate utilisent des logiciels propriétaires pour leurs présentations, ce qui est un comble dans un salon du logiciel libre
  • une organisation très efficace du stand, notamment par Éva, notre assistante de direction. Des volontaires très motivés et qui maîtrisent parfaitement le discour
  • l'initiative candidats.fr, qui a été dévoilée pendant le salon et qui a déjà dépassé les 2000 signatures !

Les - de cette année :

  • seulement une cinquantaine de nouvelles adhésions sur le stand, ce qui est peu par rapport aux objectifs affichés et ce qui est dommage quand à l'implication de la communauté dans l'association
  • le t-shirt victime de son succès ! Nous avions vendu les grandes tailles dès le premier jour et à la fin du salon, seuls quelques tailles S subsistaient

Gageons que l'année prochaine, nous ferons encore mieux !

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


L'APRIL à Solutions (GNU/)Linux

L'APRIL possède un stand au salon Solution (GNU/)Linux dans le village associatif. Le salon se tient au CNIT, d'aujourd'hui mardi 30 janvier au jeudi premier février.

L'occasion pour tous de venir rencontrer des adhérents, discuter des actions de l'association et pourquoi pas venir nous rejoindre pour unir nos forces dans le combat pour le logiciel libre.

En outre, ça sera l'occasion de vous procurer un t-shirt collector de la collection printemps/été 2006 de l'APRIL. Pour la modique somme de 15 euros, affichez clairement votre soutien au logiciel libre ! En outre, c'est un splendide t-shirt parfaitement tendance et d'une qualité irréprochable. :-)

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


DADVSI à la radio

Pour ceux qui voudraient se tenir au courant, une émission de radio spéciale DADVSI aura lieu aujourd'hui dimanche 20 sur Radio Libertaire à 14h.

L'émission, toute nouvelle, sera animée par mon camarade Luc Fiévet et accueillera pour cette première session Christophe Espern et Tanguy Morlier. L'émission, mensuelle, traitera du logiciel libre et des problématiques afférantes. Pour rester dans le thème, elle sera librement diffusable et de la musique libre y sera programmée.

Je posterai un lien vers l'enregistrement dès que son URL sera connue.

[21/Jan/2007] | [APRIL] | Link


We now need a /debian-non-fr archive

French parliament just approved today DADVSI, the worst copyright law in Europe.

For those who don't know about DADVSI, this law is the French version of DMCA, supposedly created to fight against "piracy" and P2P, ended up in enforcing copyright in the worst way, making illegal previously licit uses of copyright material, like private copy or making de-facto illegal things like reading a DVD with free software. Parts of the DADVSI, like the so-called Vivendi Universal amendment explicitly makes programs than are "obviously" made to share illegally copyrighted material (sic, lawyers will have fun determining if a webserver is "obviously" a copyrighted material sharing program). Making available such programs will be of course illegal and debians mirrors will risk three years of jail ... will Debian continue shipping amule on its French mirrors?

As a conclusion for this months long fight that proved majority does not care neither about democratic procedures nor the 170.000 citizens that signed the EUCD.INFO petition, we still has a chance constitutional council declares DADVSI as anti-constitutional.

Scary, heh?

[30/Jun/2006] | [Debian] | Link


Peu de droit d'auteur ne tue pas le droit d'auteur

Une réflexion m'est venue dernièrement en cherchant un exemple de société commerciale basant son activité sur une application permissive de son droit d'auteur, en dehors de l'informatique libre ou même de l'informatique où ces choses sont monnaies courantes.

Je pratique assez régulièrement les jeux de stratégie (les vrais, où on pousse des bouts de carton sur un plateau) et parmi ceux-ci, ASL, vénérable ancêtre du jeu de stratégie et développé sous licence Hasbro par la société MMP. Pour la petite histoire, ce jeu a été créé pour sa première version en 1977, a connu son essort dans les années 80 puis comme la plupart des jeux de stratégie sur plateau a souffert de la montée des jeux vidéos jusqu'à devenir assez confidentiel. Il faut dire que pour jouer, il faut acheter un classeur de règles, lire au minimum plusieurs dizaines de pages écrites petit et débourser disons 200 bons euros pour acheter quatre ou cinq extensions nécessaires. Inutile de dire que c'est assez dissuasif.

Puis vient VASL, un logiciel libre permettant de jouer à ASL par internet en déplaçant des pions sur une carte virtuelle. Ce qui est très intéressant est que VASL contient tout ce qu'il faut pour jouer à ASL sans rien acheter d'autre que le classeur des règles (et encore) : les cartes, les pions et les scénarios originaux numérisés.

Là où beaucoup de sociétés commerciales auraient attaqué le créateur de ce logiciel, ni MMP ni Hasbro ne le font pour leur plus grand bien car la popularité de VASL a permis à de nombreux joueurs de découvrir le jeu, de trouver des partenaires et ensuite d'en acheter la version physique. Aujourd'hui, ASL est un jeu dont le succès va grandissant et il a fort à parier qu'en s'arrogeant une plus grande part du gâteau, MMP se serait retrouvé avec une part moisie de la taille d'une miette.

Qu'on ne se trompe pas, ni MMP ni Hasbro ne renoncent à leur droit d'auteur. Pourtant, en renonçant à l'appliquer de manière stricte, ils ont développé une communauté d'utilisateurs passionnés et certainement sauvegardé leur activité. Leurs utilisateurs n'achètent t'ils plus leurs créations parce qu'elles sont gratuitement téléchargeables ? Non, au contraire !

Bref, c'est un bon exemple que certaines industries devraient suivre (suivez mon regard) et à mon sens une preuve que l'application extrémiste forcenée du droit d'auteur telle qu'on la voit un peu partout actuellement est loin d'être une réponse universelle.

Si d'autres personnes ont de bons exemples de sociétés hors de l'informatique ayant réussi à développer leur activité en appliquant de manière très permissive leur droit d'auteur (pas forcément en accord avec la stricte définition du libre), je suis preneur.

[20/Apr/2006] | [APRIL] | Link


You are too elite to use my crap

Daniel, I'm afraid you are guilty of Argumentum ad populum.

I would really like to see those millions of Gnome users confused by this small white square called a GtkTextEntry that every gnome zealot invokes when asked why keyboard support disappeared from a lot of Gnome features.

What is funny is that the very Gnome Human Interface Guidelines ask not to [...] Limit Your User Base and that is exactly what the Gnome developers do. Stating that a typical Gnome user does not want keyboard is simply false. My own experience let me think a substantial part of Gnome users want both (and the Ctrl-L thingy does not count as keyboard support, it is just crap).

I would perfectly understand Gnome developers prefer it this way, after all it is their choice. But don't say it is for users sake. And be prepared to loose many users with unique needs.

[04/Feb/2006] | [Debian] | Link


How surprising!

I always knew I had the best of everything.

Your Inner European is French!

Smart and sophisticated.

You have the best of everything - at least, *you* think so.

Who's Your Inner European?
[13/Jan/2006] | [Debian] | Link