Archive for the 'Linux' Category

Roadmap 2010 Minbif sur IRC

Minbif est déjà une passerelle IRC vers réseaux de messageries instantanées stable et largement utilisable.

Néanmoins, afin de mieux satisfaire les attentes des utilisateurs, une réunion Roadmap 2010 va être organisée, afin de parler des objectifs de cette nouvelle année, les futures fonctionnalités que vous souhaiteriez voir dans Minbif, comment innover, mais aussi comment gagner en popularité, quel type de marketing on pourrait faire autour de Minbif, etc.

Minbif vivant grâce à sa communauté, tout le monde peut se joindre à nous pour cet évènement :

Où:    #minbif-roadmap sur Freenode.
Quand: on Thursday 4th March 2010
De:    21:00 CET
À:     23:00 CET
De:    01:00 CET
À:     03:00 CET

Vous pourrez nous aider à rendre Minbif meilleur !

Facebook et Minbif

Ainsi que vous le savez si vous êtes in et que vous suivez l'actualité du moment, Facebook a récemment mis à disposition un serveur XMPP afin de dialoguer avec vos contacts par le biais de votre client Jabber préféré.

Minbif n'échappe pas à la règle, puisque le plugin Jabber de libpurple est parfaitement fonctionnel (mieux que chez les autres).

Cependant, ainsi que le fait remarquer pankkake dans une news du projet Minbif, l'encryption est désactivée des serveurs de Facebook. Ainsi, si vous souhaitez utiliser votre compte Facebook avec Minbif, vous devez paramétrer ce dernier correctement :

/map add jabber USERNAME@chat.facebook.com PASSWORD &fb -!require_tls

Il est à noter que vous allez devoir renommer tous vos contacts tant bien que mal, puisque Facebook n'a pas pris la peine de leur attribuer une adresse jabber correcte, et que vous verrez apparaître dans votre Buddy List des identifiants tout à fait disgracieux. Mais quand on est inscrit sur Facebook, on n'est plus à ça près.

MAJ: Quelqu'un sur #minbif a écrit un script pour irssi qui automatise le renommage. Vous le trouverez dans le dépôt git public de Minbif.

Du journalisme total

Il y a quelques semaines, j'ai eu le plaisir d'apprendre que Minbif était présent dans le GNU/Linux Magasine France Hors Série n°46, au sein d'un article intitulé “Toutes vos messageries instantanées dans votre client IRC : Irssi et Minbif”.

Ni une ni deux, je décide d'aller acheter ce numéro. Malheureusement pour moi, ce jour là était un dimanche. J'ai donc tenté de trouver un marchand de journaux ouvert. Ce fut une épreuve difficile, qui m'obligea à parcourir à pieds du Kremlin Bicêtre à Tolbiac, puis tout Châtelet, sans succès. Je suis alors allé aux Quatre Temps à la Défense, où j'ai découvert que le dimanche, la quasi totalité des magasins étaient ouverts, tous plus utiles les uns que les autres (marchands de montres, de bijoux, de fringues, etc.), sauf — évidement — le marchand de journaux qui était fermé.

Je dû donc attendre le lendemain pour trouver en kiosque ce magasine, qui coûte tout le même la modique somme de 6,50€, et je peux dire que je regrette d'avoir dépensé autant d'énergie pour le trouver.

En effet, cet article se voulait être une sorte de tutoriel destiné à expliquer comment installer et configurer Minbif. Pourquoi pas. Le problème tout d'abord est qu'il rentre dans le sujet sans même expliquer vraiment les concepts et la philosophie de Minbif. Il ne parle pas non plus de BitlBee, de l'historique, etc. Je trouve ça déjà dommage, parce que si c'est juste une sorte de “Quick Start”, le site de Minbif regorge déjà d'une documentation relativement dense et complète.

Ensuite, ce qui est franchement regrettable, c'est qu'il donne information que de fonctionnalités de base (ajouter un compte, discuter avec ses contacts) ou mineures et évidentes (mettez vous absent), sans parler des véritables atouts de Minbif (gestion des transferts de fichiers, de la webcam, etc.).

Enfin, l'auteur a eu l'air de trouver utile d'écrire une section sur comment “Automatiser les connexions”. Outre le fait que je la trouve spécialement longue pour décrire un aspect de configuration pas très utile, la solution qu'il a apporté pour résoudre ce faux problème, est particulièrement crade (rajouter un autosendcmd = "/connect localhost 6667 passwd"; sur l'ircnet Debian).

Pour conclure, je dirais que j'ai non seulement été déçu par cet article, mais aussi par la totalité de ce Hors Série. Je trouve que la majeur partie des articles n'apportent rien de nouveau sur des sujets qui ont été traités à maintes reprises, même au sein de GLMF.
Ceci s'explique peut-être par le fait d'avoir choisi comme auteur principal pour ce Hors Série un individu qui semble aussi peu destiné à la voie rédactionnelle qu'à celle du développement.

CACAcam

La communication est une nécessité dans notre société moderne, dont personne ne peut se passer, sous peine de se voir coupé du monde et d'être réduit à l'état d'ermite. La webcam joue un rôle important dans ce besoin d'échanges par Internet, permettant d'atteindre les interactions les plus folles.

Mais qu'en est-il pour le geek qui reste cantonné à son bon vieux terminal, se restreignant à IRC, ou tout au plus profitant d'outils dépassés tels que BitlBee pour accéder aux messageries instantanées, sans avoir même la possibilité d'échanger de fichiers, contraint de se passer de toute autre forme d'échanges que celui du texte ? N'a-t-il pas le droit lui aussi de bénéficier des cam hots après avoir récupéré une proie facile et dépravée sur messagerie instantanée depuis le site de rencontre Adopte un mec ?

Heureusement pour lui, les laboratoires Symlink Me apportent la solution !

MinBif, cette passerelle IRC libre vers plus d'une quinzaine de réseaux de messageries instantanées, déjà évoquée ici, et qui est parue la semaine dernière en version 1.0beta, propose maintenant, outre le support des transferts de fichiers dans les deux sens, la CACAcam.

Cette fonctionnalité permet de réceptionner, sur les réseaux de messageries instantanées supportés*, le flux de la webcam de son correspondant, et de l'afficher en ASCII Art dans son client IRC favori.

Comment cela marche-t-il ? Une fois accepté la proposition de session webcam, vous vous verrez proposé par le serveur un DCC CHAT. Celui-ci établi, vous recevrez les frames dans la fenêtre correspondante. Associé à un plugin irssi, vous verrez, dans la fenêtre de discussion de votre contact, une zone sur le coin supérieur droit contenant l'affichage de la vidéo.

Un exemple parlant davantage, voici, cachée derrière cette capture d'écran, une vidéo montrant le système en œuvre :

cacacam
Vidéo sous format OGV

MinBif 1.0beta2 devrait paraître très rapidement afin de proposer cette évolution majeure. Retrouvez ici les informations complémentaires sur la CACAcam.

* Dans la limite des réseaux de messageries instantanées dont libpurple supporte le flux vidéo.

Évolutions MinBif

Transferts de fichiers

Fonctionnalité tant attendue des grands mais aussi des petits, c'est le transfert de fichiers.

Absente de BitlBee, réclamée de tous, primordiale dans les rapports sociaux sur messagerie instantanée, MinBif l'a faite !

Le fonctionnement est simple. En réception, lorsque vous acceptez de réceptionner le fichier, le téléchargement débute entre IM->MinBif en background. Dans le même temps, MinBif vous propose un DCC, et le transfert MinBif->IRC User se fait en parallèle.

Pour l'envoie, ce serait pareil, sauf que ce serait exactement le contraire. L'utilisateur enverrait le fichier par DCC à MinBif, qui lui lancerait le transfert vers IM.

Pour le moment, seule la partie réception est implémentée, et la partie d'envoi devrait être faite sous peu.

Webcam

Aujourd'hui est parue libpurple 2.6. Dans le ChangeLog apparaît un point vraiment très intéressant :

libpurple support maintenant la voix et la vidéo !

C'est une très bonne nouvelle pour MinBif, car ce sera l'occasion d'implémenter la CACAcam.

Une autre idée plus user friendly et usefull m'est venue ce matin, ce serait d'ouvrir un flux DCC CHAT entre MinBif et l'utilisateur, dans lequel on ferait transiter les frames de la vidéo, et d'avoir un script irssi qui l'affiche dans une fenêtre. Et si irssi est lancé sur un serveur, encore rajouter une couche pour que les données arrivent jusqu'à votre machine :)

Source code should look professional, even if some developers are not.

Ça, j'aime ! Le commit de Matthew Barnes, un employé Redhat, sur Evolution, m'a bien fait rire :

2009-04-12  Matthew Barnes  <mbarnes@redhat.com>

       ** Remove a bunch of juvenile comments.  Source code should
          look professional, even if some developers are not.

La première chose que je constate, c'est que je ne suis pas le seul à avoir du mal avec la glib, lorsque l'on voit des structures comme _glib_sux_donkeys, et des fonctions comme g_lib_sux_htor, g_lib_sux_htand, ou des commentaires qui veulent tout dire comme /* fucking glib... */. Je dois avouer que la fonction courier_imap_is_a_piece_of_shit est assez sympa aussi, tout comme ce commentaire qui finalement veut tout dire :

/* FIXME: please god, when will the hurting stop? Thus function is so
   fucking broken it's not even funny. */

Je préfère donc avoir recours à un MUA sérieux dont les développeurs ont davantage de respect pour le code que pour leurs utilisateurs :

rom1@nasiguv ~/mutt-1.5.17 $ grep -i fuck *
rom1@nasiguv ~/mutt-1.5.17 $ grep -i shit *
rom1@nasiguv ~/mutt-1.5.17 $ grep -i crap * -A 1
init.c:/* initial string that starts completion. No telling how much crap
init.c- * the user has typed so far. Allocate LONG_STRING just to be sure! */
rom1@nasiguv ~/mutt-1.5.17 $

Ses comptes bancaires en ligne de commande

Ceux qui maintenant savent comment sortir son python pour draguer seront peut-être intéressé d'apprendre que j'ai réitéré l'expérience avec le site de la BNP Paribas.

En effet, las d'avoir à passer par Firefox pour aller sur un site lent et mal codé afin de savoir si je peux encore me permettre de sortir me bourrer la gueule, j'ai repris l'idée que j'avais eu pour AuM, et ai profité de mon arrêt maladie d'aujourd'hui pour écrire un petit programme dont le but est d'avoir une commande à lancer pour récupérer dans son terminal l'état de ses comptes :

$ ./bnporc.py -l 30141xxxxx list
Password:
  Compte                       Solde       À venir
+---------------------+--------------+-------------+
  Compte de chèques         xxx65.12       -160.18
  Livret Jeune              xxx71.86          0.00
  Prêt personnel            xxx46.39          0.00

Les 'x' sont placés à postériori dans l'unique but de maintenir ma vie privée.

Continue reading 'Ses comptes bancaires en ligne de commande'

De l’indépendance de la CNIL

Une information intéressante, que je n'ai pas vu beaucoup relevée sur Internet, m'a été dévoilée par le Canard Enchainé de cette semaine.

On peut lire ici ou que la CNIL s'est « réveillée »¹ après le vote de la loi dite HADŒPI à l'assemblée puis au sénat, pour s'indigner de certains points et s'affirmer résolument contre.
Or, ce qui n'est que rarement dit, c'est que malgré la position de la CNIL, son président, Alex Türk, qui accumule le poste de sénateur, a voté en faveur du texte le 13 mai.

On en tire les conclusions que l'on veut…

Notes :
1. pour être exact, due à une fuite, le gouvernement ayant bâillonné la CNIL.

Minbif 1.0alpha

Je vous parlais dans un autre billet du projet précédemment appelé BitlBee2, qui est une passerelle IRC vers des réseaux de messagerie instantanée.

Sur le site du projet se trouvent l'annonce de la release, incluant le ChangeLog et l'archive de la release.

Je dis précédemment appelé bitlbee2, tout simplement parce qu'en raison d'un conflit avec Wilmer, un des auteurs de BitlBee, suite à quelques échanges par email, puis des commentaires de sa part peu cordiaux sur mon autre billet, le projet a été amené à être renommé.

Cette version alpha a pour but de présenter le projet qui se trouve être dans un état utilisable, reprenant les principales fonctionnalités de BitlBee.

Du caca dans bitlbee

MAJ: Ainsi que l'on peut le voir dans les commentaires, j'ai tenté de contacter par email Wilmer, un des auteurs de bitlbee, afin de lui parler du projet et d'avoir son avis concernant l'éventuelle utilisation du nom bitlbee2 pour le projet. L'accueil a été très cassant, me demandant de changer le nom, et cherchant à critiquer le projet plutôt que de voir les bonnes idées que j'essaie de pratiquer dans ce projet.
Je reviendrai sur cette histoire dans un billet prochain. En attendant, le projet s'appelle maintenant Minbif.

Tout le monde connaît bitlbee, cette passerelle IRC vers des protocoles d'IM, qui a été créée il y a sept ans et qui est connu notamment pour son support Jabber désastreux.

Lorsqu'il fut créé, ce projet avait pompé du code de GAIM, un logiciel de messagerie instantanée d'abord orienté AIM puis qui est devenu multi-protocole. Bien évidemment, les récupérations upstreams se sont avérées faibles ou inexistantes, ainsi bitlbee bénéficie d'un support de très peu de protocoles : MSN Messenger, AIM, Yahoo et Jabber. En plus de ça, le code des protocoles de bitlbee est hacké de tous les côtés, et le support Jabber a mis très longtemps avant de devenir stable, même si il reste incomplet.
En outre, bitlbee ne supporte qu'une ancienne version du protocole de MSN Messenger (MSNP8 alors qu'on en est à MSNP15), qui ne supporte pas les transferts de fichiers, et est très peu robuste. Un patch avait été établi sur une ancienne version de bitlbee pour supporter le protocole MSN9 et MSN Plus!, mais il ne fut pas intégré à bitlbee, notamment en raison de fonctionnalités potentiellement coûteuses comme le transfert de fichier, posant d'éventuels problèmes sur leur serveur bitlbee public.

Ayant une installation propre de bitlbee, ne supportant plus les limitations de bitlbee, ne souhaitant pas m'attaquer au code incompréhensible (que j'avais eu l'occasion d'appercevoir lorsque j'avais fais un patch), et ayant du temps à perdre (bon ce n'est pas tout à fait vrai), je me suis donc lancé dans l'écriture d'une version 2 de bitlbee from scratch.

Écrit en C++, le grand apport de Bitlbee 2 est d'utiliser la libpurple, cette bibliothèque en C (avec la Glib) créée par et pour Pidgin, le nouveau nom de GAIM après un litige avec AOL, offre toute l'API nécessaire et suffisante pour créer des comptes permettant de se connecter à n'importe lequel des 13 protocoles supportés de base (sans compter les plugins) de façon transparente, gérer la liste des contacts, le transfert de fichier, etc.

Cherchant à éviter les défauts conceptuels de bitlbee, les changements fonctionnels seront (en partie) les suivants :

  • Suppression du robot root. Tout passe maintenant exclusivement par des commandes IRC.
  • Un compte est représenté par un serveur IRC. Ceux qui ignorent l'architecture d'un réseau IRC, celui-ci est composé de plusieurs serveurs reliés les uns aux autres, généralement en étoile.
  • La commande /map est utilisée pour lister les comptes, mais aussi en rajouter, en supprimer ou en modifier.
  • Pour se connecter à un compte, la commande à utiliser est naturellement /sconnect, et /squit pour s'y déconnecter.
  • Remplaçant l'identifiant numérique unique de bitlbee1, il y a maintenant deux manières de représenter un compte. L'identifiant court se présente sous forme <proto><num> ou sous forme longue (utilisée pour les serveurs) <username>:<proto><num>. Par exemple, romain@example.com:jabber0.
  • Chaque compte a son propre salon de statut. Il est également possible de faire partager le même salon de statut à plusieurs comptes.
  • Les salons de statut débutent par '&' alors que les salons sur IM débutent par '#'.
  • La commande /invite sera utilisée sur le salon de statut pour ajouter quelqu'un dans ses contacts.
  • La commande /kick pourra être utilisée pour retirer quelqu'un de ses contacts, et /ban pour bloquer le contact.

Le but à terme est de réimplémenter toutes les fonctionnalités de bitlbee à travers les commandes IRC, et des extra. Je me suis par exemple intéressé ce matin à réaliser ceci :

rendu ASCII-art de l'avatar avec libcaca

Malheureusement, libpurple ne supporte pas la webcam, ce qui est fort dommage, mais j'ai d'autres idées sympa en tête.