From 9b3aabfcbfbf0a10488f4dbc7014eb5b76edffc1 Mon Sep 17 00:00:00 2001
From: Alex Auvolat <alex@adnab.me>
Date: Mon, 30 Nov 2020 15:54:31 +0100
Subject: Add talk template

---
 doc/20201202_talk/talk.tex | 62 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 doc/20201202_talk/talk.tex

(limited to 'doc/20201202_talk/talk.tex')

diff --git a/doc/20201202_talk/talk.tex b/doc/20201202_talk/talk.tex
new file mode 100644
index 00000000..4c0bfb21
--- /dev/null
+++ b/doc/20201202_talk/talk.tex
@@ -0,0 +1,62 @@
+%\nonstopmode
+\documentclass[aspectratio=169]{beamer}
+\usepackage[utf8]{inputenc}
+% \usepackage[frenchb]{babel}
+\usepackage{amsmath}
+\usepackage{mathtools}
+\usepackage{breqn}
+\usepackage{multirow}
+\usetheme{Luebeck}
+\usepackage{graphicx}
+%\useoutertheme[footline=authortitle,subsection=false]{miniframes}
+
+\beamertemplatenavigationsymbolsempty
+\setbeamertemplate{footline}
+{%
+  \leavevmode%
+  \hbox{\begin{beamercolorbox}[wd=.15\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fill]{author in head/foot}%
+    \usebeamerfont{author in head/foot} \insertframenumber{} / \inserttotalframenumber
+  \end{beamercolorbox}%
+  \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fill,rightskip=.3cm]{author in head/foot}%
+    \usebeamerfont{author in head/foot}\insertshortauthor
+  \end{beamercolorbox}%
+  \begin{beamercolorbox}[wd=.65\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
+    \usebeamerfont{title in head/foot}\insertshorttitle~--~\insertshortdate
+  \end{beamercolorbox}}%
+  \vskip0pt%
+}
+
+\usepackage{tabu}
+\usepackage{multicol}
+\usepackage{vwcol}
+\usepackage{stmaryrd}
+\usepackage{graphicx}
+
+\usepackage[normalem]{ulem}
+
+\title[Garage : jouer dans la cour des grands quand on est un hébergeur associatif]{Garage : jouer dans la cour des grands \\quand on est un hébergeur associatif}
+\subtitle{(ou pourquoi on a décidé de réinventer la roue)}
+\author[Q. Dufour \& A. Auvolat]{Quentin Dufour \& Alex Auvolat}
+\date[02/12/2020]{Mercredi 2 décembre 2020}
+
+\begin{document}
+
+\begin{frame}
+\titlepage
+\end{frame}
+
+\begin{frame}
+	\frametitle{A}
+
+	a
+\end{frame}
+
+\begin{frame}
+	\frametitle{B}
+
+	b
+\end{frame}
+
+\end{document}
+
+%% vim: set ts=4 sw=4 tw=0 noet spelllang=fr :
-- 
cgit v1.2.3


From 9a57a0319a5bef515806d8107c8089af8943043a Mon Sep 17 00:00:00 2001
From: Quentin <quentin@deuxfleurs.fr>
Date: Mon, 30 Nov 2020 17:32:37 +0100
Subject: Talk

---
 doc/20201202_talk/talk.tex | 87 +++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 82 insertions(+), 5 deletions(-)

(limited to 'doc/20201202_talk/talk.tex')

diff --git a/doc/20201202_talk/talk.tex b/doc/20201202_talk/talk.tex
index 4c0bfb21..c3e9f625 100644
--- a/doc/20201202_talk/talk.tex
+++ b/doc/20201202_talk/talk.tex
@@ -46,17 +46,94 @@
 \end{frame}
 
 \begin{frame}
-	\frametitle{A}
+	\frametitle{La question qui tue}
+	
+	\begin{center}
+		\includegraphics[scale=3]{img/sync.png} \\
+		\Huge Pourquoi vous n'hébergez pas vos fichiers chez vous ? \\
+	\end{center}
 
-	a
 \end{frame}
 
-\begin{frame}
-	\frametitle{B}
+\begin{frame}[t]
+	\frametitle{La cour des grands}
+
+\begin{columns}[t]
+\begin{column}{0.5\textwidth}
+	{\huge Le modèle du cloud...}
+ 
+\begin{center}
+	\includegraphics[scale=0.08]{img/cloud.png}
+\end{center}
+
+	+ \underline{intégrité} : plus de perte de données
+
+	+ \underline{disponibilité} : tout le temps accessible
+	
+	+ \underline{service} : rien à gérer
+
+	\vspace{0.15cm}
+	\textbf{changement des comportements}
+\end{column}
+\pause
+\begin{column}{0.5\textwidth}
+	{\huge ...et son prix}
+ 
+\begin{center}
+	\includegraphics[scale=0.07]{img/dc.jpg}
+\end{center}
+
+	- matériel couteux et polluant
 
-	b
+	- logiciels secrets
+
+	- gestion opaque
+
+	\vspace{0.2cm}
+	\textbf{prisonnier de l'écosystème}
+\end{column}
+\end{columns}
 \end{frame}
 
+\begin{frame}[t]
+	\frametitle{Garage l'imposteur}
+
+\begin{columns}[t]
+\begin{column}{0.5\textwidth}
+	{\huge Ressemble à du cloud...}
+ 
+\begin{center}
+	\includegraphics[scale=0.5]{img/shh.jpg}
+\end{center}
+
++ \underline{compatible} avec les apps existantes
+
++ \underline{fonctionne} avec le mobile
+
++ \underline{s'adapte} aux habitudes prises
+
+
+\end{column}
+
+\pause
+\begin{column}{0.5\textwidth}
+	{\huge ...fait du P2P}
+
+\begin{center}
+	\includegraphics[scale=1]{img/death.jpg}
+\end{center}
+
+\vspace{0.4cm}
+
++ \underline{contrôle} de l'infrastructure
+
++ \underline{transparent} code libre 
+
++ \underline{sobre} fonctionne avec de vieilles machines à la maison
+\end{column}
+\end{columns}
+
+\end{frame}
 \end{document}
 
 %% vim: set ts=4 sw=4 tw=0 noet spelllang=fr :
-- 
cgit v1.2.3


From ad432eb154432065d8f86938f71aea234ee92fe1 Mon Sep 17 00:00:00 2001
From: Alex Auvolat <alex@adnab.me>
Date: Tue, 1 Dec 2020 13:46:23 +0100
Subject: Add some first technical slides

---
 doc/20201202_talk/talk.tex | 183 +++++++++++++++++++++++++++++----------------
 1 file changed, 118 insertions(+), 65 deletions(-)

(limited to 'doc/20201202_talk/talk.tex')

diff --git a/doc/20201202_talk/talk.tex b/doc/20201202_talk/talk.tex
index c3e9f625..4b8e76c3 100644
--- a/doc/20201202_talk/talk.tex
+++ b/doc/20201202_talk/talk.tex
@@ -42,7 +42,7 @@
 \begin{document}
 
 \begin{frame}
-\titlepage
+	\titlepage
 \end{frame}
 
 \begin{frame}
@@ -58,82 +58,135 @@
 \begin{frame}[t]
 	\frametitle{La cour des grands}
 
-\begin{columns}[t]
-\begin{column}{0.5\textwidth}
-	{\huge Le modèle du cloud...}
- 
-\begin{center}
-	\includegraphics[scale=0.08]{img/cloud.png}
-\end{center}
-
-	+ \underline{intégrité} : plus de perte de données
-
-	+ \underline{disponibilité} : tout le temps accessible
+	\begin{columns}[t]
+	\begin{column}{0.5\textwidth}
+		{\huge Le modèle du cloud...}
+	 
+	\begin{center}
+		\includegraphics[scale=0.08]{img/cloud.png}
+	\end{center}
 	
-	+ \underline{service} : rien à gérer
-
-	\vspace{0.15cm}
-	\textbf{changement des comportements}
-\end{column}
-\pause
-\begin{column}{0.5\textwidth}
-	{\huge ...et son prix}
- 
-\begin{center}
-	\includegraphics[scale=0.07]{img/dc.jpg}
-\end{center}
-
-	- matériel couteux et polluant
-
-	- logiciels secrets
-
-	- gestion opaque
-
-	\vspace{0.2cm}
-	\textbf{prisonnier de l'écosystème}
-\end{column}
-\end{columns}
+		+ \underline{intégrité} : plus de perte de données
+	
+		+ \underline{disponibilité} : tout le temps accessible
+		
+		+ \underline{service} : rien à gérer
+	
+		\vspace{0.15cm}
+		\textbf{changement des comportements}
+	\end{column}
+	\pause
+	\begin{column}{0.5\textwidth}
+		{\huge ...et son prix}
+	 
+	\begin{center}
+		\includegraphics[scale=0.07]{img/dc.jpg}
+	\end{center}
+	
+		- matériel couteux et polluant
+	
+		- logiciels secrets
+	
+		- gestion opaque
+	
+		\vspace{0.2cm}
+		\textbf{prisonnier de l'écosystème}
+	\end{column}
+	\end{columns}
 \end{frame}
 
 \begin{frame}[t]
 	\frametitle{Garage l'imposteur}
 
-\begin{columns}[t]
-\begin{column}{0.5\textwidth}
-	{\huge Ressemble à du cloud...}
- 
-\begin{center}
-	\includegraphics[scale=0.5]{img/shh.jpg}
-\end{center}
-
-+ \underline{compatible} avec les apps existantes
-
-+ \underline{fonctionne} avec le mobile
-
-+ \underline{s'adapte} aux habitudes prises
-
-
-\end{column}
-
-\pause
-\begin{column}{0.5\textwidth}
-	{\huge ...fait du P2P}
-
-\begin{center}
-	\includegraphics[scale=1]{img/death.jpg}
-\end{center}
+	\begin{columns}[t]
+	\begin{column}{0.5\textwidth}
+		{\huge Ressemble à du cloud...}
+	 
+	\begin{center}
+		\includegraphics[scale=0.5]{img/shh.jpg}
+	\end{center}
+	
+	+ \underline{compatible} avec les apps existantes
+	
+	+ \underline{fonctionne} avec le mobile
+	
+	+ \underline{s'adapte} aux habitudes prises
+	
+	
+	\end{column}
+	
+	\pause
+	\begin{column}{0.5\textwidth}
+		{\huge ...fait du P2P}
+	
+	\begin{center}
+		\includegraphics[scale=1]{img/death.jpg}
+	\end{center}
+	
+	\vspace{0.4cm}
+	
+	+ \underline{contrôle} de l'infrastructure
+	
+	+ \underline{transparent} code libre 
+	
+	+ \underline{sobre} fonctionne avec de vieilles machines à la maison
+	\end{column}
+	\end{columns}
 
-\vspace{0.4cm}
+\end{frame}
 
-+ \underline{contrôle} de l'infrastructure
 
-+ \underline{transparent} code libre 
+\graphicspath{{img/}}
 
-+ \underline{sobre} fonctionne avec de vieilles machines à la maison
-\end{column}
-\end{columns}
+\begin{frame}
+	\frametitle{Mais donc, c'est quoi Garage ?}
+
+	\begin{columns}[t]
+	\begin{column}{0.5\textwidth}
+		\centering
+		\textbf{Un système de stockage distribué}
+		\vspace{1em}
+
+			\def\svgwidth{.7\columnwidth}
+			\input{img/garage_distributed.pdf_tex}
+	\end{column}
+	\pause
+
+	\begin{column}{0.5\textwidth}
+		\centering
+		\textbf{qui implémente l'API S3}
+		\vspace{2em}
+
+		\includegraphics[width=.7\columnwidth]{img/Amazon-S3.jpg}
+	\end{column}
+	\end{columns}
+\end{frame}
 
+\begin{frame}
+	\frametitle{Consistent Hashing (DynamoDB)}
+	\textbf{Comment répartir les fichiers sur les différentes machines ?}
+	\vspace{1em}
+
+	\centering
+
+	\only<1>{
+			\def\svgwidth{.55\columnwidth}
+			\input{img/consistent_hashing_1.pdf_tex}
+	}
+	\only<2>{
+			\def\svgwidth{.55\columnwidth}
+			\input{img/consistent_hashing_2.pdf_tex}
+	}
+	\only<3>{
+			\def\svgwidth{.55\columnwidth}
+			\input{img/consistent_hashing_3.pdf_tex}
+	}
+	\only<4>{
+			\def\svgwidth{.55\columnwidth}
+			\input{img/consistent_hashing_4.pdf_tex}
+	}
 \end{frame}
+
 \end{document}
 
 %% vim: set ts=4 sw=4 tw=0 noet spelllang=fr :
-- 
cgit v1.2.3


From 7642229d54fa6d94566dd06fcfdcaf1728880bdd Mon Sep 17 00:00:00 2001
From: Alex Auvolat <alex@adnab.me>
Date: Tue, 1 Dec 2020 14:31:13 +0100
Subject: Two new slides

---
 doc/20201202_talk/talk.tex | 65 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 55 insertions(+), 10 deletions(-)

(limited to 'doc/20201202_talk/talk.tex')

diff --git a/doc/20201202_talk/talk.tex b/doc/20201202_talk/talk.tex
index 4b8e76c3..c9aecba2 100644
--- a/doc/20201202_talk/talk.tex
+++ b/doc/20201202_talk/talk.tex
@@ -147,8 +147,7 @@
 		\textbf{Un système de stockage distribué}
 		\vspace{1em}
 
-			\def\svgwidth{.7\columnwidth}
-			\input{img/garage_distributed.pdf_tex}
+			\includegraphics[width=.7\columnwidth]{img/garage_distributed.pdf}
 	\end{column}
 	\pause
 
@@ -170,23 +169,69 @@
 	\centering
 
 	\only<1>{
-			\def\svgwidth{.55\columnwidth}
-			\input{img/consistent_hashing_1.pdf_tex}
+			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_1.pdf}
 	}
 	\only<2>{
-			\def\svgwidth{.55\columnwidth}
-			\input{img/consistent_hashing_2.pdf_tex}
+			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_2.pdf}
 	}
 	\only<3>{
-			\def\svgwidth{.55\columnwidth}
-			\input{img/consistent_hashing_3.pdf_tex}
+			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_3.pdf}
 	}
 	\only<4>{
-			\def\svgwidth{.55\columnwidth}
-			\input{img/consistent_hashing_4.pdf_tex}
+			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_4.pdf}
 	}
 \end{frame}
 
+\begin{frame}
+	\frametitle{Garage Internals : 3 niveaux de consistent hashing}
+	\centering
+	\includegraphics[width=.85\columnwidth]{img/garage_tables.pdf}
+\end{frame}
+
+\begin{frame}
+	\frametitle{Rust : retour d'expérience}
+
+	Garage est entièrement écrit en Rust !
+
+	\begin{columns}
+	\begin{column}{0.5\textwidth}
+		\vspace{2em}
+
+		\textbf{Points forts :}
+		\vspace{.5em}
+		\begin{itemize}
+			\item Langage compilé, très rapide
+				\vspace{.5em}
+			\item Typage fort, beaucoup de sécurités
+				\vspace{.5em}
+			\item Le meilleur de plusieurs paradigmes:
+				fonctionnel, orienté objet, impératif
+				\vspace{.5em}
+			\item Un écosytème de librairies très complet:
+				serialisation, async/await, http, ...
+				\vspace{.5em}
+		\end{itemize}
+
+	\end{column}
+	
+	\begin{column}{0.5\textwidth}
+		\begin{centering}
+		\includegraphics[width=0.55\columnwidth]{img/rustacean-flat-happy.png}
+		\end{centering}
+
+		\vspace{1em}
+		\textbf{Points faibles :}
+		\vspace{.5em}
+		\begin{itemize}
+			\item Les temps de compilation...
+				\vspace{.5em}
+			\item Compliqué à apprendre
+		\end{itemize}
+	\end{column}
+	\end{columns}
+
+\end{frame}
+
 \end{document}
 
 %% vim: set ts=4 sw=4 tw=0 noet spelllang=fr :
-- 
cgit v1.2.3


From f844d4ee9b37a3d65a69e8dbd52e792704edf39e Mon Sep 17 00:00:00 2001
From: Alex Auvolat <alex@adnab.me>
Date: Tue, 1 Dec 2020 17:42:13 +0100
Subject: Add slide on consistency

---
 doc/20201202_talk/talk.tex | 50 +++++++++++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 20 deletions(-)

(limited to 'doc/20201202_talk/talk.tex')

diff --git a/doc/20201202_talk/talk.tex b/doc/20201202_talk/talk.tex
index c9aecba2..1acda842 100644
--- a/doc/20201202_talk/talk.tex
+++ b/doc/20201202_talk/talk.tex
@@ -168,18 +168,10 @@
 
 	\centering
 
-	\only<1>{
-			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_1.pdf}
-	}
-	\only<2>{
-			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_2.pdf}
-	}
-	\only<3>{
-			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_3.pdf}
-	}
-	\only<4>{
-			\includegraphics[width=.55\columnwidth]{img/consistent_hashing_4.pdf}
-	}
+	\only<1>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_1.pdf}}%
+	\only<2>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_2.pdf}}%
+	\only<3>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_3.pdf}}%
+	\only<4>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_4.pdf}}%
 \end{frame}
 
 \begin{frame}
@@ -189,12 +181,31 @@
 \end{frame}
 
 \begin{frame}
-	\frametitle{Rust : retour d'expérience}
+	\frametitle{Modèles de cohérence}
+	Garage utilise un modèle de cohérence relativement faible :
+	\vspace{1em}
 
-	Garage est entièrement écrit en Rust !
+	\begin{itemize}
+		\item Objets répliqués 3 fois, quorum de 2 pour les lectures et les écritures\\
+			$\to$ cohérence \textbf{``read your writes''}
+			\vspace{1em}
+		\item<2-> Types de donnée CRDT + mécanisme d'anti-entropie\\
+			$\to$ cohérence \textbf{à terme} (eventual consistency)
+			\vspace{1em}
+		\item<3-> Cela s'applique pour chaque fichier individuellement :\\
+			pas de linéarisabilté ou de cohérence causale entre les opérations\\
+			sur des fichiers différents
+			\vspace{1em}
+		\item<4-> \textbf{Avantage :} convient bien à un déploiement géodistribué (multi-datacenter)
+	\end{itemize}
+\end{frame}
+
+\begin{frame}
+	\frametitle{Rust : retour d'expérience}
 
 	\begin{columns}
-	\begin{column}{0.5\textwidth}
+	\begin{column}{0.55\textwidth}
+		Garage est entièrement écrit en Rust !
 		\vspace{2em}
 
 		\textbf{Points forts :}
@@ -209,17 +220,15 @@
 				\vspace{.5em}
 			\item Un écosytème de librairies très complet:
 				serialisation, async/await, http, ...
-				\vspace{.5em}
 		\end{itemize}
-
 	\end{column}
 	
-	\begin{column}{0.5\textwidth}
+	\begin{column}{0.45\textwidth}
 		\begin{centering}
-		\includegraphics[width=0.55\columnwidth]{img/rustacean-flat-happy.png}
+			\hspace{2em}\includegraphics[width=0.55\columnwidth]{img/rustacean-flat-happy.png}
 		\end{centering}
 
-		\vspace{1em}
+		\vspace{2em}
 		\textbf{Points faibles :}
 		\vspace{.5em}
 		\begin{itemize}
@@ -227,6 +236,7 @@
 				\vspace{.5em}
 			\item Compliqué à apprendre
 		\end{itemize}
+		\vspace{2em}
 	\end{column}
 	\end{columns}
 
-- 
cgit v1.2.3

