Vu aucune différence de performances entre firefox 3.5 et les versions précédentes : vous utiliseriez pas Firebug ?

Par le plus grand hasard, pendant la lecture d’un billet de Pascal sur les performances de firefox au fil des âges, je viens de m’apercevoir que je ne profitais en fait pas de TraceMonkey, le compilateur JIT intégré à Firefox depuis la 3.5 !

C’est vrai que je n’avais pas fait très attention, mais que je n’avais pas non plus remarqué d’amélioration notable sur mon navigateur favori. En fait, c’était à cause du fait que j’avais, comme tout bon développeur qui se respecte :-), installé firebug depuis déjà un bon moment.

Sur le blog de Pascal, la phrase suivante m’a donc fait tilter :

Un petit rappel si vous utilisez Firebug, votre moteur de compilation JIT de javascript est désactivé et vous aurez donc des perfs équivalentes à celles de Firefox 3.0, même si vous êtes en 3.5. La version 1.5beta7 de Firebug sortie hier devrait résoudre ce bug.

Aussitôt dit, aussitôt fait. J’ai installé la version 1.5X.0b8 de firebug et j’ai tout de suite vu effectivement une différence. Gmail, Google Reader, Hudson, tout s’affiche plus vite.

Comme j’avais fait le test SunSpider avant la mise à jour, en gros, je peux vous dire que je suis passé de 3500 à 1500 !

Bref, installez-vite cette mise à jour !

Si vous maigrissez trop vite, prenez vos patch un jour sur deux

Je viens d’éclater de rire en voyant une publicité passer dans Gmail :

Maigrir trop vite...

Le plus extraordinaire, c’est que le site en question semble pourtant se vouloir très sérieux :-).

Encoding par défaut avec XML : UTF-8

Nous gérons en ce moment un petit problème d’intégration avec des WebServices d’une entreprise qui ne s’attend qu’à du iso-8859-1. XML a pourtant été conçu pour gérer plus simplement les problèmes de jeux de caractères et d’encodage utilisé, mais ce qui a été fait ne respecte tout simplement pas la spécification.

En effet, notre code envoie une requête SOAP dans un tube HTTP annonçant de l’UTF-8. Comme ça ne marchait pas, nous avons carrément ajouté l’attribut encoding au prologue XML et retesté avec Soapui, mais ça n’a rien donné.

Alors, comme il faut que quelqu’un corrige son code, j’ai vérifié la spécification1^, voici ce qui est indiqué :

Bref, attendre de l’iso-8859-1 lorsque rien n’est indiqué est au minimum une bizarrerie, et au pire une erreur par rapport à ce que dit la spécification.

Notes

[1] Non-Normative

Apache Subversion

Tiens, j’avais raté cette news (300 billets en attente dans mon google reader :-/, que je n’arrive à dépiler que 10 par 10. Ça ne suffit pas :-)) : Subversion a intégré l’incubateur d’Apache.

En français, ça veut dire que bientôt, Subversion sera un projet faisant partie entièrement de la fondation Apache. Subversion n’arrête pas son ascension, et c’est logique vu la qualité de l’outil.

[Hudson] How to set a private maven repository by job and easily be able to delete them

When building maven projects with hudson, there’s some common best practices about maven repositories handling :

  1. isolate maven repositories between jobs
  2. regularly purge repositories

The problem

The basic way to do it is to activate the hudson per-job option : “Use private Maven repository”. But the thing is you have to do it for EVERY new job you add. There is no way inside hudson to activate it globally.

Documented solution

If you look at hudson help for this option, you’ll see a link to a simple solution that specify the repository directly in the maven settings.xml file. The tip is to redefine the localRepository tag inside settings with this special value :

<localRepository>${env.WORKSPACE}/m2_repo</localRepository>

This way, you’re done with the first best practice : isolate maven repositories. But not yet with the regularly purge repositories one. Actually, using this option will put the m2_repo inside each hudson job workspace. So, finding and deleting them could become a bit cumbersome. You’d have to cron something like find . -name m2_repo -exec rm -rf "{}" \;.

Even better

As you might have understood, I was not thoroughly satisfied with this solution. I wanted to be able to really easily delete the repositories. So I just changed the option above to have them all inside the same root directory under ~/.m2/repositories, one per job.

Quite simple in fact, instead, just use :

<localRepository>/some/path/.m2/repositories/${env.JOB_NAME}/repository</localRepository>

This way, the only thing you have to put in the cron job is rm -rf /some/path/.m2/repositories/. A bit more straightforward, isn’t it? :-)

Hope this helps.

Encodages/jeux de caractères : Vincent et Hadrien, un grand merci !

Non, ce billet n’est pas une nouvelle tentative d’explication de ce que sont encodages et jeux de caractères. Je garde toujours dans un coin de ma tête de chercher un jour à écrire moi aussi un billet sur le sujet. Qu’est-ce j’aimerais pouvoir faire comprendre ce sujet à la fois simple et complexe à tous en quelques mots…

Non, ce billet est là pour remercier Vincent et Hadrien pour leurs pages récapitulant les jeux de caractères les plus courants en France. Je viens de m’en servir à l’instant pour expliquer une nouvelle fois le sujet.

Un autre site bien pratique, qui permet notamment d’avoir la valeur hexadécimale du stockage d’un point de code Unicode en UTF-8 : FileFormat.Info. Par exemple, le î (“LATIN SMALL LETTER I WITH CIRCUMFLEX”).

Et encore un rappel d’articles en français que je vous conseille sur le sujet :

JSR 330 : Dependency Injection for Java

Récemment, SpringSource (Rod Johnson, créateur de Spring) et Google (Bob Lee, coauteur de Guice) lançaient une proposition de JSR visant à standardiser un jeu d’annotations pour gérer l’injection de dépendances.

Cette proposition, « Dependency Injection for Java », est devenue une véritable JSR depuis 3 jours.

Personnellement, j’ai hâte de voir ce qui va ressortir de ce travail. Notamment, je regarderai attentivement en quoi cela complètera ou s’intégrera avec les annotations de common annotations (JSR 250, dont sont notamment issues @PostConstruct, @PreDestroy, @Resource) et éventuellement les annotations de la spécification des EJB3 (@TransactionAttribute, notamment).

Comme la spécification sera développée avec un scm et une liste de diffusion accessibles publiquement, j’essaierai de vous en dire plus à ce sujet dès que possible.

À suivre.

Citation du jour : Clémenceau

En lisant un bouquin, j’ai découvert l’histoire de la mort de Félix Faure, et le commentaire fait par Clémenceau après son décès. Félix Faure, président français de la fin du 19e siècle, est en effet mort en pleins ébats avec sa maîtresse.

Et Clémenceau, publiquement de dire :

Il a voulu vivre César et il est mort Pompée.

Superbe, Georges ! :-)

Java User Group Toulouse : première conférence

Pour ceux qui n’auraient pas encore vu passer l’information, demain soir a lieu la première session du JUG toulousain. Vous êtes évidemment les bienvenus !

Au programme, GWT et Java ME.

À demain !

L'église catholique à côté de la plaque

Après la récente intervention controversée du pape1^, on a par contre maintenant affaire à un véritable débile en la personne d’André Fort.

Je viens en effet de l’entendre nous expliquer à la radio que (de mémoire) : “les scientifiques savent très bien que le virus du SIDA est trop petit et traverse la paroi du préservatif” (!).

Inutile de préciser que toute la communité scientifique est dite indignée par de tels propos… Et rappelons que si ! N’en déplaise à ce ramolli du bulbe d’André Fort, l’usage du préservatif est très sûr.

Il est inadmissible de chercher à appuyer ses propos de la sorte en se référant à des soi-disants “scientifiques”. Ça me rappelle les créationnistes !

Cela risque d’avoir simplement un impact sur la frange peut-être la plus fragile de la population qui pourrait croire ce discours, et à exaspérer encore davantage les catholiques… Je suis personnellement d’éducation catholique et non pratiquant (je n’ose pas dire simplement “catholique non pratiquant”) et les propos de ce genre de décérébré me rendent dingue.

Heureusement que je connais d’autres prêtres plus intelligents, plus pragmatiques, plus ancrés dans la vie de tous les jours, pour ne pas me mettre simplement à penser comme certains doivent certainement le faire (et on peut les comprendre…) : “décidément, ces catholiques, qu’est-ce qu’ils peuvent être cons !“.

À bon entendeur.

Notes

[1] attention à bien toutefois se renseigner quant aux propos exacts du pape avant de critiquer, cf. la note de Maître Eolas par exemple. On a toujours l’air très con à critiquer des propos qui ne sont pas ceux que l’on pense précisément.

Page 3 of 33 Older