Statistiques d'utilisation xo

De OLPC France Wiki
Aller à : navigation, rechercher

Objectif

L'objectif de ce projet est avant tout d'analyser l'utilisation des XO mais aussi des activités Sugar à Nosy Komba.

Aucune information personnelle ne sera disponible, hormis les date de dernière utilisation des différentes activités. Il est tout à fait possible de relier ses données à des numéros de XO et non pas à des nom d'élèves.

D'un côté il est intéressant d'obtenir ces statistiques, d'un autre les production effectives des élèves peuvent servir aux enseignants. Nous différencions ce projet en 4 étapes :

  1. générer les sauvegardes. Ceci peut être fait à la main (2010 te 2011) ou par le serveur XS. (TODO link). Ces sauvegardes génèrent une archive contenant le journal Sugar et les données associées ;
  2. passer les archives à la Moulinette qui nous sortira les productions des élèves au bon format d'un côté, et les statitiques dans un format facilement utilisable (CSV) ;
  3. traitement du fichier brut CSV généré à l'étape précédente avec un outil plus approfondit pour génerer des graphiques et autres (feuille de calcul, R…) ;
  4. retour d'expérience afin d'améliorer l'étape 1, pourquoi pas en ajoutant un log de démarrage des XO pour connaître leur temps d'utilisation.

Générer les sauvegardes

Par XO, récupérer le journal et les données associées, ainsi que le numéro de série du XO. Attention, il y a deux méthodes d'enregistrement des journaux en fonction de la version de Sugar.

Deux méthodes sont envisageables.

  • La sauvegarde manuelle, il faut passer sur chaque XO. Méthode utilisée en 2010 et 2011. En 2011 l'équipe (Laura) a utilisée un script bash permettant d'extraire les données et compresser le contenu dans une archive. L'utilisation de ce script est aisée, l'enregistrer sur une clef USB, et l'exécuter. La procédure est passée sur la liste de diffusion (NK et membre@) le 07/06/2011). Elle doit pouvoir être simplifiée si c'est ce qui est retenu pour 2012. Voir ci-dessous
  • La sauvegarde par serveur XS, c'est lui qui fait tout ! À expérimenter si possible pour 2012.

Procédure de sauvegarde manuelle

Procédure provenant d'un courriel de Lionel sur la liste de diffusion (non publique)

  1. Démarrer le XO normalement sans la clé,
  2. Mettre la clé USB,
  3. Lancer l'activité terminal,
  4. Taper la commande « ls /media » suivi de ENTREE. L'objectif est de trouver le nom de la clé USB. Celui-ci s'affiche en vert (XOUSB sur l'exemple). Une fois que vous le connaissez (après le premier backup), vous pouvez sauter cette étape.
  5. Taper la commande « cd /media/NOMDELACLE » suivi de ENTREE. Remplacer « NOMDELACLE » par le nom récupéré ci-dessus. Cette commande positionne le répertoire courant sur la clé. Attention : dans toute les commandes il faut respecter les majuscules et minuscules.
  6. Taper la commande « ./do_backup.sh » suivi de ENTREE. Cela lance la procédure.
  7. Le message suivant s'affiche :
   ---- Starting do_backup script: lun jun 6 17:57:29 UTC 2011 ----
   Backuping XXX
   Backup in progress

La date affichée est la date du backup. XXX est le nom de l'enfant.

  1. Attendre plusieurs minutes (cela dépend de la taille du journal).
  2. Le message suivant s'affiche à la fin :
   The backup is in YYYYYYYYY

YYYYYYYYY est le numéro de série du XO. C'est aussi le nom du répertoire qui a été créé sur la clé. Dans le cas ou le numéro de série n'a pas été trouvé, la date sera utilisée (au format timestamp, le nombre de seconde écoulée depuis le 01/01/1970).

  1. Aller dans le Journal en appuyant sur la touche Journal du XO
  2. Repérer la clé USB en bas à gauche, appuyer dessus pour faire apparaître le menu et sélectionner « Démonter ». C'est très IMPORTANT pour être sûr que le fichier de backup sera bien sur la clé.
  3. Enlever la clé.
  4. Eteindre la machine normalement.

P.S. : Pour faire une clé de backup, il suffit de copier le fichier « do_backup.sh » à la racine d'une clé USB quelconque.

En 2011, de nombreuses sauvegardes sont triées par classe et nom, nous avons donc l'arbre suivant (les noms ont été cachés et le nombre de résulat abbrégé) :

   backupNK11/
   |-- CE
   |   |-- nom1
   |   |   `-- SHC84600C22.bz2
   |   |-- nom9
   |   |   `-- SHC846011F8.bz2
   |   `-- nom4
   |       `-- SHC842010AC.bz2
   `-- CMs
       |-- nom2
       |   `-- SHC84201202.bz2
       |-- nom7
       |   `-- SHC84601207.bz2
       |-- nom0 CM
       |   `-- SHC84601221.bz2
       |-- nom cm1
       |   `-- SHC8420145F.bz2
       `-- noma
           `-- SHC84201108.bz2


Passer les archives à la Moulinette

Une nouvelle moulinette est en développement ! Pour participer, voyez avec Florent !

La moulinette prends en entrée les sauvegardes (archives bz2), et produit en sortie un fichier de statistique au format CSV. Le développement actuel correspond à un second format de sortie, les données elles-même avec la bonne extension.

Tester la moulinette

Le code est sur http://git.sugarlabs.org, il vous faut le récupérer, installer l'environnement de développement, puis tester…

Récupérer les sources :

   $ git clone git://git.sugarlabs.org/datastore_reader/datastore_reader.git

Installer les dépendances :

   $ wget http://peak.telecommunity.com/dist/ez_setup.py
   $ python ez_setup.py 
   # easy_install virtualenv

Mettre en place l'environnement de test :

   $ virtualenv -p python2.7 py_env
   $ source py_env/bin/activate
   $ cd datastore_reader/
   $ python setup.py develop 

Tester

   $ moulinette

À terme, seulement cette dernière étape (moulinette) sera nécessaire, toutes les étapes précédentes ont pour objectif de développer la moulinette, ou la tester. Les sauvegardes doivent être dans le sous répertoire data/. Le résultat CSV sera dans data/out/.


En développement

La seconde sortie, avec extensions aux données exploitables (proposition) :


   NK11/
   |-- SHC84600C22
   |   |-- 
   |   |   `-- document textes
   |   `-- 
   |       `-- dessins
   `-- SHC84601221
        |-- 
        |   `-- document textes
        `-- 
           `-- dessins


Traitement du fichier brut

Équipe : Lionel, Pierre, Bastien… In progress process


Format des données à exploiter

Le fichier CSV contient les informations suivantes :

   serial;activity;activity_id;title_set_by_user;title;mime_type;timestamp;mtime;uid;vid;keep;icon-color


Note : si on ne se base que sur la date d'utilisation des dernières activités, on ne peut pas être certain qu'elles n'ont pas été utilisée avant.. Si tous font la même chose, nos stats deviennent incorrectes.

Voir sauvegarde d'un log de démarrage/extinction afin de connaitre également la durée d'utilisation (/var/log, attention log rotatif, gérer les sauvegardes en fonction).



Retour d'expérience

Prochain retour en septembre


Ressource

http://wiki.laptop.org/go/Journal_Entries

http://en.flossmanuals.net/make-your-own-sugar-activities/ch019_fun-with-the-journal/

http://git.paraguayeduca.org/gitweb/users/rgs/xs-scripts.git?js=1 (stats pour 0.84)