Le logiciel libre ne connait pas la crise. D'après le cabinet Pierre Audoin Consultants, le marché du logiciel libre en France est évalué à 1 470 Meuros en 2009. Je suis tombé sur ce chiffre en parcourant l'article très intéressant lu sur toolinux.
En lisant la mailing de fop je suis tombé sur un problème très particulier de rendu d'un document volumineux. Dans les réponses données à cet demande d'aide je suis tombé sur l'utilitaire Pdftk.
Pdftk à l'air d'être intéressant pour pouvoir recoller des parties de pdf. Par exemple, on peut couper un traitement volumineux en plusieurs petits traitement et recoller les résultats avec pdftk.
La dernière version stable de HAProxy est sorite le 5 Mars 2010.
HAProxy est un logiciel libre qui permet de monter un système de load balancing performant. J'ai hâte de pouvoir tester HAProxy sur une application GWT. Rappelons que GWT se prête bien à ce genre d'exercice de part son architecture qui permet d'obtenir des applications sans états.
Lorsque l'on refond une application, il faut souvent reprendre les données existantes afin de les intégrer à la nouvelle application.
Ça n'est pas un travail facile, car il faut dès fois faire du E-Archéologie, souvent on doit choisir des données par défaut pour les extensions fonctionnelles et les batch de reprises sont une source d'intérogation technique et fonctionnelle.
Sur mon dernier projet, nous avons choisi de définir un schéma de base de donnée le plus stricte possible, afin de pouvoir garantir au mieux la cohérence des données. Nous avons utilisé des Validateurs Hibernate pour remonter des messages utilisateurs clairs et localisés.
Placer des contraintes fortes du côté de la base de donnée garantie une haute cohérence des données, mais cela pose quelques problèmes techniques et fonctionnels pour la reprise des données.
Premièrement, l'existant est souvent incohérent. La mauvaise nouvelle c'est qu'il va y avoir du travail en plus. Il va falloir demander au MOA de s'investir dans un travail en binome avec un MOE pour orienter une correction des données existantes afin de rendre le système cohérent. La bonne nouvelle est que ce travail va permettre au MOA de détecter précisément les erreurs qu'il se traine depuis dès fois plusieurs années (voir dizaine d'années dans le cas de mon projet :)
Les Pojos de la nouvelle application ne permettent pas une reprise des données directe, à cause des contraintes d'unicité ou de non-nullités. La solution que nous avons choisi est de passer par une pseudo BDD intermédiaire qui ne possède pas de contraintes.
Nous avons utilisé Lucene d'Apache, qui stock les Pojos en les sérialisant dans des fichiers. Cet outil est très puissant, car flexible, avec possibilité de création d'index.
Nous avons donc fait un export des données existantes au format CSV. Nous avons lu les données avec un batch maison écrit en Java et stocké les objets dans Lucene, le temps de les remplir correctement avec des règles de reprise de données. Une fois que les objets sont cohérent dans Lucene, il suffit de les persister dans la base de données réelle.
Suite à l'article où je parlais rapidement de l'importance du choix du navigateur, et plus généralement de l'utilisation de logiciels. Je fais une petite pub pour le site openchoice qui explique avec des mots simples l'importance du choix de son navigateur.