dimanche, décembre 17, 2006

Présentation du projet Open Source JWT Gen à ObjectWeb

Lundi 11 novembre, Jérome Petit et moi avons présenté le projet Open Source JWT Gen à la réunion d'architecte d'ObjectWeb

Ce projet s'intéresse à la génération de code de tests fonctionnels pour les applications Web. Pour faire simple, nous fournissons un ensemble d'outils graphiques permettant au développeur ou au testeur d'alléger la lourde tâche de l'écriture des tests. JWT Gen génère en fait du code de tests basé sur les API xUnit (HTTPUnit, JWebUnit, HTMLUnit, PDFUnit, ...). JWT Gen se veut non intrusif, extensible, facile d'utilisation, ...

Un prototype avait été développé avant mon arrivée à SERLI pour démontrer la faisabilité de l'approche JWT Gen. Je m'intéresse depuis à l'architecture de la nouvelle version de manière à prendre en compte les nouvelles applications labellisées Web 2.0 (GWT, Flash, ...)

Le site du projet : JWT Gen sur la forge d'ObjectWeb

Nouveau : le lien pour les transparents de la présentation (2006-aow-mbjp.pdf)

mardi, novembre 28, 2006

Les futurs cours ...

Un post pour lister les différents cours que je suis en train de finaliser. En fait je me rends compte que j'ai commencé beaucoup de cours sans les terminer (pas bien)

Bref voilà une liste de cours qui viennent d'être entamée :
  • Plate-forme Eclipse pour le développement de clients lourds (SWT, JFace, développement de plug-ins, Eclipse RCP). En fait pour ce cours, je vais insister sur la partie plug-ins en détaillant la notion de points d'extension. Pour Eclipse RCP (ce n'est ni plus ni moins qu'un plug-in en stand-alone) je pense discutter de la manière d'en faire un sachant que la plus grosse partie aura été faite au niveau du développement de plug-ins. Pour l'instant j'ai presque terminé SWT.
  • Design Pattern. J'en suis à la moitié et ça prend du retard. Pour chaque pattern, une description, un schéma UML, et au moins 1 recette par un exemple.
  • JSF. Le finir, j'ai fait l'introduction, principe de fonctionnement, Bean managé, navigation. Il me reste les messages, les converters, la validation explicite, faire un topo sur l'ensemble des composants JSF, les composants Tomahawk, création de composants JSF et les outils de développement (Eclipse, Java Studio Creator, ...)
Ce que je voudrais faire après :
  • JUnit. Un cours rapide sur la version 3 et 4
  • Google Web Toolkit. Les bases à la manière du tutoriel présenté par Google (simple mais extrèmement efficace). Je voudrais présenter la boîte à outils, la manière d'effectuer des appels RPC au serveur, le déploiement de l'application ... J'ai fait des exemples et installé Googlipse pour l'utilisation avec Eclipse, GWT m'impressionne.
  • Flex 2 et le projet Apollo. Des interfaces graphiques en flash ça le ferait!!
  • Hibernate et EJB. Quelques cours concernant le mapping objet relationnel pour dire que je ne fais pas que des technologies orientées IHM.
  • ...

Java et les composants pour la visualisation

Vous trouverez sur le site de Developpez.com un nouveau cours intitulé : Introduction aux composants JTable, JTree et JGraph. L'objectif de ce cours est de présenter les composants puis la manière de modifier le renderer (le rendu de l'affichage), l'editor (le composant pour une édition) et d'exploiter les différents modèles : modèle du composant et modèle de sélection notamment. La partie JGraph est une petite introduction mais qui vous fournira les bases pour commencer à utiliser cette bibliothèque de création de graphe.

A la fin vous trouverez une minuscule introduction à l'API Print.

Voilà pour résumé vous trouverez les notions suivantes dans ce cours :
  • Composants JTable, JTree et JGraph
  • Renderer
  • Editor
  • Modèle du composant
  • Modèle de sélection
  • Ajout et suppresion dynamique d'élément (une ligne pour une JTable, un nœud pour un JTree et un Vertex ou un Edge pour un JGraph)
  • API Java Print
Voilà le lien du cours : http://mbaron.developpez.com/javase/javavisu

Si vous avez des commentaires n'hésitez pas, bonne lecture.


dimanche, novembre 12, 2006

Cours sur Java

Je viens de déposer sur le site de Developpez.com un cours sur le langage Java. Le cours est intitulé : Programmation Orientée Objet application au langage Java.

Initialement ce cours était basé sur la syntaxe de Java 1.4. Je l'ai mis à la mode Java 5 en insistant sur des points comme les génériques et l'auto-boxing.

Le plan du cours est le suivant :
  • Introduction au langage Java
  • Bases du langage
  • Classes et objets
  • Héritage
  • Héritage et polymorphisme
  • Les indispensables : package, collections, flux de fichier et exception
Je voulais intégrer une partie sur les Design Patterns (que je suis en train de finaliser) mais bon faut savoir découper un peu. ça sera pour une prochaine fois.

Voilà le lien du cours (java.pdf).

Vous qui lisez, commentez vous le rendrez ...


vendredi, novembre 03, 2006

Framework Struts

Voilà un cours sur le framework Struts.

Au menu de ce cours :
  • Fonctionnement général (schéma, struts-config.xml)
  • Action
  • ActionForm
  • ActionErrors
  • DynaActionForm
  • Plug-in Validator (vérification des données côté client et serveur)
  • Rappel sur les expressions régulières
  • Changement de locale
  • Coopération entre Struts et JSTL
Voila le lien pour accéder au cours.

Un commentaire à mettre, ça use, ça use, un commentaire à mettre ça use le clavier ...


mercredi, novembre 01, 2006

Sauvegardes vos préférences

On continue les exemples Java avec au programme des solutions pour sauvegarder les préférences utilisateurs concernant les états de l'IHM (position d'une fenêtre, taille d'une fenêtre, quelles sont les fenêtre ouvertes, ...).

Pour cela, je vous propose deux solutions :
  • La première est d'utiliser une API Java appelée Preferences
  • La seconde est une solution maison qui exploite les fichiers properties (couple clé, valeur)
Le résultat est le même (heureusement me direz-vous). Les données sont enregistrées quelque part (un fichier, base de registre). Concernant la première solution c'est la machine virtuelle qui s'occupe du support d'enregistrement, cette étape est transparente pour le développeur (selon le système d'exploitation hôte, le support est différent : base de registre pour Windows, répertoire bibliothèque pour MAC OS X, ...). Le développeur a seulement besoin d'indiquer les paramètres qu'il souhaite sauvegarder. Concernant la seconde solution, le développeur à la charge du support d'enregistrement, il doit gérer un flux de fichier, ...

Les codes sont disponibles ici (preferences.zip) sous licence GPL. La première solution est développée dans la classe PreferencesExemple et la seconde dans la classe PropertiesExemple.

mardi, octobre 31, 2006

Nouveau travail

Je vous annonce que je viens de changer de travail. Après un an passé à l'INRIA de Rocquencourt dans le projet MErLIn, je quitte le monde de la recherche pour le monde du privé. De mon aventure avec le projet MErLIn est sortie une version utilisable et distribuée de l'outil K-MADe.

Je viens donc d'embaucher dans une société de service en informatique appelée SERLI située sur le site du Futuroscope proche de Poitiers. J'intègre le pôle Java avec tous ce qui tournent autour i.e. développement Java EE, clients riches avec de l'Eclipse RCP, Google Web Toolkit, ...

Un aspect intéressant proposé par SERLI est l'importance apportée aux projets Open Source tant au niveau utilisation qu'au niveau contribution. En ce moment, en attente d'une mission, je participe à la création d'un nouveau projet Open Source concernant un outil de construction de tests automatisés pour les applications web. Le projet vient d'être inscrit dans le consortium Object Web.

En parallèle à cela, je capitalise mes connaissances dans les nouvelles technologies pour mettre en place des supports de cours. Au programme, Eclipse RCP (SWT + JFace + Framework RCP), GWT (tout ce qu'il faut pour développer une application web avec l'API Google) et un cours sur les Design Pattern. Je viens de commencer ces trois supports. Je pense qu'il faudra attendre un bon mois pour voir arriver le premier cours. D'ici là, d'anciens cours seront diffusés ...

Au fait, vous demandez-vous peut être quelle est la raison à mon acharnement à continuer à rédiger des cours sachant que je n'enseigne plus : ma satisfaction personnelle à contribuer, comme je peux, à la diffusion et à l'enrichissement des projets open source.

Une nouvelle aventure commence pour moi ...

PS : merci à Stéphanie et Dominique pour cette agréable année passée à l'INRIA.

lundi, octobre 16, 2006

Qualité du logiciel

Voilà un type de post qui je pense va se généraliser dans l'avenir. J'ai peut être trouvé un moyen de mémoriser certains éléments que je trouve intéressant sur la toile en relation avec le monde Java.

Pour commencer voila trois outils de type plugin Eclipse qui permettent de gérer la qualité d'applications Java :
  • PMD : code non utilisé, code dupliqué, possible bugs, optimisation de code
  • FindBugs : spécialisé dans la recherche de Bugs, de mauvaises façon de programmer
  • Checkstyle : formatage de code par rapport à un template, idéal pour uniformiser le code
Si vous en connaissez d'autres, commentez ...

lundi, octobre 09, 2006

JSP 2.0

Voilà un cours sur la version 2.0 des JSP.

Au menu de ce cours :
  • Balises personnalisées à la sauce JSP 2.0 (SimpleTag et les attributs dynamiques)
  • EL (Expressions Languages)
  • Bibliothèque JSTL (core, i18n)
Vous remarquerez que le début ressemble étrangement au cours précédent. Mais bon au moment de la conception du cours j'avais débuté par la version 1.2 et puis, faire un cours sur des choses qui sont déjà périmées ça ne le fait pas trop ...

Voila le lien : http://mbaron.developpez.com/javaee/jsp2

Commentaires vous avez, commentaires j'accepte.


vendredi, septembre 29, 2006

Developpez.com

J'ai enfin décidé à m'inscrire sur Developpez.com dans le but de partager mes nombreux supports de cours. Je vais essayer également de trouver le temps pour participer à différentes tâches (relecture d'article, ...)

L'adresse est la suivante : http://mbaron.developpez.com (ouvert depuis le 24 septembre 2006)

Bon, voilà, si vous avez du temps, faites moi signe de vos remarques ...

lundi, septembre 18, 2006

Balises Personnalisées ...

Bon, voilà, on va essayer de réduire la quantité de code Java dans les pages JSP.

Merci qui, merci aux balises personnalisées ou encore appelées TagLib en anglais.

Au menu de ce cours
  • Définition
  • Conception
  • Déploiement
Comme d'habitude, si ça vous intéresse et que vous avez des remarques à faire, laissez un commentaire.

Voilà le lien de la page du cours : http://mbaron.developpez.com/javaee/taglib


jeudi, septembre 14, 2006

Pages JSP

Puisque les Servlets ont du mal à gérer la partie présentation, je vais vous présenter les JSP.

Au menu de ce cours
  • JSP et définition
  • Les différents Tag
  • Objets implicites, cycle de vie et technique de gestion des erreurs
  • Java Beans
  • Collaboration de JSP / Servlets
Si vous avez des commentaires ...

Voilà le lien de la page : http://mbaron.developpez.com/javaee/jsp


mercredi, septembre 13, 2006

Lecteur de médias avec QuickTime for Java

Voici mon premier post concernant un code Java. Je commence par une petite application de type lecteur de média que j'ai utilisé dans un outil de modélisation de tâches utilisateur. Une petite pub au passage pour l'outil en question K-MADe.

Pour ce lecteur, j'ai utilisé l'API d'Apple pour sa librairie QuickTime. Il faut avouer qu'au premier abord, l'utilisation de cette API n'est pas des plus faciles. Après avoir repéré dans l'API les classes qui ne sont pas à utiliser (DEPRECATED), son exploitation a été rendue difficile par l'absence de documentation et d'exemples.

Avant de continuer, voici quelques ressources sur le sujet :
Sur la figure ci-dessous est présentée l'interface de ce lecteur.



Une partie centrale pour le média, une partie sud pour les contrôles et enfin une partie droite pour les informations du film.

L'originalité de ce lecteur tient dans la possibilité de positionner des marqueurs (début et fin) dans le but de sélectionner une zone du média.

Je ne vais pas rentrer dans les détails du code, je vous laisse le plaisir d'y regarder. Comme cet exemple est riche en termes d'états, la séparation du contrôle et de la présentation est largement justifée.

Avant de terminer, je vais simplement émettre une remarque concernant la gestion des événements introduits par Apple (par exemple : événement déclenché à la fin de la lecture d'un média). Je repprocherai donc à l'API QuickTime d'Apple de ne pas utiliser des écouteurs à la sauce Java mais plutôt des callbacks à la sauce vieille boîte à outils.

Les codes sont disponibles ici (playerquicktime.zip) sous licence GPL.

dimanche, septembre 10, 2006

Configuration de Tom le chat ...

Sans serveur d'application, nos belles applications WEB auront bien du mal à fonctionner. Un petit cours donc sur le serveur d'application Tomcat de la fondation Apache.
  • Installation et configuration d'un serveur d'application Tomcat
  • Déploiement des applications Web
Voilà le lien (tomcat.pdf)


mercredi, septembre 06, 2006

Servlets quand tu nous tiens ...

Allez, je continue sur ma lancée en proposant aujourd'hui la partie liée aux Servlets. Voilà un plan du contenu
  • Servlets et API
  • Traitement des données de formulaires
  • Architecture de développement
  • Cycle de vie
  • Suivi de session
  • Collaboration de Servlets
  • Sécurité : authentification
  • Accès aux BD avec JDBC
Voilà le lien de la page du support de cours où vous trouverez le fichier de la présentation et les exemples.

Comme d'habitude, si vous avez des commentaires, n'hésitez pas.


mardi, septembre 05, 2006

Introduction Java EE ...

Voici mon premier post. J'en profite pour publier mon cours J2EE donné à l'université de Poitiers. Je débute par une petite introduction. Vous verrez ça ne casse pas des briques mais il a l'avantage de poser les bases des technologies WEB.
  • Protocole HTTP
  • Architectures WEB
  • Technologies J2EE
Vous trouverez un lien sur la page du cours Developpez.com.

Tous les commentaires sont les bienvenus ...