Archive for the 'Internet' Category

Page 2 of 4

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.

blogit.vim

Cela faisait un moment que j'en avais marre de passer par mon navigateur pour écrire mes billets sur ce blog. Les raisons sont simples, tout d'abord j'utilise communément vim comme éditeur de texte, et il m'est assez insupportable d'écrire du texte dans les textarea Qt où je ne bénéficie pas des raccourcis et de ma configuration de vim. En outre, j'ai horreur du web, et je ne supporte pas de passer par l'interface d'administration de WordPress que je trouve lourde de javascript.

C'est pourquoi lorsque pankkake m'a appris l'existence d'un script vim pour publier des billets WordPress par XML-RPC, je fus enchanté.

Cependant, certaines choses de ce script ne me satisfaisaient pas. D'une part, je n'aimais pas la syntaxe des meta-data, je préférais afficher celles-ci dans le style mail, afin que cela me rapproche plus de l'écriture d'un e-mail avec mutt.
En outre, après édition du code source (qui, agréable surprise, est en Python), j'ai vu des horreurs du code, du style :

("".zfill(size-len(p["postid"])).replace("0", " ")+p["postid"])

Qui a en fait pour but de faire, en se compliquant la vie, ceci :

'%5d' % int(p["postid"])
# Ou pour être exact :
('%%%dd' % size) % int(p["postid"])

Il a également eu la bonne manie d'entourer chacune de ses fonctions par :

try:
    # ...
except:
    sys.stderr.write("An error occured")

Ce qui est très laid.

En bref, vu l'horreur que cela représente, j'ai décidé d'écrire un plugin de zéro afin de rendre ça un peu plus agréable à utiliser et le code un peu plus propre.

Ceci a abouti à ce super script blogit.vim, qui possède l'API suivante :

  • :Blogit ls — affiche la liste des articles (entrée sur un article l'édite)
  • :Blogit new — créer un nouvel article
  • :Blogit edit <id> — édite un article
  • :Blogit commit — enregistre l'article courant
  • :Blogit push — publie l'article courant
  • :Blogit unpush — retire la publication de l'article
  • :Blogit categories — liste les catégories
  • :Blogit rm <id> — supprime un article

blogit.vim est releasée en version 1.0.

Ce présent billet est d'ailleurs le premier écrit avec ce script, et j'espère que sa commodité d'utilisation m'incitera à écrire plus fréquemment :

screenshot
Billet écrit avec vim : coloration syntaxique, correction orthographique, fonction undo/redo, etc.

Des chansons d’anthologie

Afin de mettre un peu de culture dans ce blog qui en manque cruellement, voici une petite note pour parler d'un site que ma femme pankkake vient d'ouvrir, favorisant l'émancipation musicale dans un monde où les majors du disque passent leur temps à essayer de sauver leurs parts de marchés en attaquant la liberté d'échanger du Britney Spears sur Internet.

Je vous présente, donc :

Gronipute

AdopteUneFillette

Veron (8 ans, Paris 8e) vient d'adopter un mec en ile-de-france

Serveur de fonctionnaires

J'en conclu donc qu'on ne peut y accéder qu'entre 21h59 et 22h00 ?

Peerfuse 0.0 released

Peerfuse paraît aujourd'hui dans sa version 0.0.

En effet, bien qu'utilisable, le numéro de version traduit le fait qu'il est encore pleinement en développement et qu'il ne faut pas l'utiliser en production, ainsi que la présence éventuelle de divers bugs.

En outre, bien que le concept est présenté, divers éléments d'implémentation sont susceptible d'évoluer, comme la DHT utilisée, etc.

Vous pouvez télécharger les sources sur le site de Peerfuse.

Diverses documentations sont présentes à cette adresse.

Le réseau peerfuse-net officiel, Peerfuse.net, est accessible. Vous pouvez lire ici comment le rejoindre.

Enfin, si vous souhaitez nous rejoindre afin de discuter du développement sur le salon IRC #peerfuse@freenode, vous êtes la bienvenue.

Une mailing list est également à votre disposition.

Lancement du réseau peerfuse.net

Hier soir, après de nombreux efforts, le réseau peerfuse.net a été lancé !
Les premiers peers ont rejoint le réseau (que des développeurs et quelques testeurs), et il s'agit bien évidemment d'un réseau "beta", car Peerfuse risque d'évoluer encore fortement (notament au niveau du protocole) cette semaine jusqu'à la sortie de la 0.1.

Nous avons pu procéder à des tests grandeur nature, ce qui n'avait jamais été le cas jusqu'alors (uniquement en local), et la conclusion est la suivante : ça marche !

Enfin... presque. Nous avons tout de même découvert des bugs (dont une partie est corrigée; hier a été une journée particulièrement productive de ce côté là), mais le premier fichier a été transféré avec succès.

Les pairs possédant un certificat et étant connecté au réseau forment la topologie suivante :

sunigav.vaginus.org (1)
|- nivagus.vaginus.org (2)
|- hubb_server (3)
|  `- hubb (4)
|- moonpa.inl.fr (5)
|- lids (6)
`- dehy (7)

Continue reading 'Lancement du réseau peerfuse.net'

Peerfuse 0.1 annoncé pour le 2 mai 2008

Ainsi que les lecteurs attentifs le savent, Peerfuse est un projet de système de fichier distribué pair à pair utilisant la bibliothèque FUSE.

Après quelques mois de développement, la version 0.1 devrait être prête pour le Vendredi 2 mai 2008 !

Beaucoup de travail a été fournis par lodesi et moi même, et le projet est quasiment utilisable. Bien sur, il est loin d'être terminé, seules les fonctionnalités de base sont présentes ;

  • Connexion des pairs entre eux
  • Synchronisation des arbres
  • Transfert des fichiers

Ce sont les fonctionnalités fondamentales qui permettent (malgré un manque côté sécurité) d'utiliser le projet dans son but premier : le partage de fichiers via un système de fichier virtuel.

Les principales fonctionnalités manquantes et qui seront développées après la 0.1 sont :

  • Redondance automatique des fichiers dans le réseau
  • Optimisation des transferts (par la détermination de la qualité d'un lien, etc)
  • Gestion des permissions
  • Utilisation de systèmes cryptographiques d'encryption et de signature relatifs aux permissions des fichiers, afin qu'il soit impossible de lire ou d'écrire des données auxquelles on a pas accès
  • Interface graphique. Ça sera développé en tant que projet à part par hubbb, et permettra d'assurer des fonctionnalités supplémentaires qu'on ne peut pas retrouver avec l'interface de FUSE (comme la constitution des groupes, système de discussion avec les autres pairs (à un pair en particulier, à un groupe ou à tout le monde, ce que je trouve intéressant afin de créer une communauté autour du projet)).
  • Bien sur, afin d'assurer ces fonctionnalités supplémentaires, une petite application ncurse pourra être utilisée à la place de l'interface graphique

Il reste encore beaucoup à faire, et nous espérons que la 0.1 permettra de faire connaître le projet et de trouver des contributeurs.

Dans ce sens est d'ailleurs prévu une petite soirée de lancement le vendredi 2 mai à 19:00, au Dock's café (Paris, XIXe).
N'hésitez pas à venir si vous êtes intéressé par le projet, afin de faire connaissance et de boire quelques bières en discutant de Peerfuse. Quelques t-shirts seront donnés aux futurs contributeurs ;)

Nous vous invitons à nous rejoindre sur le salon IRC #peerfuse@Freenode si vous souhaitez avoir plus d'informations sur le projet ou sur la soirée.
Une mailing list devrait par ailleurs être prochainement créée.

Rapport de l’étude sur la corrélation entre la taille des pénis et les logiciels

D'éminents experts (moi) ont lancé une étude sur le thème "Influence de la taille de son pénis ou de ses seins sur le choix des logiciels utilisés".

Dans ce cadre, les internautes ont été invités pendant un peu plus d'une semaine, à répondre à un questionnaire en ligne.

Preuve de leur engouement pour le sujet, nous avons obtenu 2022 réponses !

Le rapport est en ligne, et ce que l'on peut affirmer, c'est que la preuve est faite qu'utiliser des logiciels libres agrandit la taille du pénis (et vice-versa).

Concentrons-nous sur les deux points majeurs de cette étude que sont les rubriques "Systèmes d'exploitation" et les "Editeurs de texte" :

Continue reading 'Rapport de l’étude sur la corrélation entre la taille des pénis et les logiciels'




Bear