I2L:Projet - DptInfo

I2L:Projet


Liste des projets 2009-2010 pour M2 I2L

Placement automatique de noeuds dans un graphe - Gauthier Quesnel - INRA

Etudiant : ??

Mots-clés

  • Manipulation de graphes
  • Placement automatiques
  • Interface graphique

Présentation du projet

L'interface graphique GVLE, dont une partie est représentée sur les captures d'écrans suivantes, permet de représenter des graphes de modèles. Ces modèles sont de deux types : les modèles atomiques (les feuilles de l'arbre) et les modèles couplés (les noeuds de l'arbre). GVLE représente la hiérarchie de modèles couplés dans une fenêtre (image de gauche), et les modèles couplés avec seulement un niveau de sous-modèles (image de droite). Nous nous intéressons dans ce projet, uniquement à la représentation graphique d'un modèle couplé et non de sa hiérarchie.

Le placement des modèles d'un modèle couplé est aujourd'hui défini par l'utilisateur et avec des moyens très limités (de simples déplacements de boîte). Ainsi, comme le présente la figure de droite, les connexions entre les modèles se croisent et peuvent être difficiles à placer lorsque le modèle couplé possède beaucoup de sous-modèles.

Image:Gvle-projet-manipulation1.png
GVLE : représentation de la hiérarchie de modèles couplés et de atomiques. (2 KB)

L'objectif de ce stage est de proposer un ensemble d'algorithmes, à introduire dans la bibliothèque vlegraph, afin de proposer un placement automatique de modèles d'un modèle couplé sur une zone de dessin CairoSurface le tout en proposant une nouvelle visualisation des objets, de simple cercles pour les modèles atomiques ou couplé, et des flèches pour les connexions entre modèles.

Image:Gvle-projet-manipulation2.png
GVLE : Représentation du contenu d'un modèle couplé. Les boîtes vertes représentent les modèles couplés, les boîtes noires, les modèles atomiques. (3 KB)

Ce projet est susceptible d'être suivi d'un stage rémunéré au sein de l'INRA. Le stage pourra être effectué à Toulouse ou à Calais sous les encadrements de Éric Ramat, Gauthier Quesnel et Patrick Chabrier avec pour sujet le développement de GVLE.

Objectif

  • Comprendre le fonctionnement des 5 classes de la bibliothèque vlegraph.
  • Implémenter une méthode de placement automatique : par ex. les algorithmes à ressorts.
  • Implémenter une représentation graphique Cairo d'un modèle couplé.
  • Rendre interactive la représentation graphique de modèles couplés (les modèles et les connexions doivent pouvoir être créées, modifiées et/ou supprimées).
  • Remplacer la vue de la GVLE par celle nouvellement développée.

Langages et technologies

Plate-forme de tests unitaires pour VLE - Gauthier Quesnel - INRA

Mots-clés

  • Tests unitaires
  • Virtualisation

Présentation du projet

Les tests unitaires sont très importants dans le développement de logiciels informatiques et plus particulièrement avec les méthodes agiles. La plate-forme VLE dispose de tests unitaires mais ces tests ne sont exécutés que sur les machines des développeurs, bien souvent, du x86 sous Debian GNU/Linux ou Microsoft Windows XP. Les programmes CMake (générateurs de Makefiles) et CDash (analyseur de résultats de tests unitaires) permettent de mettre en place un outil efficace pour la gestion de tests unitaires depuis de multiples OS, compilateurs, saveurs de noyaux etc. Par exemple, la page suivantes est un exemple d'analyses des sorties de CDash depuis les tests unitaires de CMake.

Pour ce projet, nous nous proposons de développer un ensemble de scripts, programmes et autres infrastructures logicielles afin de pouvoir lancer les tests unitaires de VLE depuis plusieurs sources (OS, compilateurs etc.). Pour cela, un ensemble de machines virtuelles lancées pour exécuter les tests unitaires doit être mis en place.

Objectif

  • Étudier les logiciels CMake et CDash.
  • Ajouter les scripts CMake à VLE pour prendre en compte les tests unitaires.
  • Utiliser des outils de virtualisation, de chroot etc. pour mettre en place un ensemble d'OS de tests :
    • Dans un premier temps : Debian GNU/Linux x86, Freebsd x86 et Windows XP.
    • Dans un second temps : Linux sur : x86-64, PPC etc.
  • Proposer une structure pour intégrer ces tests pour n'importe quel type de logiciel.

Langages et technologies

VLE et les SIG - Raphael Duboz - CIRAD et Eric Ramat - INRA/LIL/ULCO

Etudiant : Rémi Tylski

Information importante : ce projet est suivi obligatoirement d'un stage recherche pour l'étudiant à la Maison de la Télédetection - Montpellier

Mots-clés

  • modélisation spatiale
  • SIG
  • modèle VLE

Présentation du projet

Le projet VLE (Virtual Laboratory Environment) est une plate-forme de multi-modélisation et de simulation développée à l'INRA de Toulouse, au Cirad et au Laboratoire d'Informatique du Littoral de l'université du Littoral. A l'heure actuelle, VLE dispose d'extensions pour la prise en compte de modèles spatiaux (Cell-DEVS, en particulier). En réalité, tout modèle peut représente un objet spatial (un lieu, une parcelle, ...) sans avoir un caractère particulier sous VLE. Dans ce cas, aucune extension n'est nécessaire. La description de la géométrie est alors interne au modèle et seules les connexions entre modèles pourraient traduire un certain voisinage spatial entre modèles. Une première expérience a été tenté pour construire de manière automatique un modèle spatial à partir de la description géométrique d'un parcellaire. Cette expérience est basée sur une description vectorielle au format shapefile et la bibliothèque GEOS pour les calculs géométriques.

L'objectif du projet est donc d'étudier les concepts des SIG et de les mettre en application sur un modèle particulier sous VLE. Cette mise en oeuvre sera l'occasion de construire une boucle contenant :

  • la construction dynamique de modèles VLE à partir de description Raster ou vectoriel à l'initialisation d'un modèle ;
  • la mise à jour du SIG pendant la simulation sachant que la géométrie et/ou les relations spatiales et/ou les données spatiales changent pendant la simulation.

Dans ce travail, on pose les hypothèses suivantes :

  • pas de relation privilégiée avec un SIG (des fichiers shapefiles peuvent suffir) ;
  • les données du SIG ne sont modifiées que par le modèle VLE (pas de dynamique dans le SIG).

Objectifs

  • étude des concepts des SIG : raster / vecteur ; topologie ; opérateurs spatiaux ; gestion du temps dans les SIG ;
  • réalisation d'un executive de construction ;
  • réalisation de l'interaction avec un SIG (ou plutôt avec des fichiers de type SIG).

Langages et technologies

Refonte d’un outil de chat sous Eclipse - Grégory Bourguin

Etudiants : Matthieu Maillard

Description

Dans le cadre du projet CooLDev, nous avons créé un outil de chat sous forme de plugin Eclipse permettant aux utilisateurs d’échanger de manière synchrone. Ce chat a été réalisé en se fondant sur la technologie JSDT de Sun. Malheureusement, JSDT possède des limites qui posent problème dans l’utilisation de notre outil en situation réelle. Le but de ce projet est donc d’opérer une refonte du plugin de chat existant en changeant principalement sa couche réseau.

Etapes :

  • Découverte de l’environnement de création de plugins Eclipse
  • Etude des problèmes liés au plugin de chat existant
  • Sélection d’un protocole réseau adéquat
  • Refonte du plugin

Développement pour le projet XiVO - Sylvain BOILY - Proformatique

Etudiant : Jean-Claude Soret

Description

Le projet de M2I2L est constitués de plusieurs "développements" autour du projet XiVO.

Ce projet est sous licence GPLv3 et les détails sont disponibles via un wiki : https://wiki.xivo.fr

XiVO est une solution de serveur de téléphonie complète basée sur Asterisk.

Conception et développement d'un outil de Literate Programming - Christophe Romain

Etudiants : ??

Description

Le projet porte sur literate programming; il y a plusieurs outils libre à ce sujet, mais chacun à des avantages/inconvenients, et tant de gens continuent à garder de mauvaises habitudes de développement...

l'idée est de faire un outil de literate programming très interfacable et avec certaines propriétés qu'il manque aujourd'hui aux outils de literate programming existants:

  • différent backend :
  • pour l'outil de literate programming (tangling/untangling): noweb, eweb (erlang), camlweb(ocaml), etc.
  • pour le control de version: git, bzr, monotone, meme svn pour ceux qui veulent. (forcément les DCVS on l'avantage avec le système de noeuds d'être extrêmement compacte)
  • choix ouvert d'édition des fichiers: vim, leo, etc., i.e. ne pas imposer un éditeur particulier
  • etc.

Il faut rendre le literate programming viable en enlevant les barrières actuelles: exemple, pouvoir modifier directement les sources générées (bidirectional literate programming), pouvoir travailler à plusieurs sur le même literate program (avec noweb de base c'est quasi impossible, avec leo sans trop modifier le code on peut difficilement le faire), etc...

c'est un sujet plus vaste qu'un simple projet libre, il y a de la réflexion, de la synthese, au moins pour lancer un VRAI projet libre, et si possible poser les premières briques.

Un proof of concept de plugin vim par exemple serait ideal, ce plugin pouvant ou exploiter l'existant (leo, lp4all, noweb, etc..) ou repartir des des bases plus simples. avec un client/serveur, rendant l'interfacage très simple.

Développement pour FusionForge - Julien Heyman - Atos Origin

Etudiant : William Berteloot

Description

FusionForge est une forge logicielle, fork/renommage de Gforge, lui-même fork de sourceforge (après qu'il soit passé propriétaire).

Il est au cœur du projet COCLICO qui a pour but de fusionner toutes les forges basées sur Gforge et Sourceforge.

Le projet est codé en grande partie en PHP. Il fonctionne avec du Postgresql ou du Mysql. Beaucoup de scripts (création des utilisateurs, création des dépôts pour le projet, génération des statistiques, création des tarballs des sources, ...) sont lancés par les crons. Ces scripts sont de types shell, perl ou php.

FusionForge implémente un système de plugin qui lui permet de s'interfacer facilement avec d'autres produits. On peut par exemple cité MediaWiki (permet de gérer un wiki par projet, mailman, cvs, svn, git, ldap, mantis, ...). Beaucoup d'entreprises ont développé des plugins qu'on espère voir reverser à FusionForge.

Ce projet est hébergé sur http://fusionforge.org (donc hébergé par lui même).

La communauté fonctionne avec le bug tracker fourni par fusionforge, deux mailings lists (general et commit) via le plugin mailman et dispose d'un canal irc #fusionforge sur irc.freenode.net où il est possible de joindre la communauté.

Objectifs

Il reste encore beaucoup de choses à réaliser (voir la Roadmap), notamment :

  • mette en place une configuration unifiée
  • mettre en place un packaging unifié entre rpm et deb
  • mettre en place des tests selenium
  • rajouter des tests unitaires
  • travailler sur le connecteur Mylyn (plugin Eclipse : http://www.eclipse.org/mylyn/)
  • Migrer les requêtes en base de données vers db_query_params (afin d'échapper automatiquement les paramètres et réduire les failles sur les injections sql)
  • Changer la librairie permettant la génération des graphes (statistiques en autre...) car la librairie actuelle (jpgraph) a une double licence (open source et commerciale), et n'est donc pas packagée chez debian dans une version récente. (cf [1])
  • etc.

Liens

La Ferme du Sart - Yohan Pannet

Etudiant : ??

Description

Fermes Urbaines est un concept de magasins de produit frais. Tout le business plan de la société est orienté de la même manière que le logiciel libre. Le concept a pour magasin­test la Ferme du Sart, un magasin de 1500m2 en métropole lilloise. Nous utilisons entre autre le logiciel OpenERP.

Point de départ: Actuellement, le site Web de la Ferme du Sart (www.lafermedusart.com) est hébergé dans nos locaux. Nous souhaitons le faire héberger à l'extérieur pour des raisons de sécurité et pour libérer de la bande passante. C'est aussi l'occasion de le refondre.

L'étudiant devra valider le choix de l'hébergement et/ou en proposer un autre. La contrainte principale est de pouvoir faire communiquer le site Web avec notre serveur applicatif. De même il devra valider le choix de Joomla!. Il s'occupera ensuite de la mise en place de la solution (squelette du site). La deuxième partie du stage consiste à la recherche de modules pour intégrer les fonctionnalités du site: notation des produits, inscription à des événements. Si aucune solution ne semble satisfaisante, il devra développer le module adéquat (et le mettre à disposition de la communauté) en lien avec un intégrateur OpenERP pour l'interface avec le serveur applicatif (gestion du flux des données CRM/ERP).

Objectifs

Mise en place du site Web de la société:

  • Validation de l'hébergement
  • Choix du CMS (ou autre)
  • Intégration ou développement de fonctionnalités (existante et nouvelles).

Langage et technologies

  • Joomla! (à déterminer)
  • Python

Projets pour SonarSource, PMD et XRadar - Romain Pelisse

Il s'agit là de plusieurs propositions de projets. Si l'un d'entre eux vous intéresse, prenez contact avec Romain Pelisse pour déterminer les détails/frontières de votre projet ainsi que la personne qui sera votre encadrant

Idées de projets autour de PDM :

  • Créer un moteur de règles en Java pour vérifier la qualité d'un template HTML : le pendant de PMD mais pour du code HTML qui n'est pas du XTML et avec beaucoup plus de règles (utilisation de http://htmlparser.sourceforge.net/ ?) - peut être fournir simplement à PMD un moyen d'analyser du HTML qui ne soit pas valide au sens XML (limite actuelle de PMD)
  • Réutilisation de la grammaire Ruby disponible dans JRuby (AST) pour en effet étendre PMD
  • Réutilisation de la grammaire Groovy disponible dans ... Groovy (AST) pour en effet étendre PMD
  • Etendre Squid pour couvrir ces deux langages toujours avec les arbres AST disponibles dans JRuby et Groovy
  • Reprendre le développement du détecteur de code mort - DCD - dont une base de code est déjà inclue dans PMD.
  • En un poil plus ambitieux, la même chose mais cette fois ci sur du C/C++ avec le parseur disponible dans le projet eclipse CDT
  • La même chose mais cette fois ci sur du PHP avec le parseur disponible dans le projet eclipse PDT
  • Très lié au monde Sonar : Création d'un plugin eclipse qui vient colorer le code source à la volée à partir des infos disponibles via les webservices Sonar
  • Toujours lié au monde Sonar : Création d'un composant Flash de visualisation de dépendances entre packages/classes

Enfin, j'ajoute aussi une idée intéressante liés à Mercurial (et finalement peut être Git). A ma connaissance, aucun solution de gestion de source distribué ne dispose de librairie "full Java". L'idée serait donc de développer une librairie "full-java" qui "parle" le protocole utilisé par Mercurial et aussi qui comprennent aussi la gestion de son dépôt local. Cette librairie formerait un atout précieux pour offrir une réelle intégration de Mercurial au sein de "run time" Java comme Eclipse, Ant ou Maven...

Pour des infos complémentaires sur ces projets vous pouvez aisément "googler" ces produits :

XRadar <http://www.google.com/search?q=XRadar&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a>

"Java Hudson" <http://www.google.com/search?q=Java+Hudson&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a>

par exemple... PS: La page de Hudson est un peu longue à charger par contre.

Idées de projets autour de Sonar :

Sur l'ensemble de sujets proposés, tous les projets qui nécessitent de la manipulation d'arbres AST demandent un effort de mise à niveau et une capacité d'abstraction assez important.

Les deux projets les plus abordables du côté de Sonar sont certainement :

  • La création d'un plugin Eclipse de colorisation du code source à la volée en s'appuyant sur l'ensemble des informations qualité mises à disposition par Sonar sous forme de Web Services : code dupliqué, couverture de code par les tests unitaires, violations, code commenté, ...
  • La création d'un moteur de règle pour analyser la qualité de templates HTML (JSP, JSP, PHP, ...) :
    • Transformer du code HTML en pur XHTML à l'aide de la librairie http://nekohtml.sourceforge.net/
    • Réutilisation du moteur de règle PMD pour profiter d'un framework éprouvé
    • Ecriture de nouvelles règles qualité

OCS Inventory - Goneri Lebouder - Atos Origin Open Source Center

Etudiant : Aurélien Werner

Description

OCS Inventory est un logiciel de gestion d'inventaire et de télédiffusion. Les administrateurs de parc informatique peuvent ainsi retrouver la liste de leurs machines et télédiffusion.

Le logiciel est un ensemble client serveur qui utilise MySQL comme base de données et qui est décomposé de la façon suivante :

  • un serveur central écrit en Perl,
  • une interface d'administration écrite en PHP,
  • un agent pour Windows écrit en C++,
  • et enfin un agent pour UNIX lui même réalisé en Perl

Ces composants sont utilisés sur de nombreux gros parcs informatiques en France et dans le monde. Les références principales étant :

  • Gendarmerie : 90 000 machines,
  • Assurance Maladie : 107 000 machines

Nous sommes toujours à la recherche de personnes motivées pour contribuer sur le projet et sommes près a aider pour la periode d'intégration comme nous le faisons déjà aujourd'hui.

Les tâches qui nous semble intéressantes dans un premier temps concerne l'interface d'administration (PHP/MySQL) et les agents. Cependant, le stagiaire peut aussi vouloir améliorer des points qui l'intéresse (meilleur détection de son matériel, amélioration de point l'architecture, documentation).

Nous sommes disponible sur IRC #ocsinventory-ng sur FreeNode.

gDTC - Benjamin Drieu - April

Etudiant : Valentin Schmitt

Description gDTC est un outil libre de gestion d'association, développé initialement par l'April pour ses besoins internes. L'April travaille actuellement à l'extension du projet vers un outil d'aide à l'animation de communautés au sein de l'association.

Ainsi, plusieurs modules sont en cours de spécification :

  • module de mailing permettant d'envoyer des informations personnalisées par mail à plusieurs milliers d'adhérents ;
  • module comptable (interface avec l'outil comptable) ;
  • module de gestion de groupe de travail (définition d'ACL, gestion du bénévolat valorisé) ;
  • module de tableau de bord.

Nous proposons un projet autour du module de mailing. Les 5000 adhérents de l'April reçoivent un certain nombre d'informations personnalisées par mail, le système actuel montre des insuffisances en termes de performances et de souplesse.


Objectif

L'objectif est d'implémenter ce module de mailing en se basant sur des spécifications existantes. Parmi les tâches prévues :

  • participer à la finalisation des spécifications et du schéma de base de données ;
  • développer le moteur d'envoi de mails :
    • service en tâche de fond (daemon) ;
    • respect des standards SMTP ;
    • gestion des préférences utilisateur (format de réception) ;
    • logs ;
    • contrôle des délais et de la masse d'envoi, gestion des priorités.
  • gestion et analyse des retours de mail (bounce) : statistiques, remontée d'alertes, ...
  • développement de l'interface de programmation de mailing (sélection des destinataires) et de suivi (statistiques, progression) ;
  • amélioration de l'interface d'écriture de mail (syntaxe smarty, structuration du mail, sélection des en-têtes).

Langages et technologies

  • SMTP, Exim
  • PHP/Smarty
  • MySQL

Développement pour w.c.s. - Frédéric Péters - Entr'ouvert

Etudiant : Zoser Biziki

Description

w.c.s. est un serveur de téléformulaires, d'abord développé pour des administrations locales (pour des besoins de formulaires du type "inscription médiathèque"), il a depuis évolué pour également convenir à d'autres tâches, par exemple comme système de suivi de bugs, ou encore comme site de vote pour la dernière assemblée générale de l'April.

w.c.s. est développé par Entr'ouvert, une SCOP (coopérative) travaillant principalement autour de l' "administration électronique", bien engagée, en elle même et par ses travailleurs, dans les logiciels libres. Il est rarement évident de marier "développement d'entreprise" et "développement communautaire", mais une base de travail commune a été posée en choisissant de développer publiquement (Subversion) et d'utiliser une licence claire à savoir la GNU GPL. Le site officiel du projet est http://wcs.labs.libre-entreprise.org/

Langages et technologies

Développement pour la libgit2 - Andreas Ericsson

Etudiants : Sébastien Dumont et Romain Gauthier

Description

Git [2] est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds. Ce logiciel a été créé pour remplacer BitKeeper [2]. Du fait de son développement dans l'urgence, son design n'a pas prévu une couche facilement réutilisable, c'est à dire une bibliothèque digne de ce nom.

Un projet a donc été lancé en parallèle du développement de git pour développer cette bibliothèque : la libgit2 [3][4].

Quelques précisions sur le projet (au 2009.09.28):

  • Langage C;
  • Guidé par les tests unitaires (3274 lignes de code correspondants aux tests);
  • Initié par Shawn O. Pearce le 2e commiteur de git (1320 patchs);
  • Un log history de 155 patchs;
  • 7 commiteurs différents dont 1 Français;
  • Un projet très attendu par la communauté et certaines entreprises.

libgit2 - Hervé Cauwelier - itaapy

Etudiants : (2 étudiants)

Description

La librairie partagée /libgit2/ [5], écrite en C, est censée, à terme, remplacer le noyau du système de contrôle de versions /Git/ [6] (ce qu'on appelle la plomberie).

Mais le développement de libgit2 est inactif depuis quelques mois. L'objectif de ce projet est de lui donner un nouveau souffle, et aussi à son wrapper Python [7].

Le point de départ sera l'effort en cours mené par Hervé Cauwelier [8][9][10].

itools : améliorer la localisation de documents - J. David Ibáñez - itaapy

Etudiant :

Description

Parmi d'autres fonctionnalités, la bibliothèque itools [11], écrite en Python, inclut des utilitaires pour la traduction de documents ODF et HTML.

Une des étapes de la chaîne de traduction consiste à extraire d'un document le texte qui est susceptible d'être traduit. L'objectif de ce projet consiste à améliorer l'algorithme utilisé aujourd'hui, pour faire un découpage plus précis.

itools : optimiser l'indexation de documents MS Office - J. David Ibáñez et Hervé Cauwelier - itaapy

Etudiant :

Description

La librairie itools.office [12] est capable d'extraire le texte contenu dans fichiers de type .xls, .doc et .ppt (ce qui permet son indexation dans un moteur de recherche).

L'objectif de ce projet est d'optimiser ce code, pour ce faire, le module "office/ole.py" doit d'abord être réécrit en C. La tâche à réaliser est bien définie dans les bug-tracker du projet itools [13][14].

Dans l'idéal ce projet devra contribuer au logiciel catdoc [15], puisque le code d'itools en dérive.

Empaqueter itools dans diverses distributions GNU/Linux - Guillaume Romanczyk - itaapy

Etudiant :

Description

L'objectif de cette tâche consiste à fournir des paquets de la bibliothèque itools [16], et de ses dépendances si nécessaire, pour autant de distributions GNU/Linux que possible : Gentoo [17], Debian [18], Arch [19], etc.

L'étudiant devra proposer les paquets pour inclusion dans ces distributions et travailler avec ses communautés, en suivant ses procédures, pour résoudre les problèmes que pourraient empêcher l'inclusion des paquets.

Améliorer le script iodf-greek.py - J. David Ibáñez - itaapy

Etudiant :

Description

La bibliothèque itools [20] inclut un utilitaire nommé iodf-greek.py qui prend un fichier ODF [21] et en génère un autre où le texte et les images ont été remplacés pour rendre ainsi le document anonyme. La fonctionnalité est aussi disponible à travers une interface web [22].

Ce développement a été réalisé pour OfficeShots [23]. L'objectif de cette tâche est d'améliorer ce script, comme par exemple, en filtrant les macros qui peuvent être inclues dans un document ODF.

Archives