[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 & XML
http://www.xmltwig.com
More information about the Toulouse-pm
mailing list