samedi 28 mars 2009

I am an Eclipse committer !

Depuis très peu de temps, je participe à un projet qui me semble avoir un intérêt particulier: UFaceKit

Le but premier de ce projet est d'abstraire la couche graphique des applications et donc de permettre de passer d'une interface graphique de type client riche SWING à GWT ou d'Eclipse RCP à Q4 etc...
Le background de ce projet entre dans le cadre des projets actuels qui visent à radicalement revoir l'approche de la réalisation des projets.
Alors il est vrai que rien ne prouve que cette façon d'appréhender la refonte de la conception des projets IT est la bonne façon de faire qui va percer dans les prochaines années.
Mais plusieurs points m'ont poussés à prendre en charge certains besoins du projet:
  • Le leader du projet n'est autre que le fabuleux Tom Schindl de bestsolution.at et j'ai la conviction qu'en travaillant aux côtés des meilleurs on apprend énormément
  • Un des besoins de l'équipe projet est un coup de main sur la partie GWT, réalisation de l'équivalent des viewers JFace et des layout pour GWT natif et smartGWT
  • Le projet est un projet Eclipse et il entre dans le cadre du projet Eclipse e4, le futur de la plateforme Eclipse qui est géré par les plus grands de l'écosystème, tout simplement.
Après avoir échangé avec les membres de l'équipe et plus particulièrement avec Tom Schindl par mail, chat et bugzilla, j'ai réalisé les premiers développements.

Ma première tache et non des moindre a été de créer un environnement de travail pour développer sur ce projet.
Pas si simple de comprendre le fonctionnement d'un projet qui existe déjà depuis plusieurs mois.
Puis il a fallu commencer à travailler et coder l'équivalent des viewers JFace pour GWT natif puis pour smartGWT (=librairie GWT de composant graphiques et de facilitant pour le développement)
Dans le même temps, les exemples permettant de tester ces développements ont été mis à disposition.

N'ayant pas les accès pour committer le travail sur SVN, j'envoyais le tout par pièces jointes sur bugzilla et par mail.
Je bataillais donc pour commencer au plus tôt le process d'élection afin de devenir committer et ainsi pouvoir plus simplement mettre à disposition le travail réalisé.

Mais pour devenir committer il ne suffit pas de demander, il faut évidemment faire ses preuves et être crédible quand aux compétences que l'on prétend mettre à disposition.
Le contrat était simple, une fois les exemples mis à disposition et validés, le process d'élection commencerait.
J'ai donc ajouté à mes projets des vidéos interactive réalisées avec wink afin d'aider les membres de l'équipe à tester ces exemples.

Le process d'élection a démarré au démarrage d'EclipseCon2009. Je ne sais pas si cela est lié au fait que j'en avais touché 2 mots à un ami, Olivier Moises, qui se rendait à l'événement et qui connaissait Tom, mais dans tous les cas, maintenant j'ai le statut d'Eclipse Committer sur le projet UFaceKit qui est au stade d'incubation.

Une fois élu, ce n'est pas du tout cuit ! En effet, c'est un engagement sur la réalisation de diverses taches liées au projet.

Pour valider le process il faut remplir un accord individuel ainsi qu'un accord avec son employeur si vous êtes dans le même cas que moi. Le but de cet accord est de protéger la communauté Eclipse en prévenant tout conflit juridique.

J'en suis à ce stade ci, j'ai en ma possession l'accord signé de mon employeur ainsi que l'accord individuel, reste à envoyer le tout à la fondation Eclipse.

La suite au prochain épisode...

dimanche 8 mars 2009

La création du Ch'ti JUG

Plus d'un mois sans poster quoi que ce soit... mais c'est parce qu'en ce moment je consacre une partie de mon temps libre à la création du Ch'ti JUG avec Julien Jakubowski ! Il fallait que je prenne le temps d'en parler ici...

La création du Ch'ti JUG

Il y a quelques temps, je me posais encore des questions afin de comprendre pourquoi il y avait tant d'effervescence autour des JUG en France.
Notamment avec le Paris JUG qui était devenu avec le temps "the place to be" pour tous les pro actifs du monde Java EE qui souhaitent à la fois parfaire leurs connaissances et échanger avec d'autres leurs avis et retours d'expérience.

Lors du premier anniversaire du Paris JUG, de nombreux blogs ont relayé des informations sur l'événement et un point avait particulièrement fait jaser à cette occasion.
En France, il existe de nombreux JUG un peu partout sauf dans une région: Le Nord Pas-de-Calais ! Outre les diverses brimades et plaisanteries que ce constat d'échec a entrainé sur les Ch'tis, ce sont tous les Ch'tis intéressés et passionnés de Java qui sont pointés du doigt, à juste titre.

Je me suis aperçu que je me posais les mauvaises questions ! Peu importe le pourquoi du comment fonctionnent les JUG ailleurs ! Ces questions sont "secondaires".
LA question à se poser étant : Comment combler ce manque de JUG entre le Paris JUG et le BeJUG, le JUG belge ? En créant tout simplement un JUG à l'image de région: Le Ch'ti JUG.

A cette occasion, j'ai lancé un pavé dans la marre avec un billet sur ce sujet brulant. Peut être ne suis-je pas le seul à me poser ces questions ?
Et bien non ! Les commentaires d'encouragement fleurissent et des contacts sont pris pour donner l'impulsion dont le Ch'ti JUG a besoin.
Un grand merci au touilleur pour avoir relayé ce billet sur son blog, ca a été je pense un élément déterminant de la création du JUG.

Après quoi s'enchaine une suite d'événements:
  • Premiers échanges avec Julien Jakubowski, architecte chez OCTO technologies à Paris mais qui réside dans le nord. Présent lors de l'anniversaire du Paris JUG, il s'est fait montré du doigt lors de la soirée au moment où l'absence du JUG dans le nord à été évoquée. Il a donc décidé lui aussi de se lancer dans l'aventure et en prenant connaissance de mon billet sur le blog, il m'a contacté.
  • Multiples échanges avec la direction de ma société Empeiria au sujet du Ch'ti JUG: avoir l'appui de mon employeur est un atout primordial.
  • Premières bières (réunions) Ch'ti JUG afin de définir un plan d'action.
  • Mise en place de documents de travail collaboratifs avec Google document; Suivi des taches à la mode agile de chez nous et partage de documents de travail, mails, lettre, sondage etc.
  • Communication sur la création du Ch'ti JUG par mail
  • Recherche de speakers sur les sujets qui vous tiennent à cœur (de bonnes pistes en perspectives)
  • Diffusion d'un sondage pour connaitre les Ch'ti juggers
  • Création d'une première version du logo
  • Mise en place du site web chtijug.org
  • Création de l'association
  • Rencontres et diverses prises de contact avec d'autres JUGs, speakers, partenaires et sponsors
  • Animation d'une mailing list sur Google group
  • Recherche de salles permettant d'accueillir les événements
  • Et j'en passe...
Mais il nous reste du chemin à parcourir :
  • Créer des plaquettes commerciales de présentation du Ch'ti JUG à diffuser aux entreprises de la région pour créer un pool de sponsors
  • Concrétiser un partenariat avec les premiers sponsors
  • Booker une salle, un buffet, des speakers
  • Assurer les événements
  • Communiquer publiquement sur l'ouverture du Ch'ti JUG: L'union fait la force, nous avons besoin de vous !
Si on fait un rapide bilan des 2 derniers mois, même si il est vrai que concrètement tout reste à faire, le Ch'ti JUG c'est déjà pour moi beaucoup de choses et je n'en tire que du positif: des rencontres, une ouverture d'esprit, un savoir faire et une pub sans précédent.
Alors quand j'imagine ce que ca sera une fois concrétisé, ça me donne envie d'aller au bout des choses.

J'ai bon espoir que la première rencontre se fasse rapidement et connaisse un succès relatif mais un succès avant tout.
Ceci permettra je l'espère par la suite d'impliquer les différents acteurs du Nord Pas-de-Calais dans un système d'échange du savoir et de capitalisation du travail qui va au delà des entreprises.
Et pour finir, je souhaiterai vivement impliquer les employeurs à investir dans cette voie, ce qui peut se traduire tout simplement en devenant partenaire/sponsor en mettant à disposition des speakers, des locaux ou des deniers mais cela peut aussi être du temps dégagé pour certains collaborateurs pour participer activement au Ch'ti JUG.
A vos patrons, j'envoie un message clair ! Investir sur la travail des collaborateurs et un bon moyen d'établir une relation gagnant-gagnant.

jeudi 19 février 2009

How to speed up the GWT compilation without modifying the UserAgent.xml etc...

If you search on the web a way to reduce the compilation time of you GWT application you would find many results !

Some articles explain that you can use the permutation configuration to compile a french application for IE6 for instance and not a french-english-deutsch-and-so application for firefoxilla-ie6-opera-andso !

They explain also that you can easily modify the UserAgent.xml and the I18N.gwt.xml files from the GWT distribution to set the locale and user agent you want to use to compile...

Unfortunatly, if I ask to my BOSS if I can modify those files and create a "GWT-1.5.3-with-my-funny-modification-to-reduce-compilation" distribution, I think he would kill and fired me for non quality suggestion and silly way so solve problem ! (Sorry guys, just kidding)

Here is some results sample :

http://vinaytech.wordpress.com/2008/11/10/gwt-compiler-compiling-for-...

http://blog.bazoud.com/post/2008/07/31/Can-I-speed-up-the-GWT-compiler
http://blog.bazoud.com/post/2008/07/31/Can-I-speed-up-the-GWT-compile...
http://blog.bazoud.com/post/2008/07/31/Can-I-speed-up-the-GWT-compile...

http://www.youenchene.fr/2008/08/petite-astuce-pour-gwt.html

http://www.ongwt.com/post/2008/08/11/How-do-speed-up-the-GWT-compiler

http://www.scribd.com/doc/9692542/How-to-Speedup-Gwt-Compiler

If you read these articles, they explain how to reduce the compilation but you have to modify your module xml file also and if you use continuous integration you would have a only frenchy-firefoxed application for instance after the continuum/hudson build !!!

But if you RTFM you would find this page "Defining a Module: the Module XML File" and in this paragraph "Renaming modules" :
The <module> element supports an optional attribute rename-to that causes
the compiler to behave as though the module had the name specified. Renaming a
module has two primary use cases:

* to have a shorter module name that doesn't reflect the actual package structure
* to create a "working module" to speed up development time by restricting the
number of permutations

com.foo.WorkingModule.gwt.xml:

<module rename-to="com.foo.MyModule">
<inherits name="com.foo.MyModule" />
<set-property name="user.agent" value="ie6" />
<set-property name="locale" value="default" />
</module>

When WorkingModule.gwt.xml is compiled, the compiler will produce only an ie6
variant using the default locale; this will speed up development compilations.
The output from the WorkingModule.gwt.xml will be a drop-in replacement for MyModule.gwt.xml
because the compiler will generate the output using the alternate name.

To use a renamed module in hosted mode, it is necessary to use the "physical" name
(i.e. com.foo.WorkingModule) in the URL path, while otherwise referring to
com.foo.MyModule in the host HTML page.

So do you still need to modify google GWT distribution file to provide your own distribution ? Maybe if you use the -noserver option and GWT 1.5.3

Just create a new file called myDevModule.xml :

<module rename-to="com.foo.MyModule">
<inherits name="com.foo.MyModule" />
<set-property name="user.agent" value="ie6" />
<set-property name="locale" value="default" />
</module>

On my project, this solution is a very good news ! I can now compile in less than 2 minutes !!! A few days ago, I needed to wait for 10 minutes to compile on my computer...

But in the next GWT 1.6 release we will have a new way too avoid wasting time with compilation because the Draft Compile flag will become a real option and not only a patch (I Hope)

Hope that help !

PS: This trick does not work with the -noserver option... see this post on google group : http://groups.google.fr/group/Google-Web-Toolkit/browse_thread/thread/38ff8bedd038ec68?q=Manage+developement+and+production+environnement#beff4307165969c7
Here is the issue : http://code.google.com/p/google-web-toolkit/issues/detail?id=2976

dimanche 8 février 2009

"Nord-pas-de-Calais Lille Java User Group" ou Ch'ti JUG ?!

Cela fait plusieurs fois que l'idée me traverse l'esprit mais c'est la première fois que je passe le pas et que je me décide à coucher l'idée sur la toile !

Il existe de nombreux JUG (Java User Group) en France et ils sont très actifs ! voir de plus en plus actif si j'en crois mes flux RSS !

A en croire les billets de certains blogger assidus du monde de Java J2EE comme le touilleur ou Eric Lefevre, les JUG sont de plus en plus répandus en France SAUF DANS LE NORD !!!

Si c'est pas une honte ça ! Avec tout le beau monde qu'on a, on est même pas capable de maintenir un JUG digne de ce nom... Et nos amis les belges, juste à côté de nous, ont un JUG extrement bien développé puisqu'ils organise la "petite" conférence Devoxx... (> 3000 participants !!! voir parleys.com)

Alors je ne sais pas ce que vous en pensez VOUS qui êtes du Nord de la France, mais organiser un JUG peut se révêler une expérience professionnelle très riche et valorisante pour les organisateur et les participants !

Si vous, votre entreprise ou même votre voisin êtes motivés pour monter ce type de projet, alors n'hésitez pas à me contacter ! Je suis sur la métropole Lilloise et je pense qu'on se doit d'avoir un JUG sur Lille, 4eme agglomération française... et même pas un JUG...

Pour ce qui est du nom du JUG, étant dans le nord, je pense que seul le Ch'ti JUG ou le Ch'tio JUG peut etre retenu... Ca fait partie des choses qui s'imposent dans le Nord.

Pour le logo, une idée ?

samedi 7 février 2009

GWT 1.6 M1 Release

Hi every GWT fans !

Just a post to relay the GWT 1.6 M1 release yesterday !

Here is the original announce on the GWT group:

http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/3e7e6cc3b35ad98a

You can download it on the GWT download page:

http://code.google.com/p/google-web-toolkit/downloads/list?can=1&q=1.6.0

Or here directly if you can wait to get it :

http://google-web-toolkit.googlecode.com/files/gwt-windows-1.6.0.zip

To remember you, here is the GWT 1.6 roadmap from the google web site here:

http://code.google.com/intl/fr/webtoolkit/makinggwtbetter.html#roadmap

Release 1.6

Anticipated Time Frame - Q1 2009

  • New compiled file deployment structure
    • Easily compile into a WAR file, making it easy to deploy your compiled GWT application into standard servlet containers
  • Migration from Tomcat to Jetty hosted mode server
    • A more pluggable architecture for the hosted mode server will enable developers to use servlet containers other than Tomcat with the Hosted Mode browser
  • Uniform event handlers
    • Event handlers will be implemented in a uniform fashion across all widgets, with listeners deprecated
  • DatePicker, LazyPanel migrated in from incubator
    • New widgets from the incubator
  • String performance improvements
    • StringBuilder uses deferred binding to optimize string appends per-browser
  • Compiler performance improvements
    • 1.6 will introduce parallel permutation compilations and other performance tweaks for faster compiles
Hope that helps !

lundi 5 janvier 2009

GWT L10N : Accept-language auto-detection completed ! (Server side locale selection)

When you develop a web application, you may want let the user choose his language to show all the message with the user locale.

I searched on google and found different solution, here is the one we choose for GWT 1.5.3 (in 1.6 we will change our mind).

http://code.google.com/p/gwt-incubator-1-5-wiki/wiki/ServerSideLocaleSelection

If you want to set the locale, you can add this line to yout HTML page:
<meta name="gwt:property" content="locale=en"/>
So if you want to find the user locale, juste change yout HTML file to JSP and replace the previous line with this block:
<meta name="gwt:property" content="locale=<%List<String> list = new ArrayList<String>();
list.add("fr");
list.add("en");
LocaleMatcher localeMatcher = new LocaleMatcher(list);
String locale = localeMatcher.findBestMatch(request.getHeader("Accept-language"));
out.print(locale);%>"/>
We just use a GWT 1.6 incubation class LocaleMatcher and we authorized two locale "fr" and "en" only. This code will use the favorite locale of the user that has been set in the browser configuration.

We don't need to implement a special UI to manage the user locale, we use the browser feature.

Of course you must enable the locale in the module XML file too !!!
<extend-property name="locale" values="en"/>
Here we choose to activate the possible locale by code with an Arraylist of the locale we accept to manage, but you can also use another GWT incubation class that scroll you module XML file to find the locale used by your module. That will probably a native feature of GWT 1.6 so wait and see in a few weeks (or months).

mardi 2 décembre 2008

Appspy is a "User experience profiling tool"

Voila un outil qui mérite qu'on prenne le temps de voir ce qu'il a dans les tripes !

Welcome to Appspy

What is Appspy ?

Appspy is a "User experience profiling tool".

What does that mean ? It means that with Appspy you will know :

  • How your application is used
    • What are the most used parts of your applications ?
    • I have spent so much time to develop this feature but is it really used ?
  • How your application responds to the users requests
    • Performance (response time for instance)
    • Quality (errors, response codes)

Why Appspy ?

Every software need to be improved in term of quality, performance, efficiency ...

With Appspy, you will get all the data you need to learn how to improve the value of your software for your users.

Have a look at this article of Martin Fowler about Observed Requirements .

Where to start ?


Appspy roadmap

Next release : 1.1

  • Import / Export for reports and dashboards
    • Export wizard (choose reports and dashboards to export)
    • Import wizard (choose what to do when name conflicts occurs for instance)
  • Ability to hide reports and dashboards
  • Integration of a scheduler (quartz)
    • Administration screens to register/plan jobs
  • Additionnal reports / dashboards (to be defined)

Next releases

  • OSGi for client side (Embed Felix / Spring DM)
  • OSGi for server side (go for Spring DM Server ?)
  • Talend integration (schedule Talend jobs)
  • Data collection based on annotations and Spring interceptors
  • Other ideas ? Let us know at
Quelques screenshots:





lundi 24 novembre 2008

Eclipse NowYouCan 2008, Trocadéro, Notes en vrac...

La 3ème édition d'Eclipse NowYouCan a eu lieu le 21 octobre a Paris, Trocadéro dans un cadre magnifique. En arrivant, le petit déjeuner nous attend, il faut prendre des forces avant d'attaquer cette journée qui promet d'être riche en informations. Certaines têtes paraissent familières, ça discute autour des stands, l'ambiance se veut conviviale et studieuse à la fois, enfin tout dépend des groupes...

Présentation d'Eclipse NowYouCan
http://eclipse-nowyoucan.com/?Symposia/Program
Tout commence avec une présentation d'Eclipse NowYouCan par la responsable de l'organisation de l'événement. Le programme est détaillé et l'équipe d'organisation remerciée pour les efforts accomplis cette année. Ça a l'air très alléchant comme prévu, on trépigne déjà sur certaines présentations. Nous sommes une centaine dans la salle. Il y a des retardataires, mais une fois que tout le monde est là, les choses sérieuses peuvent commencer !

Ralf Mueller - Director, Eclipse Ecosystems Europe

Ralf Mueller, directeur d'Eclipse Ecosystems Europe, a commencé par une remise en perspective de l'écosystème Eclipse (open source/marché). Les raisons de sa création, de son succès ainsi que les divers types d'intervenants autour d'Eclipse. Il a utilisé principalement l'exemple de BMW qui a bâti un écosystème utilisé par les industries automobile autour de l'open source/libre et d'Eclipse en remplacement d'un environnement hétérogène (différents produits commerciaux/libres).

Voici mes notes (succinctes) :

Contexte : Automobile / discussions autour des projets open source.

Exposition des différents EcoSystems logiciels:

* Free as in speech (GNU GPL) : Libre
* Free as in bear (EPL) : Free
* Company Driven : Use Free
* Producer/Distributor/Consumer/Community : Eclipse


History of Eclipse (since 2001...)

Fonctionnement Communautaire, Membres

Définition d'Eclipse

"Eclipse is an open source community focused on developing a universal platform of frameworks and exemplary tools that make it easy and cost-effective to build and deploy software in today’s connected and unconnected world.
Eclipse is a consortium of major software vendors, solution providers, corporations, educational and research institutions and individuals working together to create an eco-system that enhances, promotes and cultivates the Eclipse open platform with complementary products, services and capabilities."

Répartition :
IBM 46%
individual 25%

Nombre committers / members en augmentation : + 20 % / an

Graphique deny / use / contribute/ champion / collaborate / redefine :
Exposition des différents mode de participation existants.

EcoSystem Eclipse: Today & Tomorrow - Présentation globale des axes de développement Eclipse.

En résumé: un fort interet de l'open source pour les clients !!

E4 (Eclipse 4) - Jochen Krause - Innoopract
Cette présentation a pour but de nous informer sur le projet qui intéresse tous ceux qui utilisent Eclipse : E4 ! La communauté Eclipse à monter un projet pour faire passer Eclipse à la vitesse supérieure, le but étant de créer une nouvelle génération d'IDE, plus simple, plus rapide, plus orienté Web et surtout permettant de faire des IHM décrits par un format pivot XML (comprenez declarative UI)

Voici mes notes (succinctes) :

The environnement is changing !

What we need:
web 2.0
REST
fast dev. cycle
easy to deploy

slides IDE

what is E4 ?
nextgen platform with:
+ easy
+ sexy (UI & co)
+ services...
+ +++

slides community

Everything in the project e4 is public => transparency

Major Themes:
-better desktop
-bring eclipse to the web !
...

commitment to 3.X
En parallèle des versions 3.x (3.5 et 3.6)

protect the SDK & RAP

3.X => support more than 5 years

3.x plugins will works

coexistence as long as needed

make it easier to build plugins

architural improvment
-more uniform, more flexible, ++ (support backward compatibility)
-dependency injection (spring ?)

non java plugin :
-javascript (groovy)

flexible styling of Eclipse desktop app.

-separate UI definition from real UI
-tweeking eclipse UI
-CSS
-databinding from model to UI (with genericity)
-DOM-based model object

Eclipse Application model
-selection, D&D, progress...
-the 20 more important things
-easy to use / understand

modeling the workbench (xml)
EMF SWT JFace

RWT (RAP widget tools)

Reuse SWT to create web app

2 ways:
UI + Application services on Server
UI on client + Application Services on server

Mashups
-OSGI
- ?

en parallèle de Eclipse 3.6 (=> dans 2 ans = 2010)


E-NOVE - RDTL

Le responsable du projet E-NOVE de la société RDTL est venu nous présenter l'architecture utilisée pour réaliser un système de communication d'un parc de véhicules de transports type BUS. Le besoin étant de mettre en place un système gérant de manière distante et embarquée les services d'affichages, de suivis, de paiement, de compostage, en bref, tous les services informatisés existants dans les BUS.

Les solutions propriétaires existantes n'étant pas satisfaisantes, RDTL s'est tourné vers OSGI et les solutions open-source. Je vous passe la tuyauterie et les schémas en tout genre, mais le projet sembait très riche techniquement et particulièrement novateur ! Une présentation de pionnier dans la matière qui était très interessante.

Mes notes :
Application mobile dans les transports (BUS)
need:
-communication d'informations
-cartographie en temps réel

Open system:
-upgrade the system over the air
-communication + data exchange

Graphique architecture client serveur avec OSGI etc.


Présentation juridique sur les licences
Peu avant l'heure du déjeuné, une intervention sur un thème juridique n'était pas chose aisée. Mais ils l'ont fait ! Les 2 intervenants nous ont présentés les différentes licences.

Mes notes :
1/ Free type licenses
GNU, EUPL, Cecilia A
VIRALE ! (+redistribution)
2/ Semi free licenses
héréditaire
3/ Domain public licenses

Arnaud Buisine/Guillaume Lours - Proxiad - Industrialisation du packaging et des controles qualité logicielle dans Eclipse avec Maven 2

-Cette présentation qui a pour thème l'industrialisation des développements, en somme la mise en place d'une usine de dev comprenant Maven, Continuum, de la génération de code (avec OBEO) et une suite de bonnes pratiques et de façons de faire.

-Pour l'automatisation de la création des projets, Proxiad utilise des Wizard Eclipse personnalisés.
Suite à une question de ma part, on apprend que historiquement ils ont testés l'utilisation des archetypes mais leur maintenabilité difficile à pousser l'utilisation de Wizard.

-L'importance de laisser la possibilité aux développeurs d'utiliser les même outils que dans l'intégration continue est primordiale pour permettre une bonne utilisation de la chaine de construction. Tous les outils de type checkstyle, PMD ou autre sont accessibles sur l'environnement de developpement. Le but est de pouvoir vérifier par soit même la qualité du code avant de la commiter.

-On ne doit pas être obligé de lancer de commandes Maven sur le poste de développement pour faire fonctionner les projets. Ca peut paraitre logique mais ce n'est pas forcément respecté...

-Je lance un pavé dans la marre et je pose une question concernant le contrôle de l'architecture par la chaine de construction. Réponse plus que correcte: Utilisation de checkstyle avec des pattern de vérification poussés le tout associé à Jdepend. L'architecture est vérifiée à partir de l'utilisation des package et des dépendances au sein des classes java.

-S'en suis une discussion sur le filtering et l'overlay Maven qui sont des sujets épineux car pluôt complexes à mettre en place dans de grandes structures que sont nos clients.

-L'utilisation massive de WTP d'Eclipse pour lancer les applications serveurs des projet est préconisée. Bien plus pratique que de lancer un serveur autonome en dehors de l'environnement de développement. Depuis plusieurs années, ce mode de fonctionnement apparait comme un standard, mais ce n'est forcément le cas partout. Les pauvres...

-Une question est posée concernant le build des projets type plugins Eclipse avec buckminster... encore une façon de se faire remarquer par l'assemblée mais cela ne fait en rien avancer le schmilblik...

Fin de la présentation, après une intervention d'un membre de l'organisation, les temsp alloué a été dépassé, la suite au prochain épisode.


Présentation de ZEND PHP, mes notes :

inconvéniants PHP: les idées reçues ?
-mélange des layers (svc, daos etc...)
-bidouille en totu genre
-d'autres apriori divers

gain de temps en dev ! => argent !

je cite : "le PHP ce n'est pas que des trucs de mickey" => équivalent archi java possible !


Présentation de P2 - Benjamin Cabé (benjamin.cabe anyware-tech com + http://blog.benjamin-cabe.com )

Notions a connaitre:

Installation Unit

Artefact repository: zip, jars, ...

Metadata repository (directory ???) : installation unit

profile

engine : execute provisionning request

touchpoint : runtimes ?


Possibilités:
-bundle pooling
-dev. env
-quick install
-target platform
-deliver installer on CD / USB Key
-different flavour of the product depending on the customer
-install mirrors


Présentation de BIRT - Actuate

ACTUATE = main commiter + project leader (80 devs)

new functionalities:

intéractif
=> ajax
=> web 2.0 function
=> adobe flex...

increase number of users

talend

bdd: mysql, infres, postgresql

spagobi

Crosstab

Cube: drill / = hierarchie

Cube stocké en mémoire

Assistant de saisie des requetes ! ++++

Question sur les Sous rapports ? => Réponse : Non...

vendredi 21 novembre 2008

Que pensez vous de ce blog ? (Test du formulaire Google Doocuments)

Une envie soudaine de tester le formulaire de Google Documents... et voila, un sondage est né !

La possibilité de créer des question avec différents types de réponses, un titre de formulaire... rien de plus ! Simple mais efficace ! Google en somme.



Rien de transcendant mais ca peut être pratique comme outil. Après on peut visualiser les réponses (heureusement ^^) et les analyser.

dimanche 16 novembre 2008

GWT && ( ACEGI || Spring Security )

Il y a quelques temps, j'ai eu pour mission d'ACEGIfier une application Web en GWT.
Le but premier était de sécuriser l'accès aux ressources concernant l'affichage ! Alors pour ce qui est de sécuriser les services exposés etc. ce n'est pas l'objet de ce billet !

Etape 1/
Après quelques recherches sur mon ami google, j'ai pu rapidement me rendre compte qu'il était plutôt préconisé d'utiliser une page html/jsp autonome pour s'authentifier. Soit, n'étant pas un fervent défenseur du tuning applicatif, je n'ai pas perdu de temps avec ça, j'avais bien assez à faire avec ACEGI lui même.
cf:http://www.dotnetguru2.org/bmarchesson/index.php?c=1&more=1&pb=1&tb=1&title=technical_tip_using_acegi_with_gwt
Voici le résultat, pas folichon, n'est ce pas ?! Mais c'est rapide et fonctionnel !

Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>My Login Page</title>
</head>
<body>
<h2>Please log in</h2><br>
<form method="POST" action="j_acegi_security_check">
Username: <input type="text" name="j_username"><br>
Password: <input type="password" name="j_password"><br>
<input type="submit" value="Log in >>">
</form>
</body>
</html>

Image:

Etape 2/
Après coup, je me suis aperçu que ma page HTML de login était quelque peu en décalage avec l'application, feuille de style, internationalisation des libellés... J'ai donc réalisé un écran GWT d'authentification d'après le HOWTO d'Instantiations.com ! J'ai ensuite affiché cet écran dans firefox et avec firebug j'ai pu récupérer le code HTML correspondant... Mais ce n'est pas terminé, après quoi, il a fallut ACEGIfier le code HTML.

Je vous passe le code... c'est du GWT et c'est plutôt verbeux !

Image (lors d'une authentification erronée) :





Etape 3/
L'application et l'écran de login étaient donc en phase ! Enfin, jusqu'à ce que je me rende compte que l'écran de login s'affichait différent en fonction des navigateurs... En effet, dans ie6, la fenêtre était déformée ! Normal, GWT ne sert donc pas a rien, il adapte le code HTML en fonction du navigateur... et ayant copier coller le code HTML depuis firefox... bref, il me fallait trouver une autre solution: un module GWT d'authentification !

En ajoutant un module d'authentification dans mon projet GWT, je suis certain de ne plus avoir de problèmes d'affichage ! Et je peux lui appliquer le même style que l'application principale ! Et je peux internationaliser l'authentification de la même façon ! Par contre, je dois modifier ma configuration ACEGI pour authoriser l'accès au fichiers GWT du module de login mais pas au reste de l'application !

J'utilise un FormPanel classique de GWT (pas GWT-EXT) et je le configure pour ACEGI (j_username, j_password, j_acegi_security_check, POST) rien de plus !

Voici le résultat, pas tellement différent qu'à l'étape 2 me direz vous, mais le gain se situe au niveau de la maintenabilité et l'homogénéitéde l'application !

Code :
A venir
Rapidement:
Il faut utiliser un FormPanel de GWT natif.

FormPanel form = new FormPanel();
form.setAction("j_acegi_security_check");

on le configure pour la méthode POST

on ajoute les 2 composants de saisi du login / pass en leur donnant des noms particuliers : j_username et j_password

un bouton de validation avec un listener qui submit : form.submit();

et voila...

Image :

Etape 4/
Il faut maintenant modifier le tout pour créer un module d'authentification autonome et non embarquer dans mon application... Histoire de le réutiliser de la même façon dans d'autres applications avec du SSO par exemple. La suite au prochain épisode !