Posts tagged Web

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?

Guide d’optimisation de vos applications Web

Bon ça fait un moment que je prépare cet article (j’en ai encore en préparation) mais je ne trouvai pas le temps pour finir de le rédiger. Cet article est une liste de conseils  afin d’optimiser vos applications Web.

Optimisation du serveur

La première chose à faire lorsque vous êtes dans une démarche d’optimisation de vos applications Web est d’optimiser au maximum le serveur qui va héberger les applications. Car vous aurez beau passer tout votre temps à optimiser vos applications, si le serveur met du temps à servir les requêtes ça n’aura servi à rien.

Serveur privé

Si vous développez une application Web dans un but professionnel il est nécessaire d’avoir un serveur privé avec une adresse IP dédiée et un accès SSH. Cela permet d’avoir un accès complet à l’ensemble de la configuration du serveur et d’installer de nouveaux programmes : comment faites-vous si votre hébergement mutualisé ne contient pas l’extension cURL de PHP et que votre application ne peut être exécuté sans?

Si c’est une application personnelle (un blog par exemple) il est toujours bon d’avoir un accès complet à la configuration du serveur. Aujourd’hui il existe de nombreuses solutions de serveurs dédiés pour 30€ / mois ou moins.

Bénéfices : configuration, sécurité et stabilité.

Activer la compression

Le serveur Web reçoit des requêtes et envoi en réponse des contenus (HTML, CSS, images, …). Le temps de chargement complet d’une page Web représente le temps de chargements de toutes les ressources : le client demande d’abord la page HTML puis charge au fur et à mesure toutes les ressources référencées par la page.

L’objectif est donc de diminuer le temps réseau du téléchargement des ressources en compressant les données envoyées par le serveur avec gZIP. Compresser les données textuelles (HTML, JavaScript, CSS) est extrêmement efficace : environ 50% de gain (donc deux fois moins de temps de téléchargement pour le client).

Pour Apache il faut activer le module “deflate” ou “gzip” pour les anciennes versions (jusqu’à 1.3).

Bénéfices : gain important sur le temps de téléchargement du client.

Activer le cache

Lorsqu’un utilisateur se connecte à un serveur Web il télécharge toutes les ressources associées à la page Web qu’il consulte. Cependant sur la page, très peu de ressources ne sont modifiées au cours du temps : vous ne changez pas le logo de votre site tous les quatre matins. Quel est alors l’intérêt de forcer l’utilisateur à re-télécharger ces ressources?

Pour cela le protocole HTTP propose un système de cache des ressources qui permet au navigateur d’utiliser des ressources dont la version n’a pas changé. Par défaut les serveurs Web sont configurés avec le cache activé et vous n’avez donc rien à faire, mais il vaut mieux rappeler les bons conseils.

Pour Apache, il faut activer le module “expires” qui utilise l’en-tête “Expires” pour donner une date de péremption à la réponse, le client peut dont la mettre en cache et ainsi réduire considérablement le nombre de requêtes au serveur.

Pour ajouter le mode “expires” :

a2enmod expires

Ensuite vous devez modifier le fichier “expires.conf” pour référencer les fichiers pour lesquels vous souhaitez ajouter le header.

Bénéfices : réduction du nombre de requêtes au serveur Web et réduction des accès disques et de temps processeur.

Améliorer la configuration

Tous les serveurs Web ont une configuration par défaut : nombre de Threads maximum à démarrer, durée maximum de temps de traitement, mémoire allouée à chaque Thread, …

Vous devez modifier la configuration afin que le serveur Web réponde au niveau de qualité souhaité. Parmi toutes les propriétés que vous pouvez configurer, voici les plus courantes :

  • Désactiver le reverse DNS : lorsqu’un client se connecte à votre application Web, sa requête est enregistrée dans les logs du serveur. Le serveur va effectuer une requête DNS afin de récupérer le nom de domaine correspondant à l’adresse IP du client. En désactivant cette option vous économiserez de nombreuses requêtes inutiles.
  • Keep-Alive : cette option permet au serveur Web de ne pas fermer la connexion du client lorsque la requête a été servie. Cela économise de nombreuses ouvertures de connexions au client.

    Au niveau de cette option il y a quelques paramètres à modifier : KeepAliveTimeout et Timeout. Le paramètre KeepAliveTimeout représente le temps maximum entre deux requêtes sur la même connexion. Le paramètre Timeout représente le temps maximum entre la connexion et la première requête. Ces deux paramètres étant à modifier en fonction de votre application.

Optimisation des ressources

Une fois que votre serveur Web est prêt avec une configuration optimale, vous pouvez optimiser les ressources que vous utilisez dans votre application : CSS, JavaScript, images.

Sprite CSS

Lors du chargement d’une page HTML, le navigateur Web va récupérer l’ensemble des ressources : CSS, JavaScript et souvent beaucoup d’images. Pour récupérer toutes les ressources, le navigateur utilise par défaut deux connexions au serveur Web et va attendre que l’une des connexions soit disponible pour récupérer la ressource suivante.

Les sprites CSS permettent de regrouper toutes ou une grande partie des images en une seule image. Il y a deux intérêts à cette technique : beaucoup moins de requêtes faîtes au serveur Web et l’image sera moins volumineuse (les informations de format et de compression ne sont stoquées qu’une seule fois).

Au niveau des feuilles de style CSS, il faut mettre la grande image en arrière-plan du composant et positionner le sprite (la parcelle de l’image) souhaité grâce à l’instruction background-position.

Au niveau du gain de volume de l’image voilà des statistiques :

Format Taille six images Taille image sprite Différence
GIF 6046 b 1894 b -69%
JPEG 5916 b 2187 b -63%
PNG 4479 b 3844 b -14%

 

Réduction des CSS

Les feuilles de styles sont les éléments principaux du design d’une application Web et peuvent rapidement devenir des ressources volumineuses. Le principal problème des feuilles de styles est quelles contiennent énormément de caractères inutiles : espaces, sauts de lignes, commentaires. Le navigateur Web quand il reçoit une feuille de style ignore c’est caractère, ils ne sont utilisés que par le designer afin de facilement comprendre les instructions.

Afin d’économiser de la bande passante et du temps de téléchargement d’une page Web il est possible de réduire considérablement la taille des feuilles de styles grâce à des services Web comme : CSS Optimizer, Icey’s CSS Compressor, Flumpcake CSS Optimizer, Clean CSS.

Si on regarde la différence sur certains sites avec un certain nombre de visiteurs :

Site Web Feuille de styles Feuille de styles optimisée Différence
Free.fr 35.19 Kb 19.09 Kb -46%
PC Inpact 37.14 Kb 27.31 Kb -26%
Microsoft.com 30.7 Kb 22.41 Kb -27%

 

Oui Twitter n’est pas présent, leur feuille de styles est déjà optimisée :) .

Afin d’économiser en nombre de requêtes, vous pouvez regrouper tous vos styles dans un seul fichier CSS.

Réduction des JavaScripts

De la même façon que pour les feuilles de styles, les fichiers JavaScript peuvent être optimisés afin de diminuer le temps de téléchargements de ces fichiers. Voici les services Web qui proposent de réduire vos JavaScripts : Dojo Shrinksafe, JavaScript Compressor. Il existe de très nombreuses applications qui font le même travaille.

Stockage des ressources

Lorsqu’un utilisateur arrive sur une page Web, il télécharge le HTML puis il récupère les ressources référencées par la page. Les ressources sont téléchargées en utilisant par défaut deux connexions par serveur. L’idée est donc de séparée le stockage des ressources statiques des données dynamiques : le HTML généré sur un serveur, les CSS et JavaScripts sur un autre serveur.

server

Bénéfices : le client va utiliser deux connexions pour récupérer uniquement des ressources statiques et ne va pas surcharger le serveur de traitement avec des requêtes “statiques”.

Optimisation de l’application

Voilà à partir d’ici vous devez avoir bien amélioré le temps de chargement de votre application. Les conseils suivants sont plus des conseils

Landing page

Une “landing page” est une page sur laquelle vous souhaitez que vos visiteurs arrivent depuis les moteurs de recherches et autres. L’objectif de cette page est que l’utilisateur n’arrive pas sur une page d’accueil mais directement sur l’information qu’il cherche. Il faut donc que cette page soit rapide et présente l’information de façon simple et concise.

Pour cela évitez au maximum d’effectuer de long traitement ou d’effectuer des appels à une base de données si ce n’est pas nécessaire. Préférez une version statique d’une landing page qui sera servie très rapidement.

Éviter les redirections

Évitez au maximum le nombre de redirections, à chaque fois que le serveur renvoie une redirection (301, 302, …), le client effectue une nouvelle requête. Si en plus vous n’avez pas activé le Keep-Alive, il va faire une nouvelle connexion.

Ne garder les redirections que pour du SEO afin de ne pas perdre le référencement d’une page dont vous changez l’URL.

Plugin Wordpress

Si vous utilisez Wordpress il existe de nombreux plugins qui permettent d’améliorer la vitesse de chargement de votre blog.

WP Super Cache

WP Super Cache est un plugin qui va générer une version statique de vos pages (billets, pages, …). Ainsi votre blog servira la version statique au lieu de re-générer la page HTML pour chaque visiteur. La version statique est re-générée à chaque nouveaux commentaires, billets ou pages.

Réduire son nombre de plugins

À chaque fois qu’un utilisateur effectue une action sur un blog wordpress, le serveur appelle les plugins nécessaires pour servir la page. Si vous avez beaucoup de plugins, cela peut ralentir radicalement votre blog.

Faîtes le ménage dans vos plugins et ne garder que les essentiels.

Outils d’analyse

Afin de voir les différences de temps de chargement d’une page il faut avoir de bons outils d’analyse. Que ce soit un outils spécialisé ou un module du navigateur Web, il est nécessaire de mesurer les différences entre deux configurations.

Firebug

Pour les développeurs Web qui ont l’habitude de tester leurs applications avec Firefox, la plupart utilisent le plugin Firebug qui permet entre autres d’analyser en détail (et de modifier en direct) le contenu HTML, le CSS, le JavaScript et de visualiser les requêtes/réponses avec l’application Web.

De nombreux plugins ont été développés sur Firebug pour fournir des informations sur le chargement de la page.

Page Speed

pagespeed

Page Speed est une extension pour Firebug, réalisée par Google, qui analyse la page Web qui vient d’être chargée et vous informe des améliorations que vous pouvez apporter à votre serveur / configuration /  application pour diminuer le temps de chargement de votre page.

YSlow

yslow

YSlow a été développé par Yahoo est analyse aussi les points à améliorer.

Tests de charge

Enfin une fois que vous avez optimisé votre application Web il est bon de savoir si elle va tenir la charge face au nombre d’utilisateurs prévus. Pour cela il existe de nombreux outils de test en charge d’application Web, mais je n’en conseillerai qu’un : NeoLoad, par la société où je bosse Neotys.

L’objectif est de faire simuler par le logiciel un nombre d’utilisateurs virtuels qui vont exécuter un scénario sur l’application et d’analyser les résultats (temps de réponses, erreurs, …) afin de corriger ou d’optimiser l’application.

Conclusion

Le secret pour avoir une application Web rapide et efficace est de tester votre configuration, d’analyser les points à améliorer et de les optimiser puis de re-tester, … et ainsi de suite jusqu’à ce que vous atteignez la qualité de service souhaitée.

Et vous comment faîtes vous pour optimiser vos applications Web? Quels outils utilisez-vous?

Twitter : la VoIP disponible grâce à Jajah

Le service Web de téléphonie Jajah vient de livrer un nouveau service basé sur Twitter. En utilisant la “commande” suivante il est possible d’appeler un correspondant :

1
@call @username

En utilisant les comptes configurés sur Jajah : appelant et appelé, vous pourrez appelez vos contacts depuis n’importe quel endroit et avec n’importe quel client Twitter. L’intérêt est ainsi de cacher les numéros de téléphones en utilisant les noms d’utilisateurs Twitter.

Actuellement en béta, le service limite la communication à deux minutes et ne vous permet d’appeler que les personnes que vous suivez. Pour Jajah, deux minutes de communication téléphonique représentent approximativement la longueur d’un tweet.

Avec le développement des services de ce genre qui utilise Twitter comme service Web, on peut facilement imaginer que Twitter va devenir la ligne de commande du Web.

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?

Ruby on Rails : déployer une application sur Tomcat avec JRuby

rails Ruby on Rails est un framework qui permet de développer très rapidement des applications Web en suivant le modèle MVC.

Le problème de ce framework est qu’il se base sur le langage Ruby et qu’il embarque un serveur Web. Les applications ainsi créées ne peuvent pas être déployées comme des applications Web dans Tomcat ou autres serveurs d’applications.

Le but de ce tutoriel est de vous permettre de déployer les applications Ruby on Rails (RoR) sur un serveur Tomcat en utilisant la librairie JRuby.

Installation Tomcat

On commence par télécharger la dernière version de Tomcat (en ce moment c’est la version 6.0.20) :

1
2
wget http://mirror.mkhelif.fr/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
tar –xzf apache-tomcat-6.0.20.tar.gz

Voilà Tomcat est installé, je passerai ici la configuration du serveur. Si vous souhaitez, suivez mon tutoriel pour connecter Apache avec Tomcat.

Installation JRuby

Télécharger JRuby et placez le là où vous souhaitez :

1
2
3
wget http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.tar.gz
tar –xzf jruby-bin-1.3.1.tar.gz
mv jruby-1.3.1 /usr/local/jruby

Ajouter ensuite le chemin vers JRuby dans votre environnement en éditant votre fichier ~/.profile :

1
export PATH=$PATH:/usr/local/jruby/bin

Vous pouvez vérifier l’installation de JRuby en exécutant la commande suivante :

1
2
$ jruby -v
jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) Client VM 1.5.0_16) [i386-java]

Installation de Ruby on Rails

À partir de là nous allons installer les gems pour : rails (le coeur de ROR), mysql et surtout warbler (qui crée un WAR à partir de l’application rails).

1
2
3
$ jruby -S gem install rails
$ jruby -S gem install activerecord-jdbcmysql-adapter
$ jruby -S gem install warbler

Déploiement de votre application

Pour déployer votre application dans Tomcat, il faut commencer par la convertir en WAR. Placez vous dans le dossier de votre application et lancez la commande suivante :

1
$ warble config

Cela va créer un fichier <application>/config/warble.rb pour configurer votre application pour la convertir en fichier WAR, ouvrez le fichier et dé-commentez la ligne :

1
config.gems += ["activerecord-jdbcmysql-adapter"]

Cela pour inclure dans votre fichiers WAR la gem MySQL (ajoutez les gems que votre application utilise ici).

Maintenant nous allons créer le fichier WAR de votre application, lancez simplement la commande :

1
$ warble

Et voilà votre fichier WAR est créé, vous pouvez alors le déployer sur Tomcat (je passerai sur cette étape).

Qu’est ce qu’un Community Manager, le “buzz-job” actuel ?

Avec le développement très rapide des médias sociaux comme Twitter ou Facebook, un nouveau métier a vu le jour : celui de Community Manager, que l’on peut traduire en animateur de communauté. Le principe est simple : gérer efficacement sa communauté (lecteurs, followers et fans) afin d’améliorer la communication entre les clients et l’entreprise.

Qu’est ce que le Community Manager ?

Dans la plupart des entreprises ce métier va juste être une fonction supplémentaire du webmaster/référenceur (en charge d’alimenter en informations le site Web et de le référencer), car les deux métiers se recoupent finalement dans beaucoup de fonctions.

Voici une liste des principales fonctions d’un Community Manager :

  • Gérer le contenu transmis à ses lecteurs. L’objectif étant de cibler l’information qui peut intéresser ses lecteurs et encore mieux qu’ils en parlent à leur lecteurs.
  • Améliorer la visibilité et l’image de la société sur les différents médias externes (blogs, forums, réseaux sociaux) : répondre à des articles, créer des comptes sur les réseaux sociaux (et les animer), poster du contenu (ex : vidéos sur Youtube).
  • Être à l’écoute de sa communauté : si un commentaire négatif est écrit par un client, les réseaux sociaux auront un effet néfaste sur l’image de la société. Il faut donc le prendre en compte et le traiter rapidement.
  • Recruter de nouveaux lecteurs. Même si au début cela peut sembler difficile, plus vous avez de lecteurs, plus vous aurez de crédit pour des lecteurs potentiels.
  • Analyser les données remontées par sa communauté concernant la société et le produit/service fournis pour proposer des améliorations.

Lorsque l’on regarde les taux d’utilisations des réseaux sociaux (environ 5 millions d’utilisateurs en plus par mois pour Twitter), on comprend pourquoi les entreprises commencent à s’intéresser de plus près à ces communautés.

Dominique Dufour a écrit un excellent e-book qui liste 30 idées pour dynamiser votre communauté.

Mon avis

Personnellement je pense que le métier de Community  Manager va devenir de plus en plus présent dans les entreprises et sera (pour les TPE/PME) très souvent géré par une seule personne qui servira alors d’interface entre l’équipe marketing, l’équipe produit et bien évidemment les clients.

Et vous qu’en pensez-vous?

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.