<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Touilleur Express &#187; google</title>
	<atom:link href="http://www.touilleur-express.fr/tag/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.touilleur-express.fr</link>
	<description>Blog sur Java, J2EE, Scrum,Apple,iphone par Nicolas Martignole</description>
	<lastBuildDate>Wed, 28 Jul 2010 09:07:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lancement de Google Buzz, le tueur de Twitter ?</title>
		<link>http://www.touilleur-express.fr/2010/02/11/lancement-de-google-buzz-le-tueur-de-twitter/</link>
		<comments>http://www.touilleur-express.fr/2010/02/11/lancement-de-google-buzz-le-tueur-de-twitter/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 01:34:45 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=3121</guid>
		<description><![CDATA[Google a activé Google Buzz il y a 24 heures comme annoncé sur le blog officiel de Google. C&#8217;est un outil de micro-blogging similaire à Twitter, intégré à GMail, qui permet de partager votre activité du moment avec vos amis. Là par exemple : &#171;&#160;Je viens de publier un article sur le Touilleur Express&#171;&#160;. 
Google Buzz est en fait plus similaire au service FriendFeed, car vos amis peuvent noter s&#8217;ils aiment une de vos remarques, un de vos messages. Il existe dès maintenant une API Google ce qui permettra de ...]]></description>
			<content:encoded><![CDATA[<p>Google a activé Google Buzz il y a 24 heures comme annoncé <a href="http://googleblog.blogspot.com/2010/02/introducing-google-buzz.html">sur le blog officiel de Google</a>. C&#8217;est un outil de micro-blogging similaire à Twitter, intégré à GMail, qui permet de partager votre activité du moment avec vos amis. Là par exemple : &laquo;&nbsp;<em>Je viens de publier un article sur le Touilleur Express</em>&laquo;&nbsp;. </p>
<p>Google Buzz est en fait plus similaire au service <a href="http://friendfeed.com/">FriendFeed</a>, car vos amis peuvent noter s&#8217;ils aiment une de vos remarques, un de vos messages. Il existe dès maintenant <a href="http://code.google.com/intl/fr/apis/buzz/documentation/">une API Google</a> ce qui permettra de créer rapidement des applications intégrées à votre bureau comme Tweetie, ou des clients pour téléphones mobiles. </p>
<p>Comme expliqué sur le blog de Google, ce nouvel outil est une fonction supplémentaire intégrée à GMail. Vos contacts GMail deviennent automatiquement vos &laquo;&nbsp;followers&nbsp;&raquo;. Contrairement à Twitter, il n&#8217;est pas possible de souscrire à un compte Google Buzz pour le suivre. </p>
<p>Cet outil sera un sérieux concurrent à Google Wave pour les micro-discussions, les échanges type forum, que l&#8217;on voit sur Google Wave. C&#8217;est très similaire à une discussion lancée par une remarque de quelqu&#8217;un finalement. </p>
<p>Parmies les limitationes, Google Buzz ne marche pas avec les comptes Google GMail pour l&#8217;entreprise, intégré à Google Application. Par contre, vous pouvez dépasser les 140 caractères par message, ce qui montre aussi que l&#8217;usage visé est différent de Twitter.</p>
<p>Donc, non, Google Buzz ne sera pas un tueur de Twitter.</p>
<p><strong>Pour aller plus loin:</strong><br />
<a href="http://googleblog.blogspot.com/2010/02/introducing-google-buzz.html">Annonce officielle de Google</a><br />
<a href="http://code.google.com/intl/fr/apis/buzz/documentation/">API Google Buzz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2010/02/11/lancement-de-google-buzz-le-tueur-de-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine à Devoxx 2009, journée 2</title>
		<link>http://www.touilleur-express.fr/2009/11/18/google-app-engine-a-devoxx-2009-journee-2/</link>
		<comments>http://www.touilleur-express.fr/2009/11/18/google-app-engine-a-devoxx-2009-journee-2/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 08:15:26 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Devoxx]]></category>
		<category><![CDATA[devoxx]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=2356</guid>
		<description><![CDATA[Google App Engine for Java : a real voyage in the Cloud
Cette deuxième journée Devoxx Université débute par 3 heures sur Google App Engine. En fait cette présentation était une revue de code d&#8217;un projet développé sur Google App Engine par Sam Brodkin et Scott Stevenson. Nous avons parcouru le code, tout en regardant le résultat de l&#8217;application développée en temps réel. A noter que la session a été très participative. L&#8217;ensemble de la salle a navigué sur le site, ce qui était plutôt vivant. 
L&#8217;application SwagSwap
Scott débute la présentation ...]]></description>
			<content:encoded><![CDATA[<p><strong>Google App Engine for Java : a real voyage in the Cloud</strong></p>
<p>Cette deuxième journée Devoxx Université débute par 3 heures sur Google App Engine. En fait cette présentation était une revue de code d&#8217;un projet développé sur Google App Engine par Sam Brodkin et Scott Stevenson. Nous avons parcouru le code, tout en regardant le résultat de l&#8217;application développée en temps réel. A noter que la session a été très participative. L&#8217;ensemble de la salle a navigué sur le site, ce qui était plutôt vivant. </p>
<p><strong>L&#8217;application SwagSwap</strong><br />
Scott débute la présentation en expliquant le but de son application, <a href="http://swagswap.appspot.com/jsf/home.jsf">SwagSwap</a>. Tout d&#8217;abord un Swag, c&#8217;est un de ces petits cadeaux que l&#8217;on vous offre lors des conférences. Tee-shirt, stylo, autocollant, poster, bref tous les goodies qui font le bonheur des Geeks. L&#8217;objectif de l&#8217;application SwagSwap est de permettre à chacun de lister les goodies de la conférence, puis de noter et de commenter les cadeaux offerts pas les sponsors. L&#8217;application est en ligne à l&#8217;adresse <a href="http://swagswap.appspot.com">http://swagswap.appspot.com</a> sur Google App Engine. Sujet plutôt sympa pour débuter la journée. </p>
<p>Un slide me fait sourire, où Scott littéralement propose à l&#8217;audience 5 niveaux de participation :<br />
- Faire le Zombie : vous restez assis là pendant 3 heures sans rien faire<br />
- Bug Patrol : vous recherchez et vous loguez les bugs trouvés dans SwagSwap sur le site Google Code du projet<br />
- Lurker : vous téléchargez le code, vous le regardez mais vous n&#8217;y contribuez pas<br />
- Inquisitor : vous posez des questions de manière interactive ou via le site Google Moderator qu&#8217;ils ont mis en place<br />
- Contributor : vous ajoutez une nouvelle fonction ou vous fixez un bug pendant les 3 heures.</p>
<p>Scott commence ensuite sa démonstration de SwagSwap. L&#8217;interface sommaire à la Web 1.0 est développée dans la version qu&#8217;il sélectionne avec Spring MVC. En fait, Sam Brodkin a codé une version Spring MVC, une version GWT. Scott Stevenson a codé une version JSF2. La suite de la présentation sera largement consacrée à une comparaison pointue des 3 solutions, ce qui est plutôt intéressant pour nous. </p>
<p><strong>Quelques mots sur Google App Engine</strong><br />
A moins d&#8217;avoir fait un stage chez les Mormons, vous ne pouvez pas me dire que vous n&#8217;avez pas entendu parler de <a href="http://code.google.com/intl/fr/appengine/">Google App Engine</a>. En quelques mots, c&#8217;est la solution PaaS (Platform as a Service) de Google pour faire tourner dans le Cloud une application Web Java. GAE (Google App Engine) utilise Jetty, et permet de faire tourner avec quelques limitations, une application java. Les avantages de la solution : plus besoin d&#8217;installer une infrastructure, même plus besoin de s&#8217;amuser avec des images comme avec Amazon EC2 (<a href="http://www.touilleur-express.fr/2009/11/17/devoxx-2009-amazon-web-services/">voir mon article de lundi</a>). Google monte en puissance pour vous, de manière transparente. Vous ne payez que l&#8217;usage réel. Et chose très intéressante, Google ne vous fait payer le service que lorsque vous dépassez un seuil d&#8217;utilisation des ressources. Il est donc possible de démarrer un projet sur GAE et de ne rien payer.<br />
Google App Engine propose une console d&#8217;administration Web qui permet de suivre la consommation de son serveur. Il est aussi possible de voir les Entités de son domaine, de régler quelques paramètres de son application.</p>
<p>Il y a cependant quelques limitations qui font qu&#8217;il sera peut-être impossible pour vous d&#8217;utiliser GAE. Tout d&#8217;abord le temps d&#8217;une requête Web est limité à 30 secondes. Au delà, Google coupe la connexion. Il n&#8217;est pas possible de faire tourner vous-même des tâches de fonds, ni des Threads sur le serveur. Vous n&#8217;avez en fait jamais accès à une machine, vous vous contentez de déposer votre WAR avec les outils de Google, c&#8217;est tout. Donc pas d&#8217;installation de logiciels possibles. Il n&#8217;y a pas de serveur Push, le système de fichier est considéré comme étant en lecture seul. Il n&#8217;est donc pas possible de sauver un fichier temporaire. Pour envoyer une image vers le serveur, il faut donc ruser et travailler en mémoire avant de stocker l&#8217;image. Enfin le point le plus important : vous n&#8217;avez pas accès à toutes les classes Java. Google donne une liste blanche des APIs autorisés. Par exemple il n&#8217;y a pas d&#8217;API Swing, donc il est impossible de retravailler des images sur le serveur. Pour la démo de SwagSwap, ils ont donc utilisé un service de Google pour créer des Thumbmails sur la page d&#8217;accueil. Bref tout ceci pour vous dire qu&#8217;il y a quelques sacrifices à faire pour que tout fonctionne. </p>
<p>Le développeur travaille en local avec une émulation de Google App Engine. Des plugins pour IDEA IntelliJ et Eclipse permettent de packager et d&#8217;envoyer vers GAE votre archive, lorsque vous souhaitez faire une mise en production. </p>
<p><strong>La base de données</strong><br />
Les données sont stockées avec BigTable. Le DataStore de GAE est un moteur basé sur un noyau hautement distribué, capable de monter en charge, transactionnel et sans schéma. En fait, BigTable c&#8217;est une énorme Hashtable dans le Cloud. GAE supporte JDO et JPA, mais les démonstrations ont été écrite avec JDO, qui semble mieux documenté d&#8217;après les speakers.</p>
<p><strong>L&#8217;application de base</strong><br />
Le coeur de la partie Service est implémenté avec Spring 3.0, JDO, les transactions et un peu de RESTful avec Spring Web MVC. Ensuite, 3 GUIs différents ont été implémenté. La version Spring MVC a demandé 3 jours de travail. C&#8217;est une application Web 1.0 plutôt bien écrite de ce que j&#8217;ai vu. La version GWT 1.7 a demandé entre 3 et 4 semaines d&#8217;efforts. Il y a cependant un gros travail sur l&#8217;ergonomie. Sam a utilisé SmartGWT pour créer une interface plutôt sympathique. Enfin la version JSF2 a demandé 5 semaines, et toutes les fonctions n&#8217;ont pas été implémentées. Il a encore peu de projet avec JSF2 sur GAE, donc Scott a pas mal travaillé. Mais le résultat est sympa. </p>
<p>Pour compiler et déployer le projet, ils ont utilisé Ant. Le support de Maven2 et de GAE d&#8217;après eux, ce n&#8217;est pas encore cela. Concernant la gestion du code source et les tickets d&#8217;incident, le tout est sur Google Code. </p>
<p><strong>La sécurité</strong><br />
Les utilisateurs sont authentifés avec les services de Google. Le code est très simple, et il est facile d&#8217;appeler les services de Google. Pour protéger les pages, Spring MVC et les filters permettent de déclarer les URLs qui demanderont de l&#8217;authentification. L&#8217;application a aussi un objet SwagUser avec par exemple les votes et vos commentaires. Cet objet est créé lorsque l&#8217;utilisateur s&#8217;authentifie la première fois sur l&#8217;application. Il est ensuite simplement rechargé si vous revenez. La clé primaire utilisé n&#8217;est pas l&#8217;email Google mais le Google Account Name. En fait, Sam a découvert que la version GWT envoyait vers le client la liste des emails des personnes ayant postées un Swag sur le site, plutôt genant. </p>
<p><strong>L&#8217;accès aux données</strong><br />
Concernant les données, un tour dans la classe ItemDAO nous montre que le code est plutôt simple. Ils utilisent Spring JDOTemplate, avec un persistenceManager. Les Transactions sont aussi utilisées, mais j&#8217;ai vu des méthodes synchronized (comme updateRating). Bizarre.</p>
<p>Un souci de Google App Engine et du modèle de persistence : il n&#8217;est pas possible de faire des recherches sur plusieurs Entités à la fois. La recherche sur les champs textes est aussi forcément Case sensitive&#8230; Bref si vous voulez ajouter un champ &laquo;&nbsp;Search&nbsp;&raquo; sur votre application GAE, le mieux est de vous tourner vers un projet comme Compass. Celui-ci se place au dessus de Lucene. Il indexe les entités et permet de faire de la recherche full-text sur des Entités. Très pratique, je m&#8217;en suis servi sur http://touilleur.appspot.com (projet non terminé). </p>
<p>Concernant l&#8217;authentification, si vous cliquez sur un lien dynamique (GET /view/item?order=toto) et que vous devez passer par la page d&#8217;authentification de GAE, la QueryString n&#8217;est pas conservée. Il y a un bug sur App Engine (<a href="http://code.google.com/p/googleappengine/issues/detail?can=2&#038;q=2225&#038;colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component&#038;id=2225">bug 2225</a>) à ce sujet. </p>
<p><strong>Spring MVC</strong><br />
Des 3 frameworks utilisés, c&#8217;est le plus simple et le plus pratique. Nous avons passé un bon bout de temps dans le code. Cette partie était trop axée Spring, et plus tellement GAE. Mais bon, si vous ne connaissez pas encore Spring MVC, il faut vous y mettre. Les annotations et la gestion des RequestMapping par exemple, c&#8217;est fort. </p>
<p><strong>Google Web Toolkit 1.7</strong><br />
La version GWT est clairement très Web 2.0. Mais ce que j&#8217;ai retenu c&#8217;est que trop de Web 2.0 c&#8217;est plutôt fatiguant. D&#8217;un point de vue applicatif, il n&#8217;y a pas grand chose de plus. Oui de l&#8217;Ajax, ok. Mais j&#8217;ai été un peu inquiet de voir la quantité de code pour un résultat qui n&#8217;est pas si énorme que cela. De plus avec 1000 fichiers dans cette petite application, je trouve que l&#8217;on se rapproche trop de la limite des 3000 fichiers statiques par application Google App Engine. Du côté de GWT, le framework SmartGWT est vraiment propre. Rien à voir avec cette bouse de GWT-Ext qu&#8217;un client aux USA veut utiliser&#8230; </p>
<p><strong>La gestion des images</strong><br />
L&#8217;application vous permet d&#8217;uploader vers le serveur une photo du Goodie, afin de l&#8217;afficher sur la page d&#8217;accueil en vignette, et en grand sur la page détaillée du Swag. Mine de rien, cette partie sur le traitement de l&#8217;image, pour GWT, JSF2 ou Spring MVC, représente un gros boulot par rapport à une application classique.</p>
<p>Sam présente tout d&#8217;abord le service de Google qui traite les images, les retaille et vous les redonne. Plutôt bien fait je trouve. Comme il n&#8217;est pas possible de stocker les images dans un répertoire, il faut écrire une Servlet qui stream le contenu de l&#8217;image vers le navigateur. C&#8217;est pas top je trouve. Hier la démo d&#8217;Amazon avec le service Amazon S3 pour stocker les images m&#8217;a semblé bien plus pro que ce que j&#8217;ai vu là. Cela donne des URLs super sexy pour récupérer une image dans l&#8217;application. Jugez plutôt:</p>
<pre>

&lt;img src="&lt;c:url value='/springmvc/showimage/${swagitem.imageKey}'/&gt;" /&gt; 
</pre>
<p>Bien entendu, cela pose aussi des soucis avec le cache du navigateur&#8230; Si l&#8217;image change, le navigateur ne rafraîchit pas l&#8217;image. Il semble qu&#8217;il ne soit pas possible de changer les headers HTTP et de faire expirer le cache&#8230; Je n&#8217;ai pas posé la question. </p>
<p><strong>Qu&#8217;est-ce qui marche sur GAE ?</strong><br />
La liste des classes Java est limitée. En conséquence, tout les frameworks Java ne fonctionnent pas sur GAE. Par exemple Grails par défaut déclare un log4j avec un FileAppender&#8230; ce qui est interdit sur GAE. Regardez cette page pour vous donner une idée de ce qu&#8217;il est vraiment possible de faire sur GAE:<br />
<a href="http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine">Will it play on Google App Engine ?</a></p>
<p><strong>JSF2.0</strong><br />
Là j&#8217;ai décroché&#8230; Ce que j&#8217;ai entendu c&#8217;est que c&#8217;est faisable, mais difficile. Les slides enchaînent les soucis et les limitations, de quoi déprimer. Mais le résultat est plutôt sympa concernant l&#8217;interface utilisateur. Le code source dans la partie Java est propre, comparé à la soupe de la version GWT+SmartGWT. Bon si vous voulez voir ce que donne JSF et Google App Engine, le mieux est de télécharger le code du projet et de regarder par vous-même</p>
<p><strong>Autres trucs cités</strong><br />
Scott parle aussi du service d&#8217;envoi des emails de Google App Engine. Pratique et simple à utiliser, limité à 1000 mails par jour. Ils effectuent aussi une démonstration de la mise en production sur l&#8217;App Engine : simple et clair comme les autres projets Google. Concernant l&#8217;asynchronisme, il est possible de configurer des Jobs pour appeler une URL donnée avec une syntaxe à la Cron. Pas du JMS, mais pratique pour envoyer par exemple un email à minuit aux abonnés du site.<br />
Une question sur la gestion des backups : il y a un projet appelé GAE bar http://aralbalkan.com/1784</p>
<p><strong>Conclusion</strong><br />
En sortant de la présentation, j&#8217;ai trouvé que la partie Spring du côté service était vraiment intéressante et adapté à Google App Engine. La version GWT+SmartGWT demande quelques efforts de programmation mais semble plutôt bien écrite. La version JSF2 m&#8217;a déprimé et me semble encore trop jeune par rapport à l&#8217;architecture de GAE pour l&#8217;instant. </p>
<p>Google App Engine est très certainement une plate-forme intéressante. Attention cependant à bien se rendre compte que cette plate-forme demande un investissement assez important afin d&#8217;apprendre à écrire un modèle de données sans schémas. De nouveaux problèmes apparaissent comme ce cas de la gestion des vignettes du site. Ne pas pouvoir stocker un fichier sur un disque, cela vous force à chercher d&#8217;autres solutions. </p>
<p>Nous manquons encore un peu de recul, mais ce projet est un très bon point de départ si vous cherchez un exemple complet d&#8217;application sur Google App Engine. J&#8217;aurai aimé une version Groovy pour comparer, avec Grails ou Gaelyk par exemple. </p>
<p>Voilà je n&#8217;ai pas tout couvert, mais Romain de <a href="http://www.xebia.fr">Xebia</a> était aussi là, et donc <a href="http://blog.xebia.fr/">le blog de Xebia</a> vous donnera un autre angle sur ce sujet. </p>
<p><strong>Références</strong><br />
<a href="http://code.google.com/p/swagswap/">Page du projet SwagSwap sur Google Code</a><br />
<a href="http://swagswap.appspot.com/jsf/home.jsf">Page d&#8217;accueil sur Google App Engine de SwagSwap</a><br />
<a href="http://swagswap.appspot.com/springmvc/search">La version Spring MVC</a><br />
<a href="http://swagswap.appspot.com/jsf/allSwag.jsf">La version JSF2</a><br />
<a href="http://swagswap.appspot.com/SwagSwapGWT.html">La version GWT 1.7</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/11/18/google-app-engine-a-devoxx-2009-journee-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Wave : premiers tests</title>
		<link>http://www.touilleur-express.fr/2009/07/19/google-wave-premiers-tests/</link>
		<comments>http://www.touilleur-express.fr/2009/07/19/google-wave-premiers-tests/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 14:34:16 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1824</guid>
		<description><![CDATA[Ce matin un email dans ma boîte aux lettres : &#171;&#160;Bonjour Nicolas Martignole, voici vos codes d&#8217;accès à Google Wave&#8230; Amusez-vous bien !&#171;&#160;. 
Si le mail n&#8217;était pas arrivé un dimanche matin à 00h03, j&#8217;aurai bien cru un moment que j&#8217;étais une personne très importante pour que l&#8217;on me donne un compte&#8230; En fait Google a annoncé le 17 juillet dernier que 5800 comptes Google Wave avaient été distribué lors de la conférence Google I/O et qu&#8217;au cours de l&#8217;été, 20 000 nouveaux comptes seront ouverts. Bref c&#8217;est donc une ...]]></description>
			<content:encoded><![CDATA[<p>Ce matin un email dans ma boîte aux lettres : &laquo;&nbsp;<em>Bonjour Nicolas Martignole, voici vos codes d&#8217;accès à Google Wave&#8230; Amusez-vous bien !</em>&laquo;&nbsp;. </p>
<p>Si le mail n&#8217;était pas arrivé un dimanche matin à 00h03, j&#8217;aurai bien cru un moment que j&#8217;étais une personne très importante pour que l&#8217;on me donne un compte&#8230; En fait Google a annoncé <a href="http://googlewavedev.blogspot.com/2009/07/google-wave-sandbox-update.html">le 17 juillet dernier</a> que 5800 comptes Google Wave avaient été distribué lors de la conférence Google I/O et qu&#8217;au cours de l&#8217;été, 20 000 nouveaux comptes seront ouverts. Bref c&#8217;est donc une histoire de temps aussi pour vous si vous avez fait la demande.<br />
Premiers arrivés, premiers servis. Je m&#8217;étais inscrit quelques heures après l&#8217;annonce, grâce à l&#8217;information trouvée sur Twitter. Si vous souhaitez faire une demande de compte, rendez-vous <a href="https://services.google.com/fb/forms/wavesignupfordev/">sur la page Google Wave</a>. </p>
<p>Bref avant de vous parler de mes premiers pas avec <a href="http://wave.google.com/">Google Wave</a>, j&#8217;en profite pour revenir sur <a href="http://www.universite-du-si.com/">l&#8217;USI 2009</a>. Suite à sa présentation des outils Google pour l&#8217;entreprise, Didier Girard de SFEIR a proposé d&#8217;organiser une présentation de Google Wave avec Guillaume Laforge de SpringSource, chef de projet de Groovy. C&#8217;est donc dans une petite salle de 50 personnes que nous avons pu voir Google Wave pour l&#8217;une des premières fois en France.<br />
<img src="http://www.touilleur-express.fr/wp-content/img_0342_wave02.jpg" alt="img_0342_wave02" title="img_0342_wave02" width="400" height="300" class="alignnone size-full wp-image-1826" /></p>
<p>Guillaume Laforge (à gauche) et Didier Girard (à droite) débutent la présentation par une diapo qui explique Google Wave en 140 caractères, à la Twitter. Notez cette idée pour vos prochaines présentations. Si vous n&#8217;êtes pas en mesure de résumer votre contenu en un message twitter, vous pouvez encore bosser. Excellente idée de Didier.<br />
<img src="http://www.touilleur-express.fr/wp-content/img_0343_google_wave01.jpg" alt="img_0343_google_wave01" title="img_0343_google_wave01" width="480" height="360" class="alignnone size-full wp-image-1825" /><br />
J&#8217;aime bien aussi l&#8217;idée de Didier de se présenter non pas comme un Geek ou un Boss mais comme&#8230; un Beek ou un Goss ! </p>
<p><img src="http://www.touilleur-express.fr/wp-content/img_0345.jpg" alt="img_0345" title="img_0345" width="480" height="288" class="alignnone size-full wp-image-1827" /></p>
<p><strong>Google Wave en quelques mots</strong><br />
Wave est le nouvel outil de communication propulsé par Google qui ressemble à un client de messagerie électronique, auquel des fonctions de messageries instantanées ont été ajoutées. Lorsque vous éditez un message pour répondre, et qu&#8217;un autre destinataire est en ligne, vous voyez littéralement l&#8217;autre personne &laquo;&nbsp;taper&nbsp;&raquo; son texte en direct sous vos yeux. C&#8217;est donc un mélange de twitter, de client mail et d&#8217;IRC/Chat. </p>
<p>Google Wave c&#8217;est aussi le concept de Robot qui vient du monde IRC. Ces invités virtuels peuvent être ajoutés à votre conversation. Lorsqu&#8217;ils sont présents, le texte que vous tapez est analysé en temps réel afin de l&#8217;enrichir et de fournir de nouveaux services. Vous tapez un numéro de téléphone ? Un robot le reconnaît et ajoute une URL skype pour appeler le numéro. Vous tapez une adresse ? Un lien vers Google Maps est ajouté automatiquement. </p>
<p>Il est possible aussi d&#8217;ajouter des robots capables de traduire à la volée votre texte. Dans la vidéo de la démonstration, on voit un francophone écrire un texte en français, et celui-ci est traduit en anglais à la volée. Il est donc possible d&#8217;imaginer de nouveaux outils, qui seront eux-même hébergé sur Google App Engine, la plateforme de Cloud Computing de Google.</p>
<p>Didier Girard a implémenté un Robot capable de reconnaître un tag SMS. Lors de la démonstration, il tape &laquo;&nbsp;SMS:0600112233 ceci est un test&nbsp;&raquo;, et quelques instants plus tard un message est affiché sur son téléphone portable. Un robot écoute la &laquo;&nbsp;Wave&nbsp;&raquo; et a reconnu le mot clé &laquo;&nbsp;SMS:&nbsp;&raquo;. Après avoir extrait le numéro de téléphone, il se charge d&#8217;envoyer un vrai SMS au téléphone de Didier. La démonstration va plus loin puisque nous avons tous participé en envoyant un SMS qui s&#8217;est affiché&#8230; dans la Wave ! </p>
<p><strong>A quoi pourra servir Google Wave ?</strong><br />
Après la démonstration, je discute un peu avec Didier. Nous sommes d&#8217;accord pour dire que nous venons de voir &laquo;&nbsp;quelque chose&nbsp;&raquo; mais qu&#8217;il est encore tôt pour se rendre compte de la portée de ce nouvel outil de communication. Quelque part j&#8217;essaye de me souvenir de la première fois que j&#8217;ai utilisé un client de messagerie en 94 à l&#8217;Ecole&#8230; De la première fois où j&#8217;ai envoyé un SMS à un ami, où j&#8217;ai commencé à Twitter&#8230; On ne se rend pas alors très bien compte si ce que l&#8217;on fait fera parti de notre quotidien dans quelques mois ou non. </p>
<p>Je me souviens aussi de projets comme <a href="http://www.icq.com/">ICQ</a> en 97, que vous connaissez peut-être. Mais qui se souvient en 1996 du projet Marimba, fondé par <a href="http://en.wikipedia.org/wiki/Kim_Polese">Kim Polese</a> une ancienne dirigeante de SUN Microsystems ? A l&#8217;époque c&#8217;était THE application. Le principe consistait à pousser de l&#8217;information vers le client, un peu comme nos Widgets de météo et d&#8217;information sur Mac. Racheté par BMC Software en 2004, le produit n&#8217;existe plus&#8230; Kim Polese était la responsable produit de Java chez SUN en 1996&#8230; Je m&#8217;en souviens car j&#8217;ai travaillé avec SUN France à cet époque et que Marimba était le truc à la mode.</p>
<p>Alors à quoi pourra bien servir Google Wave ?<br />
J&#8217;imagine de vrais usages, comme lorsque répondez pour la 6e fois dans un email, et que votre email ressemble à une conversation de Chat et que vous perdez un temps précieux avec vos correspondants. J&#8217;imagine aussi ce nouveau système de réunion, à la fois tableau blanc interactif, document partagé mais aussi plus proche du courrier électronique&#8230;</p>
<p>De mon côté j&#8217;essayerai bien d&#8217;écrire un Robot pour Wave. Mon Geek Day Robot vous proposerait de vous tenir informé des prochaines soirées de Geek, de vous dire qui viendra et de vous donner quelques informations. Là expliqué comme cela, je sens pas un grand enthousiasme. Mais pas de soucis, je vous montrerai cela dès que possible. </p>
<p><strong>L&#8217;interface de Google Wave</strong><br />
Comme vous pouvez le constater sur cette capture d&#8217;écran, c&#8217;est relativement simple :<br />
<img src="http://www.touilleur-express.fr/wp-content/wavetouilleur.jpg" alt="wavetouilleur" title="wavetouilleur" width="800" height="396" class="alignnone size-full wp-image-1831" /></p>
<p>La zone de Navigation sur la gauche rappelle un client de messagerie électronique classique. La zone Contact permet en bas à gauche de retrouver vos amis. La zone centrale marquée &laquo;&nbsp;By Me&nbsp;&raquo; sur la capture d&#8217;écran, est la zone qui liste les différentes Waves. A droite enfin, le contenu de ces fameuses Wave. Par rapport à un email classique, les correspondants/contributeurs de la Wave sont listés en haut. Les Robots lorsqu&#8217;ils sont invités par le créateur de la Wave, apparaissent en haut. </p>
<p><strong>Bon alors, raconte&#8230;</strong><br />
Quelques minutes après m&#8217;être authentifié, je commence par lire les messages dans les plus grosses Waves. Mes premiers pas me font penser à un Wiki qui serait mis à jour sous mes yeux. Je vois ainsi un utilisateur entrain de compléter un des articles. Chacun de ses caractères, presque la vitesse à laquelle il tape, c&#8217;est assez bluffant. Google Docs propose un système similaire mais croyez-moi, il y a une différence entre les deux. J&#8217;y reviens après vous avoir laissé admirer une autre capture d&#8217;écran :<br />
<img src="http://www.touilleur-express.fr/wp-content/wave02.jpg" alt="wave02" title="wave02" width="790" height="453" class="alignnone size-full wp-image-1836" /></p>
<p>Une Wave c&#8217;est donc un document partagé avec l&#8217;enregistrement de la conversation des différents contributeurs du document. Une ligne de temps avec des commandes &laquo;&nbsp;avance rapide&nbsp;&raquo;, &laquo;&nbsp;retour au début&nbsp;&raquo; permet de rejouer la Wave et de voir l&#8217;avancement des discussions entre les membres de la conversation. Ou comment rejouer de l&#8217;instantané&#8230; Imaginez un instant l&#8217;espace de stockage et la puissance nécessaire pour réaliser ce boulot, qui n&#8217;a rien d&#8217;exceptionnel, à part le fait que&#8230; personne d&#8217;autres ne pourrait le faire.</p>
<p>Google s&#8217;appuie sur sa plateforme de Cloud Computing afin d&#8217;ajuster la quantité de puissance (et d&#8217;énergie électrique un jour) pour que le système fonctionne correctement. Chacun de vos caractères est envoyé au serveur, qui peut ainsi retourner aux autres contributeurs vos messages. Et l&#8217;édition à plusieurs fonctionne même très bien, bien mieux que sur Google Spreadsheets. </p>
<p>Techniquement, Google Wave c&#8217;est <strong>du GWT</strong> du côté client ce qui rassure tout le monde quant à la pérennité de GWT. Cette fois-ci c&#8217;est bon, GWT est la technologie de rendu avec HTML 5 de Google. Côté serveur, une API permettra aussi d&#8217;intégrer ses propres Waves dans son site. Dès demain, nous pourrons donc avec une Wave attachée à mes billets sur le Touilleur Express, et chacun de vous pourra alors voir les autres lecteurs et discuter en temps réel à propos de l&#8217;article&#8230; &laquo;&nbsp;<em>Hé tu as vu comment il raconte encore n&#8217;importe quoi ? Waaah il est trop fort ce nicolas, je vais appeler mon chien Touilleur Express en hommage ! Tu sais que depuis que je lis le Touilleur Express j&#8217;ai les cheveux qui repoussent ? </em>&laquo;&nbsp;. </p>
<p>Notez que je ne vous encourage pas à dire n&#8217;importe quoi&#8230; Comme toujours je suis très sérieux&#8230; </p>
<p>Bon c&#8217;est pas tout, mais j&#8217;ai un joujou avec lequel m&#8217;amuser alors je vous laisse. </p>
<p>Y&#8217;a la zone de commentaires froide en dessous où tu peux laisser un commentaire si tu veux.</p>
<p><strong>Références</strong><br />
- Je vous recommande <a href="http://francois.goldgewicht.com/2009/06/03/google-wave-en-quelques-mots/">l&#8217;article de François Goldgewicht</a> qui présente Wave en quelques mots.<br />
- <a href="https://services.google.com/fb/forms/wavesignupfordev/">Faire une demande pour un compte Google Wave</a><br />
- <a href="https://www.google.com/a/wavesandbox.com">La page de démarrage</a> de Google Wave SandBox, une fois que votre compte est actif<br />
- <a href="http://www.application-servers.com/post/2009/05/28/Google-Wave">L&#8217;article de Didier Girard</a> sur Application-Servers.com </p>
<p>http://francois.goldgewicht.com/2009/06/03/google-wave-en-quelques-mots/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/07/19/google-wave-premiers-tests/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google App Engine, Grails et Spring MVC</title>
		<link>http://www.touilleur-express.fr/2009/06/18/google-app-engine-grails-et-spring-mvc/</link>
		<comments>http://www.touilleur-express.fr/2009/06/18/google-app-engine-grails-et-spring-mvc/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 05:43:30 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[geekday]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1512</guid>
		<description><![CDATA[Je travaille depuis quelques jours avec la version Java de Google App Engine. Je bosse sur une idée de projet pour d&#8217;une part tester l&#8217;app-engine, et d&#8217;autre part&#8230; me faire plaisir. Comme dit Eric &#171;&#160;Bob&#160;&#187; Mignot : faut se faire plaisir.
Google App Engine est une plate-forme de Cloud Computing qui permet de déployer facilement une application Web Java. Voici comment cela fonctionne : vous codez votre application Java en local, vous la télechargez ensuite vers le serveur de Google, puis quelques instants plus tard votre application est déployée.
L&#8217;intérêt et la ...]]></description>
			<content:encoded><![CDATA[<p>Je travaille depuis quelques jours avec la version Java de Google App Engine. Je bosse sur une idée de projet pour d&#8217;une part tester l&#8217;app-engine, et d&#8217;autre part&#8230; me faire plaisir. Comme dit Eric &laquo;&nbsp;Bob&nbsp;&raquo; Mignot : faut se faire plaisir.</p>
<p><a href="http://code.google.com/intl/fr-FR/appengine/">Google App Engine</a> est une plate-forme de Cloud Computing qui permet de déployer facilement une application Web Java. Voici comment cela fonctionne : vous codez votre application Java en local, vous la télechargez ensuite vers le serveur de Google, puis quelques instants plus tard votre application est déployée.</p>
<p>L&#8217;intérêt et la force de la solution de Cloud Computing de Google est d&#8217;offrir un serveur très puissant, dont la capacité en CPU, en mémoire, en bande passante, s<strong>&#8216;ajuste automatiquement</strong> à l&#8217;usage, aux nombres de visiteurs. La différence avec un serveur classique sous Unix comme celui sur lequel j&#8217;héberge le blog, c&#8217;est la virtualisation totale du serveur. Chez l&#8217;hébergeur du blog le Touilleur Express, j&#8217;utilise déjà une solution de virtualisation, qui me permet de rajouter ou de retirer des CPUs ou de la bande passante. Cependant c&#8217;est à moi de régler cette capacité. Or au début je n&#8217;avais aucunes idées du nombre de processeurs nécessaires&#8230; J&#8217;ai payé pour rien jusqu&#8217;à trouver les bons réglages. Et encore, c&#8217;est empirique, il n&#8217;y a pas de console m&#8217;indiquant le taux d&#8217;usage de ma machine.<br />
Avec la solution de Google App Engine, s&#8217;offre à vous un portail Web d&#8217;administration qui vous affiche l&#8217;utilisation de votre application. Par défaut, gae (Google App Engine) est gratuit. Si vous savez écrire une application Web simple en Java, vous pouvez donc vous inscrire et tester en quelques heures. </p>
<p><strong>CanadaDry, CanadaGrails</strong><br />
Bref me voilà il y a quelques temps devant mon éditeur favori, IDEA IntelliJ, avec une  idée de développement histoire de me faire la main. Je décide de tester <a href="http://grails.org/">Grails</a>, un framework en Groovy qui permet d&#8217;écrire très rapidement une application. Une fois Grails installé, je récupère ensuite le plugin pour Google AppEngine afin de commencer à créer ma première application. Je décide de tester la version JDO, car après avoir vu la doc de DataNucleus, j&#8217;ai le sentiment que JPA est encore un peu trop neuf.<br />
Si vous n&#8217;avez pas encore testé Grails, prenez 15 minutes pour suivre <a href="http://grails.org/Quick+Start">le Quick-Start</a> puis ensuite lisez attentivement les différentes pages sur <a href="http://grails.org/plugin/app-engine">le plugin Google App Engine</a>.<br />
J&#8217;ai été vraiment emballé de pouvoir faire une application type Crud en quelques minutes. Ensuite je suis quelqu&#8217;un de curieux. Alors j&#8217;ai garé la voiture &laquo;&nbsp;Grails&nbsp;&raquo; sur le côté de la route et j&#8217;ai commencé à regarder le moteur. Premier besoin : je veux changer une des vues pour afficher un datePicker au lieu d&#8217;un champ date. Je teste avec un autre plugin d&#8217;interface utilisateur&#8230; pas très emballé. Grails vient avec un moteur de plugin qui permet d&#8217;ajouter et de retirer des fonctionnalités rapidement. Le souci est qu&#8217;il est plus difficile de trouver la raison d&#8217;une erreur, et que pour valider vos changements vous déployez beaucoup plus, par peur que ce que vous venez de faire ne marche pas. </p>
<p>Je rencontre ensuite un souci de namespace. Voici la solution que vous devrez aussi faire :<br />
<strong>Message d&#8217;erreur</strong>:<br />
Cannot find the declaration of element &#8216;datastore-indexes&#8217;.<br />
<strong>Solution:</strong><br />
Editer le fichier $APP_HOME/target/war/WEB-INF/datastore-indexes.xml et effacer le namespace de la première ligne :<br />
<em>xmlns=&nbsp;&raquo;http://appengine.google.com/ns/datastore-indexes/1.0&#8243;</em></p>
<p>Le déploiement vers l&#8217;appengine est relativement facile, il faut simplement utiliser l&#8217;utilitaire appCfg.sh de GAE la première fois afin de spécifier son mot de passe Google. Par la suite, le plugin de Grails est capable de déployer l&#8217;application.</p>
<p>Jusqu&#8217;ici tout va bien.</p>
<p><strong>Difficultés rencontrées</strong><br />
J&#8217;ai eu du mal avec Groovy et Grails. Malgré le support d&#8217;IDEA IntelliJ de Groovy, j&#8217;ai pas mal de soucis avec le côté dynamique du langage. Bref je patauge pas mal et dès la première difficulté, je peste.<br />
Un langage dynamique, cela entraîne en fait pas mal de phase de redéploiement pour s&#8217;assurer que tout fonctionne. Je trouve un peu poussif les performances, quoique cela soit purement subjectif. Je parle de Grails + plugin Google App Engine. </p>
<p>Ensuite j&#8217;ai trouvé que la promesse de l&#8217;écriture rapide était bien remplie. Un create entity, un update view, oui Grails est vraiment bien fait, bravo à l&#8217;équipe de Grails. Mais la perte de certains repères, du typage fort, représente une difficulté à ne pas négliger.</p>
<p><strong>Spring MVC et SpringFuse</strong><br />
Un peu inquiet de ne pas avancer aussi vite que cela avec Grails, je recrée un nouveau projet Java afin de tester du simple code Java.<br />
C&#8217;est ensuite en mettant en place Spring MVC que j&#8217;ai l&#8217;idée de reprendre un projet généré avec <a href="http://www.springfuse.com">SpringFuse</a>. Et hop, en quelques heures j&#8217;ai transformé mon application en projet full-Java, quelques JSPs, deux controllers, un peu de JDO pour Google App Engine, bref j&#8217;avance beaucoup plus vite. Paradoxal non ? C&#8217;est grâce au code de SpringFuse, à la fois simple et en même temps bien documenté. J&#8217;ai viré pas mal de trucs pour le faire passer sur GAE, mais rien de bien difficile. J&#8217;attends le support de JPA prévu pour bientôt. Sinon Spring MVC 2.5 marche très bien sur Google App Engine, qu&#8217;on se le dise. Je n&#8217;ai pas utilisé les annotations, ni les transactions par contre. </p>
<p><strong>Premier bilan</strong><br />
Lorsque l&#8217;on bosse seul sur son projet dans son garage, et que l&#8217;on vise une application massivement Web, paradoxalement je pense que l&#8217;on va plus vite en n&#8217;écrivant que ce qui est nécessaire.<br />
Grails vaut vraiment le coup d&#8217;être testé. Le plugin GAE n&#8217;est pas encore parfait, et il sera plus difficile de trouver de l&#8217;aide sur Google en cas de plantage. Soit vous êtes un aventurier, soit vous êtes plutôt conservateur. A vous de voir.<br />
Je ne parle pas sinon des tests pourtant intéressant de GTPL, une idée vraiment intéressante qui permet d&#8217;écrire des templates de page en Groovy. Cela mérite un article plus complet. </p>
<p>Suite des aventures dans le prochain numéro.<br />
Nom de code du projet : GeekDay</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/06/18/google-app-engine-grails-et-spring-mvc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google AppEngine : retour de soirée</title>
		<link>http://www.touilleur-express.fr/2009/04/09/google-appengine-retour-de-soiree/</link>
		<comments>http://www.touilleur-express.fr/2009/04/09/google-appengine-retour-de-soiree/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 21:47:24 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1098</guid>
		<description><![CDATA[
Google a annoncé le support de Java et de Groovy pour la plate-forme de CloudComputing, Google AppEngine. L&#8217;annonce finalement a été faite dans la nuit de mardi à mercredi, nous savions donc le contenu de la soirée mystère. Car il faut aussi vous raconter que tout ceci a commencé il y a un mois. Google a organisé discrètement ce rendez-vous avec 50 personnes. Pour mon égo-mètre qui ne demande qu&#8217;à partir au quart de tour, j&#8217;étais très content de faire partie des happy-few. Bon, en fait nous nous sommes retrouvés ...]]></description>
			<content:encoded><![CDATA[<p><img src="http://code.google.com/intl/fr/appengine/images/appengine_lowres.jpg" alt="Google AppEngine"/><br />
Google a annoncé le support de Java et de Groovy pour la plate-forme de CloudComputing, Google AppEngine. L&#8217;annonce finalement a été faite dans la nuit de mardi à mercredi, nous savions donc le contenu de la soirée mystère. Car il faut aussi vous raconter que tout ceci a commencé il y a un mois. Google a organisé discrètement ce rendez-vous avec 50 personnes. Pour mon égo-mètre qui ne demande qu&#8217;à partir au quart de tour, j&#8217;étais très content de faire partie des happy-few. Bon, en fait nous nous sommes retrouvés comme par hasard avec les Usual Suspects, à part quelques têtes plus rares, ou venues de loin comme Nicolas de Loof ou <a href="http://www.dng-consulting.com/blogs/">Sami Jaber</a>. </p>
<p>Dans la première partie de la soirée Maxime TIRAN de Google France nous présente la démarche de Google. Le navigateur est le client du futur, l&#8217;effort d&#8217;un navigateur comme Chrome est de proposer un outil puissant, afin de pouvoir proposer de nouveaux services. Les dernières technologies Webs comme HTML5 basées sur des standards ouverts visent à rattraper Flash, Java FX et Silverlight. Google se positionne aussi sur l&#8217;objectif de faciliter l&#8217;accès aux données et d&#8217;offrir un socle de Partage. Maxime mentionne le projet <a href="http://incubator.apache.org/shindig/">Shindig</a> hébergé par Apache, un conteneur OpenSocial qui est une implémentation de l&#8217;API OpenSocial. Google souhaite proposer à la communauté des développeurs des présentations, comme cela se fait aux Etats-Unis, afin de prendre en compte votre point de vue. Il rappelle que les projets sur code.google.com sont suivis par les équipes en interne chez Google.</p>
<p>Dans la deuxième partie de la présentation, Didier Girard de SFEIR nous propose une présentation des nouveautés de cette version d&#8217;AppEngine. Didier explique en quelques mots le principe du Cloud-Computing et les 3 types de service. Il y a tout d&#8217;abord le cloud computing physique, où l&#8217;infrastructure est un service (IaaS). C&#8217;est l&#8217;hébergement classique comme chez Gandi.net qui vous permet de rajouter du CPU ou de la mémoire sur votre serveur. Vient ensuite l&#8217;hébergement de services, comme Salesforce.com. Le principe est d&#8217;hébergé à l&#8217;extérieur un service comme la gestion client (CRM) ou vos emails (Google Mail). Enfin, et c&#8217;est le principe d&#8217;AppEngine, l&#8217;hébergement de type plateforme (Plateform As A Service). Google AppEngine est un serveur d&#8217;application qui vous permet de faire tourner des applications écrites en python (depuis un an) ou en Java/Groovy (depuis mercredi dernier).<br />
Ses équipes ont développé deux applications qu&#8217;il nous montrera ensuite plus tard dans la soirée. Il a eu en effet la possibilité de tester il y a plus de deux mois, les premières versions bétâ du support de Java, avant l&#8217;ouverture aux développeurs.</p>
<p>Un exemple d&#8217;application hébergée sur Google AppEngine assez célèbre : <a href="http://www.whitehouse.gov/openforquestions/">http://www.whitehouse.gov/openforquestions/</a>. Oui il s&#8217;agit bien de la maison blanche de Barack Obama. Il s&#8217;agit d&#8217;une application développée à l&#8217;occasion d&#8217;une séance de questions ouvertes posées par les Internautes. La plate-forme de Google a permis d&#8217;offrir des performances le soir de l&#8217;événement assez importante. Il y a aussi d&#8217;ailleurs du GWT. C&#8217;est une application en Python.</p>
<p>Les 5 nouveautés de cette nouvelle version de <a href="http://code.google.com/intl/fr/appengine/">Google AppEngine</a> sont :<br />
1) La possibilité d&#8217;acheter de la puissance supplémentaire<br />
2) Le support de tâches type cron déclenchées par une URL<br />
3) Support d&#8217;une base de données type BigTable<br />
4) L&#8217;accès à travers votre firewall à vos applications d&#8217;entreprise (SDC)<br />
5) Early look at Java Support -> premier regard au support de Java </p>
<p>Concernant le point 1 : l&#8217;offre est gratuite jusqu&#8217;à 5 millions de pages vues par mois. Autant dire, on a le temps de voir venir. Je n&#8217;ai aucuns détails sur le pricing, nada, rien. Impossible de comparer avec Amazon EC2. Les offres ne sont de toutes les façons pas comparables.</p>
<p>Le support des tâches de type cron : il suffit de placer un fichier XML spécial dans son WEB-INF, avec une URL et une syntaxe type Cron. Au déploiement, le moteur de Google AppEngine voit que vous souhaitez qu&#8217;il appelle l&#8217;url /mail/sendMailingList.do par exemple&#8230; Bref il faut que votre service soit exposé sous la forme d&#8217;une URL. Nada sur la sécurité&#8230; je pense cependant qu&#8217;il est faisable de protéger cette url. Peut-on ne pas la déclarer dans le web.xml ? non. Je dois creuser ce sujet. </p>
<p>Concernant le support du stockage de données, Didier nous a montré sur une petite application le principe de l&#8217;utilisation de JDO. Basé sur DataNucleus, un projet en license Apache v2, le support JDO permet de vraiment écrire du code portable. C&#8217;est plutôt une bonne nouvelle. <a href="http://code.google.com/intl/fr/appengine/docs/java/datastore/">Plus de détails sur cette page</a>.</p>
<p>Vient ensuite un sujet intéressant. Si je code demain une application pour mon client, et que je la déploie sur Google AppEngine, se pose alors le problème de l&#8217;accès aux donnés du SI. Google propose le <a href="http://code.google.com/intl/fr/securedataconnector/docs/index.html">Secure Data Connector</a> (SDC).</p>
<p><img src="http://code.google.com/intl/fr/securedataconnector/docs/sdc.png"/> </p>
<p>SDC est un logiciel client déployé de l&#8217;autre côté de votre firewall qui communique via HTTPS avec la plate-forme Google AppEngine. Ce système permet de construire un pont entre le SI de l&#8217;entreprise et le monde de Google. Du coté de votre SI, il faut que vos services soient exposés sous la forme d&#8217;URL. J&#8217;ai donc compris qu&#8217;il faut que votre système d&#8217;information s&#8217;expose sous forme d&#8217;url HTTP, avec une architecture de type REST. Je vois déjà les administrateurs de sécurité avec un lance-roquette sur l&#8217;épaule&#8230; C&#8217;est pas gagné, même si la solution d&#8217;un point de vue technique est bonne.<br />
Le code du client SDC est libre, open-source. Tout le monde peut le regarder, ce qui permet aussi à tout le monde de trouver des failles de sécurité. Ce sera bien entendu le point le plus sensible, même s&#8217;il n&#8217;y a pas d&#8217;autres solutions pour l&#8217;instant. </p>
<p>Enfin pour le 5ème point, le support de Java et de Groovy. J&#8217;ai discuté ensuite avec <a href="http://glaforge.free.fr/weblog/">Guillaume Laforge</a>, qui m&#8217;a expliqué le travail réalisé avec les équipes de Google, situées à Atlanta. Avec l&#8217;aide des équipes de Google AppEngine, les développeurs de Groovy ont adapté la dernière version afin qu&#8217;elle fonctionne sur l&#8217;AppEngine. La difficulté, comme Guillaume l&#8217;explique, c&#8217;est que Groovy étant un langage dynamique, il a besoin de certains droits avec le SecurityManager afin d&#8217;instrumenter le code. Par contre il semble que le support de Grails ne sera pas possible, vu la complexité et les efforts à fournir. Je pense que Guillaume pourra expliquer mieux que moi les détails techniques. </p>
<p>Didier a ensuite fait plusieurs démonstrations. Google AppEngine vous propose un plugin pour Eclipse, afin de démarrer rapidement l&#8217;écriture de sa première application. Je pense à Maven2 dans ma tête quand <a href="http://blog.loof.fr/">Nicolas de Loof</a> précise qu&#8217;un plugin pour l&#8217;appEngine est dans son sac à dos et devrait être disponible d&#8217;ici quelques jours. Nicolas propose un petit plugin maven afin de faciliter le déploiement d&#8217;une application à partir de maven. Allez sur <a href="http://blog.loof.fr/">son blog</a>, hop, et revenez après j&#8217;ai pas terminé.</p>
<p>J&#8217;ai vu que les équipes de SFEIR ont sacrément bossé sur un moteur de Blog écrit en Java, hébergé sur Google AppEngine. L&#8217;idée est de basculer les blogs de SFEIR vers cette plateforme si j&#8217;ai bien compris. Le projet est open-source, à quand un Touilleur Express sur l&#8217;AppEngine ? Si j&#8217;avais un peu de temps, mais pour l&#8217;instant je préfère attendre encore un peu. Peut-être d&#8217;ici 6 mois.</p>
<p><b>Est-ce que Google AppEngine est pour vous ? </b><br />
Oui définitivement si votre service Web doit gérer une charge fluctuante de visites, si vous avez développé un Gadget pour Facebook ou une application Open-Social par exemple. C&#8217;est un moyen de déployer sur une grosse machine énorme votre application, sans vous soucier de devoir réinstaller un jour votre machine. Vous n&#8217;aurez plus à gérer la sécurité, la mise à jour, les patches, les sauvegardes&#8230; Zéro administration système. </p>
<p>J&#8217;ai pour l&#8217;instant un peu de mal à imaginer une application d&#8217;entreprise type extranet, ou une application CRM. Comment s&#8217;interfacer avec un Siebel ou un SAP ? Nous avons ce connecteur SDC pour connecter notre SI à Google AppEngine. Mais avouez que pour convaincre l&#8217;équipe sécurité&#8230; C&#8217;est pas gagné. </p>
<p><b>Les services Google</b><br />
La plateforme AppEngine offre des services tels que l&#8217;authentification ou l&#8217;envoi des emails. La page &laquo;&nbsp;<a href="http://code.google.com/intl/fr/appengine/docs/java/apis.html">Services API</a>&nbsp;&raquo; donne la liste des services que nous pouvons utiliser dans nos applications Java déployées sur Google AppEngine:</p>
<p>    * Memcache est un cache mémoire simple et partagé<br />
    * URL Fetch permet d&#8217;utilser java.net.URLConnection pour parler avec d&#8217;autres applications, HTTP et HTTPS<br />
    * Mail permet d&#8217;envoyer des emails avec l&#8217;api Java Mail<br />
    * Images est un service pour manipuler des photos ou des images : retailler, améliorer, agrandir, basculer etc.<br />
    * Google Accounts permet d&#8217;authentifier les utilisateurs avec le système de Google. Cela vous décharge de la gestion des users, des mots de passes.</p>
<p>Il y a un énorme écosystème autour de Google : Calendar, Blogs, News, Recherche, Traduction, Paiement, Photos&#8230; j&#8217;attends maintenant que Google nous offre des services plus intégrés. Certes nous pouvons tous prendre la doc de chacune de ces APIs puis commencer à coder. Mais rêvons un peu, et imaginons un peu de code qui permet de prendre rendez-vous chez votre Coiffeur en prépayant par carte bleu votre séance&#8230; </p>
<pre name="code" class="java">
public class TouilleurHairCutServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
                                        throws IOException {

          GoogleCalendarService calendarService = GoogleRepository.getCalendarService(); 

          Rendezvous rd=RendezvousHelper.fetch(req);

          calendarService.createEvent(rd.getDate(),rd.getSubject());

           //........

          GoogleCheckOutService checkoutService=GoogleRepository.getCheckoutService();
          try{
                checkoutService.bill(req);
          }catch(GoogleCheckoutServiceException e) {
                // cancel event in calendar and say bye
                .....
          } 

         // Send an email with Google Calendar event, Google Map for address...
         ...
         ...

        // Fin
          resp.setContentType("text/plain");
          resp.getWriter().println("Votre rendez-vous est confirmé et payé... ");

    }
}
</pre>
<p>Rêvons un peu&#8230; une application Web où vous pourriez consommer facilement différents services Google. Je pense plus particulièrement à tout ce qui est OpenSocial afin de créer des gadgets pour HiFive, Salesforce.com, LinkedIn.com ou MySpaces&#8230; </p>
<p>J&#8217;écris ce code (bien timbré il faut le reconnaître) et je repense à ce que disait Nicolas : où est Google Guice ? A priori rien ne nous empêche d&#8217;utiliser Guice, Spring ou autre. Il y a cependant un dernier point, et après je vous laisse : toutes les APIs de Java ne sont pas supportées. Et bien oui&#8230; pas possible de créer une Thread ou de vous balader sur le filesystem&#8230; qui n&#8217;existe pas au sens classique. Il va donc y avoir un sacré effort pour lister les frameworks supportés et ceux non supportés, ce qui va alimenter la blogoshpère rapidement. C&#8217;est donc un facteur important à prendre en compte : tout n&#8217;est pas supporté, car comme toute application hébergé sur une plateforme de type PaaS, vous êtes sur un système virtuel. Oubliez l&#8217;idée de créer des fichiers plats, des sockets. Utilisez URL Fetch ou BigTable. Il y a un sujet d&#8217;architecture intéressant.</p>
<p>Si j&#8217;étais didier, je profiterai bien de l&#8217;<a href="http://usi2009.universite-du-si.com/Didier-Girard-1-94.html">USI</a> pour parler un peu du type d&#8217;application que l&#8217;on peut faire avec Google AppEngine. </p>
<p>Merci à Google et à SFEIR pour l&#8217;organisation de la soirée, et à bientôt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/04/09/google-appengine-retour-de-soiree/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Analyse de données avec PivotTable</title>
		<link>http://www.touilleur-express.fr/2008/04/04/analyse-de-donnees-avec-pivottable/</link>
		<comments>http://www.touilleur-express.fr/2008/04/04/analyse-de-donnees-avec-pivottable/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 06:32:34 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[pivot table]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=160</guid>
		<description><![CDATA[Avez-vous déjà testé la fonction PivotTable de Microsoft Excel ? C&#8217;est une fonction d&#8217;analyse des données très pratique qui permet de visiter des données et d&#8217;effectuer une analyse  des données en direct.
J&#8217;ai entendu sur The Java Posse que Google avait ajouté à la fonction Google Spreadsheets la possibilité de créer des PivotTables. Google Docs intègre un module développé par de la société Panorama dans Google Spreadsheets. Mes premiers tests avec Safari et Firefox ne sont pas très concluants car l&#8217;interface est en partie traduite en français. Il manque quelques ...]]></description>
			<content:encoded><![CDATA[<p>Avez-vous déjà testé la fonction <a href="http://www.microsoft.com/dynamics/using/excel_pivot_tables_collins.mspx">PivotTable de Microsoft Excel</a> ? C&#8217;est une fonction d&#8217;analyse des données très pratique qui permet de visiter des données et d&#8217;effectuer une analyse  des données en direct.</p>
<p>J&#8217;ai entendu sur <a href="http://javaposse.com/">The Java Posse</a> que Google avait ajouté à la fonction <a href="http://docs.google.com/">Google Spreadsheets</a> la possibilité de créer des PivotTables. Google Docs intègre un module développé par de <a href="http://www.panorama.com/google/">la société Panorama</a> dans Google Spreadsheets. Mes premiers tests avec Safari et Firefox ne sont pas très concluants car l&#8217;interface est en partie traduite en français. Il manque quelques icônes. Mais c&#8217;est assez prometteur.<br />
<br/><br />
<img src="http://www.panorama.com/images/quick-start-image.jpg"></a><br />
<br/><br />
Pour tester, <a href="http://www.panorama.com/google/pivot-table/tutorial/">voir le tutorial en anglais</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/04/04/analyse-de-donnees-avec-pivottable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Disk: la lettre au Père Noël</title>
		<link>http://www.touilleur-express.fr/2007/12/21/google-disk-la-lettre-au-pere-noel/</link>
		<comments>http://www.touilleur-express.fr/2007/12/21/google-disk-la-lettre-au-pere-noel/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 14:11:34 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touillleur-express.fr/?p=25</guid>
		<description><![CDATA[Lettre au petit Papa Noël de GoogleCher Google,j&#8217;ai été sage cette année. J&#8217;ai blogué à propos de toi plusieurs fois et je parle de toi autour de moi. Du coup, pour Noël, je souhaite un espace de stockage , un genre de disque dur virtuel. J&#8217;aimerai y stocker mes papiers scannés, mes différents documents administratifs et personnels. Je souhaite aussi un logiciel sur Windows et Vista à installer afin que mon gdrive soit accessible via une lettre réseau sur mon bureau (par exemple g:). Tiens, tu as vu, je l&#8217;ai ...]]></description>
			<content:encoded><![CDATA[<p><strong>Lettre au petit Papa Noël de Google</strong>Cher Google,j&#8217;ai été sage cette année. J&#8217;ai blogué à propos de toi plusieurs fois et je parle de toi autour de moi. Du coup, pour Noël, je souhaite un espace de stockage , un genre de disque dur virtuel. J&#8217;aimerai y stocker mes papiers scannés, mes différents documents administratifs et personnels. Je souhaite aussi un logiciel sur Windows et Vista à installer afin que mon gdrive soit accessible via une lettre réseau sur mon bureau (par exemple g:). Tiens, tu as vu, je l&#8217;ai baptisé <strong>GDrive</strong>. Je serai prêt à payer un petit peu pour avoir un accès sécurisé et un espace plus grand pour les fichiers importants. Alors s&#8217;il-te-plaît, réalise mon souhait pour 2008.Nicolas&#8230;Sites parlant de Google Disk: <a href="http://blogs.computerworld.com/node/1923">Blogs Computer World</a><a href="http://gdisk.sourceforge.net/">GDisk</a> est un service qui transforme votre compte GMail en espace de stockage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2007/12/21/google-disk-la-lettre-au-pere-noel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Guice petite frere de JBoss Seam ?</title>
		<link>http://www.touilleur-express.fr/2007/06/18/google-guice-petite-frere-de-jboss-seam/</link>
		<comments>http://www.touilleur-express.fr/2007/06/18/google-guice-petite-frere-de-jboss-seam/#comments</comments>
		<pubDate>Mon, 18 Jun 2007 20:30:59 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://www.touillleur-express.fr/?p=45</guid>
		<description><![CDATA[ Google Guice (prononcez &#171;&#160;juice&#160;&#187;) est un nouveau venu dans la place, du côté des frameworks de nouvelles générations Java EE5. Google Guice est clairement orienté IoC (Inversion of Control). Cela me rappelle le meilleur framework à ma connaissance qui allie  à savoir&#8230; JBoss Seam. La version Alpha 1.3 fonctionne sans problèmes avec JBoss AS 4.2. Je pense qu&#8217;une GA sera disponible cet été dès que les derniers bugs seront corrigés. J&#8217;avais posté en janvier lors de mes nocturnes sur jboss Seam quelques liens. Si vous voulez y jeter un ...]]></description>
			<content:encoded><![CDATA[<p> <a href="http://code.google.com/p/google-guice/">Google Guice</a> (prononcez &laquo;&nbsp;juice&nbsp;&raquo;) est un nouveau venu dans la place, du côté des frameworks de nouvelles générations Java EE5. Google Guice est clairement orienté IoC (Inversion of Control). Cela me rappelle le meilleur framework à ma connaissance qui allie <em><jsf+ioc+ejb3></jsf+ioc+ejb3></em> à savoir&#8230; <strong>JBoss Seam</strong>. La version Alpha 1.3 fonctionne sans problèmes avec JBoss AS 4.2. Je pense qu&#8217;une GA sera disponible cet été dès que les derniers bugs seront corrigés. J&#8217;avais posté en janvier lors de mes nocturnes sur jboss Seam quelques liens. Si vous voulez y jeter un oeil, <a href="http://jroller.com/page/Trecollo/20070131"> http://jroller.com/page/Trecollo/20070131</a>Sinon mon petite frère, Aurélien, a été embauché chez Google en Irlande. C&#8217;est cool ! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2007/06/18/google-guice-petite-frere-de-jboss-seam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google a de belles courbes, comme Paris Hilton</title>
		<link>http://www.touilleur-express.fr/2007/02/04/google-a-de-belles-courbes-comme-paris-hilton/</link>
		<comments>http://www.touilleur-express.fr/2007/02/04/google-a-de-belles-courbes-comme-paris-hilton/#comments</comments>
		<pubDate>Sun, 04 Feb 2007 14:37:14 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touillleur-express.fr/?p=55</guid>
		<description><![CDATA[Les salariées de Google ont la chance de ne rien faire comme les autre. Dans la série un jour mon fils aura une tétine Google, le site ZorGloob.com présente quelques nouveautés à suivre, surtout lorsque l&#8217;on voit le succès de GMail et Picasa. GMail devrait d&#8217;ailleurs être rebaptisé prochainement Google Mail suite à un problème de droit avec G-Mail, societé allemande de publipostage.
Parmis les liens les plus sympas à regarder, la liste des recherches les plus populaires sur Google par pays et par mois. On appelle cela Zeitgeist. Les Francophones ...]]></description>
			<content:encoded><![CDATA[<p>Les salariées de Google ont la chance de ne rien faire comme les autre. Dans la série un jour mon fils aura une tétine Google, le site <a href="http://www.zorgloob.com/">ZorGloob.com</a> présente quelques nouveautés à suivre, surtout lorsque l&#8217;on voit le succès de GMail et Picasa. GMail devrait d&#8217;ailleurs être rebaptisé prochainement <i>Google Mail</i> suite à un problème de droit avec G-Mail, societé allemande de publipostage.</p>
<p><P>Parmis les liens les plus sympas à regarder, la liste des recherches les plus populaires sur Google par pays et par mois. On appelle cela <b>Zeitgeist</b>. <a href="http://www.google.com/intl/en/press/intl-zeitgeist.html#fr">Les Francophones</a> sont plutôt branchés Noël, Darty, Nintendo WII et SFR en décembre. Ouf on a évité &laquo;&nbsp;Paris Hilton nude&nbsp;&raquo; et autres blondes à petite poitrine (la fameuse paris précedemment citée).</p>
<p>Pour terminer sur des histories de belle courbe, en voici une qui en dit long et qui fait réflechir. D&#8217;après <a href="http://www.zorgloob.com/2007/02/nombre-demploys-google.asp">cette courbe</a> la societé Google emploie 10670 employés dans le monde au 31 décembre 2006. La societé Reuters fondée en 1870 emploie environ 13500 personnes dans le monde&#8230;<br/><br />
Peut-être qu&#8217;un jour Google s&#8217;offrira un groupe comme Reuters. Après tout, nous avons plus de bureaux dans chaque pays qu&#8217;il n&#8217;y a de pays à l&#8217;ONU&#8230; Google couvrirait alors toute la Terre, Google everywhere&#8230; Je l&#8217;aurai mon teeshirt Google, je l&#8217;aurai&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2007/02/04/google-a-de-belles-courbes-comme-paris-hilton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
