Le PDF de la présentation que j'ai donné lors de l'évènement JumpCamp4IT, le 21 janvier 2010 à Paris, France sur les robots pour Google Wave et notamment mon framework le WadRobotFramework.
Mantis est un système de suivi d'anomalies logicielles (bugs) basé sur une interface web. Il est écrit en PHP, requiert une base de données (MySQL, SQL Server, PostgreSQL et DB2 supportées) et un serveur web. Mantis peut être installé sur Microsoft Windows, Mac OS, et sur de nombreux OS du type Unix.Le principe de cet outil consiste à enregistrer la déclaration d'un bug informatique, puis, pour les techniciens de maintenance informatique concernés, à mettre à jour l'avancement de sa résolution, jusqu'à sa clôture. Le déclarant de l'anomalie peut s'informer à tout moment via le serveur Web de l'avancement du traitement de son problème.
This presentation has been executed on 14th april, 2009 in Valtech Technology Consulting, Paris, France.
This is an overview of the SWTBot test framework.
Download the ppt for the comments on each slide.
wallabag est une application opensource de lecture différée : elle vous permet de mettre de côté la version épurée d'un article pour la consulter plus tard où que vous soyez. Créée il y a 3 ans à base de fichiers PHP comme on faisait en 2005, nous avons décidé il y a maintenant un peu plus d'un an de migrer le projet à Symfony. Au cours de ce talk, nous présenterons donc le projet wallabag et tout son écosystème : son concept, son socle technique (API REST, tests unitaires, Rulerz, RabbitMQ, Capistrano), les difficultés rencontrées, la communauté et les projets qui tournent autour, la roadmap pour les semaines à venir.
Mantis est un système de suivi d'anomalies logicielles (bugs) basé sur une interface web. Il est écrit en PHP, requiert une base de données (MySQL, SQL Server, PostgreSQL et DB2 supportées) et un serveur web. Mantis peut être installé sur Microsoft Windows, Mac OS, et sur de nombreux OS du type Unix.Le principe de cet outil consiste à enregistrer la déclaration d'un bug informatique, puis, pour les techniciens de maintenance informatique concernés, à mettre à jour l'avancement de sa résolution, jusqu'à sa clôture. Le déclarant de l'anomalie peut s'informer à tout moment via le serveur Web de l'avancement du traitement de son problème.
This presentation has been executed on 14th april, 2009 in Valtech Technology Consulting, Paris, France.
This is an overview of the SWTBot test framework.
Download the ppt for the comments on each slide.
wallabag est une application opensource de lecture différée : elle vous permet de mettre de côté la version épurée d'un article pour la consulter plus tard où que vous soyez. Créée il y a 3 ans à base de fichiers PHP comme on faisait en 2005, nous avons décidé il y a maintenant un peu plus d'un an de migrer le projet à Symfony. Au cours de ce talk, nous présenterons donc le projet wallabag et tout son écosystème : son concept, son socle technique (API REST, tests unitaires, Rulerz, RabbitMQ, Capistrano), les difficultés rencontrées, la communauté et les projets qui tournent autour, la roadmap pour les semaines à venir.
GWT est une techno qui permet de coder dans le même langage côté client et serveur, alors pourquoi utiliser des objets différents ? Ce quickie cherche à présenter comment lever les contraintes techniques pour écrire moins de code.
2012 : Conférence "Industrialisation du développement 4D avec les composants" réalisée par A&C Consulting
4D est un environnement de développement rapide. La productivité et la qualité peuvent être améliorées avec, entre autres, la réutilisation de code. Les composants apportent une solution adaptée et élégante pour répondre à ce besoin.
La démarche de structuration des composants, les avantages et inconvénients par rapport aux différentes approches a été présentée.
Devoxx 2017 : toutes les actualités technologiques à surveiller !Société ELOSI
Nous avons participé au Devoxx 2017 et voici ce que nous en avons retenu : Big Data, Intelligence artificielle, Java9, jetBrains Kotlin, Apache Spark, Apache Cassandra, ... Découvrez-vite notre résumé de l'événement !
Android, Spring, Gradle et de nombreux autres projets apportent leur soutien au langage Kotlin. Fin 2017, Kotlin tient-il ses promesses ?
Retour d’expérience sur le langage, ses avantages et inconvénients sur un projet Mobile, un projet Back et bien plus.
This a training built by robot-education.fr concerning BIOLOID PREMIUM. Presentation of the company, the products, first step on the construction AND software. Comments welcomed. Enjoy =)
Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
Optimisation, layers, et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
Dans ce BBL, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
Nous allons parcourir les bonnes pratiques préconisées par Spring, les pièges à éviter, comment bien écrire un Dockerfile pour optimiser la construction et l'image finale pour une exécution dans Kubernetes et nous verrons aussi des moyens alternatifs de construction d'images Spring Boot et l'outillage d'analyse à ajouter à votre toolbox.
Les concepts de la programmation fonctionnelle illustrés avec java 8Yannick Chartois
Ma présentation à Devoxx France 2014: Ce Quickie est basé sur le talk de Bodil Stokke: What Every Hipster Should Know About Functional Programming. C'est un petit exercice basé sur la question suivante: peut-on transposer tous les exemples JS de son talk en Java 8 avec des lambdas? Au programme donc: First Class Function, Functor, High Order Function, Reduction, Combinator, Composition.
Comment mesurer les performances ? Comment savoir ce qu'il faut optimiser en premier ? Y'a-t-il des antipatterns à éviter ?
Nous allons vous présenter une démarche efficace pour mener vos campagnes de performance dans l'univers Java. Ponctuée de retours d'expérience, de best practices et de suggestions d'architecture, découvrez comment rendre vos applications plus performantes.
Par William Montaz et Jean-Pascal Thiery, consultants chez Xebia
Créer des composants visuels sans faire de composantpprem
Présentation du système de composants de Delphi et de l'utilisation de cadres (type TFrame) afin de simplifier la vie du développeur ne désirant pas tout coder à la main lorsqu'il fait ses propres composants.
La rediffusion de cette présentation est disponible avec ses codes sources et des liens complémentaires sur https://serialstreameur.fr/webinaire-20190222.php
Présentation et retour d'expérieuce sur node.js + AngularJS au journal Le Monde, novembre 2014.
Présenté dans le cadre d'un « apéro techno » chez Omnilog.
Contenu connexe
Similaire à Wad Robot Framework Pour Jump Camp4 It
GWT est une techno qui permet de coder dans le même langage côté client et serveur, alors pourquoi utiliser des objets différents ? Ce quickie cherche à présenter comment lever les contraintes techniques pour écrire moins de code.
2012 : Conférence "Industrialisation du développement 4D avec les composants" réalisée par A&C Consulting
4D est un environnement de développement rapide. La productivité et la qualité peuvent être améliorées avec, entre autres, la réutilisation de code. Les composants apportent une solution adaptée et élégante pour répondre à ce besoin.
La démarche de structuration des composants, les avantages et inconvénients par rapport aux différentes approches a été présentée.
Devoxx 2017 : toutes les actualités technologiques à surveiller !Société ELOSI
Nous avons participé au Devoxx 2017 et voici ce que nous en avons retenu : Big Data, Intelligence artificielle, Java9, jetBrains Kotlin, Apache Spark, Apache Cassandra, ... Découvrez-vite notre résumé de l'événement !
Android, Spring, Gradle et de nombreux autres projets apportent leur soutien au langage Kotlin. Fin 2017, Kotlin tient-il ses promesses ?
Retour d’expérience sur le langage, ses avantages et inconvénients sur un projet Mobile, un projet Back et bien plus.
This a training built by robot-education.fr concerning BIOLOID PREMIUM. Presentation of the company, the products, first step on the construction AND software. Comments welcomed. Enjoy =)
Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
Optimisation, layers, et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
Dans ce BBL, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
Nous allons parcourir les bonnes pratiques préconisées par Spring, les pièges à éviter, comment bien écrire un Dockerfile pour optimiser la construction et l'image finale pour une exécution dans Kubernetes et nous verrons aussi des moyens alternatifs de construction d'images Spring Boot et l'outillage d'analyse à ajouter à votre toolbox.
Les concepts de la programmation fonctionnelle illustrés avec java 8Yannick Chartois
Ma présentation à Devoxx France 2014: Ce Quickie est basé sur le talk de Bodil Stokke: What Every Hipster Should Know About Functional Programming. C'est un petit exercice basé sur la question suivante: peut-on transposer tous les exemples JS de son talk en Java 8 avec des lambdas? Au programme donc: First Class Function, Functor, High Order Function, Reduction, Combinator, Composition.
Comment mesurer les performances ? Comment savoir ce qu'il faut optimiser en premier ? Y'a-t-il des antipatterns à éviter ?
Nous allons vous présenter une démarche efficace pour mener vos campagnes de performance dans l'univers Java. Ponctuée de retours d'expérience, de best practices et de suggestions d'architecture, découvrez comment rendre vos applications plus performantes.
Par William Montaz et Jean-Pascal Thiery, consultants chez Xebia
Créer des composants visuels sans faire de composantpprem
Présentation du système de composants de Delphi et de l'utilisation de cadres (type TFrame) afin de simplifier la vie du développeur ne désirant pas tout coder à la main lorsqu'il fait ses propres composants.
La rediffusion de cette présentation est disponible avec ses codes sources et des liens complémentaires sur https://serialstreameur.fr/webinaire-20190222.php
Présentation et retour d'expérieuce sur node.js + AngularJS au journal Le Monde, novembre 2014.
Présenté dans le cadre d'un « apéro techno » chez Omnilog.
Similaire à Wad Robot Framework Pour Jump Camp4 It (20)
1. JumpCamp4IT
Les robots de Google Wave et le
WadRobotFramework
Jérôme Baton 21 Janvier 2010
2. Qui-suis-je
Un expert mondial java/web :)
J'aime automatiser pour ne pas faire N fois la même chose.
Fan de Nono, Goldorak, R2-D2 et Moulinex
Architecte applicatif, Auto-entrepreneur
Photographe amateur
www.wadael.org
twitter.com/wadael
Jérôme BATON - Jump Camp 4 IT 2
3. LA citation
"L'homme devrait mettre autant d'ardeur à
simplifier sa vie qu'il en met à la compliquer."
Henri Bergson
Jérôme BATON - Jump Camp 4 IT 3
4. Agenda
•>Google Wave (GW) – Présentation rapide
• Les robots GW – présentation
• Les robots GW - avant de pouvoir commencer
• Les robots GW – méthode de base
• Le WadRobotFramework (WRF)
Jérôme BATON - Jump Camp 4 IT 4
5. Google Wave – Présentation rapide
1/ Vocabulaire : wave, wavelet, blip
2/ Démo en ligne avec les robots
● emoticonbot@appspot.com
● cartoonybot@appspot.com
● contrepwaverobot@appspot.com
Jérôme BATON - Jump Camp 4 IT 5
6. WRF - Agenda
•Google Wave (GW) – Présentation rapide
•>>Les robots GW – présentation
• Les robots GW - avant de pouvoir commencer
• Les robots GW – méthode de base
• Le WadRobotFramework (WRF)
Jérôme BATON - Jump Camp 4 IT 6
7. WRF - robots GW –
Présentation – Théorie (1/2)
• Un robot est un programme exécuté côté
serveur, ayant accès à une wavelet et à son
contenu, ses participants .
• Un robot peut participer à une conversation s'il y
est ajouté par un participant humain.
• Un robot déclare réagir à des évènements.
• Le robot réagit (ou non) aux blips en ajoutant lui-
même des blips, en en modifiant d'autres, ou en
interagissant avec d'autres systèmes (wave vers
twitter).
Jérôme BATON - Jump Camp 4 IT 7
8. WRF - robots GW – Présentation –
Théorie (1/2)
• Un robot appartient à une appli. Web, est
basé sur des servlets.
• Actuellement, hébergement uniquement sur
GAE
• Un robot a un nom et une adresse, qui sera
nom_application@appspot.com
• Python est disponible aussi.
• Accès aux APIs de GAE (datastore, …)
• Accès au reste du web (XML, JSON, …)
Jérôme BATON - Jump Camp 4 IT 8
9. WRF - Agenda
• Google Wave (GW) – Présentation rapide
• Les robots GW – présentation
• >>Les robots GW - avant de pouvoir commencer
• Les robots GW – méthode d'écriture originale
• Le WadRobotFramework (WRF)
Jérôme BATON - Jump Camp 4 IT 9
10. Robots – les pré-requis
Communs (sans ou avec le WRF)
• Avoir un accès à Wave
• Avoir un compte App Engine Java
• Pouvoir créer une application
• JDK 5 ou 6
• Eclipse + plugin
Spécifiques WRF
• Récupérer un JAR :)
• Savoir hériter, surcharger
Jérôme BATON - Jump Camp 4 IT 10
11. WRF - Agenda
•Google Wave (GW) – Présentation rapide
• Les robots GW – présentation
• Les robots GW – avant de pouvoir commencer
• >>Les robots GW – méthode de base
• Le WadRobotFramework (WRF)
Jérôme BATON - Jump Camp 4 IT 11
12. Robot – Méthode de base
Très bien décrite à ces adresses
• http://code.google.com/intl/fr-FR/apis/wave/extensions/robots/java-tutorial.html
• http://gaejexperiments.wordpress.com/2009/11/04/episode-7-writing-your-first-google-wave-robot/
Des articles édifiants, à l'origine du WRF
Jérôme BATON - Jump Camp 4 IT 12
13. Robot – Méthode de base
Exemple de code « standard »
public class ParrotyServlet extends AbstractRobotServlet {
@Override
public void processEvents(RobotMessageBundle bundle) {
Wavelet wavelet = bundle.getWavelet();
if (bundle.wasSelfAdded()) {
Blip blip = wavelet.appendBlip();
TextView textView = blip.getDocument();
textView.append("I'm alive!");
}
for (Event e: bundle.getEvents()) {
if (e.getType() == EventType.WAVELET_PARTICIPANTS_CHANGED) {
Blip blip = wavelet.appendBlip();
TextView textView = blip.getDocument();
textView.append("Hi, everybody!");
}
}
}
}
Extrait de la page http://code.google.com/intl/fr-FR/apis/wave/extensions/robots/java-tutorial.html
On doit tester pour chaque type d'évènement … pas très fun surtout si l'objectif est
un robot plutôt simple ....
Jérôme BATON - Jump Camp 4 IT 13
14. Robot – Méthode de base
Avant d'écrire ce code, il faut :
• (satisfaire le pré-requis)
• Avoir l'environnement
• Récupérer le Jar de l'API des robots et ses dépendances (Json)
• Déclarer les servlets avec des paths spécifiques à respecter
(web.xml)
• Déclarer les capacités du robot (capacities.xml)
• Ecrire le fichier de déploiement (appengine-web.xml)
• Ecrire la servlet de profil
• Ecrire la servlet « métier »
Long, rébarbatif, potentiellement des erreurs imbéciles et du
copier/coller peu glorifiant.
Heureusement, le WadRobotFramework est là !
Jérôme BATON - Jump Camp 4 IT 14
15. WRF - Agenda
• Google Wave (GW) – Présentation rapide
• Les robots GW – présentation
• Les robots GW – avant de pouvoir commencer
• Les robots GW – méthode de base
• >> Le WadRobotFramework (WRF)
– Principe
– Origine et évolutions du WRF jusqu'à aujourd'hui
– Rôles
– Composants
– Statut actuel
– Exemples
– Robots simples
– Robots avancés
– Evolutions à venir Jérôme BATON - Jump Camp 4 IT 15
– Au conditionnel
16. WRF – Principe
Les utilisateurs sont des programmeurs Java.
Le WRF se présente sous la forme d'un projet pour Eclipse DANS lequel
l'utilisateur travaille (en effectuant des configurations simples).
Le WRF c'est une API et un générateur.
Le processus de génération lancé, un squelette de projet de robot est créé dans
un répertoire dédié (generated_Robots)
Charge à l'utilisateur de créer par la suite un projet spécifique pour SON robot.
La configuration du générateur (generator.properties) est sauvegardée dans le
répertoire du robot résultant.
Jérôme BATON - Jump Camp 4 IT 16
17. WRF – Origine et évolutions
Un article sur la création de robot me laisse l'impression que le processus est
bien fastidieux pour simplement réagir à du texte.
C'est la naissance de la surcouche dite « simple », au début fût l'API
public class RTFMRobotServlet extends BlipModifierRobot {
@Override
protected String modifyBlipText(String actualText) {
if(actualText.indexOf("?") == -1) return null;
else {
return actualText.replaceAll("?", "? (RTFM!!") ;
}
}
}
Pour d'autres besoins, les robots « advanced » laissent toute lattitude en
exposant les mêmes objets que l'API Google et en ajoutant des fonctionnalités.
C'est le début d'une visibilité internationale :)
Puis, arriva le squelette fixe suivi du générateur de squelette.
Jérôme BATON - Jump Camp 4 IT 17
18. WRF – Composants
Le WRF se base sur l'API Wave fournie par Google dont elle hérite des
dépendances (JSON, Oauth). Le générateur nécessite la librairie Ant-Contrib.
Actuellement, trois types de robots sont proposés :
✔ Appender / Ajouteur (type simple n°1)
✔ Modifier / Modificateur (type simple n°2)
✔ Advanced / Avancé
Le WRF propose un script ANT (http://ant.apache.org/ et ant-contrib)
permettant de générer un squelette de robot personnalisé, en très peu d'étapes.
La génération ne prends pas le temps d'un café !
Voyons cela !
Jérôme BATON - Jump Camp 4 IT 18
19. WRF – Démonstration
Démonstration LIVE du WRF dans sa version actuelle
Avec un robot simple de type « Modifier »
(vidéo à venir)
Jérôme BATON - Jump Camp 4 IT 19
20. WRF – Etapes
Pour générer ce robot, il a fallut
● Adapter un chemin dans build.properties (une seule fois par machine)
● Adapter les valeurs dans generator/generator.properties (une fois par robot)
● Lancer la target correspondant au type de robot voulu (build.xml)
● Patienter quelques secondes
Jérôme BATON - Jump Camp 4 IT 20
21. WRF – Robots Simples
A retenir, la méthode
protected abstract String modifyBlipText(String
actualText)
des « modifieurs » doit renvoyer null si l'on ne veut pas faire de modification
au blip traité.
Même principe pour la méthode
protected String getTextToAppend(String
textOfTheBlipToReactFrom)
des « ajouteurs ».
Car si l'on renvoie la même chaine reçue en paramètre, le robot est ajouté
comme coauteur du blip (modifieurs) ou un blip identique est ajouté.
Jérôme BATON - Jump Camp 4 IT 21
22. WRF – Robots simples -
Synthèse
Les robots simples ont les inconvénients de leurs avantages : leur simplicité
restreint le nombre de leurs utilisations potentielles.
Pour ceux qui veulent plus de puissance, il y a les robots avancés
Jérôme BATON - Jump Camp 4 IT 22
23. WRF – Robots avancés (RA)
Un RA possède une identité et des composants. Ce sont ses composants
réutilisables (de type RobotWorker) qui effectuent les taches.
Un RA doit être vu comme une chaine de production que l'on définit dans son
constructeur. Plusieurs RA peuvent être utilisés dans une wavelet.
Les RA ont un mode de fonctionnement double.
Ils peuvent agir à la fois sur demande, lorsque
l'utilisateur saisi une commande dans un blip
ET
automatiquement
L'utilisateur a accès à tous les objets présentés par l'API standard. Tout en
offrant des fonctionnalités supplémentaires :
✔ Aide : Affichage des commandes disponibles (/help en début de blip)
✔ d'autres à venir ;)
voir http://code.google.com/p/wadrobotframework/wiki/WhatsNext
Jérôme BATON - Jump Camp 4 IT 23
24. WRF – Robots avancés
Les robots avancés (RA) doivent hériter de WithWorkersRobot (WWR).
public class MyWithWorkersRobot extends WithWorkersRobot {
public MyWithWorkersRobot(){
super();
addRobotWorker( new CapitalizeWorker() );
addRobotWorker( new LengthWorker() );
}
@Override
public String getRobotIdentifier() {
return "my";
}
Les RobotWorker (RW) seront executés selon leur ordre d'ajout.
Ils doivent implémenter TROIS méthodes.
Jérôme BATON - Jump Camp 4 IT 24
25. WRF – Robots avancés – example de
RobotWorker
class LengthWorker implements RobotWorker {
@Override
public String getInstruction() {
return "len";
}
@Override
public String getDescription() {
return "Displays the length of the blip in a child blip";
}
@Override
public boolean doWork(RobotMessageBundle bun, Blip bli, Event eve,String params)
{
Blip lengthChild = bli.createChild();
lengthChild.getDocument().append("length : " + bli.getDocument().getText().length() + "
characters");
return true;
}
}
Jérôme BATON - Jump Camp 4 IT 25
26. WRF – Utiliser un RA
Ajouté à une wavelet, un RA sera actif si
1/ il possède des workers dont l'instruction est nulle
2/ l'on tape une commande dans un blip.
Une commande a pour structure
StartCommandDelimiter RobotIdentifier AcronymAndCommandSeparator
WorkerInstruction optionnalParameters endCommandDelimiter
Exemple :
on écrit {mtr:tweet il fait beau et chaud} dans un nouveau blip et on valide.
Le RA dont l'acronyme (identifiant) est « mtr », s'il existe va executer le
worker dont l'instruction est « tweet » avec pour paramètres (parameters ci-
dessous) «il fait beau et chaud »
public boolean doWork(RobotMessageBundle bundle, Blip blip, Event event, String
parameters);
Au worker de parser les paramètres reçus
Jérôme BATON - Jump Camp 4 IT 26
27. WRF – Robots avancés
Atelier/Démo en live :
faire un RA avec une action automatique
et une action sur demande
Jérôme BATON - Jump Camp 4 IT 27
28. WRF – Statut actuel
Cela compile ET fonctionne :)
Au 18 janvier, le WRF apparaît dans 3 des 11 articles listés par l'équipe de
Google sur la page http://code.google.com/intl/fr/apis/wave/articles.html.
Jérôme BATON - Jump Camp 4 IT 28
29. WRF – Exemples de Robots
Quelques exemples connus.
● ContrepWaveRobot contrepwaverobot@appspot.com
● DTC Robot dtc-robot@appspot.com
● Mumbai Health Robot
Faible feedback utilisateur :(
Jérôme BATON - Jump Camp 4 IT 29
30. WRF – Evolutions probables
Evolutions probables (à court terme)
Un nouveau modèle permettra de générer en même temps un robot et un agent
XMPP (chatbot)
Ajout de la reconnaissance de la voix de son maitre (obéissance unique)
Ajout d'autorisations d'usage pour participants.
Un robot qui génère des robots :)
Liste complète sur le wiki :
http://code.google.com/p/wadrobotframework/wiki/WhatsNext
Mon champs de recherche
Interaction avec des gadgets, avec des humains, relier à des applications web,
agir sur une wave « hors évènement » (cron, task).
Jérôme BATON - Jump Camp 4 IT 30
31. WRF – Au conditionnel
Le WRF sera cité dans un livre à paraître chez un éditeur anglophone connu.
Eventuellement un chapitre entier y sera consacré.
Et éventuellement, je vais l'écrire
Les autres éditeurs qui traiteront la programmation Wave ne pourront pas
faire l'impasse dessus non plus. Enfin, à mon humble avis :)
Par contre, je ne suis toujours pas invité à présenter à Google IO ....
et ça, ça m'énerve ....
Jérôme BATON - Jump Camp 4 IT 31
32. WRF – Participer
WRF est un projet open source auquel il est possible
de participer de multiples manières.
Idées / exemples / feedback / plugin Eclipse / € /
Lego NXT / Canon 7D / objectif 10-22mm / un
35mm / ...
Voir la page
http://code.google.com/p/wadrobotframework/wiki/participate
Jérôme BATON - Jump Camp 4 IT 32
33. Liens
WRF: http://code.google.com/p/wadrobotframework
Wiki : http://code.google.com/p/wadrobotframework/w/list
Guide pour Wave : http://completewaveguide.com/
Liste de robots : http://www.waverobots.com/
Tutoriaux par Romin K. Irani (twitter : @iRomin):
http://gaejexperiments.wordpress.com/2009/12/03/episode-11-develop-simple-google-wave-robots-using-the-wadrobotframework/
http://gaejexperiments.wordpress.com/2009/12/03/episode-12-writing-an-advanced-google-wave-robot-using-wadrobotframework/
http://gaejexperiments.wordpress.com/2009/11/04/episode-7-writing-your-first-google-wave-robot/
Jérôme BATON - Jump Camp 4 IT 33
35. WadRobotFramework
http://code.google.com/p/wadrobotframework/
Merci de votre participation à cet atelier
Jérôme Baton
Wadael gmail com
Jérôme BATON - Jump Camp 4 IT 35