Statistiques d'utilisation xo : Différence entre versions

De OLPC France Wiki
Aller à : navigation, rechercher
(draft)
(mise à jour !)
 
Ligne 13 : Ligne 13 :
  
 
= Générer les sauvegardes =  
 
= 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 [http://wiki.laptop.org/go/Journal_Entries 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 [http://git.sugarlabs.org/jparse/jparse/blobs/master/do_backup.sh 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 =  
 
= Passer les archives à la Moulinette =  
 +
Une nouvelle moulinette est en développement ! Pour participer, voyez avec [http://git.sugarlabs.org/~florent 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.
  
= Traitement du fichier brut =  
+
== Tester la moulinette ==
  
= Retour d'expérience =
+
Le code est sur http://git.sugarlabs.org, il vous faut le récupérer, installer l'environnement de développement, puis tester…
'' Prochain retour en septembre ''
+
  
 +
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 (<tt>moulinette</tt>) 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 <tt>data/</tt>.
 +
Le résultat CSV sera dans <tt>data/out/</tt>.
 +
 +
 +
== 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 <strike>progress</strike> process
  
= Propositions de solution =
 
Apparement, il y a [http://wiki.laptop.org/go/Journal_Entries deux méthodes] d'enregistrement des journaux.
 
* Quels sont les données sauvegardées par le XS ? Conservation du propriétaire des fichiers pour identification de l'XO (sinon, revoire le rsync ou le cp..) ?
 
  
 
== Format des données à exploiter ==
 
== Format des données à exploiter ==
Sur les XO récents (ou OS mis à jour), le ''datastore'' qui contient les informations utiles est sous [http://shaiton.fedorapeople.org/olpc/datastore.tgz cette] forme.
+
Le fichier CSV contient les informations suivantes :
Chaque répertoire correspond à une activité particulière (le nom est haché, ~aléatoire), dans lequel on trouve le répertoire qui nous intéresse, ''metadata''.
+
Ce qui nous intéresse au minimum :
+
* '''timestamp''' correspond à la date de dernière utilisation (format timestamp, le nombre de secondes passées depuis le 01/01/1970).
+
* '''title''' est le nom de l'activité
+
* '''filesize''' est la taille des données enregistrées dans cette activité (là je m'avance, à vérifier). Ça évite de prendre en compte une activité qu'on ouvre mais dont on ne se sert pas.
+
  
 +
    serial;activity;activity_id;title_set_by_user;title;mime_type;timestamp;mtime;uid;vid;keep;icon-color
  
Dans l'archive envoyée par françois, tout est dans des dossier dont le nom correspond à un timestamp. C'est juste ?
 
  
  
Ligne 45 : Ligne 138 :
 
  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).</div>
 
  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).</div>
  
= Idées de réalisation =
 
Plusieurs choix possibles, ajoutez votre idée, nous trierons ensuite.
 
  
== Centralisation des données ==
 
* Ajout de toutes les données dans une base de donnée sur le XS, exploitation ensuite
 
* Traitement de toutes les données dans un fichier brut format ASCII pour exploitation ensuite (CSV ou autre)
 
  
== Exploitation des données ==
 
* Au format qui va bien pour exploitation avec l'outil de statistiques [http://www.r-project.org/ R]
 
* Au format Open Document pour visualisation avec Excel ou équivalent (corréler les données et créer des graphique doit être possible sans trop de problème)
 
* Au format HTML ou PDF
 
* Au format brut ASCII pour qu'une personne courageuse fasse du copier coller dans un tableau Excel... (CSV ou autre)
 
* CSV pour les intégrer dans un tableau sur org-mode puis export HTML et traitement R => [http://orgmode.org/worg/org-tutorials/org-R/org-R.html tuto]
 
  
Au final, on devrait pouvoir corréler les données pour voir quand sont utilisés les XO, combien simultanément, quelles activités simultanément (on suit le professeur, on travaille sur ce qu'il nous demande), tris suivant les horaires (école/maison)). Combien de temps le xo a été utilisé sur une année, par mois, par semaine...
+
= Retour d'expérience =
Quelles-sont les activités les plus utilisées (passé le plus de temps).
+
'' Prochain retour en septembre ''
  
= Développement ! =
 
(à venir une fois qu'on aura choisi la solution...)
 
  
* Jparse, le parser du journal, est [http://git.sugarlabs.org/jparse/jparse dispo là]
 
à reprendre (gestion de backup + création d'un fichier de données)--[[Utilisateur:Shaiton|Shaiton]] 1 décembre 2011 à 13:58 (PST)
 
  
 
= Ressource =
 
= Ressource =

Version actuelle en date du 25 février 2012 à 11:02

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)