Outils pour utilisateurs

Outils du site


projets:informatique:ice

Mise à disposition d'informations utiles en cas d'urgence

On ne peut pas prévoir quand une situation d'urgence se présentera ni sous quelle forme elle se manifestera. Sans entrer dans la paranoïa de certains groupes de survivalistes, je pense qu'il est utile de pouvoir fournir un certain nombre d'informations utiles même si je suis dans l'incapacité de le faire moi-même. Voici ce que j'ai fait pour répondre à cette problématique.

Il y a environ un an, j'ai ajouté une page sur mon blog contenant certaines informations importantes pour faire face à ce genre de situation, à savoir les personnes de confiance à contacter, mes allergies et mon groupe sanguin. J'avais généré un QR code redirigeant directement sur cette page. Il ne me restait plus qu'à l'imprimer pour que ce soit fonctionnel. Mais je ne l'ai jamais fait, ce qui fait que ces informations n'ont jamais été diffusées ni utilisables.

La solution envisagée intialement avait quelques problèmes :

  • Impossibilité d'imprimer les informations proprement.
  • Impossibilité d'accèder aux informations si on ne possède pas un outil pour décoder les QR codes.
  • Présentation approximative.

En travaillant sur la mise en place d'un carnet d'adresse, je me suis dit que j'allais changer ma méthode pour pallier aux problèmes initiaux. Du coup, j'ai ressorti TeX pour générer un fichier PDF. Avec le modèle suivant, je suis capable d'imprimer un fichier lisible et qui peut se loger facilement dans mon porte-feuille. Ça génère une impression au format A7 doublé dans la longueur soit 210x74mm. Une fois plié en 2, j'obtiens un format A7. Cerise sur le gâteau, les numéros de téléphone et les adresses de messagerie sont des liens qui permettent d'activer les logiciels appropriés s'ils existent.

\documentclass{article}
 
\usepackage[paperwidth=210mm, paperheight=74mm, top=5mm, left=0mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{marvosym}
\usepackage{hyperref}
\usepackage{xstring}
 
\newcommand\phoneNumber[1]{%	
	\StrSubstitute{#1}{(0)}{}[\number]%
	\href{tel:\number}{#1}%
}
\newcommand\cell[1]{\Mobilefone \ \phoneNumber{#1}}
\newcommand\phone[1]{\Telefon \ \phoneNumber{#1}}
\newcommand\email[1]{\Email \ \href{mailto:#1}{#1}}
\newcommand\contact[4]{%
	\begin{tabular}{l}%
		\begin{large}#1\end{large} \\%
		\cell{#2} \\%
		\phone{#3} \\%
		\email{#4} \\%
	\end{tabular}
	\vspace{0.1cm}
}
\newcommand\primaryContact{
	\contact{John Doe}{+33 (0)1.01.01.01.01}{+33 (0)2.02.02.02.02}{john.doe@example.org}%
}
\newcommand\secondaryContact{
	\contact{Jane Doe}{+33 (0)3.03.03.03.03}{+33 (0)4.04.04.04.04}{jane.doe@example.org}%
}
 
\begin{document}
	\pagenumbering{gobble}
 
	% English section	
	\begin{minipage}{105mm}
		\begin{Large}In Case of Emergency\end{Large}
 
		\vspace{0.3cm}\renewcommand{\arraystretch}{1.2}
 
		\begin{tabular}{r|l}%
			Primary contact & \primaryContact \\%
			Secondary contact & \secondaryContact \\%
			Known allergies & \\%
			Blood type & \\%
		\end{tabular}
	\end{minipage}
%
	\hfill%
%	
	% French section
	\begin{minipage}{105mm}
		\begin{Large}En Cas d'Urgence\end{Large}
 
		\vspace{0.3cm}\renewcommand{\arraystretch}{1.2}
 
		\begin{tabular}{r|l}%
			Contact principal & \primaryContact \\%
			Contact secondaire & \secondaryContact \\%
			Allergies connues & \\%
			Groupe sanguin & \\%
		\end{tabular}
	\end{minipage}
\end{document}

J'ai ensuite mis à disposition ce fichier sur mon serveur ainsi qu'une copie papier dans mon porte-feuille.

Pour accéder au fichier, je me suis facilité la vie en encodant l'URL dans un QR code. Pour cela, rien de plus facile en utilisant qrencode de la manière suivante :

# Version courte
qrencode -o ice.1.png -l H -s 10 "https://www.ainw.org/wiki/doku.php?id=projets:informatique:ice"
 
# Version longue
qrencode --output ice.1.png --level H --size 10 "https://www.ainw.org/wiki/doku.php?id=projets:informatique:ice"
  • -o ou --output indique le nom du fichier de sortie.
  • -l ou --level indique le niveau de correction d'erreur.
  • -s ou --size indique la taille des points en pixels.

Cependant, je trouve que ce n'est pas assez. En effet, un QR code seul ne sert pas à grand chose s'il n'est pas possible de l'identifier facilement et surtout rapidement. Je me suis amusé à ajouter les informations nécessaires à l'aide d'imagemagick. La syntaxe est loin d'être évidente et j'ai du procéder à de nombreux tests avant de trouver quelque chose qui me convienne. Je voulais afficher I.C.E. au dessus et à gauche et E.C.U. en dessous et à droite du code. Je voulais aussi afficher une bordure pour faciliter la découpe de l'impression, ainsi qu'un repère pour percer un trou 1).

# +append colle les images de gauche à droite.
# -append colle les images de bas en haut.
# \(\) regroupe des actions entre elles.
convert -pointsize 70 -background white -gravity center \( label:"I.C.E." -trim \) \( \( -rotate -90 label:"I.C.E." -trim \) ice.1.png \( -rotate -90 label:"E.C.U." -trim \) +append \) \( label:"E.C.U." -trim \) -append -bordercolor white -border 30x30 -bordercolor black -border 1x1 -stroke black -draw "circle 75,75 90,90" ice.2.png

Ce résultat est beaucoup mieux. Il ne reste plus qu'à l'imprimer 2) et à le conserver à un endroit approprié.

Pour ne pas chercher la commande à chaque fois que je veux générer l'image, je me suis fait une fonction dans bash qui me le fait directement à partir d'une entrée :

function ice { # Generate I.C.E. QR code
  qrencode --output - --level H --size 10 "$1" | convert -pointsize 70 -background white -gravity center \( label:"I.C.E." -trim \) \( \( -rotate -90 label:"I.C.E." -trim \) - \( -rotate -90 label:"E.C.U." -trim \) +append \) \( label:"E.C.U." -trim \) -append -bordercolor white -border 30x30 -bordercolor black -border 1x1 -stroke black -draw "circle 75,75 90,90" ice.png
}

Puis je me suis dit que je pouvais peut-être inclure directement le fichier PDF dans le code. Mais pour cela, il faudrait réduire drastiquement la taille de celui-ci. J'ai optimisé le fichier en lançant la commande suivante 3):

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=ice.compressed.pdf ice.pdf 

Mais ça ne donne rien. Le fichier dépasse encore la limite imposée par la norme du QR code et en plus de ça, les liens sont perdus.

1)
Cela permettra de l'attacher facilement
2)
Je l'imprime avec un redimensionnement à 25% de la taille initiale
3)
commande trouvée sur tex.stackexchange
projets/informatique/ice.txt · Dernière modification : 2021/04/01 14:26 de alexis