[Toulouse-pm] CR2

Michel Rodriguez mirod at xmltwig.com
Mon Jun 16 23:16:05 CDT 2003


Premier Jour (cont'd)
  Benchmarking par Abigail
    Comment utiliser "Benchmark" et quelques pieges dans lesquels ne pas
    tomber.

    Exemple: utiliser "grep { }" ou "for" pour trouver un element dans
    un tableau. Suivant que l'element est ou n'est pas, ou meeme 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 "plie" (folded) les constantes. Ou
    carrement vire l'instruction parce que le resultat n'est pas utilise

  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 reserve (genre
        autres presentations)

    -   soyez vous-meme, ne soyez pas arrogant, essayez d'etablir un
        dialogue avec les participants,

    -   determiner ce que vous vouler mettre dans le cours, et ce qui
        n'y sera pas (important pour ne pas deborder trop),

    -   temps de preparation: 1 day par heure de cours (whaouh! Ca me
        semble hyper rapide! Meme 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"
        (ca evite de perdre des gens en route)

    -   toujours, TOUJOURS, faire une repetition, meme sans public ca
        vous dira au moins si vous avez beaucoupt trop ou pas assez de
        materiel

    -   autres methodes de preparation: seminaires de vente,
        psycho-analyze, proces (c'est Randal qui parle ;--) et surtout
        (d'apres Randal!) KARAOKE (parce quau moins ca entraine a parler
        (chanter) en public et comme en general le public applaudit ca
        rassure et ca aide a eliminer le trac)

    -   quand vous buvez pendant le cours... pas a cote du clavier!

    -   faites attention a ne pas perdre les participants, essayer
        d'avoir le maximum de feedback, generez des questions

    -   n'oubliez pas de couvrir les points pratique (quand-est-ce quon
        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 quil nous donne l'etat d'esprit qui nous
    fasse coder toutes les taches repetitives 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 caractere. En gros toutes les touches non
    utilisees par vi sont utilisees. Il a meme tout un tas d'alias pour
    corriger ses typos:

      ab retrun return
      ab pritn print
      ab jarrko jarkko

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

    Il en reste a vi (et pas vim) parce que ca fait 15 ans quil
    customize son vi, il ne voit pas l'interet de passer a autre chose
    et se repayer la "learning curve"

    Dommage que tout ca ne marche pas avec gvim, mais ca donne des idees
    quand meme

   l'OS
    Utiliaires Mac quil utilise: XShelf, Clipboard Sharing, comment
    activer la boite d'entree des caracteres 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" aliase 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 ca cd * permet de passer en
    revue tous les sous-repertoires. D'une maniere generale 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 a
    chaque fois. De la meme maniere il re-aliase "vi" pour re-editer le
    meme fichier que la derniere fois, vu que la plupart du temps c'est
    ce quil 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" ruse qui
    rajoute les options qui vont bieng a "tar" si le fichier est
    compresse ou uuencode ou autre, verifie que le "tar" cree bien un
    sous-repertoire (sinon il le cree) (d'apres Damian personne ne peut
    se rappeler les parametres de tar de toute facon, il suspecte quun
    "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 donnees (il
    patauge, n'arrive pas a s'en servir, ca fait rire tout le monde),
    "ruler", quiaffiche une "regle" qui permet de cmpter le nombre de
    caracteres sur une ligne.

    Il va finir a l'heure! Incroyable!

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

    Donc...

  Le systeme objet de Perl 6
    Les classes derivees heritent des attributs des classes dont elles
    derivent, mais elles n'ont pas acces directement aux attributs,
    elles doivent passer par les methodes "officielles"

    submethods: methodes qui ne sont pas heritees, donc la methode ne
    s'applique qua la classe dans laquelle elle est definie, mais pas
    aux classes qui en heritent (ces sous-classes, elles, peuvent
    heriter de sur-classes)

    C'est important, mais je saisis pas vraiment pourquoi... desole, ca
    m'apprendra a pas suivre pendant 2 secondes. Ca a a voir avec le
    mechanisme de creation des objets, qui est similaire a celui de Perl
    5 par defaut mais qui, comme d'hab, peut etre bien plus complexe,
    avec des createurs (mais pas des initialisateurs) pouvant etre
    appeles dans toutes les classes de la hierarchie (les
    initialisateurs sont des "submethod"s, donc non herites)

    cool syntaxe:

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

    devient

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

    Bon,je craque, je sors...

    Soiree tranquille (relativement): restau italien, qui accepte 25
    Perl geeks, puis retour a l'hotel ou je tape la fin de ce
    compte-rendu depuis la piscine... la vie est belle


Michel Rodriguez
Perl &amp; XML
http://www.xmltwig.com




More information about the Toulouse-pm mailing list