Divers projets, astuces de programmation, enfin ça touche de près ou de loin à du code !
Vous ne connaissez peut être pas Ohloh, il s'agit d'un site regroupant les utilisateurs et développeurs de projets open source. Le principe est le suivant : vous avez un projet Open Source non répertorié, vous pouvez l'importer via SVN, Mercurial, Git et autres VCS (et peut être même en tarball), puis vous pouvez associer votre compte Ohloh à une personne dans ce VCS. Ainsi vous pouvez déclarer participer aux projets X, Y, Z, rencontrer d'autres personnes sur des projets proches, ou des utilisateurs, etc...
Dans le cadre de sa thèse, Michaël Vicente a étudié la communauté de développeurs d'Apache, vous pouvez télécharger un papier résumant son travail à l'adresse suivante :
http://gdrtics.u-paris10.fr/pdf/doctoriales/2008/VICENTE.pdf.
L'idée étant maintenant de récupérer un certains nombre de données depuis Ohloh, sur des gros projets Libres, pour ensuite être en mesure de les restituer sous forme de graphe de relations entre les projets et les développeurs (via le logiciel gephi par exemple).
Pour faciliter le travail, Ohloh dispose d'une API (malheureusement peu pratique) au format XML à laquelle on peut accéder dans une limite de 1000 requêtes par jour.
Ce projet est réalisé par Vivien et moi même, sous la tutelle de l'USEC, les sources seront publiées sous licence libre (non copyleft), avec des beaux graphes en prime.
Posté par Romain le 8 Juin 2010 à 00h22 - Commenter
En cette fin de semestre et dans le cadre de l'UV IC05 (à UTC), je vous présente la première version publique du projet sur lequel j'ai travaillé : IRCParser (actuellement beta1).
Il s'agit d'un logiciel visant à convertir des logs IRC (sous différents formats), en données graphiques, exploitables en EDA.
Grâce à ce logiciel, il est par exemple facile de retrouver les liens entre les différents channels d'un même serveur, mais aussi d'obtenir des graphiques sur les activités (horaires et journalières) des utilisateurs, des channels, et du serveur. Les exports se font pour le moment au format GDF pour les graphes, au format PNG pour les graphiques. Le module de log en entrée est pour l'instant compatible avec le format de log d'#instantbird (module Perl pour mozbot pas encore publié car pas prêt) et du client IRC irssi (avec options par défaut).
Chaque noeud représente une personne, et on colore les personnes selon le channel dans lequel elle est le plus active. Un arc entre deux personne signifie que ces personnes ont parlé ensemble (déterminé par heuristique), ainsi on peut observer les "liaisons" entre différents channels.
Tout comme il existe NaviCrawler pour cartographier le web, il semblait intéressant d'avoir le même genre d'outils pour cartographier les relations entre les utilisateurs d'IRC, c'est de là qu'est venue l'idée.
Le format GDF a le mérite d'être simple à comprendre, bien que vite limité, il est lisible grâce au logiciel Gephi. Il est prévu d'améliorer le module de génération de graphes afin de pouvoir exporter dans les formats GraphML (Standard, lisible par la plupart des logiciels de graphe), ainsi que format Gephi qui offre des possibilités intéressantes.
Le programme a été écrit en Perl, qui offre de nombreuses facilités pour le traitement de données textuelles, il est donc compatible avec Windows, GNU/Linux et Mac, sous réserve d'avoir installé les bonnes bibliothèques (un article détaillant la procédure sur windows viendra). IRCParser est actuellement toujours instable, en version beta, je vous incite fortement à lire le fichier README pour découvrir des fonctionnalités (telles que la fusion de pseudos), qui ne sont pas décrites dans cet article.
L'architecture modulaire rend très simple l'ajout de modules (support de nouveaux formats de logs, ajout de traitements donnant des fichiers en sortie, ...).
Vous pouvez télécharger les dernières sources sur le dépôt Mercurial : https://hg.bezut.info/IRCParser/, ou bien sur mon site de projets : http://dev.bezut.info/p8/IRCParser.
De nombreuses améliorations sont envisagées, il manque juste le temps pour les réaliser, mais ça viendra. Vous pouvez également télécharger un exemple de log (tirés d'#instantbird), ainsi que les slides de la présentation.
End of the semester, and here is a project done in the UV IC05. I present the first public version of the project I worked on: IRCParser (beta1 now). It is a simple software which aim is to convert IRC logs (in various formats) into graphical data, usable in EDA.
Thanks to this software, it is for example easy to draw links between several channels in a common IRC Network, but also easy to get charts on user, channel and server activity. Exports are for now in GDF for graphs and PNG for charts. The Input modules can handle Irssi log format, and an other format (the one used on #instantbird), which is part of a mozbot Module (and not ready yet for release).
Each node represents a people, and we add color to people depending on in which channel the people is the most active. An edge between two people means that these people have already talked together, thus we can see "links" between the different channels.
There is already NaviCrawler to map the web, and it seemed interesting to have the same kind of tool to map relationship between people on IRC, that is where is idea come from.
The GDF Format is very simple to understand - even if limited -, it is readable with Gephi. It is planned to enhance the Graph generation module to handle GraphML (Standard) and Gephi format as well, which has many interesting features.
This program was written in Perl, which is very convenient for text parsing. As a result it is compatible with Windows, GNU/Linux and Mac (if you have installed the correct libraries). IRCParser is still instable, in beta right now, I advise you to read the README file if you want more information on some features (as for nick merging).
This program is also very Modular, so that it is very easy to add Modules (handle new log format, adding some filters to draw new charts, ...).
You can download the last sources on the Mercurial repository: https://hg.bezut.info/IRCParser/, or the current version on my projects website: http://dev.bezut.info/p8/IRCParser.
Several enhancements are planed, but I just have not enough time to do them all in the near future, but it surely will come later. You can download a log example (from #instantbird), and the slides of my presentation.
Posté par Romain le 8 Janvier 2010 à 14h44 - Commenter
Date associée à ce récit : 28 Décembre 2009 à 04H00
This article could also be in "School" or "Programming", but since my tests are made on #Instantbird using Instantbot... 
I finally got it working on the last 150 days on #Instantbird, and here are the early results:

Of course the results are experimental, a lot of other stuff is coming soon on this project.
To generate this graph I use Gephi, IRCParser exports with GDF format, but I plan to export to GraphML, so that we are compatible with more Software. IRCParser will be eventually released as a Free Software when it's ready
, and of course will be usable for various log formats, and various output data.
Posté par Romain le 28 Décembre 2009 à 04h49 - Commenter
Sans tambour ni trompette, Xinb 1.2 est sorti, après être resté longtemps en Release Candidate (pour rappel Xinb c'est juste cette plate forme de blog sur laquelle vous lisez ces lignes).
Mais à peine sorti, son successeur se profile (à long terme
), voici les caractéristiques qu'il devrait arborer :
Posté par Romain le 15 Décembre 2009 à 04h29 - Commenter
We did it
. I have worked for nearly one month on the Account Manager improvement in Instantbird, and the last patch was pushed a few hours ago!
Here is an overview of the improvements related to the Account Manager:

The new tab system is nearly ready to come out, we still have the preference dialog, tray icon, little improvements on the buddy list and the conversation windows.
Posté par Romain le 28 Août 2009 à 04h46 - Commenter
Il se prénome 'instantbot', il est né hier, quelques complications et dépendances, mais il est bien vivant
. Dérivé légèrement de mozbot, le bot IRC utilisé par Mozilla sur irc.mozilla.org.
En version 2.7CVS, il a déjà appris beaucoup de choses de ses quelques modules en perl. Les visites sont autorisées sur irc.mozilla.org, channel #instantbird.
Comme son nom l'indique si bien il sera dévoué à ce projet, pour répondre aux questions des utilisateurs, donner des informations...
Deux modules très intéressants pour nous :
.
His name is 'instantbot', he was born yesterday, a few missing dependencies to fix, but hey, he is alive !.
Based on mozbot, this IRC bot is already used by Mozilla on irc.mozilla.org (firebot).
Version 2.7CVS, he has already learned a lot of stuff thanks to his few perl modules. Visits are appreciated at irc.mozilla.org channel #instantbird.
As his name suggest, he is devoted to this project, to answer visitors questions, and give - nearly - real time information on the project.
Two modules are especially interesting for us:
.Posté par Romain le 18 Août 2009 à 20h15 - Commenter
Ce projet était dans ma tête depuis bien longtemps, faire un site totalement nouveau pour y stocker tout mes projets.
J'ai profité de la sortie de Firefox 3.5 pour le réaliser en m'amusant un peu avec le (X)HTML5, et les nouvelles propriétés CSS, tout en appliquant des règles strictes au niveau de la base de données (jusque là je n'avais jamais exploité les techniques "avancées" des SGBD telles que les triggers, les events, les clés étrangères, etc...
C'était donc un projet à la fois pour faire quelque chose "au top", et pour remplacer le vieux site de scripts PHP
.
J'en ai profité également pour remettre au goût du jour des scripts comme APSN et APSN', en remettant la CSS plus aux normes, quelques petits changements qui affecteront sans doute positivement les performances, etc...
Vous pourrez également y retrouver mon projet de LO11 en C++, un programme de résolution de sudoku dont j'avais déjà parlé sur ce blog, le code source du site sur lequel sont disponibles ces projets, ainsi que Xinb, le code source de ce blog.
Il reste encore quelques scripts ou quelques programmes dans les cartons, mais qu'il faut retravailler pour les rendre à peu près publiables, et aussi définir ce qui peut être intéressant à publier de ce qui n'a que peu d'intérêt.
I had this project in mind for a long time now: Doing a new site to store the sources of my projects.
I waited for the new release of Firefox 3.5 to create it and have fun with new features in (X)HTML5, CSS3, and use advanced features of my DBMS, like triggers, events and foreign keys.
It was a project either to do something "on top", and to replace my old PHP-Scripts Site.
I also updated some on my projects, like APSN and APSN', some changes in CSS to make in more valid, and some improvements on performances...
On this site you can also find my LO11 (School) project (in C++), a Sudoku Resolver on which I have already written on this blog, this source code of this Projects Site, and also the sources of Xinb (this blog).
I have still some projects in my reserves, but I have to work on them to make them publishable, and I still have to define what is interesting to be published and what is not.
Posté par Romain le 17 Juillet 2009 à 02h46 - 3 commentaires
Twitter...
