فهرست منبع

Adding Markdown report env

Pierre-Yves Barriat 2 سال پیش
والد
کامیت
2357507138

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 463
2975-6853-1-PB4.pdf


BIN
Cloud_computing_service_models_(1).png


BIN
Report/Projet_Brevet_Barriat.pdf


+ 223 - 0
Report/Projet_brevet.md

@@ -0,0 +1,223 @@
+---
+title: "Projet de premier brevet"
+author: [Pierre-Yves Barriat]
+date: "15 avril 2022"
+subject: "Examen d'avancement au grade d'informaticien-expert"
+keywords: [brevet, informaticien]
+lang: "en"
+subtitle: "Examen d'avancement au grade d'informaticien-expert"
+option1: "**FGS :** 01108821"
+option2: "**Institut ELI - pôle ELIC**"
+option3: "**Dénomination de la fonction :** informaticien de recherche"
+option4: "**Fonction exercée depuis le :** 5 novembre 2007"
+option5: "**Grade et barème actuels :** informaticien – 12/2"
+option6: "**Grade et barème sollicités :** informaticien-expert – 13/3"
+titlepage: true
+titlepage-text-color: "1e355b"
+titlepage-background: "garde.pdf"
+page-background: "background.pdf"
+page-background-opacity: "0.8"
+footer-right: " "
+...
+
+# Introduction
+
+## Contexte
+
+Les chercheurs sont de plus en plus confrontés à la gestion d'énormes quantités de données scientifiques. Ces dernières sont soit produites localement soit téléchargées depuis les machines d'autres centres de recherche ou depuis des dépôts centralisés. Elles sont ensuite utilisées, analysées, étudiées, modifiées, localement ou à distance sur d'autres machines de calculs.
+
+La gestion de cette masse de données constitue un réel défi pour de nombreux pôles de recherche de notre institution. En effet, chaque chercheur ou groupe de chercheurs est soumis à une phase de formation et d'adaptation afin de maîtriser les différentes méthodologies à appliquer pour pouvoir obtenir et travailler sur telles ou telles données, et afin de pouvoir les stocker et les partager, les diffuser ou les réutiliser.
+
+Le stockage et l'accessibilité des données constituent l'enjeu de ce brevet.
+
+## Solutions de stockage
+
+Il existe 3 principales solutions de stockage des données à l'UCLouvain, hormis les solutions d'archivage et de backup. L'utilisation de l'une ou l'autre de ces solutions dépend du type des données (volumes, finalité, etc) mais aussi de l'environnement de l'utilisateur (système d'exploitation, logiciels, etc) et de l'environnement pour les données elles-mêmes (origine, logiciels pour les exploiter, etc).
+
+Le système de fichiers OASIS[^1] est un espace de stockage centralisé qu'il est possible d'intégrer à n'importe quel environnement de travail (multiplateformes via différents protocoles) au sein du réseau institutionnel. Il est utilisé pour des données dont la taille reste de l'ordre du Mo jusqu'à plusieurs Go et offre un backup journalier.
+OASIS représente un système de fichier dans un réseau privé (réseau UCLouvain) en "modèle interne" (entièrement géré et hébergé localement).  
+C'est un système de stockage hiérarchique qui fournit un accès partagé aux données. Les utilisateurs peuvent créer, supprimer, modifier, lire et écrire des fichiers et peuvent les organiser logiquement dans des arborescences de répertoires (accès intuitif).
+
+[^1]: https://intranet.uclouvain.be/fr/myucl/services-informatiques/service-fichier-personnel-en-detail.html
+
+OneDrive et SharePoint sont des solutions de stockage intégrées à MS Office 365[^2]. Sharepoint est un espace très spécifique, fortement intégré aux outils de la suite bureautique. Son utilisation se fait en ligne via un navigateur. Il est possible de l'intégrer davantage (synchronisation, édition locale, etc) à l'environnement de travail via un client OneDrive (mais pas pour un environnement GNU/Linux).  
+Il s'agit d'un espace de travail collaboratif partagé, mais exclusivement disponible pour les utilisateurs de l'UCLouvain. Pour de plus grande quantité de données, l'utilisation de OneDrive est plus appropriée et plus performante. 
+Cette solution est un espace de stockage dans un cloud publique en modèle SaaS (Software as a Service ou Logiciel en tant que Service) : entièrement géré et hébergé par Microsoft. OneDrive (via un compte UCLouvain) permet de stocker et sauvegarder de grande quantité de données en toute sécurité dans l'UE (respectant les recommandations GDPR). Mais les données ne sont pérennes que pour un utilisateur de l'UCLouvain: si ce dernier quitte l'institution, les données disparaissent.  
+
+Les solutions de stockage de Microsoft ne sont en revanche pas ou peu adaptées pour des données sous environnement GNU/Linux. En outre, il n'est pas possible de collaborer (SharePoint) ou de partager des données (SharePoint, OneDrive) avec des utilisateurs extérieurs.
+
+[^2]: https://intranet.uclouvain.be/fr/myucl/services-informatiques/applications-disponibles.html
+
+Pour une partie du parc de machines individuelles de l'UCLouvain utilisant un environnement de travail GNU/Linux (majoritaires par exemple dans les pôles de recherche ELIC, TFL, MODL, ELEN, INMA, etc) mais aussi pour les clusters HPC et les serveurs interactifs partagés, il n'est donc pas aisé de lier efficacement l'un de ces services de stockage au système de fichiers local (du poste de travail ou de la machine partagée). Pour cela, il existe le service du stockage de masse proposé par la plateforme technologique du CISM.
+Cet espace de stockage offre une très grande capacité aux utilisateurs et de hautes performances. En revanche, celui-ci est essentiellement adapté aux environnements Unix (MacOs ou GNU/Linux) car accessible uniquement via les protocoles SSH et FTP. Comme OASIS, le stockage de masse du CISM est un système de fichier dans un réseau privé (réseau CECI: Universités francophones) en "modèle interne" (entièrement géré et hébergé au CISM).
+
+# Description du projet
+
+Comment offrir une solution de stockage multiplateformes combinant grande capacité de stockage, gestion des grands groupes de données (datasets >10Go) et hébergée localement ?
+
+Nextcloud est un logiciel libre qui propose de combiner cela. Il s'agit d'un logiciel de site d'hébergement de fichiers mais aussi d'une plateforme de collaboration. C'est-à-dire qu'il peut s'utiliser comme un espace de stockage dans le nuage publique à la manière de OneDrive ou DropBox, mais en "modèle interne" (entièrement géré et hébergé localement).  
+Il propose en outre une panoplie de fonctionnalités afin d'offrir des services à la manière d'Office 365 ou des services de Google: gestion des agendas (CalDAV), des contacts (CardDAV), des tâches, des notes, espace de collaboration (suite bureautique en ligne basée sur LibreOffice), gestion de version des fichiers, partage multiple, etc.
+Il est également possible de lui ajouter des extensions afin de prendre en charge des espaces de stockage externes par protocoles (FTP, SSH, NFS, WebDAV ou SMB/CIFS comme OASIS) mais aussi par services (comme OneDrive ou DropBox). Il peut également prendre en charge le stockage objet (comme Amazon S3 ou OpenStack).  
+Enfin, Nextcloud propose un logiciel client multiplateformes pour une intégration totale avec tous les environnements (Windows, MacOs, GNU/Linux, Android, iOS), dispose d'un système d'authentification à deux facteurs, et respecte les recommandations GDPR.
+
+Dans le contexte de la gestion des grandes quantités de données scientifiques, je propose une collaboration avec le CISM afin de pérenniser un service Nextcloud, c'est-à-dire le rendre performant et disponible à long terme.  
+L'objectif premier est d'offrir aux chercheurs un accès efficace à leurs données non bureautiques, c'est-à-dire non exploitables par des logiciels comme ceux fournis par la suite MS Office et nécessitant un traitement spécifique. La mise en place de ce service offre également l'opportunité d'intégrer les solutions de stockage existantes de l'Institution au sein d'une plateforme commune.
+
+## Objectifs
+
+Dans le cadre de ce premier brevet, les objectifs poursuivis sont:
+
+- d'installer une instance de Nextcloud dans l'infrastructure OpenStack du CISM
+- d'optimiser le déploiement du service en termes de performances, de robustesse, d'accessibilité et de maintenance
+- de créer des liens efficaces entre Nextcloud et les différents espaces de stockage: stockage de masse, OneDrive, OASIS, stockage partagé CECI, etc.
+- d'offrir via le service Nextcloud une solution intégrée de gestion de données volumineuses à l'ensemble des chercheurs de l'institut ELI ainsi qu'à tous les pôles de recherche intéressés
+
+Une phase de test du service Nextcloud a déjà été réalisée en amont de ce brevet: j'ai en effet pu installer une instance locale à petite échelle : déploiement simple (LAMP : acronyme pour Linux, Apache, MySQL, PHP) dans un conteneur virtuel Docker, sur une machine interactive financée par ELIC et installée dans l'infrastructure du CISM depuis 2017. Cette machine arrive cependant en fin de vie en juillet 2022.  
+Cette phase de test est arrivée à son terme et le but du présent brevet est de pérenniser ce service.
+
+Ce projet se positionne au niveau d'un institut de recherche (ELI) en collaboration avec une plateforme technologique sectorielle (CISM). Les services de l'Institution en relation avec le projet ou impacté sont le CISM et le SGSI.
+
+## Produit du projet
+
+Les délivrables de ce projet prendront la forme d'une instance Nextcloud entièrement opérationnelle:
+
+- côté serveur, dans l'environnement CISM pour l'infrastructure backend (service et stockage cloud)
+- côté client, disponible pour les utilisateurs via une interface web ou via les applications clientes disponibles pour Windows, MacOS, GNU/Linux (de nombreuses distributions), iOS et Android.
+
+Les spécifications et fonctionnalités de cette instance seront les suivantes:
+
+- authentification via l'utilisation d'un compte CISM préalablement créé
+- gestion des versions de fichiers (la fréquence de sauvegarde et la fréquence de conservation sont définies par l'administrateur)
+- partage des fichiers au niveau utilisateurs (les fichiers ou dossiers individuels peuvent être partagés avec des personnes sélectionnées sur les comptes Nextcloud, ou avec n'importe qui via un simple lien URL, l'expéditeur ayant un grand contrôle sur le processus. Ils peuvent, par exemple, définir une date d'expiration pour le lien, exiger un mot de passe pour ouvrir le fichier envoyé, joindre une note, etc.)
+- collaboration (Collabora Online est une suite bureautique en ligne basée sur LibreOffice qui prend en charge tous les principaux formats de documents, de feuilles de calcul et de fichiers de présentation.)
+- montage de stockages externes par protocoles SSH ou CIFS
+- montage de stockages externes des services OneDrive, DropBox et GoogleDrive
+- authentification à deux facteurs (via des codes de sauvegarde ou une application d'authentification TOTP)
+- conforme au RGPD
+
+# Contraintes
+
+Les contraintes de ce projet s'expriment essentiellement en termes de délais et de ressources.
+
+## Délais
+
+Voici une proposition pour l'ensemble du calendrier:
+
+- **25 janvier 2022 :** soumission d'acte de candidature à l'examen
+- **15 avril 2022 :** soumission du présent projet pour le premier brevet
+- **28 avril 2022 :** analyse de l'acte de candidature à l'examen et du présent projet par la Commission paritaire
+- **mai 2022 :** actualisation et initialisation du projet
+- **fin février 2023 :** fin du premier brevet
+
+Durée du projet : **10 mois** à partir de la validation du 28 avril 2022
+
+Livraison estimée d'un produit minimum viable (MVP) : **décembre 2022**
+
+Les échéances intermédiaires sont détaillées dans la section de planification du projet.
+
+## Ressources
+
+Voici certaines ressources à prendre en compte:
+
+- accessibilité à une infrastructure de développement et de validation (test) puis de production. Prise en compte des points suivants :
+  - localisation et hébergement des serveurs : qualité des performances, possibilité d'accès, coût, sécurité, etc.
+  - réseau (type, vitesse et performance des liaisons, disponibilité, support)
+  - outils de sécurisation des transactions et des serveurs (certificats, authentification par clés, mots de passe, firewall, etc.)
+  - procédures, outils et ressources pour assurer la gestion et la maintenance: du réseau, du matériel, des logiciels, des accès, de l'usage, des coûts, du support utilisateur, de la performance, etc.
+- accessibilité aux données : démarches administratives, protocoles de connexion, coûts éventuels, confidentialité, etc.
+- localisation des applications et des bases de données (répartition des processus applicatifs entre serveurs, etc.)
+- outils utilisés issus de logiciels libres
+- environnement de travail
+- architecture et fonctionnalités de l'application:
+  - interface web (proxy, load balancing)
+  - middleware (serveur web, php-fpm)
+  - bases de données (stockage, réplication, performance)
+- outils de sécurisation des transactions et des serveurs (certificats, authentification par clés, mots de passe, firewall, etc.)
+- performances que le système doit supporter dans 90% des cas: temps de réponse utilisateur, outils de mesure des performances, disponibilité requise, etc.)
+- reproductibilité et persistance de l'application
+- évolutivité de la solution (possibilités)
+- maintenance du service
+
+## Autres contraintes
+
+- documentation requise
+- méthode d'analyse (performance, risques)
+- évolutivité de la solution (coût)
+- plan de formation des utilisateurs et des gestionnaires
+- support utilisateurs
+
+# Déroulement du projet
+
+## Planification
+
+Les grandes phases du projet seront les suivantes:
+
+### Phase 1 : Initialisation du projet
+
+Fin de rédaction du cahier des charges, choix techniques
+
+Calendrier : **mai 2022**
+
+### Phase 2 : Analyse et conception
+
+Conception globale de l'application : analyse fonctionnelle, modélisation
+
+Calendrier : **juin 2022**
+
+### Phase 3 : Développement
+
+Evaluation à l'aide du cahier des charges en cours
+
+Calendrier : fin **octobre 2022**
+
+### Phase 4 : Tests d'intégration
+
+Intégration de l'ensemble des développements dans l'environnement de test
+
+Calendrier : **novembre 2022**
+
+### Phase 5 : Documentation et présentation
+
+Documentation de l'application + présentation aux utilisateurs
+
+Calendrier : **février 2023**
+
+## Organisation et suivi
+
+La phase d'initialisation du projet est soumise à la validation de la Commission paritaire.  
+L'ensemble des activités introduites dans la planification des tâches sera discuté et suivi par Thomas Keutgen en tant que coach-évaluateur et par Hugues Goosse en tant que second évaluateur. RHUM sera régulièrement informé du suivi global du travail.  
+Le développement du projet nécessitera des interactions avec de nombreux groupes au sein de l'UCL comme détaillé dans les spécifications techniques.
+
+## Evaluation
+
+La méthode d'analyse et les critères d'évaluation du projet sont soumis au règlement des examens d'avancement au grade d'informaticien-expert (document du 30 janvier 2006).
+
+## Spécifications techniques
+
+Quelques pistes pour les points encore à définir :
+
+- connexion réseau GB, agrégation de liens, etc. (contact : CISM, SRI)
+- localisation serveurs (contacts: CISM pour DCIII)
+- serveur(s) de stockage (contacts : ELI, ELIC, CISM, SGSI)
+- serveur(s) d'application (contacts : ELI, ELIC, CISM)
+- environnement de travail sous distribution virtualisée (OpenStack)
+- infrastructure en tant que code (IaC) : reproductibilité aisée de la configuration (Ansible)
+- persistance via système de gestion de versions (Git): utilisation de la forge GitLab de l'UCLouvain pour le suivi
+- duplication middleware (serveur Web) pour charges élevées
+- couche accès aux données locales puis via DB distribuée
+- base de données SQL (MySQL, Postgresql ?) et réplication
+- base de données haute performance Redis pour la mise en cache des requêtes de base de données (via la RAM)
+- stockage Ceph pour des charges élevées, et possibilité d'utiliser le stockage d'objets compatible S3
+- échange de données inter-sites via protocole GridFTP (sans doute hors MVP)
+
+## Spécifications de réalisation
+
+Quelques points encore à détailler :
+
+- maquette ou démonstration fonctionnelle : objectifs, représentativité par rapport au projet complet, configuration, plan de travail, ressources, critères d'acceptation avant de poursuivre les travaux ;
+- détails du calendrier des prestations : début, fin, phases, check-points ;
+- planning de disponibilité des ressources mises à disposition (quantité, qualification, dates, lieux)
+- méthodologie, plan et outils requis pour effectuer les tests :
+  - fonctionnels, de performance et de qualité
+  - de montée en charge du réseau et des applications, d'ergonomie
+  - des fonctions de sauvegarde et de reprise

BIN
Report/background.pdf


+ 2 - 0
Report/compile.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+pandoc Projet_brevet.md -o Projet_brevet.pdf --from markdown --template eisvogel --listings

+ 26 - 0
Report/compile_2.sh

@@ -0,0 +1,26 @@
+#!/bin/sh
+
+SOURCE_FILE_NAME="Projet_brevet_03.md"
+DEST_FILE_NAME="Projet_brevet_03.pdf"
+DEST_FILE_NAME_PROTECTED="Projet_brevet_03_protected.pdf"
+#INDEX_FILE="INDEX"
+TEMPLATE="eisvogel_mod.latex"
+DATE=$(date "+%d %B %Y")
+DATA_DIR="."
+
+SOURCE_FORMAT="markdown+pipe_tables+backtick_code_blocks+auto_identifiers+yaml_metadata_block+implicit_figures+table_captions+footnotes+smart+escaped_line_breaks+header_attributes"
+
+SOURCE_FORMAT2="markdown\
+  +pipe_tables\
+  +backtick_code_blocks\
+  +auto_identifiers\
+  +yaml_metadata_block\
+  +implicit_figures\
+  +table_captions\
+  +footnotes\
+  +smart\
+  +escaped_line_breaks\
+  +header_attributes"
+
+#pandoc "$SOURCE_FILE_NAME" -o "$DEST_FILE_NAME" --from markdown --template "$TEMPLATE" --listings -M date="$DATE"
+pandoc "$SOURCE_FILE_NAME" -s -o "$DEST_FILE_NAME" -f "$SOURCE_FORMAT" --data-dir="$DATA_DIR" --template "$TEMPLATE" --toc --listings --columns=50 --number-sections --dpi=300 --pdf-engine xelatex -M date="$DATE"

+ 1077 - 0
Report/eisvogel.latex

@@ -0,0 +1,1077 @@
+%%
+% Copyright (c) 2017 - 2021, Pascal Wagler;
+% Copyright (c) 2014 - 2021, John MacFarlane
+%
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions
+% are met:
+%
+% - Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+%
+% - Redistributions in binary form must reproduce the above copyright
+% notice, this list of conditions and the following disclaimer in the
+% documentation and/or other materials provided with the distribution.
+%
+% - Neither the name of John MacFarlane nor the names of other
+% contributors may be used to endorse or promote products derived
+% from this software without specific prior written permission.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+% COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+% ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+% POSSIBILITY OF SUCH DAMAGE.
+%%
+
+%%
+% This is the Eisvogel pandoc LaTeX template.
+%
+% For usage information and examples visit the official GitHub page:
+% https://github.com/Wandmalfarbe/pandoc-latex-template
+%%
+
+% Options for packages loaded elsewhere
+\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
+\PassOptionsToPackage{hyphens}{url}
+\PassOptionsToPackage{dvipsnames,svgnames,x11names,table}{xcolor}
+$if(dir)$
+$if(latex-dir-rtl)$
+\PassOptionsToPackage{RTLdocument}{bidi}
+$endif$
+$endif$
+$if(CJKmainfont)$
+\PassOptionsToPackage{space}{xeCJK}
+$endif$
+%
+\documentclass[
+$if(fontsize)$
+  $fontsize$,
+$endif$
+$if(lang)$
+  $babel-lang$,
+$endif$
+$if(papersize)$
+  $papersize$paper,
+$else$
+  paper=a4,
+$endif$
+$if(beamer)$
+  ignorenonframetext,
+$if(handout)$
+  handout,
+$endif$
+$if(aspectratio)$
+  aspectratio=$aspectratio$,
+$endif$
+$endif$
+$for(classoption)$
+  $classoption$$sep$,
+$endfor$
+  ,captions=tableheading
+]{$if(beamer)$$documentclass$$else$$if(book)$scrbook$else$scrartcl$endif$$endif$}
+$if(beamer)$
+$if(background-image)$
+\usebackgroundtemplate{%
+  \includegraphics[width=\paperwidth]{$background-image$}%
+}
+$endif$
+\usepackage{pgfpages}
+\setbeamertemplate{caption}[numbered]
+\setbeamertemplate{caption label separator}{: }
+\setbeamercolor{caption name}{fg=normal text.fg}
+\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
+$for(beameroption)$
+\setbeameroption{$beameroption$}
+$endfor$
+% Prevent slide breaks in the middle of a paragraph
+\widowpenalties 1 10000
+\raggedbottom
+$if(section-titles)$
+\setbeamertemplate{part page}{
+  \centering
+  \begin{beamercolorbox}[sep=16pt,center]{part title}
+    \usebeamerfont{part title}\insertpart\par
+  \end{beamercolorbox}
+}
+\setbeamertemplate{section page}{
+  \centering
+  \begin{beamercolorbox}[sep=12pt,center]{part title}
+    \usebeamerfont{section title}\insertsection\par
+  \end{beamercolorbox}
+}
+\setbeamertemplate{subsection page}{
+  \centering
+  \begin{beamercolorbox}[sep=8pt,center]{part title}
+    \usebeamerfont{subsection title}\insertsubsection\par
+  \end{beamercolorbox}
+}
+\AtBeginPart{
+  \frame{\partpage}
+}
+\AtBeginSection{
+  \ifbibliography
+  \else
+    \frame{\sectionpage}
+  \fi
+}
+\AtBeginSubsection{
+  \frame{\subsectionpage}
+}
+$endif$
+$endif$
+$if(beamerarticle)$
+\usepackage{beamerarticle} % needs to be loaded first
+$endif$
+\usepackage{amsmath,amssymb}
+$if(fontfamily)$
+\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
+$else$
+\usepackage{lmodern}
+$endif$
+$if(linestretch)$
+\usepackage{setspace}
+$else$
+\usepackage{setspace}
+\setstretch{1.2}
+$endif$
+\usepackage{iftex}
+\ifPDFTeX
+  \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{textcomp} % provide euro and other symbols
+\else % if luatex or xetex
+$if(mathspec)$
+  \ifXeTeX
+    \usepackage{mathspec}
+  \else
+    \usepackage{unicode-math}
+  \fi
+$else$
+  \usepackage{unicode-math}
+$endif$
+  \defaultfontfeatures{Scale=MatchLowercase}
+  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
+$if(mainfont)$
+  \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
+$endif$
+$if(sansfont)$
+  \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
+$endif$
+$if(monofont)$
+  \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
+$endif$
+$for(fontfamilies)$
+  \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
+$endfor$
+$if(mathfont)$
+$if(mathspec)$
+  \ifXeTeX
+    \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
+  \else
+    \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
+  \fi
+$else$
+  \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
+$endif$
+$endif$
+$if(CJKmainfont)$
+  \ifXeTeX
+    \usepackage{xeCJK}
+    \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
+  \fi
+$endif$
+$if(luatexjapresetoptions)$
+  \ifLuaTeX
+    \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
+  \fi
+$endif$
+$if(CJKmainfont)$
+  \ifLuaTeX
+    \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
+    \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
+  \fi
+$endif$
+\fi
+$if(zero-width-non-joiner)$
+%% Support for zero-width non-joiner characters.
+\makeatletter
+\def\zerowidthnonjoiner{%
+  % Prevent ligatures and adjust kerning, but still support hyphenating.
+  \texorpdfstring{%
+    \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+      \ifvmode\else\nobreak\hskip\z@skip\fi}{}%
+  }{}%
+}
+\makeatother
+\ifPDFTeX
+  \DeclareUnicodeCharacter{200C}{\zerowidthnonjoiner}
+\else
+  \catcode`^^^^200c=\active
+  \protected\def ^^^^200c{\zerowidthnonjoiner}
+\fi
+%% End of ZWNJ support
+$endif$
+$if(beamer)$
+$if(theme)$
+\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
+$endif$
+$if(colortheme)$
+\usecolortheme{$colortheme$}
+$endif$
+$if(fonttheme)$
+\usefonttheme{$fonttheme$}
+$endif$
+$if(mainfont)$
+\usefonttheme{serif} % use mainfont rather than sansfont for slide text
+$endif$
+$if(innertheme)$
+\useinnertheme{$innertheme$}
+$endif$
+$if(outertheme)$
+\useoutertheme{$outertheme$}
+$endif$
+$endif$
+% Use upquote if available, for straight quotes in verbatim environments
+\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
+\IfFileExists{microtype.sty}{% use microtype if available
+  \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
+  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
+}{}
+$if(indent)$
+$else$
+\makeatletter
+\@ifundefined{KOMAClassName}{% if non-KOMA class
+  \IfFileExists{parskip.sty}{%
+    \usepackage{parskip}
+  }{% else
+    \setlength{\parindent}{0pt}
+    \setlength{\parskip}{6pt plus 2pt minus 1pt}}
+}{% if KOMA class
+  \KOMAoptions{parskip=half}}
+\makeatother
+$endif$
+$if(verbatim-in-note)$
+\usepackage{fancyvrb}
+$endif$
+\usepackage{lastpage}
+\usepackage{xcolor}
+\definecolor{default-linkcolor}{HTML}{A50000}
+\definecolor{default-filecolor}{HTML}{A50000}
+\definecolor{default-citecolor}{HTML}{4077C0}
+\definecolor{default-urlcolor}{HTML}{4077C0}
+\definecolor{default-uclcolor}{HTML}{1E355B}
+\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
+$if(footnotes-pretty)$
+% load footmisc in order to customize footnotes (footmisc has to be loaded before hyperref, cf. https://tex.stackexchange.com/a/169124/144087)
+\usepackage[hang,flushmargin,bottom,multiple]{footmisc}
+\setlength{\footnotemargin}{0.8em} % set space between footnote nr and text
+\setlength{\footnotesep}{\baselineskip} % set space between multiple footnotes
+\setlength{\skip\footins}{0.3cm} % set space between page content and footnote
+\setlength{\footskip}{0.9cm} % set space between footnote and page bottom
+$endif$
+\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
+\hypersetup{
+$if(title-meta)$
+  pdftitle={$title-meta$},
+$endif$
+$if(author-meta)$
+  pdfauthor={$author-meta$},
+$endif$
+$if(lang)$
+  pdflang={$lang$},
+$endif$
+$if(subject)$
+  pdfsubject={$subject$},
+$endif$
+$if(keywords)$
+  pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
+$endif$
+$if(colorlinks)$
+  colorlinks=true,
+  linkcolor={$if(linkcolor)$$linkcolor$$else$default-linkcolor$endif$},
+  filecolor={$if(filecolor)$$filecolor$$else$default-filecolor$endif$},
+  citecolor={$if(citecolor)$$citecolor$$else$default-citecolor$endif$},
+  urlcolor={$if(urlcolor)$$urlcolor$$else$default-urlcolor$endif$},
+$else$
+  hidelinks,
+$endif$
+  breaklinks=true,
+  pdfcreator={LaTeX via pandoc with the Eisvogel template}}
+\urlstyle{same} % disable monospaced font for URLs
+$if(verbatim-in-note)$
+\VerbatimFootnotes % allow verbatim text in footnotes
+$endif$
+$if(geometry)$
+$if(beamer)$
+\geometry{$for(geometry)$$geometry$$sep$,$endfor$}
+$else$
+\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
+$endif$
+$else$
+$if(beamer)$
+$else$
+\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering,$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
+$endif$
+$endif$
+$if(titlepage-logo)$
+\usepackage[export]{adjustbox}
+\usepackage{graphicx}
+$endif$
+$if(beamer)$
+\newif\ifbibliography
+$endif$
+$if(listings)$
+\usepackage{listings}
+\newcommand{\passthrough}[1]{#1}
+\lstset{defaultdialect=[5.3]Lua}
+\lstset{defaultdialect=[x86masm]Assembler}
+$endif$
+$if(listings-no-page-break)$
+\usepackage{etoolbox}
+\BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}}
+\AfterEndEnvironment{lstlisting}{\end{minipage}\par\addvspace{\topskip}}
+$endif$
+$if(lhs)$
+\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
+$endif$
+$if(highlighting-macros)$
+$highlighting-macros$
+
+% Workaround/bugfix from jannick0.
+% See https://github.com/jgm/pandoc/issues/4302#issuecomment-360669013)
+% or https://github.com/Wandmalfarbe/pandoc-latex-template/issues/2
+%
+% Redefine the verbatim environment 'Highlighting' to break long lines (with
+% the help of fvextra). Redefinition is necessary because it is unlikely that
+% pandoc includes fvextra in the default template.
+\usepackage{fvextra}
+\DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,fontsize=$if(code-block-font-size)$$code-block-font-size$$else$\small$endif$,commandchars=\\\{\}}
+
+$endif$
+$if(tables)$
+\usepackage{longtable,booktabs,array}
+$if(multirow)$
+\usepackage{multirow}
+$endif$
+\usepackage{calc} % for calculating minipage widths
+$if(beamer)$
+\usepackage{caption}
+% Make caption package work with longtable
+\makeatletter
+\def\fnum@table{\tablename~\thetable}
+\makeatother
+$else$
+% Correct order of tables after \paragraph or \subparagraph
+\usepackage{etoolbox}
+\makeatletter
+\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
+\makeatother
+% Allow footnotes in longtable head/foot
+\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
+\makesavenoteenv{longtable}
+$endif$
+$endif$
+% add backlinks to footnote references, cf. https://tex.stackexchange.com/questions/302266/make-footnote-clickable-both-ways
+$if(footnotes-disable-backlinks)$
+$else$
+\usepackage{footnotebackref}
+$endif$
+$if(graphics)$
+\usepackage{graphicx}
+\makeatletter
+\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
+\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
+\makeatother
+% Scale images if necessary, so that they will not overflow the page
+% margins by default, and it is still possible to overwrite the defaults
+% using explicit options in \includegraphics[width, height, ...]{}
+\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
+% Set default figure placement to htbp
+\makeatletter
+\def\fps@figure{htbp}
+\makeatother
+$endif$
+$if(links-as-notes)$
+% Make links footnotes instead of hotlinks:
+\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
+$endif$
+$if(strikeout)$
+$-- also used for underline
+\usepackage[normalem]{ulem}
+% Avoid problems with \sout in headers with hyperref
+\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
+$endif$
+\setlength{\emergencystretch}{3em} % prevent overfull lines
+\providecommand{\tightlist}{%
+  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
+$if(numbersections)$
+\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
+$else$
+\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
+$endif$
+$if(beamer)$
+$else$
+$if(block-headings)$
+% Make \paragraph and \subparagraph free-standing
+\ifx\paragraph\undefined\else
+  \let\oldparagraph\paragraph
+  \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
+\fi
+\ifx\subparagraph\undefined\else
+  \let\oldsubparagraph\subparagraph
+  \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
+\fi
+$endif$
+$endif$
+$if(pagestyle)$
+\pagestyle{$pagestyle$}
+$endif$
+$if(csl-refs)$
+\newlength{\cslhangindent}
+\setlength{\cslhangindent}{1.5em}
+\newlength{\csllabelwidth}
+\setlength{\csllabelwidth}{3em}
+\newlength{\cslentryspacingunit} % times entry-spacing
+\setlength{\cslentryspacingunit}{\parskip}
+\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
+ {% don't indent paragraphs
+  \setlength{\parindent}{0pt}
+  % turn on hanging indent if param 1 is 1
+  \ifodd #1
+  \let\oldpar\par
+  \def\par{\hangindent=\cslhangindent\oldpar}
+  \fi
+  % set entry spacing
+  \setlength{\parskip}{#2\cslentryspacingunit}
+ }%
+ {}
+\usepackage{calc}
+\newcommand{\CSLBlock}[1]{#1\hfill\break}
+\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
+\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
+\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
+$endif$
+$for(header-includes)$
+$header-includes$
+$endfor$
+$if(lang)$
+\usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
+% get rid of language-specific shorthands (see #6817):
+\let\LanguageShortHands\languageshorthands
+\def\languageshorthands#1{}
+$endif$
+\ifLuaTeX
+  \usepackage{selnolig}  % disable illegal ligatures
+\fi
+$if(dir)$
+\ifXeTeX
+  % Load bidi as late as possible as it modifies e.g. graphicx
+  \usepackage{bidi}
+\fi
+\ifPDFTeX
+  \TeXXeTstate=1
+  \newcommand{\RL}[1]{\beginR #1\endR}
+  \newcommand{\LR}[1]{\beginL #1\endL}
+  \newenvironment{RTL}{\beginR}{\endR}
+  \newenvironment{LTR}{\beginL}{\endL}
+\fi
+$endif$
+$if(natbib)$
+\usepackage[$natbiboptions$]{natbib}
+\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
+$endif$
+$if(biblatex)$
+\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
+$for(bibliography)$
+\addbibresource{$bibliography$}
+$endfor$
+$endif$
+$if(nocite-ids)$
+\nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
+$endif$
+$if(csquotes)$
+\usepackage{csquotes}
+$endif$
+
+$if(title)$
+\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
+$endif$
+$if(subtitle)$
+$if(beamer)$
+$else$
+\usepackage{etoolbox}
+\makeatletter
+\providecommand{\subtitle}[1]{% add subtitle to \maketitle
+  \apptocmd{\@title}{\par {\large #1 \par}}{}{}
+}
+\makeatother
+$endif$
+\subtitle{$subtitle$}
+$endif$
+\author{$for(author)$$author$$sep$ \and $endfor$}
+\date{$date$}
+$if(beamer)$
+$if(institute)$
+\institute{$for(institute)$$institute$$sep$ \and $endfor$}
+$endif$
+$if(titlegraphic)$
+\titlegraphic{\includegraphics{$titlegraphic$}}
+$endif$
+$if(logo)$
+\logo{\includegraphics{$logo$}}
+$endif$
+$endif$
+
+
+
+%%
+%% added
+%%
+
+$if(page-background)$
+\usepackage[pages=all]{background}
+$endif$
+
+%
+% for the background color of the title page
+%
+$if(titlepage)$
+\usepackage{pagecolor}
+\usepackage{afterpage}
+$if(titlepage-background)$
+\usepackage{tikz}
+$endif$
+$if(geometry)$
+$else$
+\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering]{geometry}
+$endif$
+$endif$
+
+%
+% break urls
+%
+\PassOptionsToPackage{hyphens}{url}
+
+%
+% When using babel or polyglossia with biblatex, loading csquotes is recommended
+% to ensure that quoted texts are typeset according to the rules of your main language.
+%
+\usepackage{csquotes}
+
+%
+% captions
+%
+\definecolor{caption-color}{HTML}{777777}
+$if(beamer)$
+$else$
+\usepackage[font={stretch=1.2}, textfont={color=caption-color}, position=top, skip=4mm, labelfont=bf, singlelinecheck=false, justification=$if(caption-justification)$$caption-justification$$else$raggedright$endif$]{caption}
+\setcapindent{0em}
+$endif$
+
+%
+% blockquote
+%
+\definecolor{blockquote-border}{RGB}{221,221,221}
+\definecolor{blockquote-text}{RGB}{119,119,119}
+\usepackage{mdframed}
+\newmdenv[rightline=false,bottomline=false,topline=false,linewidth=3pt,linecolor=blockquote-border,skipabove=\parskip]{customblockquote}
+\renewenvironment{quote}{\begin{customblockquote}\list{}{\rightmargin=0em\leftmargin=0em}%
+\item\relax\color{blockquote-text}\ignorespaces}{\unskip\unskip\endlist\end{customblockquote}}
+
+%
+% Source Sans Pro as the de­fault font fam­ily
+% Source Code Pro for monospace text
+%
+% 'default' option sets the default
+% font family to Source Sans Pro, not \sfdefault.
+%
+\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
+  $if(fontfamily)$
+  $else$
+  \usepackage[default]{sourcesanspro}
+  \usepackage{sourcecodepro}
+  $endif$
+\else % if not pdftex
+  $if(mainfont)$
+  $else$
+  \usepackage[default]{sourcesanspro}
+  \usepackage{sourcecodepro}
+
+  % XeLaTeX specific adjustments for straight quotes: https://tex.stackexchange.com/a/354887
+  % This issue is already fixed (see https://github.com/silkeh/latex-sourcecodepro/pull/5) but the
+  % fix is still unreleased.
+  % TODO: Remove this workaround when the new version of sourcecodepro is released on CTAN.
+  \ifxetex
+    \makeatletter
+    \defaultfontfeatures[\ttfamily]
+      { Numbers   = \sourcecodepro@figurestyle,
+        Scale     = \SourceCodePro@scale,
+        Extension = .otf }
+    \setmonofont
+      [ UprightFont    = *-\sourcecodepro@regstyle,
+        ItalicFont     = *-\sourcecodepro@regstyle It,
+        BoldFont       = *-\sourcecodepro@boldstyle,
+        BoldItalicFont = *-\sourcecodepro@boldstyle It ]
+      {SourceCodePro}
+    \makeatother
+  \fi
+  $endif$
+\fi
+
+%
+% heading color
+%
+\definecolor{heading-color}{RGB}{40,40,40}
+$if(beamer)$
+$else$
+%\addtokomafont{section}{\color{heading-color}}
+\addtokomafont{section}{\color{default-uclcolor}}
+\addtokomafont{subsection}{\color{default-uclcolor}}
+\addtokomafont{subsubsection}{\color{default-uclcolor}}
+$endif$
+% When using the classes report, scrreprt, book,
+% scrbook or memoir, uncomment the following line.
+%\addtokomafont{chapter}{\color{heading-color}}
+
+%
+% variables for title, author and date
+%
+$if(beamer)$
+$else$
+\usepackage{titling}
+\title{$title$}
+\author{$for(author)$$author$$sep$, $endfor$}
+\date{$date$}
+$endif$
+
+%
+% tables
+%
+$if(tables)$
+
+\definecolor{table-row-color}{HTML}{F5F5F5}
+\definecolor{table-rule-color}{HTML}{999999}
+
+%\arrayrulecolor{black!40}
+\arrayrulecolor{table-rule-color}     % color of \toprule, \midrule, \bottomrule
+\setlength\heavyrulewidth{0.3ex}      % thickness of \toprule, \bottomrule
+\renewcommand{\arraystretch}{1.3}     % spacing (padding)
+
+$if(table-use-row-colors)$
+% TODO: This doesn't work anymore. I don't know why.
+% Reset rownum counter so that each table
+% starts with the same row colors.
+% https://tex.stackexchange.com/questions/170637/restarting-rowcolors
+%
+% Unfortunately the colored cells extend beyond the edge of the
+% table because pandoc uses @-expressions (@{}) like so:
+%
+% \begin{longtable}[]{@{}ll@{}}
+% \end{longtable}
+%
+% https://en.wikibooks.org/wiki/LaTeX/Tables#.40-expressions
+\let\oldlongtable\longtable
+\let\endoldlongtable\endlongtable
+\renewenvironment{longtable}{
+\rowcolors{3}{}{table-row-color!100}  % row color
+\oldlongtable} {
+\endoldlongtable
+\global\rownum=0\relax}
+$endif$
+$endif$
+
+%
+% remove paragraph indention
+%
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{6pt plus 2pt minus 1pt}
+\setlength{\emergencystretch}{3em}  % prevent overfull lines
+
+%
+%
+% Listings
+%
+%
+
+$if(listings)$
+
+%
+% general listing colors
+%
+\definecolor{listing-background}{HTML}{F7F7F7}
+\definecolor{listing-rule}{HTML}{B3B2B3}
+\definecolor{listing-numbers}{HTML}{B3B2B3}
+\definecolor{listing-text-color}{HTML}{000000}
+\definecolor{listing-keyword}{HTML}{435489}
+\definecolor{listing-keyword-2}{HTML}{1284CA} % additional keywords
+\definecolor{listing-keyword-3}{HTML}{9137CB} % additional keywords
+\definecolor{listing-identifier}{HTML}{435489}
+\definecolor{listing-string}{HTML}{00999A}
+\definecolor{listing-comment}{HTML}{8E8E8E}
+
+\lstdefinestyle{eisvogel_listing_style}{
+  language         = java,
+$if(listings-disable-line-numbers)$
+  xleftmargin      = 0.6em,
+  framexleftmargin = 0.4em,
+$else$
+  numbers          = left,
+  xleftmargin      = 2.7em,
+  framexleftmargin = 2.5em,
+$endif$
+  backgroundcolor  = \color{listing-background},
+  basicstyle       = \color{listing-text-color}\linespread{1.0}%
+                      \lst@ifdisplaystyle%
+                      $if(code-block-font-size)$$code-block-font-size$$else$\small$endif$%
+                      \fi\ttfamily{},
+  breaklines       = true,
+  frame            = single,
+  framesep         = 0.19em,
+  rulecolor        = \color{listing-rule},
+  frameround       = ffff,
+  tabsize          = 4,
+  numberstyle      = \color{listing-numbers},
+  aboveskip        = 1.0em,
+  belowskip        = 0.1em,
+  abovecaptionskip = 0em,
+  belowcaptionskip = 1.0em,
+  keywordstyle     = {\color{listing-keyword}\bfseries},
+  keywordstyle     = {[2]\color{listing-keyword-2}\bfseries},
+  keywordstyle     = {[3]\color{listing-keyword-3}\bfseries\itshape},
+  sensitive        = true,
+  identifierstyle  = \color{listing-identifier},
+  commentstyle     = \color{listing-comment},
+  stringstyle      = \color{listing-string},
+  showstringspaces = false,
+  escapeinside     = {/*@}{@*/}, % Allow LaTeX inside these special comments
+  literate         =
+  {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
+  {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
+  {à}{{\`a}}1 {è}{{\'e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
+  {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
+  {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+  {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+  {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
+  {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
+  {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
+  {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
+  {€}{{\EUR}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
+  {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
+  {…}{{\ldots}}1 {≥}{{>=}}1 {≤}{{<=}}1 {„}{{\glqq}}1 {“}{{\grqq}}1
+  {”}{{''}}1
+}
+\lstset{style=eisvogel_listing_style}
+
+%
+% Java (Java SE 12, 2019-06-22)
+%
+\lstdefinelanguage{Java}{
+  morekeywords={
+    % normal keywords (without data types)
+    abstract,assert,break,case,catch,class,continue,default,
+    do,else,enum,exports,extends,final,finally,for,if,implements,
+    import,instanceof,interface,module,native,new,package,private,
+    protected,public,requires,return,static,strictfp,super,switch,
+    synchronized,this,throw,throws,transient,try,volatile,while,
+    % var is an identifier
+    var
+  },
+  morekeywords={[2] % data types
+    % primitive data types
+    boolean,byte,char,double,float,int,long,short,
+    % String
+    String,
+    % primitive wrapper types
+    Boolean,Byte,Character,Double,Float,Integer,Long,Short
+    % number types
+    Number,AtomicInteger,AtomicLong,BigDecimal,BigInteger,DoubleAccumulator,DoubleAdder,LongAccumulator,LongAdder,Short,
+    % other
+    Object,Void,void
+  },
+  morekeywords={[3] % literals
+    % reserved words for literal values
+    null,true,false,
+  },
+  sensitive,
+  morecomment  = [l]//,
+  morecomment  = [s]{/*}{*/},
+  morecomment  = [s]{/**}{*/},
+  morestring   = [b]",
+  morestring   = [b]',
+}
+
+\lstdefinelanguage{XML}{
+  morestring      = [b]",
+  moredelim       = [s][\bfseries\color{listing-keyword}]{<}{\ },
+  moredelim       = [s][\bfseries\color{listing-keyword}]{</}{>},
+  moredelim       = [l][\bfseries\color{listing-keyword}]{/>},
+  moredelim       = [l][\bfseries\color{listing-keyword}]{>},
+  morecomment     = [s]{<?}{?>},
+  morecomment     = [s]{<!--}{-->},
+  commentstyle    = \color{listing-comment},
+  stringstyle     = \color{listing-string},
+  identifierstyle = \color{listing-identifier}
+}
+$endif$
+
+%
+% header and footer
+%
+$if(beamer)$
+$else$
+$if(disable-header-and-footer)$
+$else$
+%\usepackage[headsepline,footsepline]{scrlayer-scrpage}
+\usepackage[headsepline]{scrlayer-scrpage}
+
+\newpairofpagestyles{eisvogel-header-footer}{
+  \clearpairofpagestyles
+  \ihead*{$if(header-left)$$header-left$$else$$title$$endif$}
+  %\chead*{$if(header-center)$$header-center$$else$$endif$}
+  %\ohead*{$if(header-right)$$header-right$$else$$date$$endif$}
+  \ohead*{$if(header-right)$$header-right$$else$$for(author)$$author$$sep$, $endfor$$endif$}
+  %\ifoot*{$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$}
+  %\cfoot*{$if(footer-center)$$footer-center$$else$$endif$}
+  \cfoot*{$if(footer-center)$$footer-center$$else$Page \thepage \hspace{1pt} sur \pageref{LastPage}$endif$}
+  %\ofoot*{$if(footer-right)$$footer-right$$else$\thepage$endif$}
+  \addtokomafont{pageheadfoot}{\upshape}
+}
+\pagestyle{eisvogel-header-footer}
+
+$if(book)$
+\deftripstyle{ChapterStyle}{}{}{}{}{\pagemark}{}
+\renewcommand*{\chapterpagestyle}{ChapterStyle}
+$endif$
+
+$if(page-background)$
+\backgroundsetup{
+scale=1,
+color=black,
+opacity=$if(page-background-opacity)$$page-background-opacity$$else$0.2$endif$,
+angle=0,
+contents={%
+  \includegraphics[width=\paperwidth,height=\paperheight]{$page-background$}
+  }%
+}
+$endif$
+$endif$
+$endif$
+
+%%
+%% end added
+%%
+
+\begin{document}
+
+%%
+%% begin titlepage
+%%
+$if(beamer)$
+$else$
+$if(titlepage)$
+\begin{titlepage}
+$if(titlepage-background)$
+\newgeometry{top=2cm, right=4cm, bottom=3cm, left=4cm}
+$else$
+\newgeometry{left=6cm}
+$endif$
+$if(titlepage-color)$
+\definecolor{titlepage-color}{HTML}{$titlepage-color$}
+\newpagecolor{titlepage-color}\afterpage{\restorepagecolor}
+$endif$
+$if(titlepage-background)$
+\tikz[remember picture,overlay] \node[inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{$titlepage-background$}};
+$endif$
+\newcommand{\colorRule}[3][black]{\textcolor[HTML]{#1}{\rule{#2}{#3}}}
+\begin{flushleft}
+\noindent
+\\[-1em]
+\color[HTML]{$if(titlepage-text-color)$$titlepage-text-color$$else$5F5F5F$endif$}
+%\makebox[0pt][l]{\colorRule[$if(titlepage-rule-color)$$titlepage-rule-color$$else$435488$endif$]{1.3\textwidth}{$if(titlepage-rule-height)$$titlepage-rule-height$$else$4$endif$pt}}
+\par
+\noindent
+
+$if(titlepage-background)$
+% The titlepage with a background image has other text spacing and text size
+{
+  \setstretch{2}
+  \vfill
+  \vskip -8em
+  \noindent {\huge \textbf{\textsf{$title$}}}
+  {\color{default-uclcolor} \rule{\linewidth}{0.5mm}}
+  $if(subtitle)$
+  \vskip 1em
+  {\Large \textsf{\color{black}$subtitle$}}
+  $endif$
+  \vskip 2em
+  \noindent {\large \textbf{$for(author)$$author$$sep$, $endfor$}}
+  $if(option1)$
+  \noindent {\textsf{\\$option1$}}
+  $endif$
+  $if(option2)$
+  \noindent {\textsf{\\$option2$}}
+  $endif$
+  $if(option3)$
+  \noindent {\textsf{\\$option3$}}
+  $endif$
+  $if(option4)$
+  \noindent {\textsf{\\$option4$}}
+  $endif$
+  $if(option5)$
+  \noindent {\textsf{\\$option5$}}
+  $endif$
+  $if(option6)$
+  \noindent {\textsf{\\$option6$}}
+  $endif$
+  \noindent {\normalsize \vskip 0.6em \textsf{\color{black}$date$}}
+  %\noindent {\normalsize \vskip 0.6em \textsf{\color{black}\today}}
+  \vfill
+}
+$else$
+{
+  \setstretch{1.4}
+  \vfill
+  \noindent {\huge \textbf{\textsf{$title$}}}
+  $if(subtitle)$
+  \vskip 1em
+  {\Large \textsf{$subtitle$}}
+  $endif$
+  \vskip 2em
+  \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}}
+  \vfill
+}
+$endif$
+
+$if(titlepage-logo)$
+\noindent
+\includegraphics[width=$if(logo-width)$$logo-width$$else$35mm$endif$, left]{$titlepage-logo$}
+$endif$
+
+$if(titlepage-background)$
+$else$
+\textsf{\color{black}$date$}
+$endif$
+\end{flushleft}
+\end{titlepage}
+\restoregeometry
+\pagenumbering{arabic} 
+$endif$
+$endif$
+
+%%
+%% end titlepage
+%%
+
+$if(has-frontmatter)$
+\frontmatter
+$endif$
+$if(title)$
+$if(beamer)$
+\frame{\titlepage}
+$endif$
+$if(abstract)$
+\begin{abstract}
+$abstract$
+\end{abstract}
+$endif$
+$endif$
+
+$if(first-chapter)$
+\setcounter{chapter}{$first-chapter$}
+\addtocounter{chapter}{-1}
+$endif$
+
+$for(include-before)$
+$include-before$
+
+$endfor$
+$if(toc)$
+$if(toc-title)$
+\renewcommand*\contentsname{$toc-title$}
+$endif$
+$if(beamer)$
+\begin{frame}[allowframebreaks]
+$if(toc-title)$
+  \frametitle{$toc-title$}
+$endif$
+  \tableofcontents[hideallsubsections]
+\end{frame}
+$if(toc-own-page)$
+\newpage
+$endif$
+$else$
+{
+$if(colorlinks)$
+\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
+$endif$
+\setcounter{tocdepth}{$toc-depth$}
+\tableofcontents
+$if(toc-own-page)$
+\newpage
+$endif$
+}
+$endif$
+$endif$
+$if(lof)$
+\listoffigures
+$endif$
+$if(lot)$
+\listoftables
+$endif$
+$if(linestretch)$
+\setstretch{$linestretch$}
+$endif$
+$if(has-frontmatter)$
+\mainmatter
+$endif$
+$body$
+
+$if(has-frontmatter)$
+\backmatter
+$endif$
+$if(natbib)$
+$if(bibliography)$
+$if(biblio-title)$
+$if(has-chapters)$
+\renewcommand\bibname{$biblio-title$}
+$else$
+\renewcommand\refname{$biblio-title$}
+$endif$
+$endif$
+$if(beamer)$
+\begin{frame}[allowframebreaks]{$biblio-title$}
+  \bibliographytrue
+$endif$
+  \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
+$if(beamer)$
+\end{frame}
+$endif$
+
+$endif$
+$endif$
+$if(biblatex)$
+$if(beamer)$
+\begin{frame}[allowframebreaks]{$biblio-title$}
+  \bibliographytrue
+  \printbibliography[heading=none]
+\end{frame}
+$else$
+\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
+$endif$
+
+$endif$
+$for(include-after)$
+$include-after$
+
+$endfor$
+\end{document}

BIN
Report/garde.pdf


+ 0 - 0
Report/Acte_candidature_2016.doc → Report/old/Acte_candidature_2016.doc


+ 0 - 0
Report/Acte_candidature_2022.docx → Report/old/Acte_candidature_2022.docx


+ 0 - 0
Report/Acte_candidature_2022.pdf → Report/old/Acte_candidature_2022.pdf


+ 0 - 0
Report/CV_Pierre_Yves_Barriat_2016.pdf → Report/old/CV_Pierre_Yves_Barriat_2016.pdf


+ 0 - 0
Report/Projet_brevet_01.docx → Report/old/Projet_brevet_01.docx


+ 0 - 0
Report/Projet_brevet_02.docx → Report/old/Projet_brevet_02.docx


BIN
Report/Projet_brevet_03.docx → Report/old/Projet_brevet_03.docx


+ 0 - 0
Report/Projet_brevet_Barriat.pdf → Report/old/Projet_brevet_Barriat.pdf


BIN
candidature_TK.pdf


+ 0 - 239
debut.txt

@@ -1,239 +0,0 @@
-Introduction
-
-Les chercheurs sont de plus en plus confrontés à la gestion d'énormes quantités de données scientifiques. Ces dernières sont soit produites localement soit téléchargées depuis les machines d’autres centres de recherche ou depuis des dépôts centralisés. Elles sont ensuite utilisées, analysées, etudiées, modifées,... localement ou à distance sur d'autres machines de calculs.
-La gestion de cette masse de données constitue un réel défi pour de nombreux pôles de recherche de notre institution. En effet, chaque chercheur ou groupe de chercheurs est soumis à une phase de formation et d’adaptation afin de maîtriser les différentes méthodologies à appliquer pour pouvoir obtenir et travailler sur telles ou telles données, et enfin de pouvoir les stocker et les partager, les diffuser ou les réutiliser.
-Le stockage et l'accessibilié des données constituent l'enjeu de ce brevet.
-
-Contexte
-
-Il existe 3 principales solutions de stockage des données à l'UCLouvain, hormis les solutions d'archivage et de backup. L'utilisation de l'une ou l'autre de ces solutions dépend du type des données (volumes, finalité, etc) mais aussi de l'environnement de l'utilisateur (système d'exploitation, logiciels, etc) et de l'environnement pour les données elles-mêmes (origine, logiciels pour les exploiter, etc).
-
-Le systeme de fichiers OASIS est un espace de stockage centralisé qu'il est possible d'intégrer à n'importe quel environnement de travail (multi-platformes via différents protocoles) au sein du réseau institutionnel. Il est utilisé pour des données dont la taille reste de l'ordre du Mo jusqu'à plusieurs Go et offre un backup journalier. 
-OASIS représente un système de fichier dans un réseau privé (réseau UCLouvain) en "modèle interne" (entièrement géré et hébergé localement). C'est un système de stockage hiérarchique qui fournit un accès partagé aux données. Les utilisateurs peuvent créer, supprimer, modifier, lire et écrire des fichiers et peuvent les organiser logiquement dans des arborescences de répertoires (accès intuitif). 
-
-OneDrive et SharePoint sont des solutions de stockage intégrées à MS Office 365. Sharepoint est un espace très spécifique, fortement intégré aux outils de la suite bureautique. Son utilisation se fait en ligne via un navigateur. Il est possible de l'intégrer davantage (synchronisation, édition locale, etc) à l'environnement de travail via un client OneDrive (mais hors environnement GNU/Linux). La taille des données ne doit pas excéder 250Mo pour bénéficier d'un service efficace. Il s'agit davantage d'un espace de travail collaboratif partagé.
-Pour de plus grande quantité de données, l'utilisation de OneDrive est plus approriée et plus performante. Cette solution est un espace de stockage dans un cloud publique en modèle SaaS (entièrement géré et hébergé par Microsoft). OneDrive (via son compte UCLouvain) permet de stocker et sauvegarder de grande quantité de données en toute sécurité dans l'UE (respectant les recommandations GDPR). Mais les données ne sont pérennes que pour un utilisateur de l'UClouvain: si ce dernier quitte l'institution, les données disparaissent. 
-Les solutions de stockage de Microsoft ne sont en revanche pas ou peu adaptées pour des données sous environnement GNU/Linux. 
-
-Pour une partie du parc de machines individuelles de l'UCLouvain utilisant un environnment de travail GNU/Linux mais aussi pour les clusters HPC et les serveurs interactifs partagés, il n'est donc pas aisé de lier efficacement l'un de ces services de stockage au système de fichiers. Pour cela, il existe le service du stockage de masse proposé par la plateforme technologique du CISM.
-Cet espace de stockage offre une très grande capacité aux utilisateurs et de hautes performances. En revanche, celui-ci est essentiellement adapté aux environnements Unix (MacOs ou GNU/Linux) car accessible uniquement via les protocoles SSH et FTP. Comme OASIS, le stockage de masse du CISM est un système de fichier dans un réseau privé (réseau CECI: Universités francophones) en "modèle interne" (entièrement géré et hébergé au CISM).
-
-Description du projet
-
-Comment offrir une solution de stockage multi-plateformes combinant grande capacité de stockage, gestion des grands datasets (>10Go) et hébergé localement ?
-Nextcloud est un logiciel libre qui propose de combiner cela. Il s'agit d'un logiciel de site d'hébergement de fichiers mais aussi d'une plateforme de collaboration. C'est-à-dire qu'il peut s'utiliser comme un espace de stockage cloud publique à la manière de OneDrive ou DropBox, mais en "modèle interne" (entièrement géré et hébergé localement). En outre, il propose une panoplie de fonctionnalités afin de proposer des services à la manière d'Office 365 ou des services de Google: gestion des agendas (CalDAV), des contacts (CardDAV), des tâches, des notes, espace de collaboration (suite bureautique en ligne basée sur LibreOffice), gestion de version des fichiers, partage multiple, etc
-Il est également possible de lui ajouter des extensions afin de prendre en charge des espaces de stockage externes par protocoles (FTP, SSH, NFS, WebDAV ou SMB/CIFS comme OASIS) mais aussi par services (comme OneDrive ou DropBox). Il peut également prendre en charge le stockage objet (comme Amazon S3 ou OpenStack).
-Enfin, Nexcloud propose un logiciel client multi-plateformes pour une intégration totale avec tous les environnements (Windows, MacOs, GNU/Linux, Android, iOS), dispose d'un système d'authentification à deux facteurs, et respecte les recommandations GDPR.
-
-Dans le contexte de la gestion des grandes quantité de données scientifiques, j'envisage une collaboration avec le CISM afin de pérenniser un service Nextcloud. 
-L'objectif premier est d'offrir aux chercheurs une accès efficace à leurs données non bureautiques, c'est-à-dire non exploitables par des logiciels comme ceux fournis par la suite MS Office et nécessitant un traitement spécifique. La mise en place de ce service offre également l'opportunité d'intégrer les solutions de stockage existantes au sein d'une plateforme commune.
-
-Les objectifs 
-
-Dans le cadre de ce premier brevet, les objectifs poursuivis sont :
-
-- d'installer une instance de Nextcloud dans l'infrastructure OpenStack du CISM
-- de professionnaliser la technique sous-jacente à Nextcloud en termes de performances, de robustesse et d'accessibilité 
-- de créer des liens efficaces entre Nextcloud et les différents espaces de stockage: stockage de masse, oneDrive, OASIS, dataverse du CISM, stockage partagé CECI, etc.
-- d'institutionnaliser le service Nextcloud au niveau de l'ELI et/ou d’autres pôles de recherche intéressés 
-
-Une phase de test du service Nextcloud a déjà été réalisée en amont de ce brevet: j'ai en effet pu installer une instance dans un conteneur virtuel (Docker) sur une machine interactive financée par ELIC et installée dans l'infrastructure du CISM depuis 2017. Cette machine arrive cependant en fin de vie en juillet 2022.
-
-Ce projet se positionne au niveau d'un institut de recherche (ELI) en collaboration avec une plateforme technologique sectorielle (CISM). Les services de l'Institution en relation avec le projet ou impacté sont le SRI et le SGSI.
-
-Produit du projet
-
-Les délivrables de ce projet prendront la forme d'une instance Nextcloud entièrement opérationnelle :
-
-- côté serveur, dans l'environnement CISM pour l'infrastructure backend (service et stockage cloud)
-- côté client, disponible pour les utilisateurs via une interface web ou via les applications clientes disponibles pour Windows, macOS, Linux (de nombreuses distributions), iOS et Android.
-
-Les spécifications et fonctionnalités de cette instances seront les suivantes :
-
-- accès via la création d'un compte CISM
-(- chiffrement de bout en bout)
-- gestion des versions de fichiers (la fréquence de sauvegarde et la fréquence de conservation sont définies par l'administrateur)
-- partage des fichiers au niveau utilisateurs (les fichiers ou dossiers individuels peuvent être partagés avec des personnes sélectionnées sur les comptes Nextcloud, ou avec n'importe qui via un simple lien URL, l'expéditeur ayant un grand contrôle sur le processus. Ils peuvent, par exemple, définir une date d'expiration pour le lien, exiger un mot de passe pour ouvrir le fichier envoyé, joindre une note, etc.)
-- collaboration (Collabora Online est une suite bureautique en ligne basée sur LibreOffice qui prend en charge tous les principaux formats de documents, de feuilles de calcul et de fichiers de présentation.)
-- diffusion des fichiers multimédias en ligne
-- calendrier, contacts, notes et tâches 
-- téléchargement automatique des photos à partir d'appareils mobiles
-- authentification à deux facteurs (via des codes de sauvegarde ou une application d'authentification TOTP)
-- conforme au RGPD et HIPPA
-
-
-
-Contraintes
-
-Ce projet présente une contrainte importante de délai à respecter pour sa réalisation. Il
-s’agit pour moi d’un avantage dans le cadre de mon brevet. Le service doit être en
-production pour la fin de cette année. Les ressources requises seront disponibles auprès
-du CISM via son infrastructure en place.
-
-Ressources
-Accessibilité à une infrastructure de développement et de validation (test)
-Concernant l‘environnement de test, prise en compte des points suivants :
-o localisation et hébergement des serveurs : qualité des performances,
-possibilité d’accès, coût, sécurité, etc.
-o réseau (type, vitesse et performance des liaisons, disponibilité, support)
-o outils de sécurisation des transactions et des serveurs (certificats,
-authentification par clés, mots de passe, firewall, etc.)
-o procédures, outils et ressources pour assurer la gestion et la maintenance :
-du réseau, du matériel, des logiciels, des accès, de l’usage, des coûts, du
-support utilisateur, de la performance, etc.
-Accessibilité à des données extérieures (par exemple : NASA, CMIP, ECMWF, etc.) :
-identification des sources de données, démarches administratives, protocoles de
-connexion (« batch process » possible sur DB distante ou non ?), coûts éventuels,
-etc.
-Techniques
-localisation des applications et des bases de données (répartition des processus
-applicatifs entre serveurs, etc.)
-outils utilisés issus de logiciels libres
-environnement de travail
-architecture et fonctionnalités de l’application :
-o pages web
-o middleware
-o bases de données
-langages de développement
-outils de sécurisation des transactions et des serveurs (certificats,
-authentification par clés, mots de passe, firewall, etc.)
-performances que le système doit supporter dans 90% des cas : temps de
-réponse utilisateur, outils de mesure des performances, disponibilité requise, etc.)
-reproductibilité et persistance de l’application
-évolutivité de la solution (possibilités)
-Autres contraintes
-documentation requise
-méthode d’analyse (performance, risques)
-évolutivité de la solution (coût)
-plan de formation des utilisateurs et des gestionnaires
-support utilisateurs
-
-Livraison estimée d’un prototype minimum viable : fin 2022
-Les échéances intermédiaires sont détaillées dans la section de planification du projet ci-dessous.
-
-Planification
-
-janvier 2022 : demande de changement de l’objet du premier brevet et
-soumission d’un nouvel acte de candidature à l’examen
-avril 2022 : soumission du nouveau projet détaillé et demande de validation de
-l’objet et du niveau du brevet à la Commission paritaire
-fin avril 2022 : initialisation du projet
-novembre 2022 : livraison du produit minimum viable
-février 2023 : finalisation du projet de premier brevet
-
-Les grandes phases du projet seront les suivantes :
-Phase 1 : Initialisation du projet
-Fin de rédaction du cahier des charges, choix techniques
-Calendrier : fin janvier 2019
-Phase 2 : Analyse et conception
-Conception globale de l’application : analyse fonctionnelle, modélisation
-Calendrier : fin mars 2019
-Phase 3 : Développement
-Evaluation à l’aide du cahier des charges en cours…
-Calendrier : fin août 2019
-Phase 4 : Tests d’intégration
-Intégration de l’ensemble des développements dans l’environnement de test
-Calendrier : fin septembre 2019
-Phase 5 : Documentation et présentation
-Documentation de l’application + présentation du prototype aux utilisateurs
-Calendrier : fin novembre 2019
-Organisation et suivi
-La phase d’initialisation du projet est soumise à la validation de la Commission paritaire.
-L’ensemble des activités introduites dans la planification des tâches sera discuté et suivi
-par Hugues Goosse en tant que coach-évaluateur et par Yves Deville en tant que second
-évaluateur. RHUM sera régulièrement informé du suivi global du travail. Le
-développement du projet nécessitera des interactions avec de nombreux groupes au
-sein de l’UCL comme détaillé dans les spécifications techniques.
-Evaluation
-La méthode d’analyse et les critères d’évaluation du projet sont soumis au règlement des
-examens d’avancement au grade d’informaticien-expert (document du 30 janvier 2006).
-Spécifications techniques
-Quelques pistes pour les points encore à définir :
-connexion réseau GB, agrégation de liens, etc. (contact : SRI)
-localisation serveurs (contacts possibles : CISM pour DCIII ou SGSI pour
-Pythagore)
-serveur(s) de stockage (contacts possibles : ELI, ELIC, CISM, SGSI)
-serveur(s) d’application (contacts possibles : ELI, ELIC, CISM, SGSI)
-Environnement de travail sous distribution linux virtualisée (Vagrant, Docker ?)
-Reproductibilité aisée de la configuration (Ansible ?)
-Persistance via système de gestion de versions (Git ou Mercurial)
-Application en architecture 3-tiers à client léger
-Plusieurs possibilités de langages de développement pour les couches
-présentation & middleware: PHP, R, Python, Java, Nodejs
-Possibilités de frameworks associés : Zend ou Symfony, Shiny, Django, Spring,
-Express, etc.
-Possibilité d’ajout d’objectifs supplémentaires pour la couche middleware:
-programmation fonctionnelle (scala) et/ou « language agnostic » pour les
-différentes tâches
-Couche accès aux données locale puis via DB distribuée : multi-sites UCL et multi-
-sites externes (sans doute hors MVP)
-Base de données SQL (MySQL, Postgresql ?)
-Echange de données inter-sites via protocole GridFTP (sans doute hors MVP)
-
-Spécifications de réalisation
-
-Quelques points encore à détailler :
-maquette ou démonstration fonctionnelle : objectifs, représentativité par rapport
-au projet complet, configuration, plan de travail, ressources, critères
-d’acceptation avant de poursuivre les travaux ;
-détails du calendrier des prestations : début, fin, phases, check-points ;
-planning de disponibilité des ressources mises à disposition (quantité,
-qualification, dates, lieux)
-méthodologie, plan et outils requis pour effectuer les tests :
-o fonctionnels, de performance et de qualité,
-o de montée en charge du réseau et des applications, d’ergonomie,
-o des fonctions de sauvegarde et de reprise ;
-Catégories du projet: application scientifique, application web, application de gestion
-
-Nextcloud est développé par Nextcloud GmbH, une société allemande créée par l'inventeur d'ownCloud Frank Karlitschek. En tant que logiciel open source qui peut être auto-hébergé ou hébergé à distance n'importe où, cependant, l'endroit où Nextcloud GmbH est basé n'est en grande partie pas pertinent.
-
-Ce qui importe, c'est la juridiction sous laquelle les données sont stockées. Dans la plupart des pays, la police a le droit de saisir l'équipement informatique personnel soupçonné d'être impliqué dans un crime, et les centres de données fonctionneront toujours conformément aux lois locales sur la conservation et la surveillance des données.
-
-Si vous avez l'intention d'utiliser Nextcloud pour stocker des données sensibles, il est conseillé de vous familiariser avec le paysage de la confidentialité et de la surveillance des différents pays. Effectuer votre propre cryptage (voir ci-dessous), cependant, peut fortement atténuer les dangers présentés par la juridiction dans laquelle vos données sont stockées.
-
-Nextcloud GmbH collecte des statistiques anonymes d'utilisation du site Web, mais ses applications n'envoient aucune information à l'entreprise.
-
-Il convient de noter, cependant, que les applications tierces respectent leurs propres politiques de confidentialité, dont Nextcloud GmbH n'est pas responsable.
-
-La version Google Play Store de l'application envoie des notifications push dans lesquelles un en-tête et un objet sont envoyés à Google, mais si vous n'aimez pas cela, vous pouvez télécharger l'apk directement ou obtenir l'application auprès de F-Droid.
-
-Les centres de données et les fournisseurs de solutions hébergées auront chacun leurs propres politiques de confidentialité, bien que l'utilisation du cryptage de bout en bout garantira qu'ils n'auront aucun accès à vos données.
-
-Sécurité technique
-Nextcloud propose différentes couches de cryptage pour sécuriser vos données.
-
-Cryptage pendant le transit
-Nextcloud sécurise les données en transit à l'aide de TLS, le protocole de chiffrement utilisé par HTTPS. Ceci est configuré dans le serveur Web, mais Nextcloud enverra un avertissement aux administrateurs si TLS n'est pas activé pour une raison quelconque. Les solutions hébergées qui utilisent HTTPS pour sécuriser le domaine doivent l'activer automatiquement.
-
-Chiffrement au repos
-Les données au repos peuvent être sécurisées à l'aide de l'application de chiffrement côté serveur AES-256, mais cela présente de sérieuses limitations. Le principal problème est que la clé de chiffrement est stockée avec les données dans l'instance Nextcloud, un problème aggravé par le fait que lorsqu'elle est utilisée, elle est stockée dans la RAM du serveur où elle peut être consultée par des pirates ou les opérateurs d'un serveur hébergé.
-
-Ce problème n'est pas résolu par le fait que le calendrier de synchronisation de bureau de 30 secondes de Nextcloud est très prévisible et offre donc une surface d'attaque facile pour les acteurs malveillants. En tant que tel, le chiffrement côté serveur de Nextcloud est mieux utilisé pour sécuriser les comptes de stockage externes qui sont liés à votre instance Nextcloud, tels que les comptes Google Drive et Dropbox.
-
-Un problème supplémentaire est que seul le contenu des fichiers est crypté, pas leur nom ou leur structure de dossiers.
-
-Si vous ne stockez pas de données sur des services de stockage distants, il est préférable de déployer manuellement le chiffrement par fichier avant de les télécharger sur Nextcloud et/ou d'utiliser le chiffrement complet du disque sur les lecteurs du serveur (par exemple en utilisant dm-crypt ou EncFS).
-
-Le chiffrement intégral du disque est assez facile à mettre en œuvre avec des instances cloud auto-hébergées ou auto-gérées. Si vous avez un compte entièrement hébergé, cela est hors de votre contrôle, bien que ce soit quelque chose que votre fournisseur peut faire de toute façon (alors demandez).
-
-
-Cryptage de bout en bout
-Pour une confidentialité et une sécurité optimales, Nextcloud propose un chiffrement de bout en bout (e2ee). Cela signifie que vous cryptez vos propres fichiers localement avant de les télécharger sur le cloud. Ils ne peuvent alors être déchiffrés qu'à l'intérieur des applications dont vous avez la clé.
-
-E2ee peut être activé sur une base par dossier et synchronisé à travers. En plus du contenu réel, les noms de fichiers et la structure des dossiers dans les dossiers e2ee sont cachés du serveur.
-
-Nextcloud utilise des certificats X.509 pour vérifier les clés publiques, un chiffrement AES-128-GCM (NoPadding) pour chiffrer les clés privées, PBKDF2 avec authentification HMAC SHA1 pour la dérivation de clé et un mnémonique BIP39 comme mot de passe. Tous les détails sont disponibles dans un livre blanc.
-
-Les fichiers et dossiers peuvent être partagés avec d'autres utilisateurs de Nextcloud. Ce que Nextcloud n'offre pas, c'est la cryptographie e2ee basée sur un navigateur. C'est bon pour la sécurité car, malgré le développement de diverses mesures d'atténuation au cours des dernières années, la cryptographie basée sur le navigateur reste vulnérable à la possibilité que du code malveillant soit poussé depuis le serveur.
-
-Cela signifie, cependant, que vous ne pouvez pas partager des fichiers ou des dossiers qui ont été cryptés e2ee avec des utilisateurs non-Nextcloud, et vous ne pouvez pas accéder aux fichiers et dossiers e2ee via l'interface Web. Pour la plupart des gens, le fait que vous puissiez facilement déplacer des fichiers entre e2ee et des dossiers réguliers devrait atténuer tout inconvénient que cela pourrait causer.
-
-Le principal problème est que l'implémentation e2ee de Nextcloud est toujours en phase "alpha" ou "test", avec un avertissement clair qui dit "ne pas utiliser ceci en production et uniquement avec des données de test !"
-
-type de chiffrement
-
-Étant donné que l'utilisation d'e2ee est librement recommandée sur l'ensemble du site pour ceux qui souhaitent un maximum de sécurité et de confidentialité, nous soupçonnons que la mise en œuvre est plus robuste que ne le suggère cet avertissement. Les Edward Snowden de ce monde, cependant, devraient probablement chercher ailleurs pour le moment.
-
-Facilité d'utilisation
-La facilité de configuration d'une instance Nextcloud dépend beaucoup de la manière dont vous souhaitez l'héberger, allant de quelque chose que votre mère pourrait faire à vraiment très avancé. Une fois configuré, cependant, Nextcloud est un jeu d'enfant à utiliser…
-

+ 0 - 75
ideas.txt

@@ -1,75 +0,0 @@
-Je n’avais pas d’objection de principe à l’idée de payer pour un service utile, mais l’idée de dépendre entièrement de Dropbox pour mon travail me gênait, d’autant plus que la NSA a une API sur Dropbox (révélation d’Edward Snowden) et que Dropbox a explicitement accès à mes données.
-Je me repentis d’avoir cédé au confort empoisonné d’une solution captatrice, et décidai d’en chercher une autre plus respectueuse de la propriété de mes données.
-
-**************
-
-Les plateformes cloud américaines ne sont pas conformes au RGPD
-
-https://cloudeezy.com/blog-nextcloud/plateformes-cloud-americaines-pas-conformes-rgpd.html
-https://nextcloud.com/blog/eu-and-us-government-agencies-converge-on-conclusion-us-cloud-platforms-not-compliant/
-.https://edps.europa.eu/sites/edp/files/publication/20-01-06_opinion_research_en.pdf
-
-***************
-
-Quiconque veut contrôler son arsenal personnel de fichiers, de documents, d’images, de musiques et de vidéos a aujourd’hui recours aux possibilités de stockage en ligne (sur le Cloud). Des services comme Dropbox, Microsoft OneDrive ou l’iCloud d’Apple offrent une alternative attractive et pratique au stockage local sur votre propre appareil : ordinateur, tablette ou smartphone, grâce à une accessibilité permanente et globale via Internet. Cependant, avec des données sensibles, la question de la sécurité des fichiers stockés se pose alors.
-
-Si vous désirez profiter des avantages du Cloud tout en conservant un contrôle total sur l’ensemble des données, il est alors utile d’envisager d’héberger et de gérer votre propre service de stockage en ligne. Les logiciels nécessaires se trouvent déjà dans le secteur open source&nbsp;: c’est surtout l’application ownCloud et son dérivé Nextcloud qui ont réussi récemment à trouver une place comme solution fonctionnelle. Ainsi, ce guide va éclairer un peu les caractéristiques de ces deux services.
-
-Le 2 juin 2016, Frank Karlitschek, fondateur de ownCloud, a annoncé le projet d’un dérivé officiel (un fork) du logiciel de Cloud de l’entreprise, qui a été publié la même année sous le nom de Nextcloud dans une première version. Karlitschek avait quitté la société quelques semaines plus tôt en raison de désaccords sur l‘évolution future, en particulier le thème des licences a joué un rôle décisif. Ce problème est la principale différence entre les deux logiciels open source : alors que les utilisateurs de ownCloud peuvent maintenant utiliser certaines fonctionnalités exclusivement dans l’édition Entreprise sous licence commerciale, tous les composants Nextcloud sont eux disponibles sous la licence libre AGPLv3.
-
-La section suivante explique aussi les différences entre les deux solutions de stockage en ligne et les caractéristiques qui les distinguent généralement. Nous examinons tout d’abord individuellement ownCloud et Nextcloud, puis nous mettons en évidence les avantages et les inconvénients respectifs dans une comparaison directe.
-
-***************
-
-Il existe une large palette d’outils pour partager et synchroniser ses fichiers sur une plateforme Cloud. Les services Cloud de Google, Microsoft, Dropbox, par exemple, ne permettent toutefois pas de contrôler la sécurité des fichiers stockés, ce qui peut s’avérer problématique pour des données sensibles.
-Si vous voulez un contrôle total sur vos données et préférez gérer votre propre infrastructure, il est préférable de choisir entre Nextcloud et ownCloud pour héberger et gérer votre service Cloud.
-
-***************
-
-https://www.ionos.fr/digitalguide/serveur/outils/owncloud-vs-nextcloud/
-https://www.zdnet.fr/guide-achat/cloud-quel-est-le-meilleur-service-de-stockage-pour-vous-39877749.htm
-https://cloud-computing.developpez.com/actu/311967/Quelle-solution-de-cloud-computing-utilisez-vous-Quel-modele-de-service-cloud-correspond-le-plus-a-vos-besoins-Tour-d-horizon-du-marche/
-https://chrtophe.developpez.com/tutoriels/cloud/
-https://news.gandi.net/fr/2021/05/nextcloud-vs-owncloud-quelle-solution-de-cloud-en-ligne-choisir/
-https://emmanuelbama.net/wp-content/uploads/2019/05/Nextcloud-deploiement.pdf
-https://searchconvergedinfrastructure.techtarget.com/feature/Hybrid-cloud-strategy-blends-public-private-cloud-benefits
-https://www.emporix.com/blog/technology-strategy-digital-commerce-on-premise-cloud
-https://security.stackexchange.com/questions/167582/how-secure-is-commercial-cloud-storage-compared-to-my-private-cloud-storage/167615
-https://autoize.com/nextcloud-as-a-file-hosting-service/
-https://uclouvain.be/fr/universite-numerique/rdm/store-uclouvain.html
-
-https://apps.nextcloud.com/apps/files_external_onedrive
-
-https://intranet.uclouvain.be/en/myucl/faculties/lsm/electronic-storage-document-servers.html
-
-https://blog.censio.fr/news/le-cloud-explique-par-la-pizza/
-https://bluebearsit.com/iaas-paas-saas/
-https://computernewage.com/2015/06/07/todo-lo-que-necesitas-saber-sobre-el-cloud-computing-saas-paas-y-iaas/
-https://www.wikiwand.com/en/Cloud_computing
-https://nextcloud.com/fr_FR/nextcloud-vs-office365/
-https://www.cloudflare.com/learning/cloud/what-is-the-cloud/
-https://nextcloud.com/fr_FR/compare/
-https://ba.net/private-cloud-office/blog/cloud-service-models-iaas-saas-paas-how-microsoft-office-365-azure-fit-in1.html
-https://whatis.techtarget.com/fr/definition/Cloud-prive-ou-Cloud-Interne-ou-Cloud-dEntreprise
-https://www.redhat.com/fr/topics/cloud-computing/public-cloud-vs-private-cloud-and-hybrid-cloud
-https://www.techradar.com/reviews/nextcloud-15
-https://nerdofcode.com/2018/03/30/advantages-vs-disadvantages-of-using-nextcloud/
-https://proprivacy.com/cloud/review/nextcloud
-https://restez-curieux.ovh/2021/10/31/nextcloud-le-cloud-prive-et-personnel/
-https://www.hebergeurcloud.com/creer-un-serveur-cloud-prive-nextcloud/
-
-**********************
-
-Elle a parcouru votre proposition. En vue de rendre votre acte de candidature en avril, elle vous invite :
-
-    À fournir davantage d’informations, et détailler davantage votre projet ;
-    À clarifier ce que vous souhaitez faire exactement, et les finalités du projet ;
-    À justifier la nécessité de l’objectif et argumenter l’intérêt du projet. 
-    
-    
-.thunderbird/focal688.pedro/ImapMail
-.secure/Thunderbird/mails/ImapMail
-
-.thunderbird/focal688.pedro/Mail
-.secure/Thunderbird/mails/Mail
-

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است