février 24, 2004

Bip-Biiiip-Bip-bip-biiiiiip!

Un module Perl qui transforme une chaine en un fichier midi qui joue le code morse correspondant.

Posted by at 01:45 PM | Comments (0)

Extraire les liens d'une page web

Le module HTML::LinkExtor permet d'extraire les liens données dans une page web.

C'est une façon rapide et facile d'obtenir la liste des adresses d'une page, ou de savoir le chemin des images qui y sont référées. On peut alors facilement télécharger ces documents pour utilisation future à votre discrétion...

Le module suppose que vous lui donnez accès à un document HTML : pour extraire les adresses à partir d'un URL, il suffit de le coupler avec LWP. La documentation de HTML::LinkExtor donne un exemple de ce genre d'utilisation.

Posted by at 01:27 PM | Comments (0)

février 20, 2004

3 règles pour du beau et bon Perl

Trouvé sur slashdot dans la discussion qui a suivi le texte de Yahoo! News.

 1) Just because you can, doesn't mean you should.  2) One line of code means one operation or idea. MAAAAYBE 2. See point #1.  3) If there is a cute, short, hackerish way to    do something, and a longer, more boring, more     explicit way to do the same thing, ALWAYS pick     the boring way. Anyone who looks at your code     in six months will be very pleased (instead of     ready to kill you).  

Posted by at 12:28 PM | Comments (0)

Perl 6 dans Yahoo! News

La future-nouvelle version de Perl, Perl6, et son engin interne Parrot font parler d'eux dans Yahoo! News.

Bizarrement, c'est dans la section "business" : on pense plus à l'aspect économique de l'événement, j'imagine, même si le texte parle en fait plus de l'amélioration technique (bon, de très haut niveau, c'est vrai...).

Le Dr Conway, qui est mentionné dans l'article, est le "savant fou" qui a fait les version de Perl en Latin et en Klingon dont je vous ai parlé... :)

Posted by at 09:04 AM | Comments (0)

février 18, 2004

Notes, cours 4

Disponible à l'endroit habituel

Les notes du cours 3 on aussi été modifié puisque la partie "librairie" a été déménagé dans ce cours. Je vais tâcher de passer le moins de temps possible sur ca en classe parce que...

Ensuite : introduction aux expressions régulières!

Posted by at 09:21 PM | Comments (0)

février 16, 2004

Poésie Perl

De la poésie écrite en Perl?

Voir les gagnants chez ActiveState.

Posted by at 01:23 PM | Comments (0)

février 12, 2004

Notes, cours 3

Les notes du cours no 3 sont disponibles.

Les expressions régulières sont remises à la semaine prochaine : je préfère garder tout ça dans un beau bloc plutôt que coupé en deux. On va plutôt terminer les fonctions intégrées puis voir comment faire/utiliser des librairies.

Posted by at 11:11 AM | Comments (0)

février 11, 2004

Un texte d'initiation au Perl

Disponible sur FTLS.org

Le texte est, il me semble, clair, pas trop long, et en français. :)

Donc, quelque chose d'intéressant à parcourir, lire, ou même imprimer comme "référence rapide"

Posted by at 12:15 PM | Comments (0)

février 07, 2004

Notes de cours : cours 1 et 2

Voici les notes de cours utilisés dans les deux cours précédent. Comme "promis", elles sont plutôt succinctes, particulièrement celles du premier cours.

Je vous suggère d'utiliser ces notes comme un rappel de la matière vue et comme un guide pour savoir la matière à lire et comprendre dans les sites de référence donnés sur ce site ou dans le cours.

Le premier cours et le second cours.

Posted by at 03:17 PM | Comments (0)

Énoncé du TP1

Travail pratique 1 ( 10% de la note finale )

Numéro 1 (2 points) :
Écrire un générateur de mot de passe : lorsque lancé, le programme va demander à l'usager le nombre de caractères voulus dans le mot de passe puis il va générer un mot de passe au hasard et l'afficher à l'écran.

Numéro 2 (5 points) :
Écrire un clone de la commande unix wc : compter le nombre de lignes, mots et charactères des fichiers dont le nom est passé en paramètres. Il faut supporter les options -l, -w, -c, qui permettent de limiter les réponses données aux lignes, mots et caractères, respectivement (une seule option sera donnée à la fois).

Numéro 3 (3 points) :
Faire une adaptation du programme du numéro 2 pour pouvoir recevoir indifféremment un nom de fichier ou de répertoire en paramètres : s'il s'agit d'un répertoire, il faudra alors donner les statistiques pour l'ensemble des fichiers contenu dans le répertoire.

L'énoncé est aussi disponible en format PDF, OpenOffice (faire "shift-click" pour sauvegarder) ou Word.

Posted by at 02:55 PM | Comments (0)

La documentation de Perl

La documentation de Perl est disponible à de nombreux endroits, à commencer par votre propre machine (via man perl et les pages qui y sont référées)

Un excellent endroit pour retrouver la documentation de diverses versions en version Web recherchable est chez perldoc.com

La documentation de Perl est également disponible en français à divers endroits, dont notament perl-gratuit.com.

A voir tout particulièrement au niveau ou nous en sommes pour le moment : les pages perlfunc et perlop, qui décrivent respectivement les fonctions intégrés et les opérateurs. Disponibles en francais aussi, bien sur : perlop, perlfunc

Posted by at 02:08 PM | Comments (0)

février 06, 2004

Chameau!

Un bout de code intéressant sur un T-shirt de chez ThingGeek.com

Amusez-vous à copier ce code dans un fichier pour voir ce qui va en sortir.. :)

Oh, et en passant, si le chameau est un peu croche, c'est "normal" : c'est sans doute une question de police d'écriture... Regardez le source du document, ou encore copier/coller dans un éditeur du genre de Vi.

 #!/usr/bin/perl -w                                     use strict;                                            $_='ev                                        al("seek\040D            ATA,0,                  0;");foreach(1..2)        {;}my               @camel1hump;my$camel;   my$Camel  ;while(             ){$_=sprintf("%-6 9s",$_);my@dromedary           1=split(//);if(defined($ _=)){@camel1hum        p=split(//);}while(@dromeda  ry1){my$camel1hump=0      ;my$CAMEL=3;if(defined($_=shif         t(@dromedary1    ))&&/\S/){$camel1hump+=1<<$CAMEL;}        $CAMEL--;if(d   efined($_=shift(@dromedary1))&&/\S/){       $camel1hump+=1  <<$CAMEL;}$CAMEL--;if(defined($_=shift(      @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(      defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME      L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h       ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@       camel1hump){chomp;$Camel=$_;tr/LJF7\173\175`\047/\061\062\063       45678/;tr/12345678/JL7F\175\173\047`/;$_=reverse;print"$_\040        $Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y/LJF7\173\17         5`\047/12345678/;tr/12345678/JL7F\175\173\047`/;$_=reverse;p          rint"\040$_$Camel\n";}#japh-Erudil';;s;\s*;;g;;eval;   eval            ("seek\040DATA,0,0;");undef$/;$_=;s$\s*$$g;(   );;s              ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__   \124                \1   50\145\040\165\163\145\040\157\1 46\040\1  41\0                     40\143\141  \155\145\1 54\040\1   51\155\  141                     \147\145\0  40\151\156 \040\141    \163\16 3\                      157\143\   151\141\16  4\151\1     57\156                      \040\167  \151\164\1   50\040\      120\1                      45\162\   154\040\15    1\163\      040\14                      1\040\1   64\162\1      41\144       \145\                      155\14    1\162\       153\04        0\157                       \146\     040\11     7\047\         122\1                       45\15      1\154\1  54\171          \040                       \046\         012\101\16            3\16                       3\15           7\143\15             1\14                       1\16            4\145\163           \054                      \040            \111\156\14         3\056                     \040\         125\163\145\14         4\040\                     167\1        51\164\1  50\0         40\160\                   145\162                              \155\151                 \163\163                                \151\1               57\156\056  # camel code, copyright 2000 by Stephen B. Jenkins # The use of a camel image with the topic of Perl  # is a trademark of O'Reilly & Associates, Inc.  # Used with permission.  

Posted by at 10:30 AM | Comments (0)

février 04, 2004

Livre Perl "gratiste" en ligne

Le livre Beginning Perl de Simon Cozens est disponible gratuitement (et légalement...) en ligne.

L'auteur est un "gros canon" du monde Perl. Pour vous donner une idée, c'est lui qui roule le site perl.com et il présente une collection de modules impressionnantes sur le CPAN.

Posted by at 12:42 PM | Comments (0)

février 02, 2004

Éditeur pour Perl

Ok, la grande question de trouver un éditeur de texte approprié pour le développement de code Perl. Comme je l'ai déjà dit, n'importe quel éditeur de texte va faire l'affaire. Certains vont cependant préférer des outils plus complet, et donc une IDE plutôt qu'un simple éditeur.

Le projet Eclipse Perl Integration comblera vraisemblablement ce besoin. Ce projet consiste en une suite d'outils et de plugins qui complètent et étendent les fonctionnalités de l'environnement de développment Eclipse, développé à l'origine pour faire du développement Java.

Eclipse se défini comme suit :

Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.

Visitez le site d'Eclipse pour en savoir plus.

Cet environnement me semble un bon choix puisqu'il n'est pas limité à un seul langage : pas besoin de "réapprendre" son environnement de développement si on doit faire un projet dans un autre langage.

Par contre, pour faire un "quick-edit" sur un serveur Unix/Linux, apprendre ne serait-ce que la base de Vi/Vim est un must... :oP

Posted by at 01:17 PM | Comments (0)

février 01, 2004

Quel éditeur utiliser?

Un script Perl peut être écrit dans n'importe quel éditeur de texte, du moment que ce soit un éditeur de texte, et non un logiciel de traitement de texte.

Il n'existe pas vraiment d'éditeur aussi complet qu'un JBuilder pour Perl, mais il y en a qui s'en approche beaucoup.

Un bon point de départ pour trouver des éditeurs "Perl Friendly" se trouve sur Perl.com

Cette liste date malheureusement un peu... A vu de nez, il me semble qu'il manque des logiciels qui ne font pas parti de la liste et qui sont très OK. Je sais que j'en ai de caché dans mon historique de conversation ICQ avec un ami, je vérifie lundi.

Dans ceux que je connais et qui sont bien, il y a Komodo, Editplus, Vim, Emacs/XEmacs, PerlEdit ( qui n'est pas pas dans la liste de Perl.com).

Le challenge est de trouver quel niveau on veux payer.

Il existe un bon nombre d'éditeurs/IDE de type shareware ou commercial, et évidemment un grand nombre d'outils OpenSource.

Personnellement, j'utilise Vim (un clone de vi), j'ai longtemps utilisé Xemacs ou Emacs. Ces éditeurs demandent un certains investissement de temps et d'énergie pour apprendre à les utiliser à leur plein potentiel (par exemple, Vim peu être configuré avec un interpréteur Perl intégré qui permet d'utiliser Perl pour manipuler du texte dans son éditeur (pas seulement du code Perl : n'importe quel texte).

Je vais chercher un peu plus et regarder ce qui existe pour faire de meilleures suggestions mardi.

Mais à la base, c'est simple : n'importe quel éditeur fait l'affaire...

Posted by at 02:35 PM | Comments (0)

Bienvenue sur le site du cours 420-ID5

Vous pourrez suivre les activités du cours sur ce site, tout au long de la session.

Bonne session!

Posted by at 02:32 PM | Comments (0)