From fee6fdbfbd445ed8453856ed133d2b41068d785e Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Fri, 3 Oct 2025 00:25:24 +0200 Subject: Finishing touches --- .gitattributes | 1 + .gitignore | 24 +++++++ Dockerfile | 12 ++++ Makefile | 18 +++++ assets/clients.svg | 2 + assets/email.svg | 2 + assets/k7.svg | 12 ++++ assets/mad.svg | 19 +++++ assets/matrix.svg | 2 + assets/servers.svg | 2 + assets/web.svg | 2 + assets/whgit.svg | 2 + assets/wsb.svg | 3 + main.tex | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 306 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 assets/clients.svg create mode 100644 assets/email.svg create mode 100755 assets/k7.svg create mode 100755 assets/mad.svg create mode 100644 assets/matrix.svg create mode 100644 assets/servers.svg create mode 100644 assets/web.svg create mode 100644 assets/whgit.svg create mode 100755 assets/wsb.svg create mode 100644 main.tex diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..58da693 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.svg binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5587b72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +*.aux +*.snm +*.vrb +*.nav +*.out +svg-inkscape/ +*.bbl +*.bcf +*.blg +*.fls +*.lof +*.log +*.lot +*.pdf +*.run.xml +*.synctex.gz +*.synctex(busy) +*.toc +*.latexrun.db +*.latexrun.db.lock +*.fdb_latexmk +*.lol +*.dvi + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c60f8e7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM debian:bookworm + +RUN apt-get update && apt-get install -y \ + texlive-full \ + latexmk \ + biber \ + python3 \ + python3-pip \ + git \ + inkscape && apt-get clean && rm -rf /var/lib/apt/lists/* + +WORKDIR /data diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ef7f2fb --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ + + +IMAGE_NAME = latex +MAIN_TEX = main.tex +OUT_PDF = mm_03102025_matrix.pdf + +build: + docker build -t $(IMAGE_NAME) . + +compile: + docker run --rm -v "$(PWD)":/data $(IMAGE_NAME) latexmk -pdf -shell-escape $(MAIN_TEX) + +bib: + docker run --rm -v "$(PWD)":/data $(IMAGE_NAME) bibtex $(basename $(MAIN_TEX)) + +cleanall: + # docker run --rm -v "$(PWD)":/data $(IMAGE_NAME) latexmk -C $(MAIN_TEX) + git clean -xdf diff --git a/assets/clients.svg b/assets/clients.svg new file mode 100644 index 0000000..3db40b0 --- /dev/null +++ b/assets/clients.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/email.svg b/assets/email.svg new file mode 100644 index 0000000..de47b60 --- /dev/null +++ b/assets/email.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/k7.svg b/assets/k7.svg new file mode 100755 index 0000000..0ebc9d0 --- /dev/null +++ b/assets/k7.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/mad.svg b/assets/mad.svg new file mode 100755 index 0000000..30e0603 --- /dev/null +++ b/assets/mad.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/matrix.svg b/assets/matrix.svg new file mode 100644 index 0000000..0d292d3 --- /dev/null +++ b/assets/matrix.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/servers.svg b/assets/servers.svg new file mode 100644 index 0000000..1090cd4 --- /dev/null +++ b/assets/servers.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/web.svg b/assets/web.svg new file mode 100644 index 0000000..1118b5d --- /dev/null +++ b/assets/web.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/whgit.svg b/assets/whgit.svg new file mode 100644 index 0000000..28669aa --- /dev/null +++ b/assets/whgit.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/wsb.svg b/assets/wsb.svg new file mode 100755 index 0000000..a882bb2 --- /dev/null +++ b/assets/wsb.svg @@ -0,0 +1,3 @@ + + + diff --git a/main.tex b/main.tex new file mode 100644 index 0000000..7e1d7c9 --- /dev/null +++ b/main.tex @@ -0,0 +1,205 @@ +\documentclass{beamer} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\usepackage[inkscapeformat=png]{svg} +\usepackage{tikz} +\usetikzlibrary{positioning,arrows.meta, calc} +\usepackage{caption} + +\definecolor{darkgreen}{RGB}{0,100,0} +\setbeamercolor{title}{fg=darkgreen} +\setbeamercolor{frametitle}{fg=darkgreen} +\setbeamercolor{structure}{fg=darkgreen} +\setbeamercolor{normal text}{fg=black,bg=white} + +\usetheme{default} +\setbeamertemplate{footline}[frame number]{} +\setbeamertemplate{navigation symbols}{} + +\setbeamerfont{frametitle}{size=\huge,series=\mdseries} +\setbeamerfont{title}{size=\huge,series=\mdseries} + +\setbeamertemplate{frametitle}{ + \vspace{1.5em} + \begin{centering} + \usebeamerfont{frametitle}\insertframetitle\par + \end{centering} + \vspace{0.5em} +} +\title{Enter the [matrix]} +\author{Filip Wandzio\vspace{0.5em}\\\texttt{contact@philw.dev}\\\texttt{@philw:matrix.philw.dev}} +\date{} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame}{O mnie} +\centering +\vspace{0.5cm} +\includesvg[width=0.3\textwidth]{assets/web} +\vspace{0.5cm} +\begin{center} + \begin{minipage}{0.15\textwidth} + \centering + \includesvg[width=0.9\linewidth]{assets/wsb} + \end{minipage}\hfill + \begin{minipage}{0.15\textwidth} + \centering + \includesvg[width=0.9\linewidth]{assets/mad} + \end{minipage}\hfill + \begin{minipage}{0.15\textwidth} + \centering + \includesvg[width=0.9\linewidth]{assets/k7} + \end{minipage}\hfill +\end{center} +\end{frame} + +\begin{frame}{Czym jest [matrix]?} +\begin{itemize} + \item Otwarty protokół komunikacji RT rozwijany przez \texttt{matrix.org} +\end{itemize} +\end{frame} + +\begin{frame}{Nazwy własne} +\begin{itemize} + \item \textbf{Homeserver} – oprogramowanie umożliwiające zarządzanie użytkownikami, przechowywanie danych i obsługę komunikacji. + \item \textbf{Federacja} – mechanizm komunikacyjny tworzący zdecentralizowaną sieć. + \item \textbf{Client} – oprogramowanie umożliwiające korzystanie z usług homeservera. + \item \textbf{Bridge} – integrator/agregator innych systemów (np. IRC, Slack, Discord). +\end{itemize} +\end{frame} + +\begin{frame}{Jak działa [matrix]?} +\centering +\resizebox{0.9\textwidth}{!}{ +\begin{tikzpicture}[node distance=1.2cm] +\tikzset{ + box/.style={draw, thick, minimum width=3.5cm, minimum height=1cm, align=center, rounded corners}, + client/.style={draw, thick, minimum width=3.0cm, minimum height=0.9cm, align=center, rounded corners}, + arrow/.style={-{Stealth}, thick}, +} + +\node[client] (clientA) {Client A}; +\node[client, right=4cm of clientA] (clientB) {Client B}; + +\node[box, below=of clientA] (serverA) {Server A}; +\node[box, below=of clientB] (serverB) {Server B}; + +\draw[arrow] (clientA.south) -- node[right,align=center] {events\\CS-API} (serverA.north); +\draw[arrow] (serverA.north) -- ++(0,0.8) -| (clientA.south); + +\draw[arrow] (clientB.south) -- node[left,align=center] {events\\CS-API} (serverB.north); +\draw[arrow] (serverB.north) -- ++(0,0.8) -| (clientB.south); + +\draw[<->,thick] (serverA.east) -- node[above,align=center] {SS-API (HTTPS)} (serverB.west); +\end{tikzpicture} +} +\\ +{\scriptsize Źródło: \url{https://matrix.org/docs/matrix-concepts/elements-of-matrix/}} +\end{frame} + +\begin{frame}{Jak działa [matrix]?} + \begin{center} + \texttt{contact@philw.dev <-> contact@phil.xyz} + \texttt{@philw:matrix.philw.dev <-> @phil:phil.xyz} + \end{center} +\end{frame} + +\begin{frame}{Jak działa [matrix]?} +\begin{itemize} + \item Komunikacja: REST API + \item Synchronizacja: \texttt{sync} lub \texttt{sliding-sync} – mechanizm aktualizacji + \item E2EE: + \begin{itemize} + \item Olm (1:1) + \item Megolm (1:n) + \end{itemize} + \item WebRTC +\end{itemize} +\end{frame} + + +\begin{frame}{[matrix] a wybrane systemy} +\begin{center} +\begin{tabular}{|l|c|c|c|c|} +\hline + & \textbf{Matrix} & \textbf{Signal} & \textbf{Slack} & \textbf{Discord} \\ +\hline +Decentralizacja & Tak & Nie & Nie & Nie \\ +E2EE & Tak & Tak & Nie & Nie \\ +E2EE (a/v) & Tak & Tak & -- & Tak \\ +Otwartość & Tak & Nie & Nie & Nie \\ +Bridge & Tak & Tak* & Tak* & Tak* \\ +Self-host & Tak & Nie & Nie & Nie \\ +\hline +\end{tabular} +\end{center} +\end{frame} + +\begin{frame} +\vspace{0.5em} +\centering + {\usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}\Huge Jak zacząć korzystać z [matrix]?} +\vspace{1em} +\end{frame} + +\begin{frame}{Wybór oprogramowania} +\begin{center} + \begin{minipage}{0.45\textwidth} + \centering + \includesvg[width=0.9\linewidth]{assets/servers} + \captionsetup{labelformat=empty} + \captionof{figure}{Lista serwerów} + \end{minipage}\hfill + \begin{minipage}{0.45\textwidth} + \centering + \captionsetup{labelformat=empty} + \includesvg[width=0.9\linewidth]{assets/clients} + \captionof{figure}{Lista klientów} + \end{minipage} +\end{center} +\end{frame} + +\begin{frame}{Whiterabbit} +\begin{itemize} + \item Automatyczna konfiguracja wybranych serwerów [matrix] + \item Automatyczna konfiguracja Coturn + \item Automatyczne TLS/SSL + \item Konteneryzacja +\end{itemize} +\centering +\includesvg[width=0.25\textwidth]{assets/whgit} + \captionsetup{labelformat=empty} + \captionof{figure}{Repozytorium Git} +\end{frame} + +\begin{frame} + \vspace{0.5em} + \centering + {\usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}\Huge Jak to działa?} + \vspace{1em} +\end{frame} + +\begin{frame}{Pytania} + +\begin{center} + \begin{minipage}{0.45\textwidth} + \centering + \includesvg[width=0.9\linewidth]{assets/email} + \captionsetup{labelformat=empty} + \captionof{figure}{E-mail} + \end{minipage}\hfill + \begin{minipage}{0.45\textwidth} + \centering + \captionsetup{labelformat=empty} + \includesvg[width=0.9\linewidth]{assets/matrix} + \captionof{figure}{Matrix} + \end{minipage} +\end{center} +\end{frame} + +\end{document} -- cgit v1.2.3