Skip to content

Commit

Permalink
Initial import of slides
Browse files Browse the repository at this point in the history
  • Loading branch information
Simon Levermann committed Feb 18, 2014
1 parent a29a429 commit 4293725
Show file tree
Hide file tree
Showing 4 changed files with 356 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@
*.vrb
*.xdy
*.tdo
tox.pdf
Binary file added logo_large.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
177 changes: 177 additions & 0 deletions mybeamer.cls
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
\ProvidesClass{mybeamer}
\LoadClass[hyperref={pdfpagelabels=true},compress]{beamer}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{varioref}
\usepackage[ngerman]{babel}
\usepackage{ngerman}
\usepackage{ifthen}

\usepackage[labelformat=empty]{caption}

\usepackage{listings}
\usepackage{MnSymbol} % Icons for Listing
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\usepackage{xcolor}
\definecolor{toxred}{HTML}{FE0000}
\definecolor{toxblue}{HTML}{0033FF}
\definecolor{tox_grey}{RGB}{127,127,127}
\definecolor{tox_lightgrey}{RGB}{220,220,220}
\definecolor{tox_xlightgrey}{RGB}{240,240,240}

\lstset{ %
backgroundcolor=\color{tox_xlightgrey}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
basicstyle=\scriptsize, % the size of the fonts that are used for the code
breakatwhitespace=true, % sets if automatic breaks should only happen at whitespace
breaklines=true, % sets automatic line breaking
captionpos=b, % sets the caption-position to bottom
commentstyle=\color{mygreen}, % comment style
deletekeywords={...}, % if you want to delete keywords from the given language
escapeinside={\%*}{*)}, % if you want to add LaTeX within your code
extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=\color{blue}, % keyword style
language=Java, % the language of the code
morekeywords={*,...}, % if you want to add more keywords to the set
numbers=none, % where to put the line-numbers; possible values are (none, left, right)
numbersep=5pt, % how far the line-numbers are from the code
numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
rulecolor=\color{white}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
showstringspaces=false, % underline spaces within strings only
showtabs=true, % show tabs within strings adding particular underscores
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered
stringstyle=\color{mymauve}, % string literal style
tabsize=2, % sets default tabsize to 2 spaces
title=\lstname, % show the filename of files included with \lstinputlisting; also try caption instead of title
prebreak=\raisebox{0ex}[0ex][0ex]
{\ensuremath{\rhookswarrow}},
%postbreak=\raisebox{0ex}[0ex][0ex]
% {\ensuremath{\rcurvearrowse\space}},
literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}



\beamersetuncovermixins{\opaqueness<1>{25}}{\opaqueness<1->{15}}
\beamertemplatetransparentcovereddynamicmedium
\setbeamertemplate{caption}[numbered]

\usenavigationsymbolstemplate{}
\usepackage{beamerthemeBerlin}
\usecolortheme{dove}
\useoutertheme{miniframes}

% Bullets
\setbeamercolor{block title}{fg=toxblue,bg=tox_lightgrey}
\setbeamercolor{block body}{fg=black, bg=tox_xlightgrey}
\setbeamercolor{titlelike}{fg=toxblue, bg=white}
\setbeamercolor{mini frame}{fg=toxblue, bg=tox_grey}
\setbeamercolor{section title}{fg=toxblue, bg=tox_grey}

\setbeamercolor{section in head/foot}{fg=toxblue}
%\setbeamercolor{date}{fg=white}
\setbeamercolor*{normal text}{fg=black,bg=white}
\setbeamercolor*{alerted text}{fg=black}
\setbeamercolor*{example text}{fg=black}
\setbeamercolor*{structure}{fg=black}
\setbeamercolor{navigation symbols}{fg=toxred}
\setbeamercolor{navigation symbols}{fg=toxred}

\setbeamertemplate{itemize item}{\color{toxblue}$\blacksquare$}
\setbeamertemplate{itemize subitem}{\color{toxblue}$\blacktriangleright$}

\providecommand\insertframetitle{}
\defbeamertemplate*{headline}{myFooter}{\insertframetitle}


\setbeamertemplate{headline}{
\begin{picture}(0,0)
\color{toxblue}{
% 1px spacing
\put(0.1,-3.835){\line(1,0){400}}

% Logo
\put(310, 0){\includegraphics[scale=0.15]{logo_large.png}}

% Sectiontitle
\put(10,5){\color{tox_lightgrey}{
\normalsize \textbf{\insertframetitle}
}
}
\put(9.4,5.5){\color{tox_grey}{
\normalsize \textbf{\insertframetitle}
}
}

}
\end{picture}
\begin{beamercolorbox}[wd=.850005\paperwidth, ht=9ex, dp=1ex, left]{}
\hspace{2mm}
\vspace{1.5mm}
\end{beamercolorbox}
\hfill
}

\newcommand{\setfooterfull}[1]{
\setbeamertemplate{footline}{

% On Agenda (TOC)-Page no sections
\ifthenelse{\equal{#1}{true}}{}{
\setbeamercolor{mini frame}{fg=white, bg=white}
\setbeamercolor{section in head/foot}{fg=white, bg=white}
}

\vskip-100pt
\insertnavigation{0.985\paperwidth}{}{}
\begin{picture}(0,0)
\put(-1,9.6){\color{toxblue}{\line(1,0){2000}}}
\end{picture}
\leavevmode
\hbox{%
\begin{beamercolorbox}[wd=0.25\paperwidth,ht=4ex,dp=1ex,left]{}
\color{tox_grey}{
\usebeamerfont{author in head/foot}\hspace{2mm}\insertdate
\vspace{0.5mm}
}
\end{beamercolorbox}


\begin{beamercolorbox}[wd=0.500003\paperwidth,ht=4ex,dp=1ex,center]{}
\color{tox_grey}{
\usebeamerfont{author in head/foot}\hspace{2mm} \insertshortauthor: \insertshorttitle \hspace{2mm}
\vspace{0.5mm}
}
\end{beamercolorbox}

\begin{beamercolorbox}[wd=0.25\paperwidth,ht=4ex,dp=1ex,right]{}
\color{tox_grey}{
\usebeamerfont{author in head/foot} \insertframenumber/\inserttotalframenumber \hspace{5mm}
\vspace{0.5mm}
}
\end{beamercolorbox}
}
}
}

\newcommand{\setfooterempty}{

\setbeamertemplate{footline}{
\begin{picture}
(0,0)
\put(-1,12.3){\color{toxblue}{\line(1,0){2000}}}
\end{picture}
}
}

\setbeamertemplate{frametitle}{}
\setbeamercovered{transparent}
178 changes: 178 additions & 0 deletions tox.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
\documentclass{mybeamer}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{ulem}

% Set title, date, etc.
\title{Tox}
\subtitle{Messaging on the GNU Internet}
\author{Simon Levermann (sonOfRa)}
\institute{The Tox Team}
\date{28/12/2013}


\begin{document}
\setfooterempty
\begin{frame}
\titlepage
\end{frame}

\setfooterfull{false}
\setcounter{framenumber}{0}
\begin{frame}
\frametitle{Outline}
\tableofcontents
\end{frame}

\setfooterfull{true}
\section{What is Tox?}
\begin{frame}
\frametitle{The what}
\begin{block}{What is Tox?}
\begin{itemize}
\item FOSS Chat and A/V-Chat protocol (GPLv3)
\item Decentralized architecture
\item Configuration free
\item Skype Replacement
\end{itemize}
\end{block}
\end{frame}

\section{Why are we doing it?}
\begin{frame}
\frametitle{The why}
\begin{block}{Why are we doing this?}
\begin{itemize}
\item We want a free(as in Freedom) and secure alternative for Skype
\item \textit{''We don't want to be the next secure chatting program, we want to be the next secure chatting program that people actually use.''} - Someone on IRC
\item Current secure chat programs aren't easy to use, at least not for \sout{our parents and grandparents} normal people
\end{itemize}
\end{block}
\end{frame}

\section{Features}
\subsection{}
\begin{frame}
\frametitle{Completed}
\begin{block}{Completed}
\begin{itemize}
\item Text messaging
\item Groupchats
\item File sending
\item Audio/Video (will be encrypted soon, almost ready to merge as of 23/12/2013)
\item Several clients for GNU/Linux, OSX and Windows, Qt, GTK, ncurses
\item PyTox, the Python binding for Tox
\end{itemize}
\end{block}
\end{frame}
\subsection{}
\begin{frame}
\frametitle{Planned and in Progress}
\begin{block}{Planned and in Progress}
\begin{itemize}
\item Better NAT support (sometimes symmetric NATs are problematic)
\item Implement A/V in actual clients, not just as an API
\item jToxcore, the Java binding for Tox
\item Android client (depends on jToxcore)
\end{itemize}
\end{block}
\end{frame}
\section{The technical stuff}

\subsection{}
\begin{frame}
\frametitle{Architecture}
\begin{block}{Architecture}
\begin{itemize}
\item Tox is only a library, everyone can make their own client
\item GPLv3, so clients must also be licensed under the GPL
\item Bindings to other languages are partially available (or you can make one yourself)
\end{itemize}
\end{block}
\end{frame}
\subsection{}
\begin{frame}
\frametitle{Crypto}
\begin{block}{Cryptography}
\begin{itemize}
\item We are building upon existing cryptography, not inventing our own
\item We use libsodium, which is a portable fork of NaCl(Salt)
\item Public/Private-Key based, public keys are UserIDs
\item crypto\_box: \textit{curve25519xsalsa20poly1305}
\begin{itemize}
\item curve25519 for Key exchange
\item xsalsa20 for encryption
\item poly1305 for message authentication
\end{itemize}

\end{itemize}
\end{block}
\end{frame}

\subsection{}
\begin{frame}
\frametitle{Network}
\begin{block}{Network Architecture}
\begin{itemize}
\item Peer-to-Peer chatting, no central servers
\item Use UDP for connections
\begin{itemize}
\item UDP was the obvious choice for P2P
\item 'Lossless UDP' for reliability in messaging
\item UDP hole-punching for getting through NATs
\end{itemize}
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
\frametitle{DHT}
\begin{block}{DHT Design}
\begin{itemize}
\item Use a DHT to store peer information
\item Since public keys are IDs, map a public key to an IP-Address
\item Every client stores the mathematically closest nodes by XORing public keys
\item Since there are no trackers like in Bittorrent, use Bootstrap nodes for initial login
\item Bootstrap nodes are clients that don't do messaging, only DHT work, but any client can serve as a bootstrap node
\end{itemize}
\end{block}
\end{frame}

\subsection{}
\begin{frame}
\frametitle{Problems}
\begin{block}{Problems}
\begin{itemize}
\item An attacker that controls a large portion of DHT nodes can easily log the social graph (solution is on the way, draft not done at time of writing)
\item Friend request spam (solved)
\end{itemize}
\end{block}
\begin{block}{Solution?}
\begin{itemize}
\item \url{https://github.com/irungentoo/ProjectTox-Core/blob/master/docs/Prevent_Tracking.txt}
\item Problem: This is new, I have not read it yet!
\end{itemize}
\end{block}
\end{frame}

\section{Contribute}
\subsection{}
\begin{frame}
\frametitle{GitHub}
\begin{block}{GitHub}
\begin{itemize}
\item We're on GitHub!
\item The core is at \url{https://github.com/irungentoo/ProjectTox-Core/}
\item The subprojects are hosted in the Tox Organization at \url{https://github.com/Tox/}
\end{itemize}
\end{block}
\end{frame}

\subsection{}
\begin{frame}
\frametitle{Questions?}
\begin{block}{Getting in touch}
Most of our communication happens in the channels \#tox-dev and \#tox on Freenode IRC
\end{block}
\end{frame}

\end{document}

0 comments on commit 4293725

Please sign in to comment.