La ronde des questions

| Aucun Commentaire | Aucun Trackback

Fin du mois d'août. Fin des vacances1, et avant de commencer une nouvelle année académique, il est nécessaire de terminer la précédente. Et donc, voici venu le temps des secondes sessions.

En tant que prof, j'aime bien les examens oraux, et j'aime bien les questions tirées au hasard, c'est pour cela que j'avais développé un petit script CGI en Perl. Rien de bien excitant.

Mais durant mes lectures d'été, je suis tombé sur un billet d'un mongueur français traitant d'une autre autre manière de faire des applications web. Ce mongueur, c'est sukria, et cette autre manière de faire, c'est Dancer2.

Bref, cela m'a donné envie de passer d'un script CGI à une application web autonome ! La voici :

#!/usr/bin/env perl

use strict;
use warnings;

use YAML;
use Dancer;
use Template;

my $file = shift(@ARGV) or die "Usage: $0 questions.yml";
my $questions = YAML::LoadFile($file);

get '/random' => sub {
    my $random_index = int rand scalar(@{$questions});
    my $question = $questions->[ $random_index ];
    
    template 'random' => { question => $question, number => $random_index + 1 };
};

Dancer->dance();

Et donc, je lance cette application à partir d'une ligne de commande :

$ questions_roll.pl /path/to/questions.yaml

Et je peux voir les lignes suivantes :

~ >> Listening on 127.0.0.1:3000 == Entering the development dance floor … ~

Et donc, en pointant mon navigateur à l'adresse http://localhost:3000/random, je peux voir s'afficher une question au hasard.

Vraiment simple, non ? Tellement simple qu'il m'est déjà venu quelques idées d'améliorations. Ce ne sera probablement plus pour cette session d'examen, mais je garde ces idées au chaud.

Notes :

1 enfin, ce qui me tient lieu de vacances

2 en fait, Dancer est lui même une réécriture de Sinatra en Perl. The Pragmatic Bookshelf a édité deux screencasts sur ce sujet. Je n'ai pas encore eu le temps de les regarder, mais cela ne tardera pas !

Aucun Trackback

URL de Trackback : http://blog.bjornoya.be/mt-tb.cgi/8

Laisser un commentaire

À propos de cette note

Cette page contient une unique note de manu publiée le 30 août 2009 23h20.

Cybook Gen3 et le web est la note précédente de ce blog.

OSDCfr 2009 est la note suivante de ce blog.

Retrouvez le contenu récent sur l'index principal ou allez dans les archives pour retrouver tout le contenu.

Pages

Powered by Movable Type 4.261