Statistiques d'utilisation xo
Sommaire
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 :
- 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 ;
- 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) ;
- 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…) ;
- 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)
- Démarrer le XO normalement sans la clé,
- Mettre la clé USB,
- Lancer l'activité terminal,
- 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.
- 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.
- Taper la commande « ./do_backup.sh » suivi de ENTREE. Cela lance la procédure.
- 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.
- Attendre plusieurs minutes (cela dépend de la taille du journal).
- 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).
- Aller dans le Journal en appuyant sur la touche Journal du XO
- 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é.
- Enlever la clé.
- 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)