Nordic Perl Workshop 2009 / Go Open 2009

Magazine
Marque
GNU/Linux Magazine
Numéro
118
|
Mois de parution
juillet 2009
|


Résumé
Pour cette nouvelle édition, les Mongueurs d'Oslo.pm se sont associés à FriProg pour jumeler le Nordic Perl Workshop au salon Go Open, que l'on peut comparer à un événement de type Solutions Linux, mais à l'échelle de la Norvège. Vu la taille et le public de Go Open, le Nordic Perl Workshop a en fait été intégré comme seconde partie « technique » de Go Open, majoritairement en anglais, le reste de ce salon se déroulant bien évidemment en norvégien. Il n'y a pas de quoi se plaindre, la taille de l'ensemble ayant permis d'attirer un grand nombre de sponsors, autorisant ainsi la venue de nombreux orateurs prestigieux.

Body

1. Jeudi 16 avril

20090416

La salle principale du théâtre et son écran géant

Détail amusant, cette double conférence est organisé dans le bâtiment du Sosialistisk Venstreparti (Parti socialiste de gauche), et, plus précisément, dans un théâtre pour la partie Go Open, et dans des salles de conférence au 11e et 12e étages du bâtiment pour la partie Nordic Perl Workshop. On ne pouvait pas traîner longtemps en fin d'après-midi, car avaient lieu le soir des représentations de la pièce de théâtre Mamma mia !

1.1 Opening together with Go Open

L'ouverture de Go Open se déroule en norvégien, avec seulement une phrase en anglais pour s'excuser de ce fait. Ce n'est que par la suite qu'on m'expliquera que la seconde femme qui avait succédé à la première au micro était une ministre, plus précisément Heidi Grande Røys, ministre de l'Administration et de la Réforme du Gouvernement. Problème d'organisation, les détails sur le salon ne seront donnés qu'après (alors que je me serai déjà éclipsé pour écouter Larry Wall). Cela m'aura néanmoins permis de voir la grande salle et son écran géant affichant une belle liste de sponsors.

1.2 Larry Wall – The Future of Laziness, Impatience and Hubris

Salve Nielsen ouvre la partie Perl de cette conférence dans un restaurant en face du théâtre, où une partie de la salle est aménagée pour cela.

Larry commence comme souvent avec des généralités qu'il s'amuse à détourner, tel le modèle en cascade dont il trouve qu'avec les nombreux retours, en particulier si on ajoute de l'XP, ressemble à une pelote de laine. Comment savoir si on a terminé ? Larry compare avec des états d'énergie : c'est quand on atteint un minimum. Mais, pour passer d'un minimum local à un autre minimum, inférieur, cela demande de l'énergie… ou un tunnel quantique.

Il rappelle le pourquoi de Perl 6 : hormis une longue liste de défauts qu'il fait défiler, Perl 5 est parfait :-)

361 RFC avaient été recueillies en 2000. Très difficile de répondre à tout ce qui été demandé, autant tout changer. Le but de Perl 6 est d'être « the Martha Stewart of languages » ; ne pas essayer d'être meilleur que les autres, mais d'être plus souple, plus facilement adaptable. Il montre STD.pm (le fichier qui décrit la syntaxe standard de Perl 6) et la facilité pour modifier et faire muter le langage. On peut facilement concevoir un use COBOL ou n'importe quoi d'autre, tout n'étant plus finalement que des DSL (Domain-Specific Language).

Le méta-méta-méta-but de Perl 6 est -Ofun, c'est-à-dire rester amusant. Cela n'est pas toujours évident, et Larry indique que, dans l'édition japonaise de Programming Perl, on trouve une note à côté du slogan « lazyness, impatience, hubris » signalant qu'il s'agit d'un trait d'humour :-)

periodic-table

La table périodique des opérateurs de Perl 6

Quand est-ce que Perl 6 sera prêt ? La réponse standard est « pour Noël ». Avant 2040, probablement avant 2014. En pratique, le langage étant précisément défini par une spécification qui est elle-même traduite sous forme d'une suite de tests, on sait que l'implémentation est complète quand tous les tests passent.

« Reduce, reuse, recycle » sont les maîtres mots des changements des opérateurs entre Perl 5 et Perl 6. Ainsi, <> qui était glob() en Perl 5 a été recyclé en constructeur de tableaux en Perl 6, parce qu'on construit plus souvent des tableaux qu'on appelle glob(). q[...] a inspiré #[...], et de même q[[...]] pour #[[...]]. Les avertissements et les exceptions ont été fusionnés puisqu'il s'agit à la base de la même chose, ne différant que dans la poursuite ou l'arrêt du programme.

Les opérateurs ont été rationalisés, mais s'il y en a une grande quantité, et même encore plus avec les combinaisons de méta-opérateurs, le tout suit une certaine logique, qu'on retrouve dans la table périodique des opérateurs assemblés par Mark Lentczner.

Dans les nouveautés, un peu pêle-mêle : les blocs peuvent maintenant prendre plusieurs arguments ; le support objet est augmenté des traits (vérifiés à la compilation) et des mixins à la Ruby (vérifiés à l'exécution) ; l'opérateur smart match ~~ ; les méta-opérateurs ; les junctions ; les feeds, comparables aux tubes Unix (pipes), mais au sein du langage (et bidirectionnel).

1.3 Jonathan Worthington – The Perl 6 Express

Juste après le déjeuner (très tôt, à seulement 11h15 !), Jonathan complète la présentation assez générale de Larry par une présentation plus en détail de Perl 6.

Il rappelle que Perl 6 est défini par une spécification sous forme de documents formels et d'une très imposante suite de tests. Il en existe plusieurs implémentations, dont on sait qu'elles sont valides si elles passent les tests.

20090416

Jonathan Worthington

Rakudo est l'une d'elles, écrite en NQP (Not Quite Perl), Perl 6 et PIL (Parrot Intermediate Language). Son nom vient du japonais rakuda-do, « la voie du chameau », abrégé en i<rakudo>, qui signifie aussi « paradis ». Elle passe actuellement plus de 10 000 tests de spécifications, soit environ 65% de la spécification actuelle.

Jonathan enchaîne ensuite sur les détails de la syntaxe du langage.

- Variables. Le sigil fait maintenant partie du nom de la variable, et définit un genre de contrat d'interface.

- Boucles. Les boucles de parcours s'appuient sur les arguments de bloc et s'écrivent maintenant :

    for %ages.kv -> $name, $age { ... }

Les boucles de style C s'écrivent quant à elles ainsi :

    loop ($i = 0; $i < 10; $i++) { ... }

    loop { ... }    # boucle infinie

- Chaînage de conditions. On peut fusionner plusieurs conditions en une seule :

    if 1 <= $roll1 == $roll2 <= 6 { ... }

- Paramètres. Les tableaux et hashes sont maintenant correctement passés aux fonctions, les paramètres peuvent être nommés et accepter des valeurs par défaut.

    sub substr ($str, $from = 0, $len = Inf) { ... }

    # $from vaut par défaut 0, et $len l'infini

    sub formalize ($text!, :$case, :$justify) { ... }

    # $text est un paramètre positionnel obligatoire

    # $case et $justify sont des paramètres nommés optionnels

- Objets. À peu près tout en Perl 6 peut être manipulé comme un objet (autoboxing). Les méthodes se définissent maintenant avec le mot-clé method, qui est comme le traditionnel sub, mais permet en plus d'accéder à l'objet courant par le mot-clé self.

- Types. La méthode .WHAT peut être invoquée sur n'importe quoi, et indique quel est le type du bidule.

      42.WHAT == Int     "beer".WHAT == Str

Les variables peuvent être typées, pour qu'elles ne stockent qu'un type de données. La vérification est effectuée à la compilation si possible, sinon à l'exécution. On peut créer des sous-types à partir des types existants :

    subset PositiveInt of Int where { $_ > 0 }

- I/O. open() renvoie l'objet, et on lit les données avec l'opérateur d'itération (= en préfixe).

    my $fh = open($filepath, ":r");

    for =$fh -> $line { say line }      # auto-chomp()

    $fh.close;

Les descripteurs de fichiers globaux STDIN, STDOUT, STDERR s'appellent maintenant $*IN, $*OUT, $*ERR.

- Jonctions. Une jonction est une superposition de plusieurs valeurs stockée dans un scalaire, permettant une parallélisation du code.

  opérateur de liste    opérateur infixe

  ------------------    ----------------

  any($a, $b, $c)       $a | $b | $c

  all($a, $b, $c)       $a & $b & $c

  one($a, $b, $c)       $a ^ $b ^ $c

  none($a, $b, $c)

  if $x == 1|2|3 { ... }    # vrai si $x vaut 1, 2 ou 3

  1|2 + 4 == 5|6

Quand on passe une jonction à une fonction qui ne sait gérer que des scalaires normaux, cette fonction est appelée autant de fois qu'il y a de valeurs dans la jonction, et les résultats sont recombinés en unejonction.

- Méta-opérateurs. Le méta-opérateur de réduction [..] prend un opérateur et un tableau, et agit comme si l'opérateur était entre tous les éléments.

    $sum = [+] @values;     # somme des valeurs

    $fact = [*] = 1..10;    # factorielle de 10

Les hyper-opérateurs »..«permettent d'exécuter l'opérateur sur chaque élément des listes en argument. Les listes doivent avoir la même taille, sauf si on dirige une des pointes vers l'extérieur.

    (1, 2, 3) »+« (2, 4, 6);        # (3, 6, 9)

    (1, 2) »+« (10, 20) »*« (2, 3) # (21, 62)

    -« (1, 2, 3);                   # (-1, -2, -3)

    @array »+=» 42;                 # ajoute 42 à chaque élément

    $left «*» $right;               # ça marche aussi

Le méta-opérateur croix X réalise un produit cartésien des éléments en arguments. Il produit toutes les permutations possibles et applique l'opérateur entre les paires d'éléments obtenues.

    <a b> X~ <1 2>;         # <a1 a2 b1 b2>

    1, 2 X* 3, 4;         # 3,4,6,8

Et, bien sûr, les méta-opérateurs peuvent être combinés...

La présentation de Jonathan continue, mais je ne peux rester jusqu'au bout, voulant écouter Tobias Oetiker.

1.4 Tobias Oetiker – RRDtool – how to make it sit up and beg

Tobias explique le concept derrière RRDTool : une mini-base de données, facile à utiliser, avec une faible empreinte mémoire, dont les données ne font qu'approcher la réalité. Il détaille ensuite le format des archives, et donne des indications sur comment optimiser les accès disques. En particulier, il pointe vers un article de LISA'07 dans lequel Dave Plonka avait découvert que Linux 2.6 était par défaut bien plus lent pour RRDTool que le 2.4, notamment à cause d'optimisation du gestionnaire de mémoire virtuelle. Des patches pour utiliser les options RANDOM et DONTNEED de fadvise() et madvise() ont été intégrés à la version 1.3 pour restaurer les performances.

Tobias rappelle que RRDTool inclut de nombreuses fonctionnalités graphiques en s'appuyant sur Cairo et Pango, et peut donc sortir du PDF, du SVG ou de l'EPS.

Il donne ensuite des détails sur les nouveautés de la future version 1.4, dont l'intégration de libdbi pour récupérer les données depuis une base SQL, la prédiction de graphe, et le démon rrdupdated. Celui-ci permet de réaliser la mise à jour des archives sur une machine différente de celle qui exécute rrdupdate, et de grouper les mises à jour sur une même archive afin d'optimiser les accès disque. D'après les premiers tests, les performances s'en trouveraient grandement améliorées.

RRDTool 1.5 devrait, quant à elle, proposer un format d'archive portable, étendre le démon rrdupdated pour qu'on puisse l'interroger et y ajouter un support d'authentification.

1.5 Jon « maddog » Hall – Open Telephony: A solution greater than the sum of its parts

Avant sa présentation proprement dite, Jon explique aux personnes présentes tout le mal qu'il pense des droits d'auteur et surtout des brevets sur les logiciels, « une manière stupide de gagner de l'argent. »

Il commence avec une histoire de la téléphonie, en expliquant pourquoi les opérateurs étaient nécessaires : il était tout simplement impossible de connecter deux à deux tous les téléphones. Les gens ont ensuite commencé à appeler de plus en plus longtemps. Il raconte qu'un de ses amis avait conservé la ligne pendant 3 ans (pour son modem). Aux USA, le marché fut découpé avec d'un côté AT&T pour les appels longue distance et une myriade de petits opérateurs pour les appels locaux et la pose du cuivre. On ne pouvait donc pas choisir grand chose.

« Then one day… SIP happens! » et la VoIP se répand sur l'internet.

Jon distingue la VoIP directe (entre deux téléphones) et VoIP indirecte (entre un téléphone et un PBX). Toutefois, de nombreux téléphones matériels (iPhone) ou logiciels (Skype) apparus récemment sont fermés. Cela pose problème, car le fournisseur peut fermer son service ou faire faillite.

L'avantage d'un téléphone ouvert est qu'il est facile de porter le système d'exploitation d'un modèle à l'autre, ou de migrer les données utilisateurs. On peut même appliquer des correctifs au système des anciens modèles, ralentissant son obsolescence et autorisant son recyclage par des personnes qui n'ont pas besoin du nouveau modèle.

Les premiers PBX étaient manuels (les standardistes connectant les fiches), puis des machines très chères remplissant des salles entières. Étape majeure, Asterisk, un PBX logiciel et entièrement libre. Il devient possible d'économiser de l'argent, mais aussi de créer des applications nouvelles. Par exemple afficher sur l'écran du PC toutes les informations sur un client quand celui-ci appelle. Il en avait parlé une fois à Mexico, puis revint un mois plus tard pour en parler à nouveau. Un homme se lève et lui dit « Señor Hall, I have done it ».

Par ailleurs, maintenant que tout (audio, vidéo, métadonnées) est numérique et distribué par IP, on peut envisager de mélanger les données, ce d'autant plus que les téléphones mobiles deviennent de vrais ordinateurs.

Mais, pour qu'un téléphone soit ouvert, tous ses composants doivent l'être : l'API d'accès au matériel, les schémas et la disposition des composants sur la carte mère, les dessins du boîtier, etc. Ce qu'a fait OpenMoko pour son Neo Freerunner.

Jon fait une digression sur Android de Google, signalant que, malgré les apparences, ce n'est pas un système ouvert : l'OS du seul téléphone Android disponible à ce jour est verrouillé, et les logiciels doivent être signés.

OpenMoko a annoncé que le modèle actuel du Freerunner, le GTA02, est terminé (en termes de fonctionnalités), et va être maintenant le seul produit pour le moment. La société va travailler sur un autre projet pour gagner un peu d'argent, puis commencera à recueillir les suggestions pour le futur modèle GTA03.

Des nombreuses questions-réponses qui furent échangées, on peut retenir ces quelques-unes. D'abord, que le dernier maillon qui manque dans la chaîne pour avoir une téléphonie totalement libre est une station GSM libre. Aux doutes sur l'extension au grand public de la téléphonie libre, Jon fait remarquer qu'aux débuts, les PC n'étaient qu'au travail avant d'arriver à la maison.

On s'interroge sur l'intérêt des opérateurs téléphoniques (parmi les compagnies les plus fermées qui existent) pour les logiciels libres. Jon pense qu'elles n'auront pas le choix à l'avenir parce qu'on a de moins en moins besoin d'elles. Pour lui, la dernière chose qu'elles fournissent vraiment est une tour, mais il admet ne connaître aucune compagnie qui a véritablement bougé à ce sujet. Il n'a pas encore regardé le Symbian ouvert par Nokia, mais craint qu'il ne soit qu'à moitié ouvert, comme Android.

2. Vendredi 17 avril

2.1 Ingy döt Net (Brian Ingerson) – Discovering YAML

Ingy commence par replacer YAML dans les formats de données : XML est un langage à balises, JSON un format d'échange de données, YAML un langage de sérialisation de données. Il existe encore d'autres formats comme SOAP ou ASN.1, mais YAML a l'avantage d'être facile à lire pour un humain.

Et, comme pour se contredire, il s'amuse à montrer du YAML assombri et essaye de nous faire deviner ce qu'il signifie ;-)

tn_20090417

Ingy döt Net (Brian Ingerson)

YAML, c'est déjà un vocabulaire commun entre les différents langages. On parle de collections de données, sous la forme de séquences (tableaux) ou de mappings (hashes), qui peuvent bien sûr s'imbriquer. La syntaxe classique de YAML s'appuie sur des blocs dont l'indentation détermine le niveau, mais a depuis introduit une syntaxe identique à JSON, les flux.

    # style bloc:

    -

      name: Mark McGwire

      hr:   65

      avg: 0.278

    -

      name: Sammy Sosa

      hr:   63

      avg: 0.288

    # style flux:

    Mark McGwire: {hr: 65, avg: 0.278}

    Sammy Sosa: {

        hr: 63,

        avg: 0.288

      }

Les collections peuvent même être utilisées comme clés de mappings :

    {John: Rockway}: Catalyst

En plus des types et des tags, YAML supporte aussi les ancres et alias, ce qui permet de référencer une partie d'une structure à un autre endroit, ce qui permet la sérialisation de graphes.

Ingy explique que, malgré la spécification YAML, la communauté Perl attendait finalement que ce soit lui qui l'implémente. Comme les choses ont stagné, TPF lui a octroyé une bourse de $3000 pour qu'il porte PyYAML en Perl, ce qu'il a d'abord fait en Perl 6, et termine de faire en Perl 5. Le nouveau module YAML.pm devient une interface utilisant le meilleur moteur YAML disponible sur le système.

Il termine en indiquant que YAML n'a pas de contrat d'interface, la structure étant un accord entre l'émetteur et le destinataire, et signale que la spécification 1.2 de YAML sera prête le 1er mai, pour OSCON 2009.

2.2 Jonathan Rockway – Web Applications in 2009

Jonathan explique comment Perl, après avoir aidé le web à ses débuts en 1994, s'est ensuite fait dépassé par d'autres langages plus faciles (PHP) ou avec plus de moyens marketing (Java). Mais aujourd'hui, avec le web 2.0 et les interfaces riches (Ajax & co), ces autres langages révèlent leurs limites, et Perl a su se renouveler et s'enrichir sans se dénaturer.

Il énumère les points forts de Perl : une communauté (CPAN, IRC, mails, conférences), de nouveaux modules tous les jours, de nouvelles idées toutes les semaines, des conférences tous les mois, et de temps en temps de nouveaux paradigmes comme Møøse.

Il explique justement le choix de Møøse dans Catalyst, qui facilite la séparation des tâches complexes en unités plus simples, et permet de les rendre indépendantes du cadre HTML / HTTP. Møøse a de plus de nombreuses extensions comme MooseX::Declare qui fournit une syntaxe moderne.

Le JavaScript, maintenant omniprésent, est facile à installer avec js-cpan. Le CPAN regorge d'outils perfectionnés comme Devel::NYTProf, et, plus généralement, le Perl Moderne fourni, avec des modules comme Catalyst, Continuity ou HTTP::Engine, permet de rendre toujours plus aisée la réalisation de tâches complexes.

2.3 Mitch Trachtenberg – Open Source for Election Integrity -- The Experience of Humboldt County, CA

« I promise I will deliver the state of Ohio to George W. Bush » avait promis le CEO de Diebold en 2003, et c'est bien ce qui est arrivé...

Très soucieux de l'arrivée des machines à voter et des sérieux doutes qui les entourent, Mitch raconte comment il a découvert un nouveau problème dans les machines Diebold (depuis rebaptisées Premier). En scannant l'ensemble des bulletins papier, il s'est rendu compte qu'il avait 216 bulletins de plus que dans le comptage officiel, calculé par une machine Diebold. Ce bug est généré quand on appuie sur un bouton de l'interface qui a pour effet d'effacer le journal et le comptage en cours...

20090417

Mitch Trachtenberg.

Les images des bulletins ont été cryptographiquement signées, gravées sur DVD et rendues disponibles sur l'internet. Mitch n'a utilisé que des logiciels libres pour que tout soit facilement reproductible : Ubuntu, Scanimage (SANE), Seahorse (GPG) et des outils graphiques d'archivage. Il a de plus écrit le logiciel Ballot Browser, avec Python et Tk, pour automatiser la vérification des bulletins.

Son logiciel charge chaque image, repère des motifs sur les coins pour vérifier l'orientation du bulletin et le numéro du district, sélectionne le patron de bulletin correspondant, repère les marques correspondant aux choix du votant et affiche le résultat de son analyse à l'écran en permettant à l'utilisateur de vérifier visuellement ce résultat et, si nécessaire, de l'invalider par appui sur un bouton. Les résultats sont fournis sous forme d'un fichier CSV, facile à importer dans un tableur ou une base de données.

Mitch effectue une démonstration sur l'ordinateur d'un organisateur grâce à un live DVD : il lance l'analyse sur quelques bulletins et l'interrompt pour montrer en détail l'utilisation de l'interface.

On lui avait objecté de nombreux faux problèmes quand il a démarré ce projet : « ça ne peut être fait pour moins de $x millions de dollars », « il faut des millions de lignes de code », « c'est trop difficile à utiliser ». Sa réponse : JFDI, partager, espérer que d'autres vont contribuer, prier pour des fonds. Les vrais problèmes touchent à la sécurité (comment valider l'utilisation de GPG ? être sûr que l'implémentation est correcte ?), au coût du matériel (le scanner utilisé est un modèle très cher, permettant de scanner les documents à la chaîne) et à la bureaucratie (si ça ne coûte rien, où est le gain ?).

Interrogé sur son opinion à propos du vote électronique, Mitch répond que c'est selon lui inutile, l'utilisation du bulletin papier étant bien plus facile et plus fiable.

2.4 Yuval Kogman – KiøkuDB

20090417

Yuval Kogman.

Manque de chance pour Yuval, une manifestation se déroule sur la Place des partis sur laquelle donne le bâtiment du Parti Travailliste, et bien qu'on soit au 12e étage, on entend parfaitement les bruits de la foule.

Malgré cela, Yuval explique ce qu'est KiøkuDB (à noter qu'étant un fervent utilisateur de Møøse, tous les « o » de ses diapos s'écrivent « ø »). Par opposition aux ORM qui n'implémentent qu'un sous-ensemble des objets et une forme assez pauvre d'algèbre relationnelle, KiøkuDB permet de stocker des objets de manière native et non relationnelle, fonctionnant sur le principe d'une base de données orientée document, sans schéma. Plusieurs backends de stockage sont disponibles : BerkeleyDB, DBI, CouchDB, Amazon SimpleDB, fichiers plats.

Le stockage d'objets Perl présents en mémoire sur un support permanent n'est pas une tâche facile. Huit ans plus tôt, Pixie était déjà une tentative d'atteindre ce Saint Graal. KiøkuDB est un nouvel essai, mais la différence est qu'il peut se passer des heuristiques hasardeuses grâce aux possibilités d'introspection offertes par Møøse et MOP. On peut ainsi enregistrer et charger des graphes d'objets sans problème.

Yuval montre un exemple avec des objets représentant un blog et ses entrées, et indique que, pour les backends qui le supportent, les opérations sont transactionnelles.

Pour les objets non-Møøse, KiojuDB::TypeMap propose déjà plusieurs modèles. Naive pour les objets classiques à base de hash, StorableHook pour les classes supportant ces fonctions. Les objets avec une méta-classe peuvent définir des traits additionnels pour indiquer des attributs à ne pas sérialiser ou à charger à la demande.

Yuval reconnaît que Møøse n'offre par contre pas une grande vitesse d'exécution, mais autorise tout de même dans les 400 reconstructions d'objet à la seconde sur son portable. Il espère néanmoins que Moose::XS permettra d'améliorer les performances.

Brian Ingerson demande comment KiøkuDB est lié à Perl ; Yuval répond qu'étant basé sur Møøse, l'implémentation est spécifique à Perl, mais le concept peut très bien être porté dans d'autres langages.

2.5 Gabor Szabo - Padre the Perl IDE

20090417

Gabor Szabo.

Padre signifie Perl Application Development and Refactoring Environment, mais comme le dit Gabor, c'est juste un éditeur de texte avec un ego surdimensionné :-).

Pourquoi créer un nouvel éditeur alors qu'il en existe déjà une pléthore ? La plupart (vi, emacs, etc.) sont conçus par et pour des geeks. Padre se veut pour les gens normaux.

Par ailleurs, Perl lui-même n'aide pas souvent le débutant avec des messages d'erreurs pas toujours très clairs (et diagnostics.pm est plutôt trop verbeux et n'aide pas vraiment non plus). Le but de Padre est d'aider le programmeur à comprendre l'erreur, et même à en éviter en repérant les plus courantes, par exemple use warning; (manque le « s ») ou l'utilisation d'une fonction comme say() sans un use 5.010.

Gabor fait un démonstration et présente les différentes fonctionnalités :

- facilité de création d'un programme ou module Perl 5, et même de distribution CPAN (avec Module::Starter) ;

- diff entre le fichier sur disque et sa version en mémoire ;

- intégration de Ack (le grep du programmeur) ;

- interface traduite en une dizaine de langues ;

- exécution du code avec surlignage des erreurs et avertissements ; un clic sur le message et les diagnostics détaillés s'affichent, avec la traduction si elle est disponible.

Bien sûr, on peut étendre Padre avec des plugins, et plusieurs sont déjà disponibles sur le CPAN : Nopaste, PAR, Perl::Critic... MyPlugin est un plugin local facile à éditer et à recharger pour changer le comportement de l'éditeur en temps réel.

Padre peut utiliser PPI pour l'analyse du code Perl, mais c'est désactivé par défaut, PPI étant un peu lent. Cela permet d'avoir des fonctionnalités spécifiques à Perl comme trouver une accolade non appariée, renommer lexicalement une variable, trouver la déclaration d'une variable, voir la structure globale (les fonctions) d'un fichier.

Padre permet aussi d'écrire du Perl 6, en fournissant une aide contextuelle tirée des Synopsis. Le code peut être exécuté si Rakudo est installé. Gabor note qu'une fois que Patrick Michaud aura corrigé un bug dans PCT, il sera très facile de récupérer l'arbre d'analyse de n'importe quel langage implémenté avec Parrot, et ainsi fournir pour chaque nouveau langage un support automatique de coloration syntaxique.

Gabor termine en précisant que Padre est bien sûr disponible sur le CPAN, mais aussi sous forme de paquet pour les principales distributions.

2.6 Lightning talks

Anatoly Sharifulin, jeune codeur, a écrit les modules Acme::CPANAuthors::Russian (113 auteurs) et Acme::CPANAuthors::Norwegian (21 auteurs), avec un site web qui offre les flux RSS et icônes Gravatar associés. Dans 9000 km of Perl, Andrew Shitov montre que l'ancien bloc soviétique n'est plus inactif depuis 2008 avec des conférences en Russie (à Moscou et Vladivostok), Ukraine, Bulgarie, Ouzbékistan. Gabor Szabo rappelle comment avoir des rapports de tests plus complets, en utilisant TAP::Formatter::HTML, et que tout s'automatise avec Smolder. Matt S. Trout lance de sa manière si fleurie la campagne Perl Iron Man.

2.7 Night party

Comme cela avait été annoncé le matin, une bonne partie des participants de la conférence se retrouvent le soir au 12e étage du bâtiment pour profiter de la bière offerte par des sponsors, discuter, voire coder.

2.8 Après la conférence

tn_20090417

La statue en bronze blanc Myth (Sphinx) de Marc Quinn, représentant Kate Moss dans une pose... surprenante, accueille les visiteurs à l'entrée du bâtiment.

De nombreuses personnes sont restées après la conférence pour participer au hackathon de deux jours consacré à Perl 6 ou aux formations à Perl 6 et aux tests automatisés réalisées par Gabor Szabo.

Conclusion

Cette édition du Nordic Perl Workshop a été une bonne surprise de par son intégration au sein de Go Open, ce qui a permis d'écouter des conférenciers hors du monde Perl (et souvent de grands noms) à moindre frais. Le succès a d'ailleurs été au rendez-vous, puisque plus de 110 personnes ont participé au NPW (sans compter celles venant de Go Open). On ne sait pas encore quelle sera la ville qui organisera la prochaine édition, même si dans les discussions par mails qui ont suivi plusieurs noms ont été cités, entre autres Helsinki (Finlande), Reykjavik (Islande), Århus (Danemark), Göteborg ou Malmö (Suède), voire Riga (Lettonie). Même si rien n'est décidé, le but affiché est de sortir des trois villes habituelles que sont Oslo, Copenhague et Stockholm. Dans tous les cas, ce sera l'occasion de découvrir de nouveaux endroits.

Liens

Nordic Perl Workshop 2009 – http://www.perlworkshop.no/npw2009/

Go Open 2009 – http://goopen2009.friprog.no/

Periodic table of the Perl 6 operatorshttp://www.ozonehouse.com/mark/periodic/

Rakudo, l'implémentation de Perl 6 sur Parrot – http://rakudo.org/

YAML, spécification et implémentations – http://yaml.org/

TEV Systems & Ballot Browserhttp://www.tevsystems.com/

Padre –http://padre.perlide.org


Par le même auteur

Perles de Mongueurs

Magazine
Marque
GNU/Linux Magazine
Numéro
121
|
Mois de parution
novembre 2009
|
Résumé

Depuis le numéro 59, les Mongueurs de Perl vous proposent tous les mois de découvrir les scripts jetables qu’ils ont pu coder ou découvrir dans leur utilisation quotidienne de Perl. Bref, des choses trop courtes pour en faire un article, mais suffisamment intéressantes pour mériter d’être publiées. Ce sont les perles de Mongueurs.

Les Journées Perl 2009

Magazine
Marque
GNU/Linux Magazine
Numéro
119
|
Mois de parution
septembre 2009
|
Résumé
Retour à Paris pour cette sixième édition des Journées Perl, organisée à la Cité des Sciences et de l'Industrie les 12 et 13 juin 2009, où plus d'une centaine de participants se sont déplacés pour venir écouter quelques-unes de la trentaine de présentations proposées.

PyCON Fr 2009

Magazine
Marque
GNU/Linux Magazine
Numéro
119
|
Mois de parution
septembre 2009
|
Résumé
Troisième édition du rendez-vous de la communauté Python, comme chaque année à la Cité des Sciences à Paris, les 30 et 31 mai 2009. Environ deux cents participants et une trentaine de présentations pour deux jours consacrés à ce langage.

The Go Open Expert Café

Magazine
Marque
GNU/Linux Magazine
Numéro
118
|
Mois de parution
juillet 2009
|
Résumé
Dans le cadre de Go Open 2009, était organisée une soirée spéciale le 16 avril avec quatre grands noms du monde des logiciels libres, Larry Wall, Jon « Maddog » Hall, Bruce Perens et Simon Phipps, le tout animé par Håkon Wium Lie, CTO d'Opera (qui est une société norvégienne, basée à Oslo).Trois heures et demie de discussions en anglais, avec force anecdotes et histoires croustillantes. Votre serviteur a fait de son mieux pour essayer de retranscrire les réponses de ces personnes très intéressantes à écouter.

Nordic Perl Workshop 2009 / Go Open 2009

Magazine
Marque
GNU/Linux Magazine
Numéro
118
|
Mois de parution
juillet 2009
|
Résumé
Pour cette nouvelle édition, les Mongueurs d'Oslo.pm se sont associés à FriProg pour jumeler le Nordic Perl Workshop au salon Go Open, que l'on peut comparer à un événement de type Solutions Linux, mais à l'échelle de la Norvège. Vu la taille et le public de Go Open, le Nordic Perl Workshop a en fait été intégré comme seconde partie « technique » de Go Open, majoritairement en anglais, le reste de ce salon se déroulant bien évidemment en norvégien. Il n'y a pas de quoi se plaindre, la taille de l'ensemble ayant permis d'attirer un grand nombre de sponsors, autorisant ainsi la venue de nombreux orateurs prestigieux.