mardi 29 juin 2010

CPANTester journey - Smoking basis for windows box (en/fr)

Thanks to the CPANtesters Wiki , It was quite straightforward to setup my Windows testing box.

Typing 'cpan install CPAN::Reporter' was all needed, installing the dependencies along the way.

As I planned to do some smoking tests, I also had to install CPAN::Reporter::Smoker :
'cpan install CPAN::Reporter::Smoker'

Some modules don't play well with (automatic) testing, so configuring distroprefs is probably a good idea :
After entering "C:\Documents and settings\UserName\Mes Documents\"
you only have to create .cpan/prefs to put there the YAML files downloaded from
 DAGOLDEN's site

Then typing 'o conf init test_report' inside the cpan shell and answering the few configuration questions should complete the process.
Now every module installed (or just tested) will produce a report that you can send (or will be automatically sent according to your setting) and entering a smoke test is just a matter of typing :

perl -MCPAN::Reporter::Smoker -e start

*It will be that simple if you don't have to struggle with email configuration, as I have to...

[French Translation]
Grace au Wiki des CPANtesters, ca a été assez facile de configurer ma machine de 
test Windows.
Taper  'cpan install CPAN::Reporter'  a été suffisant, installant toute les dépendances au passage.

Comme je prévoyais de faire des smoking tests, j'ai aussi du installer CPAN::Reporter::Smoker :
'cpan install CPAN::Reporter::Smoker'

Certains modules ne se comportent pas très bien lors de tests (automatisés), donc configurer les distroprefs est probablement une bonne idée :
Après s'être positionné dans "C:\Documents and settings\UserName\Mes Documents\" nous n'avons plus qu'a créer .cpan/prefs pour y télécharger les fichiers YAML obtenus du  Site de DAGOLDEN

Ensuite taper 'o conf init test_report' dans les shell cpan et répondre aux quelques questions de configuration devrait terminer le processus.
Dorénavant tous les modules installés (ou juste testé) produiront un rapport de test que vous pourrez envoyer (ou qui sera envoyé automatiquement selon votre configuration) et lancer un smoke test se lance facilement en tapant :

perl -MCPAN::Reporter::Smoker -e start

*Ca sera aussi simple que ça si vous n'avez pas à vous battre, comme moi, avec la configuration du mail.

lundi 21 juin 2010

CPANTester journey - setting up virtual environment (en/fr)

My initial intent was too install VmWare Server (which is free (as beer), and that I used a long time ago with great satisfaction) on my Ubuntu boxes.

But as it appeared that my kernel (and all kernels 2.6.30 and above) now requires an unofficial additional patch to fix the VmWare Server installer*, I decided to play it safe (or at least simple) and install the VmWare Player 3.1.0 instead.
* See for more information

The VmWare Player install went fine, and installing an XP virtual machine was just a matter of minutes.

For some reason NAT was not working out of the box, so I only changed the VM network setting to Bridge and was then able to download Strawberry Perl
Sadly my attempt to install also release in the same VM failed miserably (the installer detecting an higher version)...
If anyone managed to get (simply) 2 version on the same Windows box, I'd be glad to hear how...

Now I still have to install the modules needed for testing, but it will be another post...

[French Translation]

Mon intention initial était d'installer VmWare Server (qui est gratuit, et que j'avais utilisé il y a longtemps avec beaucoup de satisfaction) sur mes machines Ubuntu.

Mais comme il apparait que mon noyau (et tous les noyaux 2.6.30 et au dessus) nécessitent maintenant un patch additionnel non-officiel pour corriger l'installeur de VmWare Server, j'ai décidé de jouer la sécurité (ou au moins la simplicité) et d'installer VmWare Player 3.1.0 à la place.
* Voir pour plus d'informations

L'installation de VmWare s'est bien déroulée, et l'installation de machines virtuelles XP a juste pris quelques minutes.

Pour une raison inconnue le NAT ne fonctionnait pas en l'état, j'ai donc juste changé la configuration réseau de la VM en bridge et j'ai pu télécharger Strawberry Perl
Malheureusement ma tentative d'installer aussi la version dans la même VM a échoué lamentablement (l'installeur détectant une version plus avancée)...
Si quelqu'un à réussi à avoir (simplement) 2 versions sur la même machine windows, je serai heureux d'apprendre comment.

Maintenant je dois encore installer les modules requis pour tester, mais ça sera un autre post...

jeudi 17 juin 2010

Smoking might be dangerous for your Server (en/fr)

CPAN Smoke testing is basically, executing automatically unknown code at a large scale on a machine you own. And if this risk is negligible (to me) for well known modules, it has to be reevaluated if you plan, as I do, to test numerous unknown modules. 

That's why my initial plan to do some automatized tests with unprivileged user is going to be slightly modified with the addition of virtualization.

In fact, the more I think about it, the more I wonder why nothing really bad has already happened with so many scripts blindly executed all around the world...

Anyway, I'm currently setting a VmWare infrastructure and I hope to be able to give you some results soon...

[French Translation]

Les smoking tests CPAN sont à la base l'exécution automatique de code inconnu à grande échelle sur une machine que l'on possède. Et si le risque est négligeable (pour moi) pour des modules bien connus, il doit être réévalué si vous prévoyez, comme je l'envisage, de tester de nombreux modules inconnus.

C'est pourquoi mon plan initial de faire des tests automatisés avec des utilisateurs non privilégiés sera légèrement modifié avec l'ajout de virtualisation.

En fait, plus j'y pense, plus je me demande pourquoi rien de vraiment grave ne s'est encore produit avec autant de scripts exécutés aveuglément partout dans le monde.

Enfin, je suis en train de mettre en place une infrastructure vmWare et j'éspère pouvoir vous donner des résultats bientôt...

samedi 12 juin 2010

On my way to become (again) a CPANTESTER (en/fr)

I've been a huge fan of CPAN Testing for quite a long time now.
I've even been a CPANTester.

But things have changed a lot, the tools are now numerous and impressive to allow bigger and better testing.
Some testers achieved more than 70 000 reports a month !
As a stat junkie I see it as a challenge...

My first step to become a CPANTester is to allow sending report from my home (dynamic ADSL IP) server, through my online hosted virtual server.

As it took me some time to setup the proper configuration*, below are the postfix configurations for SASL authentication on the SMTP server and client :
* So much time in fact that, I even thought about ssh tunneling

[French translation]

Je suis un grand fan du testing CPAN depuis un bon moment.
J'ai même été un CPANTester autrefois.

Mais les choses ont beaucoup changé, les outils sont maintenant nombreux et impressionnant pour permettre de tester plus et mieux.
Certains testeurs arrivent à produire plus de 70 000 rapports en un mois.
En tant qu'accro aux stats, je le vois comme un défi...

Mon premier pas pour devenir un CPANTester est de permettre l'envoi de rapport de mon serveur à la maison (IP dynamique ADSL) via mon serveur virtuel hébergé enligne.

Comme ça m'a pris du temps pour déterminer la bonne configuration*, ci-dessous les configurations postfix pour l'authentification SASL sur le serveur et le client SMTP :
*Tellement de temps en fait, que j'ai même pensé au tunneling ssh.

**** On the Server (hosted virtual server with fixed IP) ****
# in /etc/postfix/
#smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

**** On the Client (ADSL box with dynamic IP) ****
# in /etc/postfix/
# SASL details
# no for the server
smtpd_sasl_auth_enable = no
# but yes when we act as a client
smtp_sasl_auth_enable = yes
# where we store the hashed UID and password
smtp_sasl_password_maps = hash:/etc/postfix/sasl/saslpw
# security options set to disallow anon auth (but allow plaintext within the TLS
smtp_sasl_security_options = noanonymous
# our upstream relay is here
relayhost = []

# in /etc/postfix/sasl/saslpw
# (don't forget postmap /etc/postfix/sasl/saslpw after update)
[] userontheserver:passontheserver

mardi 8 juin 2010

Becoming an Iron Man (en/fr)

I came across a comic that illustrates well, to my mind, the issue with Perl's popularity :

XKCD : The secret of the Universe

Wherever the place I've worked, Perl was present to one degree or another, often in a crucial place, without its use being advertised or even known. I've long believed, that it was the reason why Perl wasn't as popular as it could be, despite its use.

But in fact, no :
It's just that the Perl community sucks at marketing !

It's the community duty to promote the language, to bust the myths, to give visibility to the language, for we can see one day more jobs and more formations mentioning explicitly the language.

That's why initiatives around Enlightened Perl must be supported :

The Iron Man project especially : To post regularly about Perl to give it visibility.
(and by the way to achieve the honorific Iron Man status without running 42km, swimming 5km and riding 180km on a bike ;-) )

Then, here it is, by this post I officially join the contest.

Because Perl is not dead !
Because Perl is not (necessarily) unreadable !
Because Laziness is only a virtue when you code !
"Because I'm worth it" ;-)

[French translation]

Je suis tombé sur un dessin qui illustre bien à mon avis le problème de popularité de Perl :

XKCD : Le secret de l'univers

En effet quelque soit l'endroit ou j'ai travaillé, Perl était présent à un degré ou un autre, souvent d'une manière cruciale, sans que son utilisation ne soit mise en avant, ou même connue. J'ai longtemps cru que c'était pour cela que Perl n'était pas aussi populaire qu'il le pourrait vu, son utilisation.

Mais en fait non :
C'est juste que la communauté Perl est nulle en marketing !

C'est à la communauté de promouvoir un langage, pour casser les mythes, lui donner de la visibilité pour qu'un jour on puisse voir plus d'offres d'emplois ou de formations mentionnant explicitement ce langage.

C'est pourquoi, les initiative de certains autour du mouvement Enlightened Perl est à soutenir :

Le projet Iron Man en particulier : Poster régulièrement sur le langage Perl pour lui donner de la visibilité
(et accessoirement atteindre le statut honorifique d'Iron Man sans courir 42km, nager 5km et pédaler 180km ;-) )

Alors voilà, par ce post je rejoint, officiellement le concours.

Parce que Perl n'est pas mort !
Parce que Perl n'est pas (forcément) illisible !
Parce que la paresse n'est une vertu qu'en programmation !
Parce que je le vaux bien ;-p

vendredi 4 juin 2010

Améliorer la roue

J'ai longtemps pensé que j'aimais bien améliorer la roue : prendre les choses et les pousser un peu plus loin, améliorer ce qui pouvait l'être, corriger ce qui n'allait pas, trouver une nouvelle utilisation, etc...

Mais en y réfléchissant ce n'est pas tant les choses que la démarche qui m'importe :
C'est plutôt "continuer à faire tourner la roue de l'amélioration"...

Pour moi améliorer un objet, optimiser son code, s'affuter physiquement, mieux connaître les autre, c'est la même démarche. Mais peu de personnes l'appliquent à tous les domaines.

Je suis informaticien, mais je trouve dommage de n'être qu'un "Pragmatic programmer" alors qu'on peut être un "life hacker" (sans les majuscules sinon il y a un trademark...)

Alors voilà, aujourd'hui je ne parlerai pas d'outils, mais de démarche.
Et tant que j'y suis je vous livrerai "ma méthode personnelle à moi que je l'ai faite tout seul" :

La méthode P-PARDON
(Il y a un moyen mnémotechnique caché... ;-p)

Tous les jours j'essaie d'adresser chacun de ce points

P - Physique. Bien dormir, se nourrir, être en bonne santé et développer ses capacités physiques.

P - Produire. Réaliser quelquechose de concret (un programme, un objet, un article)

A - Apprendre. Quelque soit le domaine apprendre quelque chose.

R - Ranger. Améliorer l'espace et le temps d'accès aux choses.

D - Détendre (se). Dans le sens se faire plaisir. Parce qu'on ne peut maintenir de tension sans détente, et parce que la joie/le bonheur est une énergie infinie...

O - Optimiser.
Améliorer une chose pour ne pas laisser les choses se dégrader.

N - Nouer des contacts.
Parce qu'il n'y a pas pour moi d'épanouissement dans une complète solitude.

Il y aurait beaucoup à dire sur chacun des points, mais au fil du temps je me suis rendu compte que quand j'adressais *chacun* des points je maintenais d'une manière durable un sentiment de satisfaction, d'amélioration et de complétude .