08 janvier 2009

blogger pour les développeurs

Blooger n'est pas très adapté pour fournir des fragments de code. La librairie syntaxhighlighter semble fournir une solution fonctionnelle pour contourner ces limitations.

Ceci est un test intégrant du code source Java :
public abstract class ConfigurableBean
{
/** Configurer used to inject dependencies in ConfigurableBean instances */
private static BeanConfigurer configurer;

/**
* Constructeur par d�faut
*/
public ConfigurableBean()
{
if ( configurer != null )
{
configurer.configure( this );
}
}
}

03 janvier 2009

bonne année !



Bonne année à tous !

Tous mes voeux de réussite pour 2009, en ce qui me concerne, un livre sur Maven est en préparation (il reste juste à écrire les 20 chapitres...) et j'espère bien poursuivre mes petits pas dans le microcosme GWT via le plugin maven-gwt et une collaboration entre gwtx  et gwt-beans-binding.

Mes prédictions pour 2009 :
  • Adobe rachètera SpringSource
  • Microsoft rachètera Adobe
  • Google rachètera Microsoft
  • Un téléphone Androïd sera offert à chaque visiteur de Devoxx 2009 
  • La fréquentation moyenne du BreizhJug dépassera les 100 membres
... mais bien sur, les prédictions sont faites pour ne pas toutes être vérifiées ;-)


17 décembre 2008

beans binding dans gwt

La JSR 295 a été crée pour définir un mécanisme de binding en Java. L'idée simple et supportée par de nombreux langages est que deux attributs de deux beans soit "liés", ce qui permet par exemple à un widget graphique de toujours rester synchronisé avec l'objet modèle qu'il affiche, sans devoir écrire du code de mise à jour fastidieux et répétitif.

beansbinding est l'implémentation associée à cette spec et est utilisé dans NetBeans, ce qui prouve une bonne maturité de la techno. Seulement le projet semble "dormant", et la JSR associée n'a pas bougé depuis 2006. Pourtant le mot clé "bind" utilisé par JavaFX montre bien l'importance de ce concept pour les IHM

gwt-beans-binding est un portage de la JSR 295 (ou plutôt de ses concepts puisqu'elle n'est ni aboutie, ni publique) pour GWT. La mise en oeuvre est très simple. Pour lier deux textBox par exemple, il suffit de déclarer :

Binding.createAutoBinding( READ_WRITE,
    textBox, BeanProperty.create( "text" ),
    model, BeanProperty.create( "name" ) );

L'équivalent codé "à la main" nécessite de définit de nombreux PropertyChangeListeners (NB: quand seront-ils supportés en standard par GWT ?).

Pourquoi se focaliser sur ce projet, encore en version 0.2, alors que d'autres options comme Gwittir offrent des solutions comparables ? 
  • D'une part, parce que quelque soit l'évolution de cette JSR, elle sera toujours considérée si un nouveau groupe s'attaque à ce problème de data-binding en Java. 
  • D'autre part, parce qu'elle propose une API simple et focalisée sur cette unique tâche. 
  • Enfin, parceque le développeur de cette petite librairie a l'air très motivé !
Pour voir gwt-beans-binding à l'oeuvre : démo

11 décembre 2008

Devoxx - an 1

Devoxx se termine avec la projection d'un film pour certains, et les derniers "BOFs" pour les autres.

J'espère que vous avez apprécié mon "en direct", si vous trouvez des blogs/docs équivalents sur le net laissez un commentaire, que tout le monde en profite.

Et pour les membres du BreizhJUG, rendez-vous le 5 Janvier pour une session qui sera au couleur de JavaFX.

07 décembre 2008

en direct de Devoxx


space logo

Dans les lignes qui suivent, je vais retranscrire "à chaud" (enfin, avec quelques heures de différé) mes impressions sur Devoxx et les sujets que je suis lors de cette conférence.

Suivez mon périple à Antwerpen par google.Docs  interposé !

05 décembre 2008

GWT dessine le Web de demain


A l'occasion de son passage à Rennes pour donner une formation GWT, Sami Jaber nous fait le plaisir d'accepter l'invitation du BreizhJug. 

"GWT dessine le Web de demain"

Cette conférence, organisé en mode "à l'arrache", aura lieu dans les locaux de la MEITO (au pied de la tour télécom de Rennes Atalante) le 15 décembre aux alentours de 18h.

Plus d'info et inscriptions comme d'habitude sur www.breizhjug.org

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