26 novembre 2008

gwt-maven and gwt-maven-plugin merge !

Charlie Collins, project lead of gwt-maven, a Maven plugin for GWT, join the Mojo team o merge it's plugin with gwt-maven-plugin

As a side effect of releasing gwt-maven-plugin last week, gwt-maven users did unfortunately use the mojo plugin as org.codehaus.mojo is in the Maven default plugin list.

There will now be only one plugin, with more feature, more users, better features and ... less bugs !

19 novembre 2008

Témoignage Spring

Le journal du net organise un "sondage" intéressant sur l'utilisation de Spring :

Il s'agit de recueillir des témoignages courts sur la mise en oeuvre du framework, ses points forts et ses faiblesses. Si la représentativité de ceux qui témoignent n'est pas forcément significative, il est toujours intéressante de savoir ce que les autres ont retenu du framework, et ce qu'il lui reprochent. 

Voici mon témoignage. Notez l'excellent (si si) jeux de mot.

[VOTE] gwt-maven-plugin


Après plusieurs mois de mise au point et de test sur le terrain, je viens de lancer un vote pour une permière version "officielle" de mon plugin GWT pour maven.

Développé dans le cadre de la communauté "Mojo", autrement dit l'incubateur à plugins du projet Maven, j'espère que ce plugin recevra un bon accueil des utilisateurs de GWT.

En quoi est-il différent du projet concurrent gwt-maven ?

Les deux plugins partagent évidement pas mal de fonctionnalités, avec quelques originialités. Le miens par exemple peut générer les interfaces "Async" pour les services GWT-RPC. Par contre, j'ai préféré au lancement du shell GWT depuis maven la création de "launch configuration" pour Eclipse. En fonction du retour de la communauté, d'autres fonctionnalités pourront être supportées... 

L'idéal serait bien sur que l'équipe GWT supporte elle même un plugin maven !

Si vous trainez sur la liste dev@mojo.codehaus.org, n'hésitez pas à ajouter votre +1 ;-)


15 novembre 2008

un Windows sous license...

Microsoft a récemment proposé aux développeurs de la fondation Apache un abonnement MSDN gratuit. Celui-ci comporte entre autre un accès à la logithèque Microsoft, dont Visual Studio dont il s'agit de faire la promotion, mais aussi Windows, Office & Cie. Apparemment, l'opération a eu un très grand succès auprès des développeurs Apache, bien qu'ils soient nombreux à travailler sur Mac et/ou Linux.

Je vais peut être tester Vistual Studio par acquis de conscience, même s'il risque de ne pas trop faire l'affaire pour mes développements Java / Maven, quelque soient les reproches que l'on puisse faire à Eclipse ;)

A l'heure ou je préparais Mme à passer le PC de la maison sous Ubuntu, après avoir converti tous ceux de l'école dont elle est la directrice, en plus de mon eee-pc et du portable qui me permet d'écrice ce billet, je vais donc peut être ré-installer un Windows XP totalement légal sur notre PC de bureau (bien sur, quand je dis "ré-installer", c'est parce que le système est tout vérollé après des années de mauvais usages, pas pour un quelconque problème de licence).

Tant qu'a mettre un pied dans les deux mondes, j'ai égallement installé Office 2003 ... sur mon Ubuntu (merci PlayOnLinux) - et oui, ça marche.

Update :
J'ai peut être trouvé la solution : je viens d'installer XP dans une VirtualBox sur mon Ubuntu. A quoi ça sert ... euh ... à voir si ça marche ? ;)

13 novembre 2008

m2eclipse & checkstyle


Mon extension pour m2eclipse commence à fonctionner. Elle permet de lire la configuration Checkstyle à partir du plugin maven et de l'appliquer au plugin eclipse.

Si vous voulez "béta-tester", téléchargez le plugin ici et placer le sous eclipse/dropin - pas d'update site pour le moment, désolé ;)

N'hésitez pas à me faire part des problèmes et autres défauts de jeunesse de ce plugin encore très basique.

En principe, le plugin devrait (après redémarrage d'Eclipse) réagir lors de l'import d'un projet maven par m2eclipse et configurer comme il se doit le plugin eclipse-cs -- je ne l'ai pas précisé, mais ce plugin doit bien sur être installé !

NB : il existe un autre plugin checkstyle pour eclipse, http://checklipse.sourceforge.net/ . Aucune idée de qui est mieux que l'autre...

11 novembre 2008

Maven passe à Nantes


Le NantesJug organise une soirée Maven, animée par Arnaud Héritier, membre du "Project Development Commity" Maven. Pour ceux qui connaissent mal les raffinements de la fondation Apache, cela signifie qu'Arnaud a gravi tous les échelons de la méritocratie sur le projet Maven et que son vote pèse dans chaque décision majeure.

Je vais profiter de l'occasion pour faire une petite visite inter-Jug à Nantes. Si vous êtes dans le coin le 13 novembre, n'hésitez pas à vous joindre à nous.

un pas de plus pour Groovy

SpringSource vient de s'offrir G2One, la société fondée pour soutenir le développement de Groovy et Grails.

Ce rapprochement se fait assez naturellement, Grails étant fortement basé sur Spring et Spring réservant une place de choix à Groovy via son namespace "lang".

Qu'est-ce que ça va changer ?

En dehors des aspects produit, support, formation, etc, cela offre à Groovy une reconnaissance qu'il n'avait pas totalement réussi à gagner par ses propres moyen en dehors d'un public "geek" -comprenez auprès de nos décideurs.

Si je propose de coder une application stratégique en Groovy, même pour X bonnes raisons, je prend le risque de passer pour un doux-dingue technophile.

Si j'ajoute .. "qui s'intègre totalement avec Spring, qui est d'ailleurs le premier contributeur de son développement et de son support", ça fait tout de suite un argument plus concret. Délicat de tenir le même discours pour Jython ou BeanShell, quelques soient les points forts de ces langages.

J'espère que Spring 3 nous promet de belles surprises sur ce sujet ;)

08 novembre 2008

ça bouge autour de m2eclipse

L'intégration de maven sous Eclipse est un sujet qui a pris .. un certain retard si on compare à NetBeans ou Idea. La faute (sans doute) à la gueguerre entre Sonatype et Exists, les deux sociétés qui emploient des core-développeurs de maven, et qui supportent chacune un projet concurrent (m2eclipse vs q4e).

Dans le monde opensource on a coutume de dire que la concurrence est bénéfique. Seulement dans ce cas, chacun développe grosso-modo les mêmes fonctionnalités, et sur la base de la même plateforme à quelques détails techniques près.

m2eclipse remporte pour ma part un court avantage (mais ce n'est qu'un avis parmi tant d'autres) : les échanges que j'ai pu avoir avec les développeurs montrent une grande réactivité et une réelle volonté d'ouverture.

Dans mon cas, j'ai voulu ajouter le support de CheckStyle à m2eclipse; autrement dit, une extension m2eclipse qui va lire la conf de maven-checkstyle-plugin et la "traduire" pour configurer eclipse-cs, le plugin Checkstyle pour Eclipse.

Le bon point de départ, c'est que la plateforme Eclipse est conçue pour ce type de greffe de fonctionnalités (les fameux plugins) et m2eclipse ne déroge pas à la règle. Il y a donc une API très simple pour venir participer à la phase de configuration d'un projet Maven sous Eclipse.

La mauvaise surprise, c'est que cete API est un peu trop simple même dès qu'on a besoin de manipuler des concepts maven (classpath, résolution de dependances, ...). Comme il faut en plus découvrir comment se programme le plugin eclipse qu'on désire supporter, ça fait beaucoup de choses. A moins d'être un pro d'Eclipse + un guru de Maven, on en bave !

De rapides échanges avec Eugene Kuleshov m'ont convaincu que :
  1. je ne suis pas tout seul dans cette galère, et toute l'équipe de dev de maven est prête à apporter aide et conseils
  2. le seul moyen d'améliorer les choses est de "communiquer" pour que chacun apporte sa petite pierre à l'édifice.
Voici donc ma petite pierre :
  • une page du Wiki qui décrit le principe et les pratiques à connaître.
  • un ticket Jira pour permettre à chaque contributeur qui est contraint de réinventer l'eau chaude de "mutualiser" ses efforts.

02 novembre 2008

un processeur Quinte-core



Après le dual-core, puis le quad-core, voici une nouvelle génération de processeur qui va venir motoriser nos PCs de demain : le quintuple coeur.

Issu d'une colle-laboration active entre IBM et Intel, celui-ci utilise des coeurs extrèmement simplistes par rapport aux Pentiums IV. Cette (relative) simplicité permet de réduire la complexité du processeur et au final de bien mieux l'exploiter. L'ensemble permet de répartir la charge entre les 5 coeurs de manière optimale via un algorithme de à-la-rache-cétait-moi-le-premier.

Les résultats parlent d'eux même :

Seul bémol, ce nouveau processeur nécessite une carte mère spécifique équipée d'un slot 3D, donc réservé dans un premier temps aux machines haut de gamme.

La bête en images :



22 octobre 2008

mon ami Word

Mon projet actuel utilise activement la modélisation UML pour sa conception. Nous avons donc une panoplie complète de diagrammes, et bien sur des documents au format Word à produire, respectant le formalisme maison et une structure stricte.

L'outil de modélisation UML utilisé n'ayant pas le bon goût de supporter notre format de sortie, nous sommes passé par une solution (si on peut dire) d'une simplicité impressionnante :
  • export du modèle UML en XMI (compter 30 minutes)
  • lancement d'une transformation XSL:FO pour produire les documents en RTF (compter 15 bonnes minutes)
  • utilisation d'une macro word pour la mise en forme (compter 15 bonnes minutes par document)
Des optimisations sont très probablement possibles, mais dans tous les cas c'est très long...

Comment automatiser tout ça, pour éviter de passer des heures devant son PC à attendre l'étape suivante ?

Pour la transformation XSL, j'ai crée un petit plugin maven basé sur FOP. Ce n'était pas le plus difficile

Pour le reste ... je suis tombé sur le projet JACOB, qui permet de manipuler en Java l'API COM de Windows, et donc de faire de l' "automation" d'applications sous Windows. J'ai donc réussi à :
  • lancer word,
  • ouvrir le fichier RTF,
  • copier/coller son contenu dans le document contenant les macros,
  • ... qui sont ensuite exécutées
  • et enfin sauvegarder le résultat dans le répertorie cible (ouf!).
Il faut encore que j'essaie d'utiliser le même mécanisme pour piloter l'extraction XMI, qui n'est pas "légère" elle non plus.

Comme quoi, l'automatisation de la chaîne de production n'est pas impossible (parfois juste un peu délicate). Et au final, on pourra avoir une version complète des docs en cohérence avec le modèle UML deux fois par jour.

17 octobre 2008

Androïd : déjà dispo ?

Vous voulez tester Google Androïd avant tout le monde ? Vous êtes un Geek pur et dur du genre incurable ?
Il sera disponible dès le 10 novembre ici...
pour ceux qui ont un buget Geekitude solide !

22 septembre 2008

Lors du Google Developer Day, une session (la plus technique) était consacrée à Chrome, et plus précisément à son moteur JavaScript très sophistiqué visant à obtenir (enfin) de très bonnes performances en JavaScript. La concurrence avec SquirrelFish (projet similaire de WebKit) a été évoquée, et il est surprenant que Google, tout en investissant sur WebKit, n'ait pas vu venir ce projet et préféré faire cavalier seul.

Quoi qu'il en soit, SquirrelFish relance la guerre des bench et des records avec une nouvelle version "extreme", encore plus mieux. Google v8 va t-il réussir à surenchérir ?
Qu'est ce qu'on gagne dans tout ça ? Tout d'abord, la démonstration que du code JavaScript PEUT être rapide. Si l'équipe de Firefox doit se tâter pour choisir son futur moteur JS, c'est surtout du côté d'Internet Explorer que la pression va monter :

Jusqu'ici l'utilisateur lambda n'avait pas trop de raison d'abandonner son IE, installé par défaut (le "par défaut" étant un atout d'une puissance sans égal). Parmi les quelques curieux qui ont entendu parler de Firefox aux infos comme record du logiciel le plus téléchargé, 1% (?) pourront aller jusqu'à l'installer pour voir. Actuellement, ça ne changera pas leur vie et il garderont leurs habitudes. 

Mais demain ? Si Firefox lance et exécute leur webmail "orange" (ou alice ou neuf ou ...) en trois fois moins de temps que leur vieux IE, là ça pourrait donner des idées. IE8 n'a donc pas d'autre choix (IMHO) que de développer un moteur JS raisonnablement performant.

Qui gagnera la course à la rapidité du JavaScript ? Les utilisateurs !



Google Developer Day 08

Pour ceux que les technos de Google intéressent, je publie un compte rendu du Google Developer Day 2008.

16 septembre 2008

Breizhjug #1 : le succès au rendez-vous

La première réunion du BreizhJug a été une réussite. Avec près de 80 personnes présentes pour suivre la conférence de Didier Girard, le succès a été au rendez-vous.

Didier nous a démontré ses qualités de conférencier, dynamique et enthousiaste, et l'assistance semble avoir grandement apprécié sa prestation vu les nombreux encouragements que j'ai reçus ce matin.

Merci à tous pour votre soutien !

Seul ombre au tableau : j'avais prévu de filmer la session pour la diffuser sur parleys.com, et j'ai lamentablement merdé (disk full) :-/

... ce qui me motive pour faire mieux la prochaine fois, avec une conférence Maven 2 que je co-présenterais avec Raphaël Piéroni. Infos et inscriptions sur www.breizhjug.org

11 septembre 2008

GWTx


GWTx est un projet sur Google Code qui vise à proposer des extensions pour GWT, dans le but de les voir (peut-être) un jour intégrées dans GWT.

Je viens de rejoindre l'équipe de dev ... enfin, Sandy McArthur m'as plutôt passé la main faute de temps libre pour mettre à jour son projet avec la sortie de GWT 1.5.

Au programme, une remise à niveau pour assurer la compatibilité GWT 1.5 / Java 5, et une collaboration avec le projet GwToolbox pour émuler les APIs Java "utiles", comme par exemple les annotations JPA, nécessaires si on veut réutiliser les entités du domaine métier directement dans GWT.

l'effet "11 septembre "

Ce mattin, les locaux de Cap étaient bizarrement "aérés", afin d'évacuer la fumée...

incendie ? Non : des piles dans le micro-onde de la cafétéria.
Vengeance ? Attentat ? Bêtise pure et dure ?

Une nouvelle idée pour Al Qaida : poster sur le forum Leroy Merlin une "astuce" pour recharger les piles à moindre coup, par micro onde interposé. De nombreux blessés à attendre, même plus besoin  de kamikaze. En plus, ça peut relancer le marché du micro-onde.

La bêtise humaine va donc bien plus loin que la fiction.

03 septembre 2008

Google astique ses chromes


Google a sorti cette nuit son navigateur "Google Chrome".
Basé sur le moteur de rendu WebKit (utilisé également par Safari) il apporte :

d'une part un modèle multi-processus, basé sur le constat qu'on utilise aujourd'hui le navigateur pour exécuter des applications, et non plus pour visualiser des pages. Une application = un processus, c'est logique et cela stabilise le navigateur (étanchéité entre applications).

d'autre part un moteur d'exécution JavaScript basé sur une machine virtuelle crée par Google DK, "V8". Compilé plutôt qu'interprété, le code JS est nettement plus rapide, comme l'a déjà démontré le moteur SquirelFish (cf mon billet sur le sujet). V8 semble particulièrement efficace d'après les premiers benchs, et je confirme l'impression générale de rapidité.

Pour découvrir en image les idées derrière Chrome, consultez la BD éditée par Google : http://www.google.com/googlebooks/chrome/. L'accent porté sur les tests et l'intégration continue associée est intéressant.

Basé sur WebKit, il ne devrait pas y avoir de problème de compatibilité majeure. Peut-être aura t-on tout de même droit à une combinatoire dédiée dans la prochaine version du compilo GWT.

Quel intérêt ?

Pour Google, dans l'esprit "the browser is the platform", une application dans le navigateur doit être au moins aussi rapide, stable et démarrer aussi vite qu'une application installée. 
  • Pour la rapidité, le passage par la compilation du JavaScript est la clé. 
  • Pour la stabilité, le modèle 1 onglet = 1 processus est la solution poussée par Google. 
  • Pour le temps de démarrage, il suffit d'utiliser le mode "raccourci sur le bureau" de chrome pour comprendre : on lance gMail en un temps record, avec un "navigateur" réduit à sa plus simple expression.
Résultat : gMail exécuté sous chrome en mode "application" écrase tous les clients de messagerie connus - ce n'est que mon point de vue ;-)

Il est juste domage que gMail n'exploite pas Gear (à moins que j'ai raté quelque chose?).

01 septembre 2008

GWT 1.5

Google Web Toolkit version 1.5 sort aujourd'hui en version finale - juste à temps pour faire la pub de la première réunion du BreizhJug !

Il sera sous peu disponible dans le référentiel Maven, et je vais en profiter pour mettre à jour le plugin associé du projet Mojo.

26 août 2008

eee

Après des années à envisager l'achat d'un portable, l'essai le temps de SpringOne d'un magnifique 17" (plus transportable que portable), j'entre enfin dans le monde nomade avec un eee-pc 900A : 300€ tout juste pour un concentré d'informatique qui tient presque dans la poche.

Pas question d'installer Eclipse sur cette mini-machine, qui malgré ses 1.6GHz reste très en dessous des PC modernes (mais déjà plus puissant que celui que j'ai à la maison ;-)

Le système linux utilisé est très convivial, même pour un total novice, assez bien francisé, et seul le clavier posera problème (c'est vraiment tout petit !)

Ce billet est donc écrit sur un clavier de 20cm de large, avec de nombreuses fautes de frappe, mais je vais probablement m'habituer.

21 août 2008

Plain Old Binary Services


Les services web sont venu pour nous sauver de tout ces protocoles binaires, propriétaires et non-interopérant qui ont pourri l'informatique depuis tant d'année (alleluïa).

Pourtant, les performances n'étant pas toujours au rendez-vous, et le réseau véhiculant une quantité d'entêtes soap WS-TrucMuch qui fait peur, de nombreux petits malins cherchent à améliorer les choses.

Permière solution : SOAP 1.2 étant basé sur InfoSet (une norme de représentation pour un arbre de données) et non sur XML (une façon textuelle de représenter ce même arbre), rien n'interdit de véhiculer le message SOAP encodé en binaire par FastInfoset. Non seulement le message est très fortement réduit en taille, mais le parsing est nettement plus efficace.

Seconde solution : SOAP over TCP (développé par SUN), disponible pour .NET. Il s'agit cette fois de simplifier la couche de transport, puisqu'on s'est donné comme base de ne pas en dépendre. Donc autant faire au plus simple, et attaquer en TCP - j'attend de pied ferme SOAP sur IP ;-)

En combinant les deux, les perfs deviennent probablement exceptionnelles... Un format d'encodage binaire, basé sur un équivalence ASN.1 du schéma XML, et un transport sur TCP - je ne sais pas pour vous, mais moi ça me rappelle furieusement Tuxedo ou Corba !

Qui réussira à nous faire passer RMI/IP pour du "service web" ?