XML, the Perl Way


YAPC::NA 2003

Salut,

C'est l'heure du compte-rendu en direct live de YAPC.


Lundi

Perl 6 Damian Conway

264 slides sur Perl 6 (il a coupé un peu les 642 qu'il avait à l'origine), ça va aller vite...

Quelques highlights: dans les chaines on peut interpoler des appels de fonctions

  "toto $($tutu + foo( 2)) tata", pratique

l'opérateur de concaténation est maintenant ~

+ unaire rend numérique (+ $x), ~ unaire ``stringifies'', ? unaire rends booléen

Les types de Quantum::Superposition sont maintenant dans le langage, ça devrait plaire à un des membres de Toulouse.pm (moi!), comme ça on peut écrire:

  if( any( @a) > all(@b)) { truc; }

ce qui est quand même bien elegant

Union: ça c'est tordu aussi, surtout les ``anti-types'': on peut declarer une variable qui peut contenir n'importe quoi... sauf un objet d'un certain type.

Brêfle, au bout du compte, avec les comparaisons multiples on peut écrire:

  if( 0< all(@coeffs) < 1 ) { tout_va_bieng( @coeffs); }

Une explication détaillée des listes de paramêtres, trop longue et rapide pour être retranscrite ici, rappelons juste que tout bloc devient une closure.

Operateur parallèles: tout opérateur entre guillemets s'applique à une liste: ce qui nous emmène à...

Perl 6 est Unicode, donc les guillemets ne sont pas des caractères ASCII mais sont utilisés quand même. Na! Conclusion: passer a Unicode (OK, ou utilisez >>+<< tout operateur Unicode aura un équivalent en ASCII). Plus on peut définir ses propres opérateurs Unicode (hum... obfuscation en perspective...) ``Perl 6 has an infinite precedence system'' (on définit la précédence (?) des opérateurs par rapport a d'autres opérateurs, donc on peut en avoir une infinité (ou au moins autant que de caratères Unicodes, ça fait un certain nombre...)

le for à 3 arguments, héritédu C, est remplacé par loop, foreach disparait.

Macros: à-la-Lisp, plutot qu'à-la-C, une macro peut être remplacée par une chaîne ou par un bout de code (un bloc)

Perl6 OO: yipee. 2 slides rigolo: Perl5 OO est super, un slide qui détaille les points forts du système objet de Perl, puis un autre qui détaille les points faibles... les mêmes!

Plus sérieusement: mot clef class, une classe est dans un bloc.

Un bout de syntaxe rigolo:

  class toto { ... } # declaration de classe, '...' se dit yada yada yada

Les attributs sont de vrais attributs maintenant, pas des champs d'un hash (ils sont déclarés avec has).

L'héritage est maintenant statique (ça permet d'optimiser les perfos)

Conclusion

Perl 6 SERA différent

Mais pas sans raison. La plupart des trucs nouveaux seront en option, on pourra les utiliser si on veut.. ou s'en passer, mais en fait en général les nouveautés simplifient le code plutôt qu'autre chose ``ça ressemblera plus a du Perl que Perl 5''

Damian déborde... comme d'hab

C'est la pause.., à plus

Infos diverses

Donc c'est à Boça Raton, Floride, il fait très chaud et humide. Hier soir sushi: 55 Perleurs dans un restau japonais légèrement paniqué par notre arrivée. Par hasard on se retrouve 3 français a côté: Pierre Denis de Fotango que vous verrez a YAPC::Paris, Haim Demer qui vit ici, et moi. Plus Acme qui est a moitié français pas loing.

Note aux organisateurs de YAPC::Paris: demandez a Fotango de bien régler leur imprimante avant d'imprimer les badges, je suis tout rouge sur le mien (je rigole: l'imprimante qu'ils avaient emmené ne marchait pas en 110V et ils ont du en acheter une autre en catastrophe, le lendemain les badges etaient magnifique: http://www.perl.org/yapc/2003/movies/badges/ ah, et on leur a volé la RAM du Mac qu'ils avaient envoyé ).

Les premières info: Larry est à l'hopital, il a chopé un ulcere pendant la croisière Perl. Kevin Lenzo, qui était à la tête de la Perl Fondation, qui à monté sa boite et est très occupé, est remplacépar Allison Randall.

Premières photos d'Acme: http://www.fotango.com/cgi-bin/public_gallery.cgi?category=379&key= =head1 Lundi (cont'd)

Benchmarking par Abigail

Comment utiliser Benchmark et quelques pièges dans lesquels ne pas tomber.

Exemple: utiliser grep { } ou for pour trouver un element dans un tableau. Suivant que l'élément est ou n'est pas, ou même OU il est dans le tableau, l'un ou l'autre est plus rapide.

Attention aussi au benchmarks non significatifs, parce ce que, par example, le compilateur a ``plié'' (folded) les constantes. Ou carrement vire l'instruction parce que le résultat n'est pas utilisé

Teaching ``Learning Perl'' par Randal Schwartz

Des trucs sur comment enseigner Perl pour instructeurs ``non-professionels''

-
Identifiez le public du cours, ayez du matos en réserve (genre autres présentations)
-
soyez vous-même, ne soyez pas arrogant, essayez d'établir un dialogue avec les participants,
-
déterminer ce que vous vouler mettre dans le cours, et ce qui n'y sera pas (important pour ne pas déborder trop),
-
temps de préparation: 1 day par heure de cours (whaouh! Ca me semble hyper rapide! Même en connaisant bien le sujet je met plutot 2 fois plus que ca)
-
1 point par point (bullet), 6 points par page, 1 ``track'' principal, et identifiez clairement ce qui est ``optionel/bonus'' (ça evite de perdre des gens en route)
-
toujours, TOUJOURS, faire une répétition, même sans public, ça vous dira au moins si vous avez beaucoupt trop ou pas assez de matériel
-
autres méthodes de préparation: séminaires de vente, psycho-analyze, procès (c'est Randal qui parle ;--) et surtout (d'après Randal!) KARAOKE (parce qu'au moins ça entraine a parler (chanter) en public, et comme en général le public applaudit ça rassure et ça aide à éliminer le trac)
-
quand vous buvez pendant le cours... pas à coté du clavier!
-
faites attention à ne pas perdre les participants, essayer d'avoir le maximum de feedback, générez des questions
-
n'oubliez pas de couvrir les points pratique (quand-est-ce qu'on mange, combien de temps on a pour manger...)
-
ne lisez pas les slides, restez face au public

Everyday Damian

Ou: ~damian/bin

Une description des outils que Damian utilise pour se simplifier la vie. Du concret, rien que du concret.

``Things that I do, and thinks that I don't do anymore''

3 niveaux: OS/shell/editeur (unix/tcshell/vi)

Ce qui est important c'est qu'il nous donne l'état d'esprit qui nous fasse coder toutes les tâches répétitives qui nous pourrissent la vie.

vi

Il nous montre sa config vi: expansions des tabs, passage des tabs de 8 a 4, 3,2... en 2 touches, autoformatage de listes, quote automatique, macros pour creer automatiquement la premiere ligne d'un script perl, indenter un bloc, taper print..., ou Dumper..., lancer un script d'un seul caractére. En gros toutes les touches non utilisées par vi sont utilisées. Il a meme tout un tas d'alias pour corriger ses typos:

  ab retrun return
  ab pritn print
  ab jarrko jarkko

Tout ça c'est des petits trucs, mais au bout du compte ça lui fait gagner plein de temps.

Il en reste a vi (et pas vim) parce que ça fait 15 ans qu'il customize son vi, il ne voit pas l'interêt de passer a autre chose et se repayer la ``learning curve''

Dommage que tout ça ne marche pas avec gvim, mais ça donne des idées quand même

l'OS

Utiliaires Mac qu'il utilise: XShelf, Clipboard Sharing, comment activer la boite d'entrée des caractères Unicode, Launcher Script, Youpi Key, uControl (vous pouvez les trouver avec google).

shell

Encore pleins de petits utilitaires qui lui facilitent la vie.

Par example: cd dir aliasé en <cd dir | ls>, ou cd dir1 dir2 dir3 qui fait cd dir1, puis au cd suivant fait un cd ..;cd dir2, etc... puis revient en cd<dir1>. Comme ça cd * permet de passer en revue tous les sous-répertoires. D'une manière générale il ne fait jamais cd pour retourner dans son home directory, donc il utilise cd sans arguments pour tout un tas de trucs, en le re-aliasant à chaque fois. De la même manière il re-aliase vi pour ré-editer le même fichier que la dernière fois, vu que la plupart du temps c'est ce qu'il fait (plus quelques ruses pour le re-positionner au bon endroit), gvi fait un grep, recupere la liste des fichiers contenant le pattern, et l'envoie a vi. Un untar rusé qui rajoute les options qui vont bieng à tar si le fichier est compressé ou uuencodé ou autre, vérifie que le tar crée bien un sous-répertoire (sinon il le crée) (d'après Damian personne ne peut se rappeler les paramêtres de tar de toute façon, il suspecte qu'un cron tourne tous les soirs pour changer les options de tar).

En vrac: un utilitaire de backup (mais il n'utilise pas CVS, booh de la foule ;--), un qui cree des colonnes a partir de données (il patauge, n'arrive pas à s'en servir, ça fait rire tout le monde), ruler, quiaffiche une ``règle'' qui permet de cmpter le nombre de caractères sur une ligne.

Il va finir à l'heure! Incroyable!

Du coup on le force à la fin de Perl6 qu'il n'a pas pu finir ce matin.

Donc...

Le système objet de Perl 6

Les classes dérivées héritent des attributs des classes dont elles dérivent, mais elles n'ont pas accès directement aux attributs, elles doivent passer par les méthodes ``officielles''

submethods: méthodes qui ne sont pas héritées, donc la méthode ne s'applique qu'à la classe dans laquelle elle est définie, mais pas aux classes qui en héritent (ces sous-classes, elles, peuvent hériter de sur-classes)

C'est important, mais je saisis pas vraiment pourquoi... désolé, ça m'apprendra à pas suivre pendant 2 secondes. Ca a à voir avec le méchanisme de création des objets, qui est similaire à celui de Perl 5 par défaut mais qui, comme d'hab, peut être bien plus complexe, avec des crèateurs (mais pas des initialisateurs) pouvant être appelés dans toutes les classes de la hiérarchie (les initialisateurs sont des submethods, donc non hérités)

cool syntaxe:

  my Toto::Tata titi= Toto::Tata.new();

devient

  my Toto::Tata titi= .new();

Bon,je craque, je sors...

Soirée tranquille (relativement): restau italien, qui accepte 25 Perl geeks, puis retour à l'hôtel ou je tape la fin de ce compte-rendu depuis la piscine... la vie est belle =head1 Mardi

PerlThreads - Arthur Bergman

Introduction

Impression générale: les threads c'est dur à utiliser. Artur utilise beaucoup les expressions ``peut-être'', ``ça marche en général''...

On a les problémes ``classiques'' de synchronisation de process, plus d'autres...

Principe de base: on crée une (ou plusieurs, plus utile!), elles tournent, puis on recupere leurs resultats avec join (j'ai pas plus de détail vu que j'ai raté le début de le séance)

Quand une thread est crée les données en scope dans le process qui la crée sont copiées (attention au tableau de 20M qui traîne, même s'il n'est pas utilisé dans la thread!).

async { code } est un raccourci pour créer une thread facilement

Partager des données: déclarer la donée shared

  my $scalar : shared;

Note: partager la donnée après sa création la réinitialize

On peut difficilement partager des descripteurs de fichiers. On ne peut pas partager des variables ``tied''. Si un objet est partagé, chaque thread, quand elle se finit, appelle le destructeur de l'objet.

lock permet de mettre un peu d'ordre. Marche comme un lock sur un fichier une thread peut declarer un lock sur une variable (la portée est le block courant, il vaut mieux avoir un block, sinon la portée est le process entier). Les autres threads qui utilisent lock bloquent lors de leur lock en attendant que la variable soit dé-lockée. cond_wait, cond_signal, cond_wait permettent d'améliorer les perfos à la fin du lock

Une thread ``vide'' prends à peu près 1 M.

Pourquoi utiliser les threads?

Avec tous ces problèmes, plus le fait que ça arrange pas les perfos, pourquoi?

Alternatives: ``event loops'' (POE par exemple), coroutines, lancer d'autres process et partager la mémoire.

Raisons pour utiliser des threads: utiliser tous les processeurs de sa nouvelle machine flambant neuve, ne bloque pas lors des entrée/sorties, c'est portable (même sur z/OS pour Tonton T.), et (d'après Artur!) plus facile à utiliser que fork

Pas de block sur les I/O est d'après lui le plus important point.

Et de toute facon les alternatives ont aussi des problemes de ``race conditions'' (même si il y en a plus avec les threads).

Extreme Programing Tools for Module Authors - Brian Ingerson

La session d'Ingy est en même temps que celle de Léon sur ``Little Languages in Parrot'', zut, bon, tant pis, je verrais Léon a OSCON ou a Paris.

Introduction

Il parle d'abord de kwiki (le kwiki de yapc est à http://yapc.kwiki.org/ )

Il utilise une version de kwiki pour faire les slides de sa présentation. Du coup on peut changer les slides pendant la session, du moins si on peut se connecter au réseau, ma carte wireless semble refuser de se connecter au réseau de la fac aujourd'hui ;--(

Cool, ça lui permet de zoomer facilement, c'est mieux que PowerPoint!

Il propose de renommer Perl/Pythn/Ruby ``Agile languages'' (et ``eXtreme Programing'' ``Agile Programing'', ça évite les problèmes de marque déposée).

Il aime écrire des modules, et il se propose de nous montrer quelques un des outils qu'il utilise pour faciliter le dévelopement.

Il fait du XP (d'après lui Ward, ``l'inventeur'' de XP, fait du Java au boulot et dans ses bouquins, mais du Perl à la maison). Ca n'est pas que de la programation par paire, pour lui le plus important c'est d'écrire les test d'abord. Aussi important est ``saw sharpening'': dès qu'un tâche est répétée, essayer de l'optimiser (c'a se rapproche du talk de Damian hier, affuter ses outils), ``duplication is the Devil''

Les secrets pour qu'un module ait du succès:

- facile à installer - le moins de dépendance possible (boo de la foule) - il doit être puissant, on doit pouvoir le pousser assez loin - un bon nom! - la première version doit être ``juste assez bonne'', cad pas trop de bugs, mais n'a pas besoin d'être parfait - il doit être OO - si possible pluggable - doit s'intégrer bien avec d'autres modules - doit marcher sous Windows - beaucoup de doc! si possible un cookbook) - faire des présentations du module - avoir une mailing liste/wiki/IRC dédié

CGI::Kwiki

Tiens, son Mac plante... niark niark...

Il utilise le wiki pour tout, écrire des idées, des notes mais aussi du code, des tests, bien sûr pour collaborer sur des modules. Son répertoire de dévelopement est /web/cgi-bin. On en fait le tour... je suis pas tout. C'est tout des fichiers .pm.

Il nous montre le code, il est très simple de passer de CGI a mod_perl.

Maintenant démo de comment écrire une extension au wiki: personne n'est jamais complétement satisfait de la manière dont un wiki marche. Donc allons-y, changeons le formateur du wiki.

On veut pouvoir ecrire 'italiques', ''gras``'' et '''gras et italiqué'', apparement c'est à la mode chez les wikis ce mois-ci.

On hérite du formateur de CGI::Kwiki, histoire d'avoir son comportement par défaut. Puis on rajoute un petit handler bold qui récupère le texte et fait s{'''(.*?)'''}{$1}g;. bold est une des méthodes appelées pour le texte, il y en a tout un tas, appelées dans l'ordre.

Un example simplemais qui marche facilement.

Module::Build

2 ou 3 fois pendant la session il a tapé sur MakeMaker (le module qui crée le Makefile pour installer les modules à partir du Makefile.PL).

Pourquoi utiliser un truc lourdingue et hyper-compliqué pour générer un fichier de config pour un utilitaire (make) alors qu'on a Perl sous la moin, par définition.

MakeMaker est si compliqué (pour pouvoir tourner sur 2 millions de plate-formes différentes) qu'on ne peut plus le modifier facilement.

Module::Build, de Ken Williams, remplace MakeMaker en éliminant la dépendance envers make

Il nous raconte l'histoire de CPAN::MakeMaker, qui en gros était un virus qui tentait de remplacer ExtUtils::MakeMaker. Ce plan diabolique a foiré quant Andreas Koenig l'a utilisé pour CPAN.pm .. brèfle c'est une longue histoire, mais au bout du compte CPAN.pm était vérolé.

Après cette tentative infructueuse il a commencé à utiliser Module::Build, bundlé avec les modules qu'il produisait (il n'était pas sur CPAN).

Au bout du compte il à écrit Module::Instal permet d'écrire le Makefile.PL de maniére plus simple et plus puissante qu'avec MakeMaker (par exemple pour installer des scripts en plus du module), et peut générer ou un Makefile.PL pour MakeMaker ou un fichier pour Module::Build... si j'ai bien compris.

Il faut que je regarde ça de plus près pour la prochaîne version de XML::Twig.

Extraits

La présentation est plutôt rigolote (c'est pas facile pour lui d'intégrer les anneries que le public poste dans ses slides), extraits:

``Modules can make you famous'' Quelqu'un à ajoute ``Windows'' à la phrase ``What WindowsXP means to me''... réponse... rien`` He wrote his last program: he refactored himself out of programing RETUSTATSGOE: Ridiculously Easy To Use / Scale To Any Task / Should Be Grokable in One Example ''Perl is everywhere, it's probably in the chair under your butt``

Les Lightning Talks

Il y avait tellement de monde dans la salle que je n'ai pas pu prendre de notes en direct, donc, de mémoire, les plus marquants:

Ken Williams, je crois, nous donne 5 choses a faire absolument: use strict, use DBI, connaître l'OO, savoir taper vite (tiens, Damian sait pas faire ça, (moi non plus) quel looser(s) ;--)

Tedd Olson a une présentation sur ``ajouter la programation de flots (stream programing) dans Perl'', en gros pouvoir faire des pipes (à-la-unix, pas ce que vous croyez...) dans Perl même, pas seulement entre différents process.

Une autre présentation ou il propose de mettre la ponctuation en début de ligne, pas à la fin:

  $i=1
; $i++ unless( $test)
; if( $test) {   
     $i++
;    $i--
  }

Je trouve ça plutôt rigolo... la salle s'agite

Pierre Denis présente D3D, un package 3D en Perl/Gtk, rigolo, il fait tourner des sphéres, des pyramides.

Allison Randal nous fait chanter (comme d'habitude!)

Tim Maher nous explique que le succès de Seattle.pm est du` à son nom officiel: SPUG (et sûrement d'autres trucs mais je rate le début après la pause).

D'autres truc que j'ai oublié... présentation de différents modules.

Liens: http://yapc.kwiki.org/index.cgi?LightningTalks et photos bientôt.

Activités du soir

Donc comme décrits dans mes flashs d'hier soir, ensuite c'est le repas (finalement le traiteur envoie des pizzas Domino pour se rattraper de s'être planté de jour) et la mise aux enchères de divers bouquins, tablier de cuisine (pour le CookBook) et trucs dèbiles: Un Programing Perl signépar les auteurs parts pour $200, Leon Brocard ( http://xmltwig.com/report/yapc_na_2003/acme.jpg ) est adjugépour $160 a Jos et Aevil (qui participent par IRC), Piers vends la place de Leon dans ses CR de Perl 6 (Leon est mentionné chaque semaine dans le CR)... je l'achète... pour Leon, je n'aime pas changer les traditions.

Bref, on s'amuse bien (Piers et Ziggy font du bon boulot: http://xmltwig.com/report/yapc_na_2003/ziggy_piers_1.jpg ) et on récolte des sous pour The Perl Foundation.

(note: les photos font 1M chacune, je ferais une galerie propre plus tard)

Ensuite toute la salle se translate jusqu'au ciné du coin ou Kevin a loué une salle pour qu'on puisse voir The Matrix Reloaded. Le film est pas brillant (mais bon, c'est pas mon genre non plus) mais les commentaires de la salle le rendent au moins amusant.

Bon, après au lit, je cause demaing.


Mercredi

Matin

Un titre générique parce que j'ai raté le matin pour cause de fin de préparation de ma présentation.

Juste un bout de Ken Willians présentant Machine Learning, intéressant, sur le ``Data Mining'' et la création d'arbres de décisions pour SpamAssassin.

Il déborde et je commence mon talk en retard. Ca va a peu près sauf que je manque de temps et je ne peux pas montrer proprement les examples de code. Surtout que ce !@#$%&* de OpenOffice Impress ne me laisse pas reprendre la présentation au milieu, il faut que je recommence au début... grrrr...

Le discours de clôture de Damian

Il rapelle les sujets dont il a parlé au cours de ses discours de cloture précédents. L'écran est rempli.

Donc titre: ``Dr Conway Travelling Carnival of Small Miracle''

Surtout le public lui a réclamé ``Pas de physique cette année!''

Donc il a du chercher un sujet d'inspiration autour de lui:

Télé: il commence par décrire une épisode particulièrement tragique de Fear Factor (on a ça chez nous?): Spécial Saint-Valentin ou les couples doivent s'embrasser avec des cafards géants plein la bouche.

Web: CNN, la grosse histoire du jour était le sommet de la paix... entre les McCoy et les Hatfields (130 ans de haine familiale entre eux).

Damian s'excuse... Larry nous aurait pondu un discours philosophique et plein d'inspiration, et surtout parlant de Perl

En panne d'inspiration il se tourne vers les magazines:

Oprah magazine... parler du coté féminin de Perl 6?... non, Cosmo... non... Rolling Stone... avec Justin Timberlake en photo... NON! des magazines masculins (non Nat, pas ceux la!) Flex Magazine body building.. Larry en couverture!... quelques couvertures de magazines avec Ingy en couverture, MJD en moine, la tête rasée... Sports Illustrated Swinsuit Edition.. non, il n'y a jamais qu'un seul sujet dans ce magazine...

Idée: National Geographic! Respectable, plein d'articles chiants sur lequel broder, il nous fait le sommaire en changeant le titre.

Mais quand même, Sports Illustrated Swinsuit Edition c'est bieng aussi, il veut

 my respected & hot $magazine;  # en perl 6

Du coup il a fait Google +National +Geographic +Swimsuit +Edition

Bang! Ca existe! http://magma.nationalgeographic.com/ngm/swimsuits/postcard01.html

Donc le reste de la présentation est basé sur les photos du National Geographic Swimsuit Edition!

Donc partie sérieuse du talk. A 13h hier il decide donc d'écrire 12 modules, basés sur les articles du NGSE

makeslide

makeslides crée une présentation à partir d'une version texte (plus simple que pod), soit en texte (il présente maintenant en vi), soit html, soit pod, soit un outline html, qu'on peut charger dans... PowerPoint.

Il a fait ça rapidement, donc maximum réutilisation: Getopt::Declare (un module à lui, pas mal si je me souviens bien), Text::AutoFormat, IO::File

application.pm

Pour illustrer un peu cette présentation, l récupère une des photos du magazine et nous la montre... dans vi... en ascii art... pas vraiment excitant.

Donc maintenant un module qui manipe le Mac pour lui faire afficher des images, accéder des sites web, jouer ... brèfle, lancer des applis depuis Perl, en utilisant la commande open du Mac (ça fait 3 lignes)

???

Arrgh... j'ai ratéle nom du module!

Tous les modules qui font des ``progress bars'' sur CPAN suXent, trop lourds, on est pas chez Java ici! Donc un module a-la-Damian, qui fait pleins de choses... simplement. Très cool.

Tenacious::Undef

Une video de Tenacious D, les rockers geek!

Donc un module tenace, qui implemente une logique a 3 etats: vrai, faux et ``errrmmm'' (joué par undef). vrai && errrmm -> errmm, false && errrmm -> errmmm, 1 + errrmmm -> errrmm... errrmmm, aka undef est donc estrèmement tenace, d'ou le nom! Une fois qu'on a fait Undef $i il reste undef, quoiqu'il arrive! Le tout en 150 octets! Et en utilisant sub new { bless []};, et overloading toutes les méthodes sauf string-ification (qui retourne undef)

Memoize::ITU3X

Un module qui explique comment il nous a fait croire qu'il avait trouvé un moyen de faire des opérations en temps nul il y a 2 ans à YAPC Montréal (fibonacci et juste un rand, pour montrer qu'il ne memoize pas).

Bien sur il trichait, en fait il memoize, mais uniquement si on appelle 3 x la fonction avec les mêmes arguments (d'ou I Tell You 3 X, Jacques a dit en français). L'architecture derrière, pour décider ce qu'il doit mémoizer, est assez complexe.

Manifest::Constants

Laisse le programmeur déclarer des constantes... et sort une erreur pour TOUTE utilisation d'une constante dans le code (TOUTE!)

IO::Prompt

Un module pour faire croire aux élèves qu'il tape du texte alors qu'en fait il vient d'une section DATA, pour éviter de perdre du temps à taper, complet avec possibilité de ralentir la ``saisie''pour les mots difficiles, et erreurs aléatoires.

Perl6::Junctions

Et oui! On peut donc utiliser any, all etc... en Perl 5, plus rapidement que avec Quantum::Superposition. Très cool. Y compris possiblitè d'avoir des jonctions d'objets et d'appeler une méthode, appliquée a tous les objets (même s'il ne sont pas dans la même classe)

Text::AutoFormat

Une version améliorée

Conclusion

Au bout du compte, après 18 heuresde suite d'écriture de modules et de slides... la présentation était prête.

Le Film

Le traditionnel film de YAPC, par gnat, rigolo, l'URL sera postée plus tard: http://www.perl.org/yapc/2003/movies/redux/

Town Hall

Jeff, un des organisateurs va poster toutes ses notes sur le wiki.

Quelques remarques: une mailing liste est bien, un (k)wiki aussi (ça peut être intéressant pour Paris). Plus il y a de conférences mieux c'est (4 YAPC cette année, NA,Canada, Israel et Europe). Par contre il est possible que YAPC, dans le futur soit en hiver, pour ne pas surcharger la ``saison des conférences''.

Le public aurait aimé des ``tracks'' par niveau. C'était difficile d'après les organisateurs, la plupart des présentations étaient à un niveau ``moyen''.

Pendant le meeting je reçois le mail me disant que mon talk sur les modules XML est accepté a YAPC Europe... Yipee! il ne me reste plus qu'à l'améliorer légèrement (genre changer toute la deuxième moitiè... ;--(

La soirée

Soirée vraiment sympa, dans une baraque gigantesque, donnant sur la marina, le genre de château ou` habitent les heureux gagnants de l'ère .com... Geeks ou pas, la piscine et le jacuzzi font le plein, la vie est belle.

Le lendemain retour à la réalité...