\section{Moyens} L’accent sera ici mis sur l’utilisation de logiciels libres et de l’approche \gls{wysiwym} pour améliorer la fiabilité de la production. Choix d’outils pour l’implémentation de trois grandes phases : \begin{itmz} \item{mettre en place des opérations clés incontournables} \item{automatiser l’exécution de ces tâches maîtresses} \item{étendre le spectre de toutes les tâches automatisables} \end{itmz} %⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ \hr %⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ \subsection{Rationalisation} Au moins deux piliers sont indispensables : \subsubsection{Gestion de configuration distribuée} Utiliser un outil permettant à la fois de : \begin{itmz} \item{garder une trace de toutes les tâches prévues et réalisées} \item{sauvegarder des modifications partielles de document en tant que telles} \item{bénéficier d’un contrôle d’intégrité automatique de ces sauvegardes} \item{travailler séparément sur différents contextes de modifications} \item{pouvoir revenir à un état antérieur cohérent à tout moment} \item{intégrer des modifications provenant de divers collaborateurs} \item{répliquer ces sauvegardes sur plusieurs serveurs pour plus de disponibilité} \end{itmz} Les plus connus étant : Git \cite{git}, Mercurial \cite{hg}, Fossil \cite{fossil}, Bazaar \cite{bazaar}. \pagebreak %⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ \subsubsection{Processus de fabrication} Définir un cheminement menant à la reproductibilité d’un document. La plupart du temps : \begin{itmz} \item{extractions d’éléments depuis des documents sources} \item{préparations ou conversions d’éléments à intégrer} \item{compilation du document avec intégration de ressources} \item{assemblage final avec d’autres documents si nécessaire} \item{signature du document, si besoin d’authentification} \item{déploiement du document final vers des hébergements} \end{itmz} %⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ \hr %⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ \subsection{Automatisation} Il s’agit ici d’implémenter et orchestrer le processus de fabrication défini. Deux approches sont possibles : \subsubsection{Fichiers de fabrication} Fichiers textuels très simples, se contentant de lister les différentes étapes, ainsi que toutes les commandes associées à chacune des étapes recensées. Le standard : Make \cite{make}. \subsubsection{Scripts d’assemblage} Fichiers textuels plus ou moins complexes, laissant la liberté à l’auteur de programmer toutes les opérations qu’il souhaite autour des étapes. Les plus courants : \gls{bash} \cite{bash}, Python \cite{py}. \pagebreak %⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ \subsection{Opérations automatisables} De multiples étapes peuvent intervenir dans la production d’un document,\\ et ainsi être intégrées au sein d’un fichier d’automatisation : \subsubsection{Conversion de documents} Transformation de documents existants dans un format plus propice à l’outil d’assemblage retenu pour le processus de fabrication. Exemples : PanDoc \cite{pandoc}, ImageMagick \cite{imagemagick}. \subsubsection{Découpe de documents} Extraction de certaines pages de documents finaux déjà compilés. La référence : \gls{pdftk} \cite{pdftk}. \subsubsection{Extraction d’éléments} Récupération d’une ou plusieurs images spécifiques d’un autre document. Exemples : Poppler \cite{poppler}, GhostScript \cite{gs}. \subsubsection{Rotation d’éléments} Ajustement de l’orientation de pages ou images disponibles. Exemples : \gls{pdftk} \cite{pdftk}, ImageMagick \cite{imagemagick}. \subsubsection{Compression d’images} Réduction du volume de données occupé par des images. La référence : ImageMagick \cite{imagemagick}. \subsubsection{Résolution d’impression} Modification de la taille d’images par rapport au gabarit du document. La référence : ImageMagick \cite{imagemagick}. \subsubsection{Compilation} Production de rendu du document principal, à partir d’un fichier \gls{wysiwym},\\ à l’aide d’un moteur de rendu approprié au format \gls{wysiwym} retenu. Exemples : \LaTeX \cite{latex}, Sphinx \cite{sphinx}. \subsubsection{Assemblage de documents} Quand il est nécessaire pour obtenir un document final de mettre bout à bout\\ des extraits préparés, le document principal compilé et certaines annexes. La référence : \gls{pdftk} \cite{pdftk}. \subsubsection{Signature numérique} Afin de pouvoir vérifier l’authenticité du document,\\ quand il est consulté par des personnes souhaitant s’en assurer. Le standard : \gls{gpg} \cite{gpg},\\ une implémentation libre du standard ouvert \gls{pgp} \cite{pgp}. Signer un document : \begin{lstlisting}[language=sh] gpg --armor # sous forme textuelle --detach-sign # signer dans un fichier séparé 'nom_du_document.pdf' # ce document \end{lstlisting} Vérifier une signature : \begin{lstlisting}[language=sh] gpg --verify # vérifier la validité 'nom_du_document.pdf.asc' # de cette signature 'nom_du_document.pdf' # pour ce document \end{lstlisting} \subsubsection{Réplication de contenus} Répliquer vers plusieurs serveurs, pour une disponibilité à toute épreuve. Exemple : Rsync \cite{rsync} via une connexion sécurisée \gls{ssh} \cite{ssh}. \hr %\pagebreak