Google

GWT 2.0 : les nouvelles fonctionnalités

La version 2.0 de GWT (Google Web Toolkit) est sortie (j’ai un peu de retard à cause du boulot :) ) et avec elle de nombreuses améliorations, principalement pour améliorer le développement des applications. Cette nouvelle version est accompagnée d’un outil d’analyse des performances des sites : Speed Tracer, qui donne des pistes d’amélioration de l’application.

Development Mode

Dans les versions précédentes de GWT, pour tester une application en cours de développement, il y avait le Hosted Mode. C’est une application que l’on lançait depuis son IDE, qui démarrait un serveur Tomcat et qui permettait de tester “rapidement” sont application Web.

En GWT 2.0 le Hosted Mode est remplacé par le In-Browser Development Mode. On installe un plugin (le GWT Developer Plugin) dans son navigateur pour lui permettre de communiquer avec la JVM. Cela permet de bénéficier des différents plugins de son navigateur (Firebug, …) tout en permettant de modifier le code Java en live en rafraichissant la page Web.

UI Binder

Un des problèmes majeurs de GWT dans ses versions précédentes est la gestion de l’interface graphique depuis le code Java. La manipulation des Widgets (composants graphiques dans GWT) depuis le code Java pour leurs appliquer des styles CSS ou gérer des événements finit par donner du code difficile à maintenir.

GWT 2.0 apporte une solution plutôt élégante avec l’UI Binder, ça permet de lier un template XML à une classe Java. Au passage, les fichiers CSS et JavaScripts (librairies externes) référençaient depuis le template sont compressées par le compilateur GWT afin d’en réduire la taille finale.

Ainsi, on sépare l’interface graphique (dans les template .ui.xml) et la logique de l’application dans le code Java.

Code Splitting

Voilà une fonctionnalité attendue par beaucoup de développeurs GWT. Lorsque l’on développe une application GWT, on se rend vite compte que le fichier JavaScript généré prend vite du poids. Cette fonctionnalité découpe l’application en plusieurs fichiers JavaScript qui seront chargés uniquement lorsque c’est nécessaire en rajoutant quelques lignes de codes.

Layout par contraintes

Beaucoup d’applications Web qui se basent sur JavaScript utilisent des widgets qui sont positionnées dans la page grâce à des calculs qui peuvent ralentir l’affichage de l’application.

À l’inverse, GWT 2.0 génère le rendu final en utilisant le CSS de la page, celui-ci est généré à la compilation et non plus pendant l’affichage de la page ce qui réduit considérablement le temps de chargement. 

ClientBundle

Je présentais dans mon billet : Guide d’optimisation de vos applications Web une méthode pour réduire le temps de chargement d’une page en utilisant des images sprites.

GWT est capable depuis la version 1.4 de faire tout cela automatiquement grâce aux ImageBundle. Toutes les images référencées sur disque étaient réunies en une seule est GWT utilisé la technique des sprites pour afficher les images convenablement. Avec GWT 1.5/1.6, un projet de l’incubateur permettait de faire la même chose avec à peu près n’importe quels fichiers.

GWT 2.0 introduit cette notion avec les ClientBundle. Par exemple, vous pouvez références tous vos fichiers CSS, GWT va alors les regrouper en un seul fichier, le minimiser et le rendre disponible pour être mis en cache. GWT gère aussi l’internationalisation ainsi vous pouvez gérer vos ClientBundle pour chaque locale.

Speed Tracer

Cette nouvelle version sort avec une extension pour Google Chrome : Speed Tracer. Cette extension analyse l’exécution de l’application Web en cours. Plutôt que de longues explications, voilà la vidéo de présentation de Speed Tracer.

Présentation de Speed Tracer

Story of Your Compile

SOYC fournit de nombreux détails sur la compilation de chaque partie de l’application GWT : la taille, les dépendances, temps de compilation… Cela permet d’orienter ses efforts pour diviser le code grâce Code Splitting

Traces dans IE 6

Internet Explorer ne fournit pas les traces lorsqu’une exception JavaScript est levée, ce qui peut être très embêtant lors d’une phase de debug sur ce navigateur…

Avec GWT 2.0 vous obtenez maintenant la trace obfusquée (ou non en fonction de la compilation choisie) JavaScript qui peut être convertie en trace Java avec nom de classe et numéro de ligne.

Conclusion

Ce billet ne présente que les améliorations les plus importantes, mais il y à de très nombreuses évolutions : optimisation du compilateur, évaluation directe des réponses RPC (réduction du temps de déserialisation), propriété de deffered binding conditionnelles, …

GWT devient de plus en plus un framework “productif” : la plupart des problèmes qu’un développeur rencontre lors du développement d’une application Web qui utilise JavaScript, sont résolus très simplement.

Pensez-vous que cette version 2.0 de GWT va permettre au framework de gagner des parts de marché face à ses concurrents comme Flex?

Goo.gl : le raccourcisseur d’URL by Google

Google vient de lancer son raccourcisseur d’URL : goo.gl. Un raccourcisseur d’URL permet simplement de lier une URL de quelques caractères à une URL complète d’un article ou d’une page.

Voulant profiter de l’utilisation croissante de ce type de services, surtout grâce à Twitter et Facebook (qui vient d’ailleurs de lancer fb.me pour les URL internes), Google veut récupérer une part du marché.

Bientôt intégrer dans FeedBurner et la barre d’outils Google il sera très facile de tweeter un article que l’on trouve intéressant. À savoir que Google à aussi intégrer la publication de tweets directement depuis FeedBurner. Ainsi la publication de tweets directement après la publication d’un article devient automatique si son blog est configuré sur FeedBurner, l’URL étant raccourcie par goog.gl.

En lançant son service, Google souhaite sûrement avoir une main mise sur les liens les plus partagés (et donc les plus intéressants) pour obtenir des résultats de recherche en temps réel les plus pertinents.

Chrome OS : première présentation

sdres_0000_Basic

Google avait annoncé, le 7 juillet 2009, le développement du système d’exploitation Chrome OS : un système orienté Web. Aujourd’hui a eu lieu à 19h une conférence de présentation du système d’exploitation OS. En attendant des articles plus techniques qui vont surement voir le jour d’ici peu sur la toile, voici une présentation du système d’exploitation vu par Google. Le code source du système d’exploitation est déjà disponible.

Voici la vidéo officielle de Google Chrome OS :

Le système d’exploitation est basé sur une distribution Debian allégée et est en fait un simple navigateur Web, Chrome bien entendu. L’objectif est clairement de faire un système d’exploitation rapide, on peut ainsi le voir démarrer en 3 secondes…, et orienté pour le Web.

Ainsi après s’être connecté a votre compte utilisateur vous êtes directement sur Internet avec des onglet servant : de menu “Démarrer” avec la liste de vos applications Web, de client mail (GMail), … Chrome OS mise sur le développement des applications Web basées sur HTML 5 pour offrir toutes les nouveautés et améliorations de la nouvelle spécification (gestion de contenu hors-ligne particulièrement).

sdres_0001_App-Menu

Au niveau de la sécurité, toutes les applications s’exécutent par défaut dans une sandbox n’ayant ainsi pas accès à l’ensemble des ressources de la machine. Étant basé sur Chrome, tous les onglets (donc les applications) s’exécutent dans des processus différents et sont donc indépendants les uns des autres.

L’authentification se fera soit grâce à votre compte Google si vous êtes connecté, soit grâce à des comptes configurés en local, soit grâce à un fournisseur supportant OpenID.

Lors de l’ouverture/téléchargement d’un fichier, si le type est reconnu et associé à une application celle ci s’ouvre pour afficher le fichier.

sdres_0002_Panels

Annoncé pour 2010, le matériel devra être certifié par Google… Certes ce n’est pas un système d’exploitation fait pour un poste de travail, par contre la cible est clairement pour les mini-netbooks (EeePc ou autre).

Pensez-vous que Google va réussir à s’immiscer directement au cœur de nos machines maintenant?

Cinq moyens pour gérer son identité virtuelle

personas

L’identité virtuelle d’une personne est sa présence sur le Web, l’image qu’elle renvoie aux travers des différentes informations que l’on peut retrouver sur Internet. Le fait de vouloir la gérer afin qu’elle soit conforme à ce que vous voulez montrer s’appelle du “personal branding”. Il s’agit simplement de faire du marketing sur son nom, vous êtes le produit.

Fred Cavazza a présenté, dans un article de 2006, ce qu’est en détail l’identité numérique : Qu’est ce que l’identité numérique ?

 

  1. La première chose à faire pour gérer son identité virtuelle c’est de voir les résultats qui apparaissent sur Google. C’est généralement la première chose que fera une personne qui recherche des informations sur vous (recruteur, patron, clients).

    L’objectif étant de vérifier les premiers résultats qui apparaissent en première page du moteur de recherche. Vous pouvez ensuite mettre en place des Google Alerts pour vérifier les nouvelles pages qui parlent de vous.

  2. Le service WebMii va chercher sur les réseaux sociaux les plus utilisés (Facebook, LinkedIn, Viadeo, Twitter, blog) afin de trouver toutes les informations sur une personne. Cela permet de vérifier le contenu (vidéos, images, articles) que vous avez posté ou qui vous concerne (en tout cas votre nom et prénom).

    Attention donc aux éventuelles photos ou vidéos qui pourraient vous décrédibiliser devant un recruteur/client.

  3. Twitter est devenu en peu de temps un outil de veille technologique indispensable. Il est donc nécessaire de savoir bien l’utiliser afin de se positionner et de gérer son identité numérique. N’utilisez pas Twitter pour dire tout ce qui vous passe par la tête, au mieux vous n’intéresserez personne, au pire vous risquez de renvoyer une image négative.

    Par contre vous pouvez utiliser Twitter de façon à être une ressource importante pour vos “followers” : donnez des liens utiles, tweetez des informations qui vous intéressent (et donc intéresseront vos “followers”), … Je suis en train de rédiger un article sur comment utiliser Twitter pour se démarquer, pour faire du référencement : Social Media Optimization (SMO).

    Les services Topsy ou BackTweets offrent un moteur de recherche avec des statistiques détaillées sur certains mots clés.

  4. Une fois que vous avez réussi à gérer les informations vous concernant sur Facebook (images, commentaires et autres) ou Twitter, vous remarquerez surement qu’il reste des informations vous concernant sur lesquelles vous n’avez aucun pouvoir (certains commentaires sur des forums).

    La solution est alors de reléguer ces informations très loin dans les résultats des moteurs de recherche. Pour cela vous devez référencer le contenu que vous souhaitez faire apparaître dans les premières pages, le plus simple étant de créer un blog.

  5. Personas : c’est un service développé par le MIT qui génère une vue simplifiée de votre identité virtuelle. L’algorithme utilisé est découpé en deux étapes : recherche sur Yahoo puis analyse des résultats. Le recherche sur le moteur de recherche se fait grâce à des requêtes discriminantes (on n’en sais pas plus la dessus). Puis l’analyse des résultats se fait par mots clés séparés dans différentes catégories. Ainsi plus vous avez de mots clés dans une catégorie plus elle prend de l’espace dans le résultat.

    Malgré un aspect simpliste, ce service fourni rapidement une vue globale de votre identité numérique.

Cet article a pour but principal de vous donnez des pistes pour gérer votre identité numérique. Et vous comment gérez-vous votre identité numérique?

Tests en charge d’EC2, GAE et Azure

Lorsque vous démarrez un projet d’application Web qui sera déployée dans le cloud, on peut logiquement vouloir comparer les différents prestataires sur le marché. C’est ce qu’on fait des chercheurs Australiens en effectuant des tests en charge sur les plateformes EC2 d’Amazon, Google App Engine et Azure de Microsoft.

Le test consisté à une charge de 2000 utilisateurs simultanés, selon Anna Liu, les trois plateformes ont su se redimensionner avec la charge afin de répondre à la demande : “With a simulation of 2000 concurrent users, we watched the cloud services scale up and respond dynamically to that demand”.

Cependant les trois plateformes ont des temps de réponses variables, pouvant aller jusqu’à un facteur vingt, en fonction des fonctionnalités qui sont déployées par les prestataires ainsi que de l’heure à laquelle les utilisateurs accèdent aux services déployés.

Selon Liu, les trois plateformes ont des objectifs divergents : GAE est fait pour des applications Web simples et qui ne nécessitent aucun traitement long (une exception est lancée lorsque le temps de traitements de la requête dépasse trente secondes); EC2 propose les bases du cloud computing et la valeur ajoutée est fourni par des solutions tierces; Azure se limite uniquement aux applications .Net ce qui limite grandement les développeurs qui préfèrent se tourner vers d’autres solutions.

Toujours selon Liu, les plateformes manquent d’outils de monitoring inclus avec leur offre.

Source : http://www.itnews.com.au/News/153451,stress-tests-rain-on-amazons-cloud.aspx

Google : vers une nouvelle version du moteur de recherche

Google a annoncé lundi 10 août, au travers de son blog à destination des webmasters, travailler sur une nouvelle version de leur moteur de recherche.

L’objectif est simplement d’accélérer le temps de réponse tout en fournissant plus de résultat plus pertinents. Pour les webmasters et (surtout) les spécialistes SEO (Search Engine Optimization), il est possible d’accéder à une version de test de cette nouvelle version, certaines parties du moteur étant terminées, et de reporter les différences entre les deux versions qui semblent être incohérentes.

Pour plus d’informations voir le billet sur le blog de Google et la sandbox pour tester le nouveau moteur. Pour reporter un problème, faites une recherche et cliquez sur le lien “Non satisfait? Aidez-nous à améliorer ce service” en bas de page.

Chrome : des thèmes et de la synchronisation

L’équipe de Google a ajouté dans les dernières versions (3.0.195.3 et 4) de Google Chrome la possibilité d’utiliser et de créer des thèmes. Les thèmes sont basés sur le système d’extensions du navigateur qui est désormais activé par défaut.

Les thèmes peuvent modifier : la barre des onglets, la barre des favoris et les boutons de l’interface principale (précédent, suivant, rafraichir, …). Google fourni deux exemples (cliquez pour les installer) : Camo et SnowFlakes. À l’instar des extensions, les thèmes sont déployés sous forme de fichiers “.crx”.

En marge de cela, Google vient d’annoncer le développement d’un système de synchronisation des données dans Google Chrome. Tout d’abord ce seront les favoris qui seront synchronisés, mais on peu penser que Google va étendre ce système aux mots de passe, les onglets ouverts, la configuration du navigateur.

La synchronisation se fera au travers des comptes Google et utilisera le protocole XMPP (eXtensible Messaging and Presence Protocol), utilisé par GoogleTalk. Les données synchronisées seront accessibles par le Web pour les autres navigateurs.

Selon les développeurs, on en saura plus sur la roadmap d’ici deux à trois semaines, le temps de porter le moteur de synchronisation dans Chrome.

Édition: la galerie de thèmes en ligne a ouvert ses portes.

GWT 2.0 : le grand nettoyage

À chaque version de GWT (sauf la 1.7) des classes et des méthodes sont marquées comme dépréciées. Avec la prochaine version GWT 2.0, Google souhaite partir avec du code “propre” pour le développement des nouvelles fonctionnalités (hosted mode, drag&drop natif, widget Canvas et d’autres) en supprimant toutes ces classes et méthodes dépréciées.

Pensez donc à vérifier que vos applications ne contiennent pas des appels à du code dépréciés, car bientôt vous aurez une erreur à la place d’un warning. Sinon vous pouvez envoyer un message sur la discussion qui a annoncé la nouvelle.

Google annonce Chrome OS

Malgré mes vacances je ne peux pas rater cette annonce et j’écris donc ce billet.

Après le lancement il y à neuf mois du navigateur Google Chrome, Google annonce sur son blog officiel un système d’exploitation spécifique pour le Web : Google Chrome OS.

Basé sur un noyau Linux,  la cible de cet OS sont les ordinateurs portables. Le code source, Open-Source évidemment, devrait arriver d’ici à la fin de l’année et les premières machines directement vendues avec Chrome OS au cours du second semestre de 2010.

Les objectifs annoncés sont : la rapidité, la simplicité et la sécurité ; l’objectif est de réduire la durée d’accès au Web (démarrage de la machine et de l’OS puis lancement du navigateur). Le navigateur embarqué est évidemment Google Chrome qui a déjà fait ses preuves pour sa rapidité et sa légèreté.

Un nouveau gestionnaire de fenêtres sur le noyau Linux devrait voir le jour permettant d’utiliser des applications Web de la même façon que des applications standards. Android ayant déjà été utilisé avec succès sur un ordinateur portable, il y aura forcément un chevauchement entre les deux solutions, mais toujours selon Google, les cibles ne sont pas les mêmes.

On verra dans le courant de l’année avec la publication du code source comment va réagir la communauté.

Première utilisation du plugin Eclipse GWT

Suite à mon premier billet qui présentait Google Web Toolkit, je vais maintenant vous présenter la nouvelle version de GWT et comment créer un premier projet en utilisant le plugin Eclipse. Lire la suite de l’article »