Outils pour utilisateurs

Outils du site


informatique:projets:ice

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:projets:ice [2024/11/19 18:52] – supprimée - modification externe (Date inconnue) 127.0.0.1informatique:projets:ice [2024/11/24 09:25] (Version actuelle) alexis
Ligne 1: Ligne 1:
 +====== 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 [[informatique:projets:carnet_adresses|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 [[https://www.tug.org/|TeX]] pour générer un fichier [[https://acrobat.adobe.com/us/en/why-adobe/about-adobe-pdf.html|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 [[https://fr.wikipedia.org/wiki/Format_de_papier#Norme_internationale_:_Formats_A,_B_et_C|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.
 +<code latex>
 +\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}</code>
 +
 +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 :
 +<WRAP group>
 +<WRAP 85% column>
 +<code bash>
 +# 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"
 +</code>
 +  * ''%%-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.
 +</WRAP>
 +
 +<WRAP 10% column>
 +{{ :projets:informatique:ice.1.png?nolink&100|}}
 +</WRAP>
 +</WRAP>
 +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 ((Cela permettra de l'attacher facilement)).
 +<WRAP group>
 +<WRAP 85% column>
 +<code bash>
 +# +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
 +</code>
 +</WRAP>
 +
 +<WRAP 10% column>
 +{{ :projets:informatique:ice.2.png?nolink&100|}}
 +</WRAP>
 +</WRAP>
 +Ce résultat est beaucoup mieux. Il ne reste plus qu'à l'imprimer ((Je l'imprime avec un redimensionnement à 25% de la taille initiale)) 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 :
 +<code bash>
 +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
 +}
 +</code>
 +
 +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 ((commande trouvée sur [[https://tex.stackexchange.com/a/19047/70112|tex.stackexchange]])):
 +<code bash>
 +gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=ice.compressed.pdf ice.pdf 
 +</code>
 +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.