vendredi 23 janvier 2009

XWiki arrive (enfin) à maturité.

... en tout cas ça semble se dessiner sérieusement !
Vendredi dernier j'ai assisté à la cantine à la présentation des évolutions 2009 de XWiki.
Elles sont vraiment très prometteuses, avec enfin un éditeur wysiwyg à la hauteur, c'est à dire qui ne détruit pas une fois sur deux les documents lors d'une réédition. C'est quand même le minimum de ce que l'on peut demander à un wiki, non ?
Cela fait plus d'un an que mes équipes l'utilisent en replacement de SnipSnap, projet désormais mort, et souffre au quotidien de cette faiblesse et de quelques autres enfin corrigées ou en voie de l'être.
J'ai fait le choix de ce wiki de part la connaissance de Vincent Massol qui venait de rejoindre XWiki.
Ses qualités déjà fortement reconnues par la communauté Opensource, m'ont fait jugé à l'époque que le risque en vallait la chandelle et j'ai maintenu le cap jusque là en attendant que le fabuleux potentiel sous le capot de XWiki puisse enfin s'exprimer.
La présentation m'a convaincu que le moment d'investir dans ce produit est enfin arrivé. Je vais donc lancer en interne le développement d'un prototypage d'intranet collaboratif pour toute l'entreprise.
Si vous devez démarrer un wiki, je vous conseil vraiment de vous pencher sur ce produit (téléchargez xwiki 1.8 milestone 1)

jeudi 22 janvier 2009

am charts

Sur notre nouveau projet, nous avons décidé de mettre en oeuvre de nouvaux graphes plus élaborés et plus interactifs. Jusque là nous utilisions Swiff chart qui offre un très bon rendu, aussi bien en mode flash qu'en mode image, mais qui techniquement n'avance plus depuis bien longtemps ... et c'est bien dommage ! . Comme nous faisons de la finance, nous avons cherché ce qui nous permettrait d'obtenir le même genre de fonctionnalité que le superbe (et désormais fameux) stock chart de google.
Nous sommes donc tombé sur amchart qui offre des composants très sympatiques.
Cela fait maintenant quelques mois que nous utilisons ces composants flash et nous commençons à bien voir les forces (et faiblesses !) du produit.

Côté force :
Très bon niveau d'interactivité avec le serveur.
Très customizable. Composants puissants et évolués.
Interaction via javascript
Forum actif, auteur très réactif sur les réponses et les versions.
Tarif très raisonnable.
Utilisé depuis quelques jours par boursorama dans sa nouvelle version !

Côté faiblesse :
Génération côté client = pas de moyen (dixit l'auteur) de générer un graphique pour le mettre dans un graphique word généré côté serveur.
Le chargement des données n'est pas super sexy et ne semble pas modifiable (barre de pourcentage, qui à la longue fatigues...).

L'impossibilité de générer côté serveur (si quelqu'un a une astuce... mais cela semble désespéré...) est un vrai problème. Il va nous obliger à utiliser en complément un autre outil de graphes pour la partie report. Cela n'est pas très satisfaisant mais bon, faute de mieux...

Le produit parfait ne semble pas encore existé, j'avais fait faire une étude par un stagiaire il y a 2 ans et pas de solution parfaite qui sorte du lot.

vendredi 5 septembre 2008

A good blog about Agile : All about agile

All about agile has a lot of very interesting posts.

The "Agile Presentations" section offers some very useful powerpoint presentations as well as the electronic version of The Art of Agile Development (here)

mardi 15 juillet 2008

Killing a jvm thread running infinite loop in my app server simply using a Runtime Exception...

One frustrating thing in an application server (moreover in any jvm) is that you have no way to stop a thread going crazy : infinite loops, applicative deadlock...
With the ThreadMXBean API I can even auto detect such troubles logging easily the threads, their stacktraces (no more need for KILL -QUIT, yeahhh...), with ThreadLocal I can add data to get more information about the problem, but still I have no way to act on a thread and "stop it".

I would love to tell the jvm, ok, now the next code to execute on this thread is to raise a kind of RuntimeException... yes I want to say there is a trouble you can't recover from (anyway often it consumes all the cpu... horrible !), so a RuntimeException will correctly rollback all running transactions and correctly release resources. This would save me (and my team) from a server restart which is bad for our users...

Am I the only on to dream of that ? Is it impossible to provide this or nobody thought about it (couldn't find anything about this while googling...) ?

mardi 8 juillet 2008

Interview Jeff sutherland : Introduction de Scrum chez Google

Une présentation extrêmement instructive sur l'introduction par Jeff de Scrum chez Google. Très bonne introduction pour comprendre ce que peut vous apporter Scrum et découvrir la toujours fascinante culture Google :

http://www.infoq.com/presentations/Agile-Management-Google-Jeff-Sutherland

scrum : voyage vers un monde meilleur (?)...

Cela fait maintenant plus d'un an que j'ai démarré un grand voyage pour mon entreprise : celui qui consiste à rejoindre réellement le monde de l'Agilité.
Préparant longuement le big bang interne (beaucoup de lecture, quelques expérimentations internes et la recherche d'une forte adhésion interne), celui-ci s'est déclenché en fin d'année dernière...
6 mois ont passé et force est de constater que le chemin était bien plus dur à parcourir qu'initialement imaginé. De nombreuses pratiques ont été adoptées, mais nous ne sommes pas encore, selon moi, Agile.

J'ai donc décidé courant mai d'arrêter de faire les choses à moitié : appel à un accompagnement par un coach Scrum. Fini les compromis, objectif, passons 100% à Scrum.

Aujourd'hui nous sommes au milieu de la phase "d'audit" et le challenge s'annonce passionnant.

Il m'a aussi permis de m'ouvrir de nouveaux horizons de compréhension. J'ai notamment eu la chance de rencontrer Jeff Sutherland lors d'un dîner en comité très réduit (permettant donc un échange très personnalisé) organisé par la société qui nous accompagne. Un vrai bonheur et un nouvel éclairage sur le pourquoi et le comment de Scrum. Suite à cela pas mal de lecture sur le web sur Toyota, Lean, ...
et comme de temps en temps cela arrive, cette impression d'être passé à côté de tout un ensemble de documents qui me tendaient les mains et qui font d'un coup progresser ma compréhension des méthodes, un grand frisson...


J'ai donc souhaité partager cette expérience à travers quelques posts que j'écrirai au fur et à mesure des mois qui viennent, question de laisser une trace sur ce grand chamboulement...

Je publierai également quelques liens que je trouve/trouverai très pertinents sur Scrum et l'Agilité.

mardi 6 novembre 2007

outil pour tests fonctionnels

J'utilise depuis des années httpunit pour faire l'automatisation de tests fonctionnels. Cependant ce projet stagne depuis pas mal de temps, pas de nouvelle version depuis 1 an 1/2 (version mineure), et pas mal de bugs et limitations ridicules trainent. De plus les patchs proposés ne sont plus intégrés, bref, le projet est mort...
Un successeur est désormais là (bon depuis quelques années mais j'ai réussi à passer à côté jusque là :-) ), htmlunit (http://htmlunit.sourceforge.net)

C'est extrêmement similaire en terme de fonctionnalité et d'api mais comble pas mal de lacunes:

comparatif httpunit - htmlunit
http://daniel.gredler.net/2007/10/04/htmlunit-vs-httpunit/


Comparaison webtest/selenium (webtest repose sur htmlunit, après avoir longtemps reposé sur httpunit... cet outil est interessant à regarder, il permet à des "non java" d'automatiser des tests...)
http://mguillem.wordpress.com/category/test-automation/

L'article d'infoq duquel je suis parti...
http://www.infoq.com/news/2007/11/canoo-webtest-selenium-testing

Une migration à envisager ?

lundi 24 septembre 2007

Architect...

A good post about the architect role... what should be the architect role is a long time question for me... especially when I try to hire...

http://blogs.tedneward.com/2007/09/20/Hard+Questions+About+Architects.aspx

Pour moi il y a 2 rôles distincts clés dans une équipe : le chef de projet et le ou les architectes (le chef de projet pouvant cumulé le rôle d'architecte...).

On peut faire facilement une analogie à une course à voile en équipe (bien sûr toute analogie à ses limites...)

Le chef de projet c'est le capitaine du navire : il organise les tâches à bord, gère la paperasse, embauche et coordonne les membres de l'équipe. C'est avant tout quelqu'un capable de gérer une équipe, ce qui demande des qualités spécifiques.

L'architecte c'est le tacticien : il éclaire le capitaine sur les choix de course, il analyse et évalue le meilleur parcours, la progression, la voilure à adoptée. Il est l'homme d'expérience technique qui "en a vu d'autres" et sera capable d'adapter la tactique face aux imprévus... Il peut y avoir un spécialiste météo, plusieurs tacticiens qui évalueront ensemble la stratégie.
Le tacticien propose ses choix au capitaine qui reste celui qui au final fixera le cap et en assumera la décision... il vaut mieux qu'il comprenne les propositions et puisse les évaluer et les mettre en oeuvre par rapport au potentiel et à l'organisation de son équipe.

Les développeurs sont les autres membres de l'équipage. En fonction du type de course il faut différents profils, mais avant tout les valeurs à bord sont le dialogue, la coordination, le courage, l'envie de réaliser quelque chose ensemble.
Chacun est vigilant sur les évènements (la mer peut être impitoyable) prêt à aider les autres.

lundi 4 juin 2007

An interesting blog about checked exceptions in Java

I really think checked exceptions is a nice java feature which help code being clearer and an API robust... at least when they are correctly used...

A very good blog about the subject...

http://colmsmyth.blogspot.com/2007/06/evolving-java-increasing-demand-to.html


(source :http://www.application-servers.com)

mercredi 28 mars 2007

Strange point of view in the .net community...

Some people have very strange ideas :

http://blog.i14y.net/ says :

J2EE is dying, competition doesn’t means innovation everytime but, digging its own tomb

March 27th, 2007

Competition means Innovation but Java is dying because of the amount of frameworks that are available. I wonder if someone is smart enough to understand and follow the amount of MVC frameworks, Design patterns or Object Relational Mapping tools that are available?

We can try to calculate the combinations of solutions (I don’t try to be exhaustive):

Web application frameworks: Apache Tapestry, Backbase, Bindows, DOJO, Eclipse RAP, Echo2, GWT, JFaces, Java Server Faces, JaverServer Pages, JavaServer Type Libraries, Struts, WebWork… (13)
Application frameworks: Spring, EJB3, Guice, Pico, Rico… (5)
Data access frameworks: Apache OJB, Cayenne, DBC, iBatis, JDBC, Hibernate, JDO, JPA, Oracle Toplink… (9)

Which means something like 13 * 5 * 9 combinations; I let you to make the calculation!

Dear developers and architects, when will you stop thinking that your framework is better than the others and create your own one ? Could you participate to already existing ones instead?


My answer :

Do you really think that having a lot of (good) choice means that a technology is dying ? That’s a very strange point of view… Do you think there is only one solution to a problem, that every similar problem has the exact same solution ?
I am happy to be in the java world where innovation is going so fast, where frustrations are often solved by new solutions…

jeudi 22 mars 2007

I attended a few sessions at Sun TechDays Paris on last Thursday and Wednesday.
On Thursday, I saw an Ajax presentation where I could see jMaki in action. I really like the idea to be able to use all those powerful ajax library without handling those terrible javascript stuffs. I was impressed by the bus concept : one ajax component that could work together with an other one (the example was with fisheye and yahoo map).

On Wendsday some guys from OSSGTP were presenting their projects(open source, of course).

Stéfane Fermigier
talked about nuxeo (an ECM), and why the moved from python to java. The technology behind is really impressive : seam, ejb3, jboss, Ajax interface, jackrabitt, lucente... while I didn't really understand how I could take avantage of such a nice piece of software at the moment, the light came later...

Vincent Massol talked about xwiki, which was one of my main reason to be there as I wanted to understand if it would be a viable solution for our public web site (www.financeactive.com). (Seems like "yes"!).

The most impressive presentation was surly made by Benjamin Mestrallet , about exo plateform. A lot of Ajax every where and an awesome desktop mode (webOS). Here we are far away from the last time I used a portal (apache JetSpeed). They are also developing an ECM solution.

After the conference, I went to the nuxeo pavilion for a little demo... I was impressed. I immediately saw it can provide me something I was looking for a few months already : a way to manage Specification documentation efficiently. By the way I would put any project documentation as the rights management solve most of my concerns.

I tried it today. Very easy to install, but very little documentation about setup (changing database for example, but as this is jboss, I should easily work this around) or customizing . I met a few bugs, but it seem stable enough for my need.

I found another very similar opensource software very similar : alfresco, but seem more mature. I will try it tomorrow before make up my mind.

mercredi 31 janvier 2007

Today PJBug (Paris JBoss User Group)

I was tonight present at PJBug in order to attend 2 presentations.
First one was about JBoss product roadmap made by Sacha Labourey, Jboss technical director. Nothing really new here, but always interresting to hear people who are inside...
The seconde (short as Sacha like to speak a lot :-) ) was a presentation about the use of JBoss in DHL France. As often came the time I asked : When you say you are using JBoss... what services do you mean ? .... and as often : Only the servlet part, no ejb at all (and probably no much more anyway - problably just jsp --> jdbc database readonly access, arghh..) !
- Why so many people bother installing and learning a full j2ee stack, as JBoss provide, when they just need Tomcat or Jetty ? It always amaze me (ok people doing it with Weblogic or Websphere amaze me 100 times more...).
More over, it really appears there are still very few application using the ejb container part (ok, I don't consider stateful session bean with no transaction beeing an ejb development...).
.
...Maybe I will take time to prepare a presentation about what we do at Finance active one day just to show a real JBOSS J2EE application with full J2EE stack exist and work !

mardi 9 janvier 2007

jira sert à créer des bug !

Nous avons installé aujourd'hui la dernière version de jira (3.7.1), notre outils de gestion d'anomalies/demandes... au redémarrage, grosse surprise, nous ne pouvons plus "créer des demandes", mais "créer des problèmes" !
Bref, les traductions en français sont devenues n'importe quoi. Visiblement ils ont voulu améliorer leurs traductions en passant par une boîte de sous-traitance... et cette dernière s'est contenté d'utiliser google translate :-)

Un résumé du désatre ici : http://jira.atlassian.com/browse/JRA-11873

Les gars d'atlassian ont promis de faire très rapidement un retour arrière salvateur.

Une bonne leçon à retenir si vous avez à gérer un jour ce genre de problématique...

vendredi 30 septembre 2005

optim de base jvm pour j2ee

Bon à savoir : par défaut lorsqu'un serveur rmi tourne (c'est bien sûr le cas des serveur j2ee comme jboss), un full gc est executé toutes les minutes !!!
Pour passer cette fonctionnalitée fort couteuse en perf (gel de la jvm qui peut durer 1 à 3s !!!) à 1h.
java -Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000

mercredi 12 mai 2004

First Post

So here we go..., this is my first post... just to try !