Recoder des questionnaires avec LibreOffice

Lorsqu’on travaille sur des enquêtes par questionnaire, il arrive fatalement un moment où il devient nécessaire de traiter les résultats. On code alors les réponses afin d’en faciliter la saisie. Cependant, lorsque le travail sur la base de donnée ainsi construite arrive, il peut, cette fois, être plus simple d’avoir accès aux intitulés réels. Commence alors un travail de recodager des données.

Explication théorique

La méthode la plus performante reste l’utilisation de la formule conditionnelle SI.

La syntaxe de cette commande est la suivante :

SI(test;traitement si vrai;traitement si faux)

Ainsi, il suffit de tester le contenu d’une cellule et de demander l’affichage en conséquence.

Cas pratique

Soit une série de réponses à une question à choix unique dont les modalités seraient les suivantes :

Réponse réelle Code réponse
Jamais 01
Souvent 02
Très souvent 03

À supposer la feuille de calcul suivante :


A
1 01
2 03
3 01
4 02
5
6 01

Dans la cellule B1, il s’agirait d’écrire la formule suivante :

=SI($A1="01";"Jamais";SI($A1="02";"Souvent";SI($A1="03";"Très souvent";"Non réponse")))

Il suffirait alors de copier-coller cette formule dans l’ensemble de la colonne B pour que les codes se transforment en réponses intelligibles. Le tableau précédent deviendrait ainsi :

A B
1 01 Jamais
2 03 Très souvent
3 01 Jamais
4 02 Souvent
5
Non réponse
6 01 Jamais

Rendre ses scripts accessibles de n’importe où

Tous ceux qui ont déjà créé des scripts Bash savent combien il est énervant de devoir soit se placer dans le dossier contenant le script en question, soit écrire le chemin complet vers le script pour l’exécuter. Or il est possible d’exécuter ses scripts depuis n’importe quel emplacement dans l’arborescence, simplement en disant à GNU/Linux où il doit chercher.

Un peu de théorie…

Afin d’exécuter des scripts et a fortiori des programmes, GNU/Linux regarde des dossiers spécifiques pour trouver les exécutables. Ces dossiers sont contenus dans la variable d’environnement $PATH. Afin d’afficher cette variable et savoir quels sont les dossiers parcourus, tapez la commande suivant dans un terminal :

$ echo $PATH

Les dossiers parcourus sont séparés par le caractère « : ». Si vous voulez les voir s’afficher avec un dossier par ligne, vous pouvez écrire la commande suivante :

$ echo $PATH | sed -e "s/:/\n/g"

… et on passe à la pratique

Pour ajouter votre (vos) propre(s) dossier(s) à cette liste, il vous faut éditer votre fichier .bashrc. Ajoutez-y à la fin une des deux lignes suivantes :

  • si vous voulez ajouter un seul dossier :
export PATH=$PATH:lien_absolu_vers_votre_dossier
  • si vous voulez en ajouter plusieurs, il suffit de séparer les dossier par un « : » de la manière suivante :
export PATH=$PATH:lien_absolu_vers_votre_dossier_1:lien_absolu_vers_votre_dossier_2

Vous auriez pu écrire ces lignes directement dans votre terminal, mais cela n’aurait fonctionné que pour la session de ce terminal. Pensez à relancer une instance de terminal pour les changements soient pris en compte. À présent, vous pouvez appeler vos programmes et scripts shell où que vous vous trouviez dans l’arborescence de votre ordinateur.

Transférer des données avec Rsync

Mise en réseau des postes

Il nous faut relier les deux postes informatiques. Pour cela, le plus simple à mettre en place est de connecter les deux postes au même réseau, WiFi (fonctionne de manière acceptable lorsqu’il y a peu de données à transférer) ou filaire. Les postes se verront alors affecter une adresse IP de manière automatique.

Pour un transfert plus rapide, il est préférable de passer par un switch. Là, il nous faudra assigner une adresse IP à chacun des postes. Connectez les PC à l’aide de cables « réseaux » (RJ45) au switch. Assignez à présent une adresse IP, différente, à chaque poste à l’aide de la commande ifconfig, par exemple :

# ifconfig eth0 192.168.1.25

Préparation au transfert

Le transfert va s’effectuer au travers du protocole SSH. Il faut donc qu’une connexion SSH soit possible entre le client et le serveur SSH. Installez à présent la commande rsync qui va nous permettre de réaliser le transfert. Cette installation est nécessaire sur le client et le serveur.

# apt-get install rsync

Transfert des données

Placez vous sur le poste qui va recevoir les données et récupérez son adresse IP.

# ifconfig

Eth0 correspond à votre liaison filaire et Wlan0 à votre liaison WiFi. L’adresse IP se trouve sur la deuxième ligne, après le inet adr.

Placez vous à présent sur la machine source, celle qui contient les données à envoyer, et tapez la commande suivante (en adaptant à votre poste, les chemins devant être absolus) sur une seule ligne :

$ rsync -avz --progress --stats dossier_source votre_login_sur_le_poste_destinataire@adresse_ip_du_poste_destinataire:dossier_de_destination

Les options utilisées sont les suivantes :

  • -a --archive (correspond au mode archive) ;
  • -v --verbose (active le mode bavard, le programme affichera quel fichier il envoie) ;
  • -z --compress (active la compression des données pendant l’envoie) ;
  • --progress (affiche la progression durant le transfert) ;
  • --stats (donne des statistiques sur le transfert des fichiers).

Vous pouvez également utiliser :

  • -c --cheksum (permet de vérifier la somme MD5 des fichiers) ;
  • -u --update (n’envoie que les fichiers nouveaux, utile pour la reprise d’un envoi stoppé ou pour faire fréquemment une copie sans recopier les données déjà à jour) ;
  • --help (affiche l’ensemble des options activables).

Notez qu’il est tout à fait possible d’effectuer cette manipulation avec des PC se trouvant dans des lieux différents. Il suffit de connaître l’adresse IP publique. Certains sites tels que http://checkip.dyndns.org permettent de connaître sa propre adresse IP publique.

Lire les formats audio et vidéo libres sous GNU/Linux et MS Windows

Qui dit logiciel libre, dit formats libres. Vous connaissez surement le format OpenDocument (mais si, les odt, ods, odp, etc., utilisés entre autres par LibreOffice) ou encore le PNG et le SVG, ces formats d’images, respectivement matricielles et vectorielles. Ce sont tous des formats libres, ouverts et il en existe, bien entendu, également dans le monde du multimédia. Les plus courants sont :

  • le OGG, un conteneur pouvant accueillir, en plus de fichiers de sous-titre, des fichiers :
    • en OGG Vorbis (un algorithme de compression audio avec perte),
    • en OGG Theora (un format de compression vidéo),
  • le FLAC, un codec de compression audio sans perte ;
  • le MKV, un conteneur permettant d’accueillir la majorité des flux et codecs audio/vidéo existants ainsi que des pistes de sous-titre.

S’ils sont pris en charge (la plupart du temps) nativement sous GNU/Linux, ça n’est pas le cas sous MS Windows et Mac OS (X). Cependant, le lecteur VLC Media Player supporte (comme de nombreux autres codecs) les fichiers portant les extensions citées plus haut. Si certains s’en satisferont, au moins pour la vidéo, il faut avouer qu’il n’est pas forcement très pratique à utiliser au quotidien pour la musique, notamment face à des logiciels tels que MPD, Rhythmbox, Windows Media Player, ou encore iTunes, qui intègrent une gestion de bibliothèque assez pratique.

Installation

GNU/Linux

La plupart des distributions GNU/Linux intègrent nativement le support des formats libres. Si ça n’est pas le cas, vous avez toujours la possibilité de les rajouter, ne vous inquiétez pas.

Pour installer le support du MKV, il vous faut les librairies suivantes libebml et libmastroska. Pour le FLAC, il vous faut installer flac. Enfin, pour le OGG, il faut installer libogg et y ajouter libvorbis et vorbis-tools (pour la lecture du Vorbis) et libtheora (pour le Theora).

Pour Debian (et dérivées), pour tout installer d’un coup, entrez la ligne suivante dans un terminal :

# apt-get install libebml libmatroska flac libogg libvorbis vorbis-tools libtheora

MS Windows

Pour pouvoir profiter de ces fichiers sous MS Windows, il vous suffit de télécharger l’exécutable se trouvant à cette adresse, de l’exécuter, et de redémarrer votre machine. Une fois ceci fait, vous serez en mesure de lire ces fichiers directement depuis le Windows Media Player.

Calculez l’âge du capitaine

Voici un petit script bash que j’ai écrit (avec un peu d’aide, je l’avoue), qui n’a aucune utilité, si ce n’est calculer l’âge de quelqu’un. Il n’utilise que des fonctions de base. L’utilisation est simple, lancez le script et suivez les indications de votre terminal

#!/bin/bash
JourActu=`date +%-d`
MoisActu=`date +%-m`
AnneeActu=`date +%Y`

echo "Nous sommes bien le $JourActu/$MoisActu/$AnneeActu."

read -p 'Entrez votre jour de naissance : ' JourNaiss
read -p 'Entrez votre mois de naissance : ' MoisNaiss
read -p 'Entrez votre année de naissance : ' AnneeNaiss

echo "Vous êtes donc né(e) le $JourNaiss/$MoisNaiss/$AnneeNaiss."

let "AnneeReel = AnneeActu - AnneeNaiss"

if [ $MoisNaiss -gt $MoisActu ] || ( [ $MoisNaiss -eq $MoisActu ] && [ $JourNaiss -gt $JourActu ] )
then
let "AnneeReel = AnneeReel - 1"
fi
echo "Vous avez $AnneeReel ans révolus."

let "AnneeAnniv = AnneeNaiss + AnneeReel"
echo "Votre dernier anniversaire était le $JourNaiss/$MoisNaiss/$AnneeAnniv."

if [ $AnneeAnniv -eq $AnneeActu ]
then
let "MoisReel = MoisActu - MoisNaiss"
else
let "MoisReel = 12 + MoisActu - MoisNaiss"
fi

if [ $JourNaiss -gt $JourActu ] 
then
let "MoisReel = MoisReel - 1"
fi

echo "Vous avez $AnneeReel ans et $MoisReel mois."

if [ $JourNaiss -le $JourActu ]
then
let "JourReel = JourActu - JourNaiss"
else
case $MoisActu in
1 | 2 | 4 | 6 | 8 | 9 | 11)
let "JourReel = 31 - JourNaiss + JourActu"
;;
5 | 7 | 10 | 12)
let "JourReel = 30 - JourNaiss + JourActu"
;;
3)
if [ $(( $AnneeActu % 4 )) -eq 0 ] &&
( [ $(( $AnneeActu % 100 )) -ne 0 ] || [ $(( $AnneeActu % 400 )) -eq 0 ] )
then let " JourReel = 29 - JourNaiss + JourActu"
else let " JourReel = 28 - JourNaiss + JourActu"
fi
;;
esac
fi

echo "Vous avez $AnneeReel ans, $MoisReel mois et $JourReel jours."

Ajouter des titres à la table des matières

Pour pouvoir ajouter à la table des matières d’un document LaTeX un titre de chapitre, section, etc. non numéroté (déclaré avec la commande étoilée), il suffit d’inclure la ligne suivante à la suite de la déclaration de chapitre, section, etc.

\addcontentsline{toc}{chapter}{Introduction}