Belgian Perl Workshop 2009

Magazine
Marque
GNU/Linux Magazine
Numéro
116
Mois de parution
mai 2009


Résumé
Après le succès du Belgian Perl Workshop 2007 organisé par le groupe de mongueurs Bruxellois, l'évènement vient d'être renouvelé. Cette fois, ce sont les mongueurs flamands qui l'ont organisé, mené par Dirk De Nijs et Chris Vertonghen. Les présentateurs sont venus des quatre coins d'Europe (Angleterre, Slovaquie, Russie, France, Luxembourg, Pays-Bas et Belgique) et même d'Israël et d'Amérique ! Le workshop a eu lieu à Louvain, petite ville estudiantine à 20 km de Bruxelles, et a attiré près de 50 personnes. Étant donné le nombre d'orateurs, le workshop occupait deux locaux.

Body

1. Samedi 28 février

Comme pour le workshop 2007, les organisateurs ont choisi un samedi pour cet évènement. Dirk De Nijs a ouvert la conférence remerciant tous les participants et sponsors. Le workshop démarre sur les chapeaux de roues avec moins d'un quart d'heure de retard. Les intérêts du public sont suffisamment partagés, ce qui procure des salles remplies de façon équilibrée. Pour moi, le choix fut aisé et j'ai opté pour la salle dédiée à Catalyst, outil de développement web très abouti.

Ingy_dot_Net_et_le_chameau_Meeltje

Fig. 1 : Brian Ingerson (Ingy döt Net) et le chameau Meeltje

1.1 Yuval Kogman – Discovering KiokuDB

Le premier orateur est Yuval Kogman, venant d'Israël. Il est l'un des développeurs de KiokuDB, un moteur de stockage d'objets. Le projet est jeune (la première publication sur CPAN datant de décembre 2008) et est très prometteur. La sauvegarde d'objet est une alternative à la sauvegarde de données relationnelles comme le permet DBIx::Class. Les deux forment une couche entre votre programme et la base de données. KiokuDB supporte actuellement Berkeley DB et DBI.

La différence principale entre les deux approches réside dans l'absence de schéma dans le cas de KiokuDB. Les objets sont définis par l'utilisation du framework Moose et KiokuDB sait dès lors exactement ce qui doit être sauvegardé. Il vous offre des méthodes pour chercher, lister, détruire, etc. les objets. Les relations entre objets sont également sauvegardées. Cela permet, par exemple, de retrouver le lien entre l'objet client et l'objet facture et, de cette façon, il est aisé de retrouver toutes les factures adressées à un certain client.

1.2 Eriam Schaffter – Good old desktop apps with wxPerl

Étant moi-même adepte de wxPerl, je soutiens entièrement Eriam lorsqu'il proclame « wxPerl rocks ! ». Les applications desktop ne sont pas mortes (d'ailleurs le navigateur web en est une). wxPerl apporte la compatibilité physique entre les différents systèmes d'exploitations. Le rendu de votre application semble natif sur Linux, Mac OS X et même Windows.

S'il existe une boucle d'évènement dans wxPerl, Eriam nous expose une alternative : POE::Loop::Wx. Ce module ouvre une multitude de possibilité aux programmeurs wxPerl par l'ajout de composants POE. Le nombre de ces composants sur CPAN est d'ailleurs impressionnant.

Si vous souhaitez faire du développement RAD, il existe l'outil wxGlade, écrit en Python. Comme d'autres programmeurs wxPerl, je n'utilise pas (plus) cet outil pour coder un interface. Cela me permet de maintenir plus facilement le code avec des outils tels que Git. wxGlade a néanmoins le grand avantage de vous permettre de comprendre le fonctionnement de wxPerl en étudiant le code généré par cet outil.

Pour être complet, Eriam mentionne également le module XRC qui permet de générer un interface utilisateur par fichier XML. Si ceci semble une approche intéressante, il est important de tenir compte du coût en consommation de ressources de celle-ci, ayant comme résultat une perte de rapidité lors du chargement de l'interface.

Coder en wxPerl peut ressembler à du code en C. En effet, wxPerl est wrappé autour de wxWidgets qui est un framework écrit en C. Le module wxPerl::Styles (disponible sur CPAN) encapsule cela. Forcément, le rajout de cette couche aura lui aussi une incidence sur la consommation de ressources.

1.3 Abigail – Regular Expressions and Unicode Guru

Superbe présentation pour ceux qui ne savaient pas que l'Unicode et les expressions régulières font mauvais ménage. Cela dit, Abigail m'a fait réaliser que mes connaissances en expressions régulières méritent une remise à niveau : \h, \v, \p{isDigit}, [[:upper:]], l'importance de l'emplacement d'un tiret dans les plages n'en sont que quelques exemples.

Pour ceux qui n'ont pu suivre le flux impressionnant d'exemples et pour les absents, un lien vers les slides de cette présentation devrait être publié sur le site de la conférence.

Dirk_de_Nijs_et_Chris_Vertonghen_et_le_chameau_Meeltje

Fig. 2 : Dirk de Nijs, Chris Vertonghen et le chameau Meeltje

1.4 Chris Vertonghen – Perl & Amazon SQS, SimpleDB, S3

Après une courte démonstration des AWS (Amazon Web Services) par Simone Brunozzi, c'est Chris qui nous explique l'approche de ce service par Perl.

AWS est utilisé entre autres pour le stockage de données, ainsi que pour le streaming permettant de soulager votre serveur web. Il existe de multiples implémentations de l'API disponible sur CPAN. D'après Chris, Net::Amazon::S3 est le module le plus abouti. Ce module est également maintenu régulièrement. Ce module inclut des méthodes pour accéder à une corbeille et y déposer, lire, détruire des fichiers.

Pour le streaming, le module préconisé par Chris est Amazon::SQS::Simple.

1.5 Matt S. Trout – Catalyst

Matt Trout est l'un des développeurs de Catalyst ainsi que de DBIx::Class. Il a animé l'après-midi en parlant du framework MVC (Model View Controller) Catalyst.

D'emblée, Matt lance le ton en annonçant que le but d'avoir développé Catalyst est de pouvoir créer et gérer des sites complexes et que c'est pour cette raison qu'il est inutile de le comparer avec RoR. Son atout est d'ailleurs de permettre de garder un code structuré et clair. Le rythme du développement de Catalyst reste soutenu et Matt nous explique que la version 5.8 sera modulée autour de Moose, et ce, dans le but d'obtenir un code encore plus maintenable.

Malgré cette évolution, les développeurs souhaitent garder une compatibilité avec d’anciennes versions. C'est d'ailleurs une des exigences primordiales. Lors d'une mise à jour, vous ne devriez recevoir aucune erreur. Si cela devait arriver, veuillez le rapporter, car cela doit être corrigé. Matt ajoute qu'il serait tout de même audacieux d'appliquer une mise à jour sur un système en production sans garder la version qui fonctionnait préalablement dans un répertoire différent. C'est une approche qu'il déconseille vivement.

Écrire du code pour des sites internet importants ou complexes nécessite l'écriture de tests. Les tests permettent non seulement d'être certains que votre code fonctionne correctement, mais également que des comportements non souhaités soient le résultat des modifications apportées dans le futur. Pour le test de sites web, il recommande le module Test::WWW::Mechanize::Catalyst disponible sur CPAN.

tn_Matt_Trout

Fig. 3 : Matt Trout

Catalyst met des scripts à votre disposition pour créer de nouvelles fonctionnalités dans votre application. Ces scripts génèrent non seulement le squelette pour le type de fonctionnalité souhaité, mais également les fichiers de tests accompagnant cela. Tout cela dans le but d'obtenir toujours du code propre et maintenable.

La seule partie que Catalyst ne peut faire pour vous est de documenter votre code. Cela est important. Grâce à une bonne documentation, vous saurez encore dans le futur ce que vous avez voulu obtenir dans votre code. Pensez toujours que votre application « vit » et qu'elle grandira nécessairement !

1.6 Matt S. Trout – Catalyst & AWS

Pour ce qui concerne Catalyst, l'utilisation de services AWS tels que SimpleDB et SQS ne sont que des model backends. Les modules pour y accéder sont disponibles sur CPAN. Matt n'a rien d'autre à ajouter à cela, excepté que vous ne devriez jamais faire confiance au cloud.

Que se passerait-il si AWS mourait ? Qu'en est-il des backups ? Pouvez-vous tester les sauvegardes d’AWS ? La réponse est non et d'ailleurs personne ne garantit que vos données seraient restaurables. Vous devez garder vos données vous-même ET vous devez tester la restauration de vos sauvegardes !

Qu'en est-il de la connectivité et de la performance ? Que se passerait-il si AWS avait un problème ? Cela est improbable, mais cela peut arriver. Dans ce cas, vous devez pouvoir servir vos données vous-même.

Pourquoi AWS peut-il être utile ?

AWS vous offre du CPU et du CACHE. Utilisez-les pour servir vos données en les synchronisant vers AWS. Vous gardez les données chez vous et vous faites les sauvegardes. C'est cela qu'il vous faut. La redondance des données via AWS est en fait également une autre copie de vos données utilisable au cas où votre système devait périr.

tn_Liz_Mattijsen_-_Lightning_talk

Fig. 4 : Liz Mattijsen – Lightning talk

2. Clôture

Le Belgian Perl Workshop s'est clôturé par plusieurs présentations éclairs et une vente d'objets. Les bénéfices éventuels du workshop seront reversés à YEF qui est également sponsor pour ce workshop. Merci à tout les organisateurs, orateurs et participants pour cette inoubliable journée !

Liens

Belgian Perl Workshop 2009 – http://conferences.mongueurs.net/bpw2009/

Vlaanderen.pm, le groupe organisateur de la conférence – http://vlaanderen.pm.org/

Catalyst – http://www.catalystframework.org/




Article rédigé par

Les derniers articles Premiums

Les derniers articles Premium

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Les listes de lecture

9 article(s) - ajoutée le 01/07/2020
Vous désirez apprendre le langage Python, mais ne savez pas trop par où commencer ? Cette liste de lecture vous permettra de faire vos premiers pas en découvrant l'écosystème de Python et en écrivant de petits scripts.
11 article(s) - ajoutée le 01/07/2020
La base de tout programme effectuant une tâche un tant soit peu complexe est un algorithme, une méthode permettant de manipuler des données pour obtenir un résultat attendu. Dans cette liste, vous pourrez découvrir quelques spécimens d'algorithmes.
10 article(s) - ajoutée le 01/07/2020
À quoi bon se targuer de posséder des pétaoctets de données si l'on est incapable d'analyser ces dernières ? Cette liste vous aidera à "faire parler" vos données.
Voir les 65 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous