Wed, Nov 18, 2009
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.
Fri, Oct 9, 2009
When building maven projects with hudson, there’s some common best
practices about maven repositories
handling
:
- isolate maven repositories between jobs
- 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.
Thu, Sep 10, 2009
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 :
Fri, May 29, 2009
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.
Thu, May 28, 2009
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 ! :-)
Mon, May 11, 2009
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 !
Fri, Mar 27, 2009
Après la récente intervention controversée du
pape^[1]^, 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.
Sun, Mar 15, 2009
Dans les travaux de notre maison actuellement, je me suis enfin décidé à
expliquer comment nous avons procédé pour l’abattage de cloisons.
Plusieurs personnes ont semble-t-il été étonnées que je n’en parlasse
point avant :-).
Abattre des cloisons en brique
Nous avions environ 30 à 40 mètres linéaires à abattre, sur des hauteurs
de 2m50 ou 2m80. L’objectif était d’abattre absolument toutes les
cloisons, parce que nous n’avions pas de mur porteur (seuls les murs
extérieurs sont porteurs sur cette maison). Ces cloisons étaient en
brique de 7cm d’épaisseur.
Première étape : se faire une idée de la difficulté des opérations
J’ai commencé par créer un passage entre les pièces pour faciliter la
circulation. Ce premier perçage avait aussi pour objectif d’avoir une
idée de la vitesse à laquelle nous pourrions abattre le reste.
J’y suis allé franco : à grands coups de masse. (J’avais acheté cette
“masse
trancheuse”
chez Casto. Le côté “tranchant” est effectivement bien pratique.).
Note à ce propos : faites très attention à ce qu’il n’y ait rien qui
craigne les projections de gravats de l’autre côté de la cloison sur
laquelle vous vous acharnez. En effet, taper à coup de masses dedans a
dans mon cas projeté des gravats largement jusqu’au mur suivant (situé à
environ 4 mètres). Réfléchissez donc aux fenêtres qui peuvent se trouver
derrière, ou simplement aux personnes qui travaillent avec vous. Dans ce
dernier cas, hurlez simplement tiiimbeeeer avant de taper, ça
fonctionne généralement plutôt bien :-).
Deuxième étape : industrialiser le processus
La technique du “c’est moi que vlà avec ma masse”, c’est bien. Mais si
vous cassez progressivement et simplement autour du point initial, ça va
vous faire des tonnes de gravats à transporter par petits morceaux. Je
vous la déconseille donc.
Je vous recommande en effet plutôt une technique que j’ai adoptée
ensuite : casser le mur en faisant des grosses saignées pour réaliser
des carrés de briques transportables. C’est plus simple à transporter
dans la voiture que tout casser en petits bouts…
Pour vous, j’ai testé plusieurs techniques :
- À la
meuleuse d’angle et disque diamant (on l’appelle aussi souvent
“disqueuse”) : bof. Je vous la déconseille plutôt, sauf si vous avez
besoin d’une découpe au millimètre. Mais ATTENTION : si vous partez
sur cette technique, préparez vous à faire de la poussière. Mais
quand je dis poussière, je ne plaisante pas. La pièce sera remplie
de poussière après 5 minutes de meulage…
- à la masse petit bout par petit bout : vous faites un trou, puis
vous l’élargissez progressivement. Cette technique a le gros
inconvénient de vous imposer un long et fastidieux ramassage de
gravats après coup. Je vous la déconseille aussi. Vous devrez aussi
investir à mon avis dans un nombre très important de “sacs de
gravats” (j’y reviens plus bas) ;
- à la masse, avec des saignées pour essayer d’obtenir des plaques de
par exemple environ 1m² plus facilement transportables ;
- à la masse et au marteau, par pan de cloison entier… On part
toujours sur le principe des saignées, sauf qu’on part du sol, on va
jusqu’au plafond. On fait la saignée au ras du plafond avec escabeau
et marteau, puis on redescend jusqu’au sol au bout de quelques
mètres. Vous l’aurez compris. Cette technique est de loin la plus
rapide. Un conseil toutefois : soyez plusieurs et au moment où vous
faites descendre la cloison, retenez la le plus longtemps possible.
Par exemple, à trois, nous retenions sans aucun souci une cloison de
2m50 par environ 3m. Pensez aussi à mettre au sol des tapis ou toute
chose de ce genre pour amortir le choc de la chute lorsque vous ne
pouvez pas retenir jusqu’au bout. Nous avons utilisé cette technique
pour les derniers 90% des cloisons sans soucis. Son gros avantage
est qu’on peut ensuite simplement récupérer des morceaux de taille
assez importante au sol sans trop de petits morceaux.
À propos des
petits morceaux, les nombreux “bouts” de gravats que ce genre de travaux
va vous produire, un conseil important : achetez des “sacs à gravats”
(comme
ceux-là).
Ce sont des sacs en plastique extrêmement épais qui sont très utiles
lorsqu’il faut balayer puis convoyer jusqu’à la déchetterie les bouts de
briques cassées sur le sol. Attention, ne les jetez pas avec les
gravats… Videz les simplement et réutilisez les jusqu’à ce qu’ils
rendent l’âme (jusqu’ici, je dirais que nous avons utilisé chaque sac
environ 5 à 10 fois, nous en avions acheté 24…)
Si vous avez des questions, n’hésitez pas.
Dans le prochain épisode, si vous êtes sage : abattre un plafond en
plafonnette ou en lattis (oui, j’ai les deux).
Wed, Feb 25, 2009
Voilà pourquoi j’utilise Eclipse, pour ce genre d’apports qui peut
paraître mineur au premier abord, mais qui en fait nous change la vie.
Lorsqu’on développe dans une équipe, on souhaite généralement appliquer
entre autre des normes communes de formatage. Dans Eclipse, le
Ctrl-Shift-F permet d’exécuter le formatage sur le fichier (ou sur toute
une arborescence) selon le modèle qu’on aura défini et chargé au
préalable.
Le Ctrl-Shift-F a cependant un défaut : sans sélection préalable, il va
formater le fichier complet. La fois suivante que vous envoyez vos
modifications aux gestionnaires de version (commit avec svn, par
exemple), les développeurs qui récupèrent votre modification peuvent se
demander pourquoi vous êtes allé modifier tout le fichier pour une
simple faute de frappe…
Autre cas encore plus problématique : vous faites du développement
MDA. Une partie plus ou moins
importante de votre code est donc générée. Vous ne devez donc a priori
surtout pas toucher au code en dehors de ce qu’on appelle généralement
le code utilisateur (on retrouve ce principe avec acceleo il me semble).
Du genre
// Ici, le code modifié manuellement sera écrasé par le générateur.
// [DEBUT:METHODES]
// Là, le code ne sera pas écrasé à la régénération suivante.
// [FIN:METHODES]
Depuis la 3.3 d’Eclipse, dans la partie Java/Editor/Save Actions de
Window/Preferences, on peut demander à ce que le code qu’on vient de
modifier soit automatiquement formaté… C’est pas formidable, ça ? À
chaque Ctrl-S, le code modifié et uniquement celui-ci va subir le
formatage adéquat… Via cette fonctionnalité, vous pouvez automatiser
tout plein d’autres choses au moment de la sauvegarde, je vous laisse
jouer avec :-).
Fri, Jan 30, 2009
Via
Sami,
j’apprends ce matin que ça y est, le JUG
Toulouse est né. Je me suis d’ores et déjà
inscrit à liste de diffusion.
J’espère que je trouverai le temps de participer à ce groupe malgré les
importants travaux à faire dans la maison que nous venons d’acheter.
PS : Sami, merci encore pour la bétonnière :-).