Retrouvez cet article dans : Linux Magazine 100
Dave Cross – Teach-In Extract – OO Pe
Dave Cross rappelle les bases de l’orienté objet.
Dave rappelle les moyens classiques de faire de l’orienté objet en Perl, et cite Frederick Brooks (l’auteur de Mythical Man-Month et No Silver Bullet) pour ceux qui comptent faire leur parfait environnement OO : Plan to throw one, because you will anyhow. Il conseille donc de simplifi er le futur refactoring par les tests unitaires et l’utilisation d’un SCM.
Plus spécifi quement à Perl, il déconseille de permettre que new() soit une méthode d’objet (avec le fameux ref $class || $class). Il vaut mieux en faire juste une méthode de classe, et créer une méthode d’objet clone().
Sous-classer doit être une opération facile. Il prend comme exemple GD::Graph, parce qu’il voulait créer un graphe non proposé par ce module, et a été déçu de voir qu’il devait copier beaucoup de code.
Il passe ensuite aux design patterns, et signale que l’on peut très bien appliquer ces méthodes en Perl. Il conseille le site des Perl Design Patterns pour plus d’informations.
Dave en vient ensuite aux inside-out objects, ces fameux objets retournés dont les attributs ne sont pas stockés dans l’objet lui-même, mais dans leur classe de défi nition. Cela permet une meilleure encapsulation, et permet à deux classes diff érentes de défi nir des attributs de mêmes noms sans qu’ils entrent en collision. Comme il y a pas mal de détails
à peaufi ner pour bien faire, il conseille d’utiliser les modules du CPAN déjà existants comme Class::Std, Class::InsideOut, Object::InsideOut. Il recommande aussi la lecture de Perl Best Practices.
Il termine par Moose, le nouveau système objet tiré des métamodèles qui seront utilisés dans Perl 6. Il montre la facilité de mise en place. Erik demande quel est l’impact en termes de performances. Dave reconnaît qu’il faudrait investiguer. Juerd Waalboer pense qu’il n’est pas négligeable.
Wendy Van Dijk – Where and how to start learning Perl
Wendy explique les différents moyens pour apprendre Perl. Elle note qu’il y a une quantité astronomique de textes, documentations, tutoriels et autres disponibles tant en ligne que hors-ligne. Elle-même a principalement appris par les livres (dont elle possède avec Elizabeth Mattijsen une collection assez conséquent, voir GLMF 94, p. 12). Elle conseille aussi d’aller sur Perlmonks, où on peut poser des questions de débutants. Autre moyen, aller aux conférences, ce qui permet d’apprendre à un prix modique (l’auteur de ces lignes confi rme) ou demander à votre société de prendre un expert pour une formation interne. Erik demande comment savoir quel module du CPAN utiliser. Wendy conseille de ne pas hésiter à demander sur Perlmonks, sur IRC, par mail, etc.
Des livres apportés par Wendy Van Dijk.
Hendrik Van Belleghem - Clean your code
Hendrik conseille la lecture de Perl Best Practices, sur lequel il s’est appuyé pour cette présentation. Il en explique quelques règles syntaxiques, et illustre comment ne pas nommer ses variables avecChris Vertonghen – HTML::Mason by example
Chris rappelle les alternatives comme Template Toolkit etEriam Schaffter – Catalyst-Engine-Wx – A wxPerl engine for Catalyst
Eriam commence par poser la question de savoir si, à notre époque de web 2.0 à tout va, on a encore besoin d’applications " lourdes ". Il répond par l’affi rmative pour au moins deux points : l’accès aux périphériques locaux et au système, et le mode hors-ligne. Il note que Google propose beaucoup d’applications lourdes, mêmes si celles-ci sont en fait souvent mixtes, mélangeant une gestion avancée en local et un service web (par exemple Picasa). Il rappelle ensuite les bases du MVC (pendant un peu trop longtemps), puis montre qu’on peut utiliser des widgets locaux tel Wx comme contrôleur et comme vue, ce que permet son moduleDaniel McBrearty – engoi.com – a catalyst use case
Daniel montre un cas concret de conversion d’un site web, basé sur des CGI, en une application Catalyst. engoi.com est un site qu’il a écrit pour aider sa fi lle à apprendre des rudiments d’autres langues (et permettre à d’autres d’en profi ter aussi). Les CGI étant impossibles à maintenir, il a décidé de tout récrire avec Catalyst. Il montre le fonctionnement de certains mécanismes internes et illustre la diff érence d’avec les CGI par le passage d’arguments, où une URL comme /public/menu.cgm?netlang=en〈=fr devient /en/fr/index. Non seulement c’est plus court, mais, en plus, c’est mieux pour les moteurs de recherche.
Les participants déjeunent avant d’aborder les présentations de l’après-midi.
Serge Hoffmann – Perl for Windows How to do
Dans cette unique présentation en français, Serge présente Perl sous Windows, donc principalement ActivePerl. Il explique comment utiliser PPM, et montre les solutions pour résoudre le problème du déploiement : PAR, PerlApp, Perl2EXE 1 Voir les articles de damien Krotkine sur Mason, dans GLMF n°92 et 93.Dirk De Nijs – Win32 Perl : Introduction to Perl & WMI
Dirk explique les bases de WMI, cette interface qui permet de piloter Windows juste dans ses moindres recoins, si on arrive à comprendre comment. Il montre quelques exemples de codes qui exécutent des requêtes (WMI se contrôle aux travers de WQL, un genre de SQL), puis présente Scriptomatic, un programme de Microsoft qui permet de générer du code d’automation pour plusieurs langages. De manière amusante, le code Perl généré est plus propre que les codes dans les autres langages, qui contiennent plusieurs hacks et trucs pas très beaux pour faire marcher les requêtes.Abigail – What is new in 5.10 regular expressions
" Perl 5.10 is coming out, after lunch, before Christmas. " Il devrait normalement être disponible au moment où vous lirez ces lignes. Le moteur d’expressions régulières a été revu en profondeur (il a en particulier été dérécursé), faisant disparaître quantité de bugs et de limitations, et apportant un lot de nouvelles fonctionnalités. On trouve ainsi de nouvelles classes de caractères, un nouveau quantifi cateurSébastien Aperghis-Tramoni - Old Perls and new code
Je fais à nouveau ma présentation sur les techniques pour maintenir du code compatible avec les vieilles versions de Perl, avec des mises à jour grâce à Nicholas Clark, expliquant que le moduleAbigail – Sudoku by Regexp
Abigail explique les règles du sudoku et montre les noms amusants des techniques conçues pour simplifier la résolution des sudokus. Il détaille ensuite comment il résout les sudokus avec des expressions régulières. Le principe est en gros de construire une expression régulière correspondant aux contraintes du sudoku à résoudre, et une chaîne qui ne correspondra à cette expression régulière que si le sudoku a une solution. Abigail montre les chaînes et expressions générées. Même en taille 2, ça dépasse de l’écran pour un sudoku normal 9x9. Il a appliqué le même principe pour résoudre des kakuros, un casse-tête similaire, mais avec des règles de calculs diff érentes. Le problème est qu’il faut réaliser des opérations arithmétiques et que ce n’est normalement pas possible avec des expressions régulières... sauf si on s’en tient à l’arithmétique unaire !Chris Vertonghen – OpenID authentication by example
Chris explique le fonctionnement d’OpenID, un mécanisme d’authentifi cation qui fait offi ce de SSO (Single Sign-On) à l’échelle du web, simplifi ant la vie de l’internaute (et en particulier celle du blogosurfeur). Le principe est d’utiliser des noms d’hôtes comme login, hôtes qui doivent pointer sur des machines sur lesquelles tourne un serveur OpenID, qui gère l’interaction avec l’utilisateur pour confi rmer l’authentifi cation. (Plusieurs implémentations, dans diff érents langages, sont disponibles.) L’authentifi cation peut, de plus, être déléguée par des pointeurs HTML :Lightning Talks
Pour essayer de rattraper le retard (ou du moins éviter d’en prendre plus), la session est écourtée de moitié.Abigail – %s (...) interpreted as function
Abigail râle encore à propos de cet avertissement, comme il le fait à chaque conférence ;-)Sébastien Aperghis-Tramoni - relative.pm, puis Win32::Mock
Je passe deux présentations dans le temps d’une, pour montrer deux modules que j’ai écrits : relative.pm qui permet de charger des modules de manière relative au module courant et Win32::Mock, qui permet d’émuler les modules Win32 sur les systèmes Unix.Dirk De Nijs – Introduction to Perl & Vista’s Feature User Acceptance Control
Dirk montre les nuisances des nouvelles fonctionnalités de Vista et comment y remédier au travers d’un manifeste, une de ces spécifi cités de Win32 complexe à comprendre, mais qui peut s’avérer utile.Juerd Waalboer – UTF-8 security reminder
Juerd montre un exploit utilisant une couche IO non validante d’UTF-8 de Perl. Les détails sont sur Perl Monks : http://www.perlmonks.org/?node_id=644786
Après le dîner, des parties de Fluxx s’organisent aux deux bouts de la table (et Wendy fait le pitre).
Conclusion
Quoique cette conférence a été marquée par un retard constant, elle était globalement très sympathique, et les participants ont apprécié les croissants frais apportés le matin par les organisateurs ;-) La participation fi nale d’une quarantaine de personnes est honorable pour cette première édition du Belgian Perl Workshop, mais il lui faudra probablement trouver sa voie entre les Journées Perl (francophones) d’un côté et le Dutch Perl Workshop (néerlandophone) de l’autre pour se développer plus avant. LIENS- Belgian Perl Workshop 2007 : http://conferences.mongueurs.net/bpw2007/
- Photos de la conférence : http://fl ickr.com/photos/tags/bpw2007/
- Perlmonks : http://perlmonks.org/
- Perl Design Patterns : http://perldesignpatterns.com
Retrouvez cet article dans : Linux Magazine 100





Donnez votre avis
Vous devez avoir ouvert une session pour écrire un commentaire.