aboutsummaryrefslogtreecommitdiff
path: root/installfest2017/pres.tex
diff options
context:
space:
mode:
Diffstat (limited to 'installfest2017/pres.tex')
-rw-r--r--installfest2017/pres.tex304
1 files changed, 0 insertions, 304 deletions
diff --git a/installfest2017/pres.tex b/installfest2017/pres.tex
deleted file mode 100644
index 1c36c4c..0000000
--- a/installfest2017/pres.tex
+++ /dev/null
@@ -1,304 +0,0 @@
-\documentclass{beamer}
-\usetheme{metropolis}
-\usepackage{lmodern}
-\usepackage[czech]{babel}
-\usepackage[utf8x]{inputenc}
-%\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{graphicx}
-\usepackage{wrapfig}
-\usepackage{color}
-\usepackage{mathtools}
-\usepackage{hyperref}
-\usepackage{epstopdf}
-\usepackage{svg}
-\usepackage{amsmath}
-\usepackage{minted}
-\hypersetup{
- colorlinks,
- citecolor=black,
- filecolor=black,
- linkcolor=black,
- urlcolor=black
-}
-\usepackage{pdflscape}
-
-\title{3 problémy při práci na 3 počítačích}
-\author{Karel Kočí}
-\date{4.3.2017}
-
-\begin{document}
-
-\frame{\titlepage}
-
-\begin{frame}
- \begin{block}{\huge Napiš si skript!}
- Přednášené skripty a více naleznete na:
- \url{https://github.com/Cynerd/myconfigs}
- \end{block}
-\end{frame}
-
-\begin{frame}
- \frametitle{3 problémy}
- \begin{itemize}
- \item Synchronizace souborů
- \item Synchronizace a správa konfigurací
- \item Správa systému
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{Synchronizace souborů}
- \def\svgwidth{1cm}
- \input{face_sad.pdf_tex}
- \begin{itemize}
- \item Dropbox
- \item Mega
- \item Google drive
- \item \ldots
- \end{itemize}
-
- \def\svgwidth{1cm}
- \input{face_cry.pdf_tex}
- \begin{itemize}
- \item Owncloud/Nextcloud
- \end{itemize}
-
- \def\svgwidth{1cm}
- \input{face_happy.pdf_tex}
- \begin{itemize}
- \item Syncthing
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{``Easy to use'' říkají}
- \includegraphics[width=11cm]{syncthing.png}
-\end{frame}
-
-\begin{frame}
- \frametitle{Matematický problém}
- Přidání zařízení mezi N synchronizujících M složek.
-
- \begin{itemize}
- \item Nastav nové zařízení
- \item $N$-krát přidej zařízení
- \item $N$-krát spáruj s novým zařízením
- \item $N \times M$ přidej k synchronizovaným složkám
- \item $M$-krát přidej složku na novém zařízení
- \end{itemize}
-
- \vspace{0.4cm}
- \[
- 1+\left(M+2\right)N+M
- \]
-\end{frame}
-
-\begin{frame}
- \frametitle{Moje zařízení}
- \def\svgwidth{27cm}
- \input{scheme.pdf_tex}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Syncthing konfigurace hodně zjednodušeně}
- \small
- \begin{minted}{xml}
-<configuration version="18">
- <folder id="a" label="A" path="/home/user/a/">
- <device id="0000000-0000000-.."></device>
- <device id="1111111-1111111-.."></device>
- </folder>
- <folder id="b" label="B" path="/home/user/b/">
- <device id="0000000-0000000-.."></device>
- <device id="1111111-1111111-.."></device>
- </folder>
- <device id="0000000-0000000-.." name="cynerd-pc">
- <address>dynamic</address>
- </device>
- <device id="1111111-1111111-.." name="server">
- <address>tcp://cynerd.cz</address>
- </device>
-</configuration>
-\end{minted}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Napiš si skript, vstupní data}
- \begin{minted}{bash}
-# Syncthing PC id
-ID="0000000-0000000-0000000-0000000-.."
-# Name of machine
-NAME="cynerd-pc"
-# Address to machine, can be tcp://address.com or dynamic
-ADDRESS="dynamic"
-
-# Directoris to be synchronized
-# Format is ID:PATH
-DIRS="Sync:/home/user/Sync
-Sync2:/home/user/SyncIt"
-
-# REST api key
-APIKEY="bT6dCxEds9JPwiXMXavGNsXsz7ZFpSC5"
-\end{minted}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Napiš si skript, generuj zařízení do XML}
- \begin{minted}{bash}
-# ...
-for h in syncthing/*; do
-
-. "$h" # Source host
-# Set to configuration
-echo "<device id=\"$ID\" name=\"$NAME\">" >>$TMPCNF
-echo "<address>$ADDRESS</address>" >>$TMPCNF
-echo "</device>" >>$TMPCNF
-# Parse DIRS of this host
-eval `echo "$DIRS" | sed -ne \
-'s/^\([^:]*\):.*$/ST_DIR_HOSTS_\1="$ST_DIR_HOSTS_\1 $ID"/p'`
-
-done
-# ...
-\end{minted}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Napiš si skript, generuj složky do XML}
- \begin{minted}{bash}
-# ...
-. syncthing/"$HOST"
-while read -r d; do
-NM="$(echo "$d" | sed 's/:.*$//')" # Directory name
-PTH="$(echo "$d" | sed 's/^[^:]*://')" # Get target path
-# Write folder init
-echo "<f id=\"$NM\" label=\"$NM\" path=\"$PTH\">" >>$TMPCNF
-# Specify every all devices
-for dev in eval `echo \$ST_DIR_HOSTS_$NM`; do
- echo "<device id=\"$dev\"></device>" >>$TMPCNF
-done
-# ...
-done <<<"$DIRS"
-# ...
-\end{minted}
-\end{frame}
-
-\begin{frame}
- \frametitle{Moje řešení}
-
- \begin{itemize}
- \item Nastav nové zařízení
- \item Přidej do sdílené konfigurace
- \item N-krát deploy konfigurace
- \end{itemize}
-
- \vspace{0.4cm}
- \[
- 2+N < 1+\left(M+2\right)N+M
- \]
-\end{frame}
-
-\begin{frame}
- \frametitle{Synchronizace konfigurace}
- \includegraphics[width=3cm]{git.eps}
-
- \vspace{1cm}
- \begin{block}{\$HOME dot soubory}
- 3 zařízení 3 různé požadavky
- \begin{itemize}
- \item Laptop, OpenRC, Bumblebee, 2 disky
- \item Laptop, OpenRC
- \item Desktop, Systemd
- \end{itemize}
- \end{block}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Skriptujeme jednoduše}
- \begin{minted}{bash}
-# install.sh
-cd `dirname $0`
-rsync -rlpt bashrc ~/.bashrc
-rsync -rlpt profile ~/.profile
-
-
-# get.sh
-cd `dirname $0`
-rsync -rlpt ~/.bashrc bashrc
-rsync -rlpt ~/.profile profile
-\end{minted}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Skriptujeme s vimdiff}
- \begin{minted}{bash}
-cd `dirname $0`
-checkdiff() {
- for f in `find "$1" -type f`; do
- if ! cmp "$1" "$f" >/dev/null; then
- F="${f#$1}"
- vimdiff "$1/$F" "$2/$F"
- fi
- done
-}
-inst() {
- [ -e "$2" ] && checkdiff "$1" "$2" \
- || rsync -rlpt "$1" "$2"
-}
-inst bashrc ~/.bashrc
-\end{minted}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Skriptujeme skupinky}
- \begin{minted}{bash}
-# ...
-
-read -p "Install bashrc? (Y/n) "
-if [[ $REPLY =~ ^[Yy]?$ ]]; then
- inst bashrc ~/.bashrc
- inst profile ~/.profile
-fi
-
-read -p "Install VIM scripts? (Y/n) "
-if [[ $REPLY =~ ^[Yy]?$ ]]; then
- inst vimrc ~/.vimrc
- inst vim ~/.vim
-fi
-
-\end{minted}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Balíčky jako konfigurace}
- Pro Archlinux:
- \begin{minted}{bash}
-sudo pacman -D --asdeps pkg
-sudo pacman -D --asexplicit pkg
-\end{minted}
-
- \begin{minted}{bash}
-m4 archlinux.pkgs | sort | uniq > /tmp/file1
-pacaur -Qqe | sort > /tmp/file2
-diff --supppress-common-lines -ay /tmp/file1 /tmp/file2
-\end{minted}
-\end{frame}
-
-\begin{frame}
- \frametitle{Závěrem}
- \begin{itemize}
- \item Jeden git repositář s konfigurací
- \item Skript pro přesun změn v konfiguračních souborech z a do repositáře
- \item Skript porotnání explicitně nainstalovaných balíčků
- \item Skript pro generování Syncthing konfigurace
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \begin{block}{\large Děkuji za pozornost}
- \end{block}
- \url{https://github.com/Cynerd/myconfigs}
- % TODO
-\end{frame}
-
-\end{document}