Author Archive for Romain

Activité IRC

Je suis tombé hier sur le post suivant :

http://www.phoboslab.org/log/2010/05/9-years-of-sleep

J'ai trouvé l'idée surpuissante, malheureusement, d'une part il n'a pas rendu public son code, et d'autre part, de toute façon, il opère sur des logs mIRC, moi même utilisant irssi.

C'est pourquoi je me suis mis en tête de réaliser un programme ayant pour but de générer un graph similaire, à partir de mes sept ans de logs.
Et ça donne ça :

Mon irssi étant lancé en permanence, plutôt que de regarder les ouvertures/fermetures de session, je tente de deviner les moments où je suis actif sur IRC (donc où j'écris), avec un idle time de deux heures.

Ayant plus de 500Mo de logs, j'ai écris le programme en C, avec la possibilité de lancer des jobs simultanément, ce qui au final s'est révélé peut-être overkill, puisque sur ma machine cela s'exécute en moins de dix secondes.

Ne trouvant rien de satisfaisant pour faire des graphes comme celui-ci, je dessine moi-même l'image avec Imlib2 (qui a une documentation et une API bien moisie, au passage).

Ainsi, contrairement à mon con mais néanmoins frère cité au début, je mets à disposition les sources, que vous pourrez trouver sur le dépôt git :

$ git clone git://git.symlink.me/pub/romain/irssleep.git

Lire README pour savoir comment compiler et exécuter.

À titre d'information, pour ma part je lance la commande suivante :

$ ./irssleep -j 5\
             -n romain\
             -e 1/5/2003,1/8/2006,School\
             -e 1/2/2005,Black-hole\
             -e "10/12/2006,Irssi at home"\
             -e 1/10/2006,31/6/2008,Bordeaux\
             -e 10/7/2008/,27/08/2009,INL\
             -e 15/12/2008,Katin\
             -e 1/12/2009,1/1/2011,Proformatique\
             irclogs/**/*

Le suppositoire du web

Le web, c'est le mal. Et pourtant, on est contraint de vivre avec lui au quotidien, puisqu'il semble que le Cloud Computing est la voie de l'avenir.

Mes amis, allons nous rester les bras ballants, à devoir supporter l'utilisation de navigateurs tous plus lourds les uns que les autres, ne s'intégrant pas dans notre environnement de bureau ? Mais pire encore, qui nous font perdre notre liberté. La liberté de choisir les applications que l'on souhaite, le traitement de nos données par des logiciels tiers, la liberté de bénéficier de l'ergonomie qui nous arrange ?

Heureusement, ces contraintes sont peut-être bientôt révolues. Je tiens en effet à vous présenter weboob.

Projet complémentaire à Minbif, qui permet d'utiliser son client IRC favori pour accéder aux réseaux de messagerie instantanée, qui sort ce lundi 5 avril en version 1.0.2, et au sujet duquel une conférence se déroulera aux RMLL 2010, weboob (WEB Out Of Browsers) se veut un espoir pour tous les révoltés qui ne supportent plus d'être à la merci des ”webmaster”.

Weboob est un projet qui a pour but de réunir un nombre important de modules maintenus pour divers sites web, offrant une interface logique avec eux. Chaque module implémente des capabilities, décrivant les services offerts.

À partir de là, des applications utilisateurs sont réalisées, reposant sur des modules implémentant telle ou telle capability, et permettant une interaction riche avec les sites web.

La particularité est que la couche d'abstraction offerte par weboob permet aux applications de ne pas se soucier des modules qui sont chargés. L'utilisateur rempli une première fois une configuration en sélectionnant les sites web qu'il souhaite voir utilisé, et avec quelle configuration. Puis après, quelque soit l'application utilisée, il n'aura plus à se soucier des sites qui sont derrière les opérations qu'il effectue.

Continue reading 'Le suppositoire du web'

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.

À moi les putes éoliennes

Aujourd'hui, billet branlette.

Ainsi que mes vrais amis le savent, j'ai quitté la société EdenWall Technologies (feu INL), fin août dernier, pour diverses raisons que j'ai la pudeur de ne pas évoquer ici.
Je ne remets malgré tout pas en cause les deux années que j'ai passé au sein de l'entreprise, que j'ai vu grandir, où je me suis beaucoup plu, et suis plutôt fier de ce que j'ai pu apporter. Néanmoins, tout a une fin.

J'ai donc profité de mes quelques mois de répit pour, outre glander et picoler, bosser à plein temps sur Minbif, projet qui a atteint sa version 1.0 fin novembre, et qui est pour moi un aboutissement.

Ce qui m'a permit de débuter sereinement début décembre mon embauche chez Proformatique, une société éditrice de la solution de téléphonie sur IP libre XiVO, en tant que développeur (pour le moment principalement sur le PABX Asterisk). C'est vraiment intéressant comme domaine, qui n'a aucun rapport avec celui de la sécurité que j'ai connu à INL, et faire du C me change du Python. En bonus, la majeur partie du code que je produis est libre.

Enfin, dernier changement récent, j'ai déménagé ce week-end, pour passer de la ville des gentilles à la ville des putes, où se localise ma nouvelle boite. C'est ainsi depuis une connexion à un HotSpot Wifi Neuf que j'ai le privilège d'écrire ce billet, ce qui n'est pas un cadeau vu la médiocrité du débit et de la fiabilité de la connexion. Et ça risque de durer encore un peu puisque mon appartement ne possède pas encore de ligne téléphonique.

Ces quelques bouleversements vont peut-être m'aider à prendre un nouveau départ et combattre les diverses phases de dépression que je subi depuis près d'un an.

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 :)

Un bouchon trop loin

Ce soir, malgré la chaleur étouffante de cette journée aussi exténuante qu'inutile, j'ai décidé d'aller faire les courses, parce que bon ça ne m'était pas arrivé depuis bien deux mois. Ce n'est pas la pénurie de nourriture ou d'alcool qui a motivé ma décision, mais le fait que depuis une semaine, je suis obligé de racler dans mes trois ou quatre anciennes bouteilles de gel-douche (car je n'aime pas jeter, puis je ne sors jamais les poubelles de toute façon) pour récupérer trois gouttes nécessaires pour me laver.

Je me suis concentré sur l'achat d'articles non périssables, histoire de planifier mes prochaines courses à dans deux mois également, afin de garder le rythme, mais sans faire ce que j'ai fait jusqu'à maintenant, c'est à dire durer un mois sans vivres avant de craquer. J'ai entre autre acheté deux bouteilles de jus d'orange en verre pur jus, et j'étais très content d'en avoir fait l'acquisition, car l'eau ne fait pas partie de mon alimentation. J'aurais préféré des bouteilles en carton de deux litres, comme j'en achète égoïstement au boulot, mais il n'y en avait pas. Je le regrette maintenant, car on verra plus tard que ce détail a son importance.

Or, tout à l'heure, je souhaitais me servir un verre de ce nectar (puisque je ne suis pas une fille), et il se trouve qu'après avoir remué et donné la fessée à la bouteille, le bouchon refusait de se dévisser, malgré tous les efforts que je mettais en œuvre grâce à ma force reconnue d'herculéenne. Las, j'ai laissé tombé, et remis la bouteille au frigo.

Un peu plus tard, ressentant un besoin vital de boire, je souhaitais retenter l'expérience, sans plus de succès, malgré le repos dont ma main a pu bénéficier entre temps. Je décidai alors d'essayer sur la seconde bouteille. Même résultat. C'est alors que dans le désespoir le plus total, je pris ma fourchette pour la coincer entre le verre et le bouchon, dans le but inespéré d'élargir ce dernier. Évidement, ma fourchette a flanché la première.

Et c'est là que l'idée miraculeuse m'est venue. J'ai pris mon couteau à viande, et j'ai tapé sur le dessus du bouchon de coups forts et répétés. J'ai ainsi percé un trou dedans, et j'ai pu me servir un verre de jus d'orange frais bien mérité.

Et c'est ainsi que, face à l'incompétence des cons qui ont conçu ce bouchon, j'ai dans mon frigo une bouteille non ouverte avec du papier aluminium sur le dessus.

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 $



Bear