mardi 26 août 2008

Google Data Eclipse Plugin

Une petite vidéo qui explique comment installer et utiliser le plugin Eclipse pour faciliter le développement de projet utilisant Google Data en Java :



Par contre, j'ai fait l'essai avec Eclipse 3.4 (Ganymede), et si l'installation du plugin ne pose pas de soucis, la création d'un projet avec ce dernier n'a pas abouti. Dommage... comme écrirait Isaac Asimov, cela sera certainement pour Noël sur Ganymède... désolé je n'ai pas pu m'empêcher... shame on me ;-)

Ci-après, une courte vidéo d'introduction à "Google Data" pour ceux qui ne connaissent pas :



En tous les cas, le plugin semble intéressant dès l'instant où l'on souhaite réaliser des développements autour de l'API Google Data.

mardi 19 août 2008

Protocol Buffers

Google a mis a disposition récemment, un outil utilisé en interne : les "Protocol Buffers".

Ces "Protocol Buffers" sont la solution maison de Google "indépendante de la plateforme, indépendante du langage et extensible" pour sérialiser/désérialiser des données structurées.

Il faut d'abord définir un protocole - c'est-à-dire la manière dont les données sont structurées - dans un fichier avec l'extension .proto. Puis ce fichier .proto est compilé avec l'outil protoc pour générer un format binaire compact et le code source dans le langage adéquat (Java, Python et C++ pour l'instant) pour lire et écrire dans fichiers dans ce format de manière transparente.

Les données dans le fichier de protocole sont typées : sont disponibles des types simples génériques correspondant aux types simples des langages cibles. Et il est également possible de définir des nouveaux types dans le fichier de protocole.

Les "Protocol Buffers" semblent pour l'instant être utilisés principalement avec du RPC (Remote Procedure Call) ou pour stocker des données structurées simples.

En fait par rapport à XML, l'avantage des "Protocol Buffers" est d'être un format compact dont le traitement est rapide et facile (comparée à la manipulation d'arbres DOM en XML). Par contre, les "Protocol Buffers" ne sont pas conçus pour des données structurées complexes, dans lesquelles la structure est elle-même significative, comme par exemple une structure décrivant un document.

Si dans la petite vidéo qui suit, une comparaison des "Protocol Buffers" est effectuée avec XML et IDL/Corba (les "Protocol Buffers" sont un outil de sérialisation/desérialisation utilisable dans du RPC mais ne sont pas une solution de RPC), il n'y a pas de comparaison avec JSON et YAML. Ces 2 formats sont beaucoup plus compacts que XML mais le sont moins qu'un format binaire, mais reste par contre "lisible par un être humain".

Enfin, un aspect mis en avant et qui semble en effet un point important c'est l'extensibilité des données mises en oeuvre par les "Protocol Buffers". En effet, il semble possible de faire évoluer le format du protocole, en ajoutant des nouveaux champs par exemple, sans pour autant gêner les applications qui utiliseraient l'ancien format. Bien sûr, il faut voir jusqu'à quel point on peut faire évoluer un protocole sans que cela est d'impact sur l'existant.



Encore un outil de Google pour les développeurs même si ces derniers doivent d'abord déterminer si cela peut convenir à leur besoin. Cependant cela peut être une solution de sérialisation/déserialisation séduisante et dans tous les cas à étudier. Surtout qu'il va certainement rapidement y avoir des bindings ou des mises en oeuvre pour d'autres langages que Python, Java et C++.

Site des "Protocol Buffers" : http://code.google.com/apis/protocolbuffers/

samedi 1 mars 2008

Le prix Turing 2007 est co-décerné à un français

C'est un fait suffisamment rare pour mériter que l'on en parle : le prestigieux Prix Turing (certain le considère comme l'équivalent du Prix Nobel pour l'informatique) vient d'être co-décerné à Edmund M. Clarke (de l'université Carnegie Mellon), E. Allen Emerson (de l'université du Texas) , et Joseph Sifakis (Université de Grenoble, laboratoire Verimag) pour leur travaux sur le "model checking".

Je vous invite à lire ces 2 articles pour avoir plus d'information sur le sujet et des liens sur cette thématique :
J'en profite pour vous recommander le livre "ALAN TURING - L'homme qui a croqué la pomme" de Laurent Lemire chez Hachette si vous voulez en savoir plus sur Alan Turing le mathématicien reconnu comme un des pères fondateurs de l'informatique et qui a donné son nom à ce prix.

mercredi 27 février 2008

Une nouvelle ère pour Adobe

Adobe vient de sortir la version 1.0 de AIR : avec ce nouvel environnement il est notamment possible de lancer des applications web riches ("Rich Internet Applications" ce qui donne l'acronyme RIA) directement sur le bureau de l'ordinateur et en mode "déconnecté" , i.e. qu'il n' y a plus besoin d'être connecté en permanence à Internet.

AIR repose sur un ensemble de technologies et d'outils : bien sûr Flash, Flex et les technologies liées à AJAX (Javascript, XML, JSON, CSS, etc.) mais également sur la base de données open source SQLite pour la stockage et la synchronisation les données avant et après les déconnexions.

La bataille du RIA s'annonce disputée : il y a les technologies concurrentes de Google (Google Gears), de Mozilla (PRISM) et bien sûr l'omniprésent Microsoft (Silverlight).
Dans une moindre mesure on peut dire que dans la concurrence il y a Sun avec JavaFX et Java mais certains estiment déjà que ce n'est plus un challenger crédible sur le créneau du RIA (voir l'article "Swing is drowning" de Dion Almaer).

mardi 26 février 2008

Rhino On Rails

Après Groovy On Rails (a.k.a Grails) inspiré du désormais fameux Framework Ruby On Rails, voici Rhino On Rails (RnR pour les intimes).

Ce "port" de RoR est notamment l'oeuvre de Steve Yegge qui travaille chez Google : ne pouvant utiliser Rails car basé sur Ruby qui ne fait pas partie des langages utilisables en production chez Google, il a décidé d'effectuer le portage de ce framework sous Rhino, la version de Javascript pour la JVM. Il a publié un intéressant billet sur dans lequel il explique pourquoi Javascript et Rhino, pourquoi ce projet, etc.

Ce framework avait fait l'objet d'une présentation au "Foo Camp" en Juin 2007 comme le rapporte John Lam dans un billet.

Dion Almaer a réalisé une interview de Steve Yegge dont on peut retrouver la vidéo sur YouTube et que j'ai incorporé dans ce blog ci-après.



Rhino On Rails n'est pas encore disponible en OpenSource. Il est intéressant de noter que RnR n'est pas le seul framework basé essentiellement sur Javascript et/ou Rhino. Il est ainsi possible de citer Helma ou TrimPath (Junction) .

Je trouve amusant et représentatif le dessin qui suit, oeuvre de Dion Almaer :

Un point un peu ironique (mais qui a son intérêt techniquement et pour les amoureux des technos Google) est que RnR devrait s'intégrer avec Goggle Web Toolkit ...

Une affaire à suivre dans tous les cas.

Et une chose est sûre : on n'est pas près de voir le nombre de frameworks web décroître prochainement...

dimanche 3 février 2008

Une initiative intéressante

J'ai découvert Xebia un peu par hasard en recherchant des vidéos sur J2EE sur YouTube : je suis tombé sur les présentations vidéos qu'ils font de leur entreprise.

En jettant un oeil à leur site institutionnel et à leur blog, je suis tombé sur le Xebia Poker Tour qui semble être une initiative ludique et intéressante : vous répondez à des questions sur Java, XML, J2EE, les méthodes agiles, etc. ce qui vous permet de recolter de l'argent fictif.

Les 50 plus riches pourront participer à une partie de poker et peut-être gagner un voyage à JavaOne ou Javapolis. Toutes les explications sur ce billet.

L'initiative est à la fois surprenante, rare et ludique, alors je vous invite à aller y faire un tour si vous êtes un expert Java/J2EE et que le poker vous branche !

NB : je n'ai aucun lien avec Xebia !

dimanche 20 janvier 2008

Un coup d'oeil sur le langage Scala

Si cela fait quelques temps que vous entendez parler régulièrement du langage Scala et que vous souhaitez quelques points d'entrée pour un savoir plus, voici quelques pistes.

Tout d'abord une courte définition de Scala reprise de Wikipédia :

Scala est un langage de programmation multi-paradigme conçu à l'EPFL pour exprimer les modèles de programmation courants dans une forme concise et élégante. Il intègre les paradigmes de programmation orientée objet et de programmation fonctionnelle, avec un typage statique.

Sur le site officiel du langage Scala (http://www.scala-lang.org/) où peuvent être trouvés bien sûr le langage lui-même mais également différents documents pour démarrer notamment un article qui fait une présentation synthétique du langage (certains passages sont assez techniques), un tutorial, un petit article d'introduction "par l'exemple" et une spécification du langage.

Sur YouTube vous pouvez trouver une présentation de Scala faite par Martin Odersky lui-même dans la série des "Google Tech Talks"

J'ai inséré la vidéo juste après dans ce billet. Cependant cette dernière dure plus d'une heure. Cela peut-être sympa de la récupérer avec Miro et de la regarder tranquillement. Cela reprend pas mal de points évoqués dans la "présentation synthétique du langage" que l'on trouve sur le site officiel : certains passages sont assez techniques et difficiles à suivre quand on n'a pas de solides bases en théorie des langages.



Scala est en ce moment évoqué régulièrement dans les épisodes du "JavaPosse", et dans l'épisode #158, les membres du JavaPosse renvoie vers un blog dédié à Scala et notamment à un billet présentant des résolutions de puzzles mathématiques dans l'esprit Scala.
L'épisode #155 est consacré à une interview de Martin Odersky.

Enfin sur Software Engineering Radio, il est également possible de trouver une interview de Martin Odersky sous forme de podcast (épisode 62).

vendredi 28 décembre 2007

Better Web Application Framework

Dans la vidéo qui suit, est effectuée une comparaison entre J2EE, Ruby On Rails, Zope/Plone, Turbogears et Django.
Au travers de 2 exemples - d'abord un simple "Hello World" puis une application de suivi de temps ("Time Tracking Web App") - la comparaison porte sur le nombre de ligne de code produites, le nombre de fichiers de configurations à renseigner, le temps global mis pour réaliser l'application concernée, le nombre d'erreurs et de problèmes rencontrés.

Dans le cas du premier exemple (le "Hello World") sont comparés l'utilisation de Servlet, l'utilisation de JSP, RoR, Zope, Turbogears et Django.

Avec le deuxième exemple, la comparaison porte sur une première solution "partiellement J2EE" (Servlet + JSP + Hibernate), une solution purement J2EE (avec des EJB), Zope/Plone, RoR, Turbogears et Django.

J'ai trouvé cette vidéo intéressante et enrichissante pour se faire une idée sur les autres technologies pour le développement Web quand on n'a pas eu le temps de regarder et qu'on n'a que la possibilité de travailler avec des Frameworks Java pour le développement Web.

J'ai néanmoins étéun peu surpris qu'il n'y ait aucun framework PHP qui fassent parties de la comparaison (CakePHP par exemple) et que les solutions Java ne s'appuie que sur du J2EE pur et dur sans utiliser des frameworks Web (Struts, JSF ou Wicket par exemple). De plus, si Zope/Plone sort a priori grand vainqueur de la comparaison, je ne suis pas persuadé que le critère intégration avec l'existant dont il est fait mention au début de la présentation soit vraiment respecté... ceci étant je ne connais pas vraiment cette technologie.

Dans tous les cas, si comme dans toutes comparaisons de ce type, il y a probablement un certain biais, il est clair que J2EE peut-être très lourd et ne permet pas une productivité optimale.

Quant aux EJB, cela me fait penser à des discussions avec plusieurs collègues : on leur préfère souvent des solutions légères du type Spring et ils sont en fait assez peut utiliser. Les EJB3 semblent plus faciles à mettre en oeuvre mais pour l'instant beaucoup de projets n'ont pas encore migré vers J2EE 5.



Les 2 articles qui suivent sont cités dans la présentation, j'ai mis les liens ci-après :
En relation avec le dernier lien un (vieil) article The Death of EJB As We Know It?.

jeudi 27 décembre 2007

La Parabole des Langages

L'humour est une manière agréable de prendre du recul et de susciter la réflexion. Je trouve le texte de "La Parabole des Langages" de Shelley Powers très intéressante à ce titre. On peut la trouver en français sur différentes pages (par exemple ou bien ici également), ma version préférée étant celle qui se trouve sur Tastalian.org.

Si vous ne connaissez pas ce texte je vous invite à aller y jeter un oeil.

samedi 3 novembre 2007

Article d'introduction à E4X

Je viens de finaliser un petit article d'introduction à E4X (EcmaScript For XML).
C'est mon premier article sur l'excellent site pour et par les developpeurs, developpez.com.
Toutes les critiques ou remarques constructives sont les bienvenues !