From 4d7b4d9d202bc39257660500f0cfeaba657fc967 Mon Sep 17 00:00:00 2001 From: vincent Date: Sun, 27 Nov 2022 11:36:01 +0100 Subject: Add talk to the Capitole du Libre 2022 --- doc/talks/2022-11-19-Capitole-du-Libre/.gitignore | 10 + doc/talks/2022-11-19-Capitole-du-Libre/Makefile | 8 + doc/talks/2022-11-19-Capitole-du-Libre/NGI.png | Bin 0 -> 62896 bytes .../2022-11-19-Capitole-du-Libre/agpl-v3-logo.png | Bin 0 -> 201181 bytes .../2022-11-19-Capitole-du-Libre/carte-Europe.pdf | Bin 0 -> 10576 bytes .../deuxfleurs-logo.png | Bin 0 -> 107065 bytes .../drapeau_europ\303\251en.png" | Bin 0 -> 2519 bytes .../2022-11-19-Capitole-du-Libre/garage-logo.png | Bin 0 -> 74359 bytes .../2022-11-19-Capitole-du-Libre/logo_chatons.png | Bin 0 -> 203533 bytes .../2022-11-19-Capitole-du-Libre/mastodon-logo.png | Bin 0 -> 42120 bytes .../2022-11-19-Capitole-du-Libre/matrix-logo.png | Bin 0 -> 53375 bytes doc/talks/2022-11-19-Capitole-du-Libre/neptune.jpg | Bin 0 -> 177936 bytes .../nextcloud-logo.png | Bin 0 -> 128538 bytes .../2022-11-19-Capitole-du-Libre/peertube-logo.png | Bin 0 -> 20975 bytes .../pr\303\251sentation.pdf" | Bin 0 -> 3245758 bytes .../pr\303\251sentation.tex" | 340 +++++++++++++++++++++ doc/talks/2022-11-19-Capitole-du-Libre/ronce.jpg | Bin 0 -> 1511547 bytes .../rpc-amplification.png | Bin 0 -> 127369 bytes .../rpc-complexity.png | Bin 0 -> 198406 bytes .../2022-11-19-Capitole-du-Libre/rust-logo.png | Bin 0 -> 6644 bytes .../sch\303\251ma europe.tex" | 52 ++++ doc/talks/2022-11-19-Capitole-du-Libre/tedomum.png | Bin 0 -> 241673 bytes doc/talks/2022-11-19-Capitole-du-Libre/zones.png | Bin 0 -> 99005 bytes 23 files changed, 410 insertions(+) create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/.gitignore create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/Makefile create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/NGI.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/agpl-v3-logo.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/carte-Europe.pdf create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/deuxfleurs-logo.png create mode 100644 "doc/talks/2022-11-19-Capitole-du-Libre/drapeau_europ\303\251en.png" create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/garage-logo.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/logo_chatons.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/mastodon-logo.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/matrix-logo.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/neptune.jpg create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/nextcloud-logo.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/peertube-logo.png create mode 100644 "doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.pdf" create mode 100644 "doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.tex" create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/ronce.jpg create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/rpc-amplification.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/rpc-complexity.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/rust-logo.png create mode 100644 "doc/talks/2022-11-19-Capitole-du-Libre/sch\303\251ma europe.tex" create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/tedomum.png create mode 100644 doc/talks/2022-11-19-Capitole-du-Libre/zones.png (limited to 'doc/talks/2022-11-19-Capitole-du-Libre') diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/.gitignore b/doc/talks/2022-11-19-Capitole-du-Libre/.gitignore new file mode 100644 index 00000000..b1e713dd --- /dev/null +++ b/doc/talks/2022-11-19-Capitole-du-Libre/.gitignore @@ -0,0 +1,10 @@ +*.aux +*.bbl +*.blg +*.log +*.nav +*.out +*.snm +*.synctex.gz +*.toc +*.dvi diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/Makefile b/doc/talks/2022-11-19-Capitole-du-Libre/Makefile new file mode 100644 index 00000000..c5039140 --- /dev/null +++ b/doc/talks/2022-11-19-Capitole-du-Libre/Makefile @@ -0,0 +1,8 @@ +all: + pdflatex présentation.tex + +clean: + rm -f *.aux *.bbl *.blg *.log *.nav *.out *.snm *.synctex.gz *.toc *.dvi présentation.pdf + +clean_sauf_pdf: + rm -f *.aux *.bbl *.blg *.log *.nav *.out *.snm *.synctex.gz *.toc *.dvi diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/NGI.png b/doc/talks/2022-11-19-Capitole-du-Libre/NGI.png new file mode 100644 index 00000000..39031afc Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/NGI.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/agpl-v3-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/agpl-v3-logo.png new file mode 100644 index 00000000..83e1263a Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/agpl-v3-logo.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/carte-Europe.pdf b/doc/talks/2022-11-19-Capitole-du-Libre/carte-Europe.pdf new file mode 100644 index 00000000..89ca67e7 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/carte-Europe.pdf differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/deuxfleurs-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/deuxfleurs-logo.png new file mode 100644 index 00000000..4a5e0865 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/deuxfleurs-logo.png differ diff --git "a/doc/talks/2022-11-19-Capitole-du-Libre/drapeau_europ\303\251en.png" "b/doc/talks/2022-11-19-Capitole-du-Libre/drapeau_europ\303\251en.png" new file mode 100644 index 00000000..dfb05834 Binary files /dev/null and "b/doc/talks/2022-11-19-Capitole-du-Libre/drapeau_europ\303\251en.png" differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/garage-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/garage-logo.png new file mode 100644 index 00000000..6ae568d7 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/garage-logo.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/logo_chatons.png b/doc/talks/2022-11-19-Capitole-du-Libre/logo_chatons.png new file mode 100644 index 00000000..890cf17e Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/logo_chatons.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/mastodon-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/mastodon-logo.png new file mode 100644 index 00000000..fbb35d75 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/mastodon-logo.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/matrix-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/matrix-logo.png new file mode 100644 index 00000000..b62de22b Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/matrix-logo.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/neptune.jpg b/doc/talks/2022-11-19-Capitole-du-Libre/neptune.jpg new file mode 100644 index 00000000..e59f0bfa Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/neptune.jpg differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/nextcloud-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/nextcloud-logo.png new file mode 100644 index 00000000..f5a480c5 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/nextcloud-logo.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/peertube-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/peertube-logo.png new file mode 100644 index 00000000..eba8d79f Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/peertube-logo.png differ diff --git "a/doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.pdf" "b/doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.pdf" new file mode 100644 index 00000000..ea6f8287 Binary files /dev/null and "b/doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.pdf" differ diff --git "a/doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.tex" "b/doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.tex" new file mode 100644 index 00000000..a69df8a6 --- /dev/null +++ "b/doc/talks/2022-11-19-Capitole-du-Libre/pr\303\251sentation.tex" @@ -0,0 +1,340 @@ +\documentclass[11pt, aspectratio=1610]{beamer} +\usetheme{Warsaw} +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{tikz} +\usepackage{graphicx} +\usepackage{xcolor} +\usepackage{setspace} +\usepackage{todonotes} +\presetkeys{todonotes}{inline}{} +\renewcommand{\baselinestretch}{1.25} + +\definecolor{orange_garage}{RGB}{255,147,41} +\definecolor{gris_garage}{RGB}{78,78,78} + +\author[Association Deuxfleurs]{~\linebreak Vincent Giraud} +\title[De l'auto-hébergement à l'entre-hébergement avec Garage]{De l'auto-hébergement à l'entre-hébergement :\\Garage, pour conserver ses données ensemble} +%\setbeamercovered{transparent} +%\setbeamertemplate{navigation symbols}{} +\date{Capitole du Libre 2022\linebreak + +\scriptsize Samedi 19 novembre 2022\linebreak +} + +\setbeamercolor{palette primary}{fg=gris_garage,bg=orange_garage} +\setbeamercolor{palette secondary}{fg=gris_garage,bg=gris_garage} +\setbeamercolor{palette tiertary}{fg=white,bg=gris_garage} +\setbeamercolor{palette quaternary}{fg=white,bg=gris_garage} +\setbeamercolor{navigation symbols}{fg=black, bg=white} +\setbeamercolor{navigation symbols dimmed}{fg=darkgray, bg=white} +\setbeamercolor{itemize item}{fg=gris_garage} +\setbeamertemplate{itemize item}[circle] + +\addtobeamertemplate{navigation symbols}{}{% + \usebeamerfont{footline}% + \usebeamercolor[fg]{footline}% + \hspace{1em}% + \insertframenumber/\inserttotalframenumber +} + +\setbeamertemplate{headline} +{% + \leavevmode% + \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}% + \hbox to .5\paperwidth{\hfil\insertsectionhead\hfil} + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{subsection in head/foot}% + \hbox to .5\paperwidth{\hfil\insertsubsectionhead\hfil} + \end{beamercolorbox}% +} +\addtobeamertemplate{footnote}{}{\vspace{2ex}} + +\begin{document} +\begin{frame} +\titlepage +\end{frame} + +\section{Introduction} +\subsection{Présentation} +\begin{frame} +\begin{columns} +\column{0.5 \linewidth} +\begin{center} +\includegraphics[width=3.5cm]{deuxfleurs-logo.png}\linebreak + +\texttt{https://deuxfleurs.fr} +\end{center} +\column{0.4 \linewidth} +\begin{center} +Deuxfleurs est une association militant en faveur d'un internet plus convivial, avec une organisation et des rapports de force repensés.\linebreak + +Nous faisons partie du CHATONS\footnote[frame]{Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires} depuis avril 2022. + +\includegraphics[width=2cm]{logo_chatons.png} +\end{center} +\end{columns} +\end{frame} + +\subsection{Héberger à la maison} +\begin{frame} +\begin{columns} +\begin{column}{0.5 \linewidth} +\begin{center} +Pour échapper au contrôle et au giron des opérateurs de clouds, héberger ses données à la maison présente de nombreux avantages... +\end{center} + +\vspace{0.5cm} + +\begin{itemize}[<+(1)->] +\item On récupère la souveraineté sur ses données +\item On gagne en vie privée +\item On gagne en libertés +\item On est responsabilisé face à ses besoins +\end{itemize} +\end{column} +\vrule{} +\begin{column}{0.5 \linewidth} +\begin{center} +\onslide<6->{... mais aussi bien des contraintes...} +\end{center} + +\vspace{0.5cm} + +\begin{itemize}[<+(2)->] +\item On repose sur une connexion internet pour particulier +\item Un certain savoir-faire et moultes compétences sont requis +\item Assurer la résilience de ses services est difficile +\item Bien sauvegarder ses données, et ceci au-delà de son site géographique, n'est pas évident +\end{itemize} +\end{column} +\end{columns} +\end{frame} + +\subsection{Sauvegarder pour se parer à tout imprévu} +\begin{frame} +\begin{center} +Sauvegarder pour se parer contre les pannes matérielles est une chose... + +Sauvegarder pour se parer contre les cambriolages et les incendies en est une autre !\linebreak + +\vspace{1cm} +\onslide<2->{Répartir géographiquement ses données devient alors nécessaire.} +\end{center} +\end{frame} + +\section{Les solutions à explorer} +\subsection{L'entre-hébergement} +\begin{frame} +\begin{center} +On a vu récemment se développer au sein du CHATONS la notion d'entre-hébergement : en plus de renforcer l'intégrité des sauvegardes, on va améliorer la disponibilité pendant les coupures de liaison internet, de courant, ou pendant les déménagements d'administrateurs par exemple.\linebreak + +\vspace{1cm} +\onslide<2-> +{ +Dans le cadre du collectif, il s'agit de partager ses volumes de données entre hébergeurs.\linebreak + +Pour assurer la confidentialité, on peut chiffrer les données au niveau applicatif. +} +\end{center} +\end{frame} + +\subsection{S3 contre les systèmes de fichiers} +\begin{frame} +\begin{center} +Dans le cadre de l'administration de services en ligne, les systèmes de fichiers recèlent certaines difficultés.\linebreak + +\vspace{1cm} +Le standard S3 apporte des facilités; on réduit le stockage à un paradigme de clé-valeur basé essentiellement sur deux opérations seulement: lire ou écrire une clé. +\end{center} +\end{frame} + +\section{Garage} +\subsection{Présentation} +\begin{frame} +\begin{columns} +\column{0.5 \linewidth} +\begin{center} +Garage essaye de répondre à l'ensemble de ces besoins.\linebreak + +\vspace{0.5cm} +Il s'agit d'un logiciel libre permettant de distribuer un service S3 sur diverses machines éloignées. +\end{center} +\column{0.5 \linewidth} +\begin{center} +\includegraphics[width=4cm]{garage-logo.png}\linebreak + +\texttt{https://garagehq.deuxfleurs.fr/} +\end{center} +\end{columns} +\end{frame} + +\subsection{Gestion des zones} +\begin{frame} +\begin{center} +Garage va prendre en compte les zones géographiques au moment de répliquer les données.\linebreak + +\vspace{1cm} +\includegraphics[width=13.25cm]{zones.png} +\end{center} +\end{frame} + +\subsection{Comment ça marche ?} +\begin{frame} +\begin{columns} +\column{0.5 \linewidth} +\input{schéma europe} +\column{0.5 \linewidth} +\begin{center} +Chaque objet est dupliqué sur plusieurs zones différentes.\linebreak + +\onslide<5->{Lorsqu'un nouvel hébergeur rejoint le réseau, la charge se voit équilibrée.}\linebreak + +\onslide<12->{Si une zone devient indisponible, les autres continuent d'assurer le service.}\linebreak +\end{center} +\end{columns} +\end{frame} + +\subsection{Financement} +\begin{frame} +\begin{center} +Dans le cadre du programme \textit{Horizon 2021} de l'Union Européenne, nous avons reçu une subvention de la part de l'initiative NGI Pointer\footnote[frame]{Next Generation Internet Program for Open Internet Renovation}.\linebreak + +\includegraphics[width=3cm]{drapeau_européen.png}\hspace{1cm} +\includegraphics[width=3cm]{NGI.png}\linebreak + +Nous avons ainsi pu financer le développement de Garage pendant 1 an. +\end{center} +\end{frame} + +\subsection{Licence} +\begin{frame} +\begin{center} +De par nos valeurs, nous avons attribué la licence AGPL version 3 à Garage, notamment afin qu'il reste parmi les biens communs.\linebreak + +\vspace{0.5cm} +\includegraphics[width=5cm]{agpl-v3-logo.png}\linebreak +\end{center} +\end{frame} + +\subsection{Langage utilisé} +\begin{frame} +\begin{center} +Nous avons décidé d'écrire Garage à l'aide du langage Rust, afin d'obtenir une compilation vers des binaires natifs et efficaces.\linebreak + +\includegraphics[width=3.5cm]{rust-logo.png}\linebreak + +Ce choix permet également de bénéficier des avantages reconnus de Rust en termes de sécurité. +\end{center} +\end{frame} + +\subsection{Matériel requis} +\begin{frame} +\begin{center} +Garage peut ainsi être performant sur des machines limitées. Les prérequis sont minimes : n'importe quelle machine avec un processeur qui a moins d'une décennie, 1~gigaoctet de mémoire vive, et 16~gigaoctets de stockage suffit.\linebreak + +\vspace{1cm} + +Cet aspect est déterminant : il permet en effet d'héberger sur du matériel acheté d'occasion, pour réduire l'impact écologique de nos infrastructures. +\end{center} +\end{frame} + +\subsection{Performances} +\begin{frame} +\begin{center} +\includegraphics[width=13.25cm]{rpc-amplification.png} +\end{center} +\end{frame} + +\begin{frame} +\begin{center} +\includegraphics[width=11cm]{rpc-complexity.png} +\end{center} +\end{frame} + +\subsection{Services} +\begin{frame} +\begin{center} +Puisqu'il suit le standard S3, beaucoup de services populaires sont par conséquence compatibles avec Garage :\linebreak + +\begin{columns} +\column{0.2 \linewidth} +\begin{center} +\includegraphics[width=2.5cm]{nextcloud-logo.png} +\end{center} +\column{0.2 \linewidth} +\begin{center} +\includegraphics[width=2.5cm]{peertube-logo.png} +\end{center} +\column{0.2 \linewidth} +\begin{center} +\includegraphics[width=2.5cm]{matrix-logo.png} +\end{center} +\column{0.2 \linewidth} +\begin{center} +\includegraphics[width=2.5cm]{mastodon-logo.png} +\end{center} +\end{columns} +~\linebreak + +Et comme souvent avec S3, on peut assimiler un bucket à un site, et utiliser le serveur pour héberger des sites web statiques. +\end{center} +\end{frame} + +\section{Intégration chez Deuxfleurs} +\subsection{Matériel} +\begin{frame} +\begin{center} +\includegraphics[width=13cm]{neptune.jpg}\linebreak + +En pratique, nos serveurs ne sont effectivement que des machines achetées d'occasion (très souvent des anciens ordinateurs destinés à la bureautique en entreprise). +\end{center} +\end{frame} + +\subsection{Environnement logiciel} +\begin{frame} +\begin{center} +Pour faciliter la reproduction d'un environnement connu, NixOS est installé sur nos machines.\linebreak + +\vspace{1cm} +Pour s’accommoder des réseaux qu'on trouve derrière des routeurs pour particuliers, on s'aide de notre logiciel Diplonat\footnote[frame]{\texttt{https://git.deuxfleurs.fr/Deuxfleurs/diplonat}}. +\end{center} +\end{frame} + +\section{Au-delà...} +\subsection{... de Deuxfleurs} +\begin{frame} +\begin{center} +\includegraphics[width=10cm]{tedomum.png} +\end{center} +\end{frame} + +\subsection{... de Garage} +\begin{frame} +\begin{center} +Nous avons récemment lancé le développement d'Aérogramme\footnote[frame]{\texttt{https://git.deuxfleurs.fr/Deuxfleurs/aerogramme}}.\linebreak + +\vspace{1cm} +Il s'agit d'un serveur de stockage de courriels chiffrés.\linebreak + +\vspace{1cm} +Il est conçu pour pouvoir travailler avec Garage. +\end{center} +\end{frame} + +\section{Fin} +\subsection{Contacts} +\begin{frame} +\begin{center} +\begin{tikzpicture} +\node (ronce) {\includegraphics[width=0.95\textwidth]{ronce.jpg}}; +\node[white] at (-5.1,3.6) {Intéressé(e) ?}; +\node[white, align=center] at (4.2,-2.6) {Contactez-nous !\\\texttt{coucou@deuxfleurs.fr}\\\texttt{\#forum:deuxfleurs.fr}}; +\end{tikzpicture} +\end{center} +\end{frame} +\end{document} + diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/ronce.jpg b/doc/talks/2022-11-19-Capitole-du-Libre/ronce.jpg new file mode 100644 index 00000000..6e0ed207 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/ronce.jpg differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/rpc-amplification.png b/doc/talks/2022-11-19-Capitole-du-Libre/rpc-amplification.png new file mode 100644 index 00000000..741539a7 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/rpc-amplification.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/rpc-complexity.png b/doc/talks/2022-11-19-Capitole-du-Libre/rpc-complexity.png new file mode 100644 index 00000000..a5cf6316 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/rpc-complexity.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/rust-logo.png b/doc/talks/2022-11-19-Capitole-du-Libre/rust-logo.png new file mode 100644 index 00000000..d18bfeee Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/rust-logo.png differ diff --git "a/doc/talks/2022-11-19-Capitole-du-Libre/sch\303\251ma europe.tex" "b/doc/talks/2022-11-19-Capitole-du-Libre/sch\303\251ma europe.tex" new file mode 100644 index 00000000..02e1c622 --- /dev/null +++ "b/doc/talks/2022-11-19-Capitole-du-Libre/sch\303\251ma europe.tex" @@ -0,0 +1,52 @@ +\begin{tikzpicture} +\node (carte) {\includegraphics[width=\textwidth]{carte-Europe.pdf}}; + +% \personnage{position X}{position Y}{facteur d'échelle} +\newcommand{\personnage}[4] +{ +\fill[#4] ({#1-(0.4 * #3)},{#2-(0.9 * #3)}) .. controls ({#1-(0.4 * #3)},#2) and ({#1+(0.4 * #3)},#2) .. ({#1+(0.4 * #3)},{#2-(0.9 * #3)}) -- ({#1-(0.4 * #3)},{#2-(0.9 * #3)}); +\fill[#4] (#1,#2) circle ({0.25 * #3}); +} + +\onslide<1-11>{\personnage{-2.25}{-0.75}{0.75}{green}} +\onslide<1-11>{\draw (-1.9,-1.6) rectangle ++(1,1.2);} +\onslide<2-11>{\draw[fill=green] (-1.8,-1.525) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 1};} +\onslide<4-5>{\draw[fill=red] (-1.8,-1.15) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 3};} +\onslide<7-11>{\draw[fill=yellow] (-1.8,-1.15) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 4};} +\onslide<9-11>{\draw[fill=red] (-1.8,-0.775) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 6};} +\onslide<3-11>{\draw[fill=blue] (-1.35,-1.525) rectangle ++(0.35,0.3) node[pos=0.5, white] {\tiny 2};} +\onslide<8-11>{\draw[fill=blue] (-1.35,-1.15) rectangle ++(0.35,0.3) node[pos=0.5, white] {\tiny 5};} +\onslide<11-11>{\draw[fill=yellow] (-1.35,-0.775) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 8};} + +\personnage{1.65}{1.5}{0.75}{blue} +\draw (0.3,0.7) rectangle ++(1,1.2); +\onslide<2->{\draw[fill=green] (0.4,0.775) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 1};} +\onslide<4->{\draw[fill=red] (0.4,1.15) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 3};} +\onslide<10->{\draw[fill=green] (0.4,1.525) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 7};} +\onslide<3->{\draw[fill=blue] (0.85,0.775) rectangle ++(0.35,0.3) node[pos=0.5, white] {\tiny 2};} +\onslide<9->{\draw[fill=red] (0.85,1.15) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 6};} +\onslide<11->{\draw[fill=yellow] (0.85,1.525) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 8};} + +\personnage{1.85}{-2.3}{0.75}{red} +\draw (0.5,-3.15) rectangle ++(1,1.2); +\onslide<2->{\draw[fill=green] (0.6,-3.075) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 1};} +\onslide<4-5>{\draw[fill=red] (0.6,-2.7) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 3};} +\onslide<7->{\draw[fill=yellow] (0.6,-2.7) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 4};} +\onslide<9->{\draw[fill=red] (0.6,-2.325) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 6};} +\onslide<3-5>{\draw[fill=blue] (1.05,-3.075) rectangle ++(0.35,0.3) node[pos=0.5, white] {\tiny 2};} +\onslide<6->{\draw[fill=red] (1.05,-3.075) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 3};} +\onslide<8->{\draw[fill=blue] (1.05,-2.7) rectangle ++(0.35,0.3) node[pos=0.5, white] {\tiny 5};} +\onslide<10->{\draw[fill=green] (1.05,-2.325) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 7};} + +\onslide<5->{\personnage{1.05}{-0.15}{0.75}{yellow}} +\onslide<5->{\draw (-0.35,-1) rectangle ++(1,1.2);} +\onslide<6->{\draw[fill=blue] (-0.25,-0.925) rectangle ++(0.35,0.3) node[pos=0.5, white] {\tiny 2};} +\onslide<7->{\draw[fill=yellow] (-0.25,-0.55) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 4};} +\onslide<10->{\draw[fill=green] (-0.25,-0.175) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 7};} +\onslide<6->{\draw[fill=red] (0.2,-0.925) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 3};} +\onslide<8->{\draw[fill=blue] (0.2,-0.55) rectangle ++(0.35,0.3) node[pos=0.5,white] {\tiny 5};} +\onslide<11->{\draw[fill=yellow] (0.2,-0.175) rectangle ++(0.35,0.3) node[pos=0.5] {\tiny 8};} + +\onslide<12->{\draw[line width=0.25cm] (-2.15,-0.5) -- ++(1,-1);} +\onslide<12->{\draw[line width=0.25cm] (-2.15,-1.5) -- ++(1,1);} +\end{tikzpicture} \ No newline at end of file diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/tedomum.png b/doc/talks/2022-11-19-Capitole-du-Libre/tedomum.png new file mode 100644 index 00000000..606c6fac Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/tedomum.png differ diff --git a/doc/talks/2022-11-19-Capitole-du-Libre/zones.png b/doc/talks/2022-11-19-Capitole-du-Libre/zones.png new file mode 100644 index 00000000..d492dd29 Binary files /dev/null and b/doc/talks/2022-11-19-Capitole-du-Libre/zones.png differ -- cgit v1.2.3