comparison add_slides.patch @ 529:ba8ec21bf619

wip fosdem slides
author Louis Opter <kalessin@kalessin.fr>
date Sat, 28 Jan 2017 00:51:13 +0100
parents 6994c00c4d15
children f8d1c74a24c4
comparison
equal deleted inserted replaced
528:6994c00c4d15 529:ba8ec21bf619
1702 +ADD_LATEX_DOCUMENT(fosdem_2017.tex) 1702 +ADD_LATEX_DOCUMENT(fosdem_2017.tex)
1703 diff --git a/slides/fosdem_2017/fosdem_2017.tex b/slides/fosdem_2017/fosdem_2017.tex 1703 diff --git a/slides/fosdem_2017/fosdem_2017.tex b/slides/fosdem_2017/fosdem_2017.tex
1704 new file mode 100644 1704 new file mode 100644
1705 --- /dev/null 1705 --- /dev/null
1706 +++ b/slides/fosdem_2017/fosdem_2017.tex 1706 +++ b/slides/fosdem_2017/fosdem_2017.tex
1707 @@ -0,0 +1,730 @@ 1707 @@ -0,0 +1,770 @@
1708 +\documentclass[utf8x,xcolor={usenames,svgnames}]{beamer} 1708 +\documentclass[utf8x,xcolor={usenames,svgnames}]{beamer}
1709 + 1709 +
1710 +\usepackage{tikz} 1710 +\usepackage{tikz}
1711 +\usepackage{tikzsymbols} 1711 +\usepackage{tikzsymbols}
1712 +\usepackage{lmodern} 1712 +\usepackage{lmodern}
1743 +\tikzset{mbutthigh/.style={color=orange!80!gray,rounded corners=1pt}} 1743 +\tikzset{mbutthigh/.style={color=orange!80!gray,rounded corners=1pt}}
1744 +\tikzset{mbutton/.style={fill,color=orange!95!white,rounded corners=1pt}} 1744 +\tikzset{mbutton/.style={fill,color=orange!95!white,rounded corners=1pt}}
1745 + 1745 +
1746 +\tikzset{bubble/.style={fill,opacity=0.7,rounded corners=2pt}} 1746 +\tikzset{bubble/.style={fill,opacity=0.7,rounded corners=2pt}}
1747 +\tikzset{arrow/.style={->, >=stealth,ultra thick,rounded corners}} 1747 +\tikzset{arrow/.style={->, >=stealth,ultra thick,rounded corners}}
1748 +\tikzset{controlpt/.style={opacity=1}} 1748 +\tikzset{controlpt/.style={opacity=0}}
1749 +\tikzset{hidden/.style={opacity=0}} 1749 +\tikzset{hidden/.style={opacity=0}}
1750 +\tikzset{wifipath/.style={thick,opacity=0.8,decorate,decoration={name=expanding waves,angle=25,segment length=3.5}}}
1751 +\tikzset{box/.style={draw,ultra thick, color=BeamerBlue, text=black, rectangle, rounded corners=1pt}}
1752 +
1753 +\tikzset{screw/.style={decoration={name=snake,amplitude=0.1mm,segment length=0.6mm}}}
1750 + 1754 +
1751 +\colorlet{plate}{Gainsboro} 1755 +\colorlet{plate}{Gainsboro}
1752 +\colorlet{case}{Sienna} 1756 +\colorlet{case}{Sienna}
1753 +\colorlet{fgcolor}{White} 1757 +\colorlet{fgcolor}{White}
1758 +\definecolor{BeamerBlue}{RGB}{49,56,172}
1754 + 1759 +
1755 +\begin{document} 1760 +\begin{document}
1756 + 1761 +
1757 +\begin{frame}\titlepage\end{frame} 1762 +\begin{frame}\titlepage\end{frame}
1758 + 1763 +
1760 + 1765 +
1761 +\subsection{About me} 1766 +\subsection{About me}
1762 + 1767 +
1763 +\begin{frame}{\texttt{\$ whoami}} 1768 +\begin{frame}{\texttt{\$ whoami}}
1764 +\onslide<1->{% 1769 +\onslide<1->{%
1765 +Hello, my name is Louis and I:\vspace{1em} 1770 +Hello, my name is Louis (Opter) and I:\vspace{1em}
1766 +\begin{itemize} 1771 +\begin{itemize}
1767 +\item am a good software engineer, a bad computer scientist; 1772 +\item am a good software engineer, a bad computer scientist;
1768 +\item am (distributed) systems oriented; 1773 +\item am (distributed) systems oriented;
1769 +\item do hella C, Python and devops, use FOSS since '05; 1774 +\item do hella C, Python and devops, use FOSS since '05;
1770 +\item \emph{do not really know anything about hardware.} 1775 +\item \emph{do not really know anything about hardware.}
1780 + 1785 +
1781 +\begin{frame}{What are we looking at?} 1786 +\begin{frame}{What are we looking at?}
1782 +A controller (Monome grid 128 varibright): 1787 +A controller (Monome grid 128 varibright):
1783 +\begin{itemize} 1788 +\begin{itemize}
1784 +\item A matrix of 128 programmable button; 1789 +\item A matrix of 128 programmable button;
1785 +\item 16 levels of brightness per button; 1790 +\item 16 levels of brightness per button.
1786 +\item Serial connection (FTDI).
1787 +\end{itemize} 1791 +\end{itemize}
1788 +\pause 1792 +\pause
1789 +\vspace{1em} 1793 +\vspace{1em}
1790 +Controlling a "smart" bulb (LIFX Original 1000): 1794 +Controlling a "smart" bulb (LIFX Original 1000):
1791 +\begin{itemize} 1795 +\begin{itemize}
1792 +\item A 1000 lumens programmable light bulb; 1796 +\item A 1000 lumens programmable light bulb;
1793 +\item Nice colors, nice range of whites; 1797 +\item Nice colors, nice range of whites.
1794 +\item WiFi connection (2.4ghz).
1795 +\end{itemize} 1798 +\end{itemize}
1796 +\pause 1799 +\pause
1797 +\vspace{1em} 1800 +\vspace{1em}
1798 +An uncomfortable amount of code. 1801 +An uncomfortable amount of code.
1799 +\end{frame} 1802 +\end{frame}
2146 + 2149 +
2147 +\section{Implementation details} 2150 +\section{Implementation details}
2148 + 2151 +
2149 +\subsection{Architecture} 2152 +\subsection{Architecture}
2150 + 2153 +
2151 +\tikzset{box/.style={draw,ultra thick, rectangle, rounded corners=1pt}}
2152 +
2153 +\colorlet{BodyColor}{Grey!90!black} 2154 +\colorlet{BodyColor}{Grey!90!black}
2154 +\colorlet{SocketColor}{Silver!90!black} 2155 +\colorlet{SocketColor}{Silver!90!black}
2155 + 2156 +
2156 +\begin{frame}{High-level architecture} 2157 +\begin{frame}{High-level architecture}
2157 +\begin{center} 2158 +\begin{center}
2158 +\begin{tikzpicture}[overlay] 2159 +\begin{tikzpicture}[overlay]
2159 +\coordinate (Origin) at (0,0); 2160 +\coordinate (Origin) at (0,0);
2160 + 2161 +
2161 +\fill[controlpt] (Origin) circle (0.1); 2162 +\fill[controlpt] (Origin) circle (0.1);
2162 + 2163 +
2163 +\node[box] (serialoscd) at (0,1.5) {serialoscd}; 2164 +\node[box] (serialoscd) at (0.5,1.5) {serialoscd};
2164 +\node[box] (monome) at (-3.5,1.5) {\begin{tikzpicture}[overlay,scale=0.5] 2165 +\draw[ultra thick] (-1.46, 2.2) -| node[above, pos=0.4] {RS232 \small{(FTDI)}} (serialoscd);
2166 +\node (monome) at (-3.5,1.5) {\begin{tikzpicture}[scale=0.5]
2165 +\coordinate (NW) at (-4, 1.75); 2167 +\coordinate (NW) at (-4, 1.75);
2166 +\coordinate (SE) at (3.86, -2.11); 2168 +\coordinate (SE) at (3.86, -2.11);
2167 + 2169 +
2168 +\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); 2170 +\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$);
2169 +\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); 2171 +\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$);
2171 +\foreach \x in {-4,-3.5,...,3.5} 2173 +\foreach \x in {-4,-3.5,...,3.5}
2172 +\foreach \y in {1.75,1.25,...,-1.75} 2174 +\foreach \y in {1.75,1.25,...,-1.75}
2173 +\fill[mbuttoff] (\x, \y) rectangle +(0.36, -0.36); 2175 +\fill[mbuttoff] (\x, \y) rectangle +(0.36, -0.36);
2174 +\end{tikzpicture}}; 2176 +\end{tikzpicture}};
2175 +\node[box] (monolight) at (3.5,-0.25) {monolight}; 2177 +\node[box] (monolight) at (3.5,-0.25) {monolight};
2176 +\node[box] (lightsd) at (0,-2) {lightsd}; 2178 +\node[box] (lightsd) at (0.5,-2) {lightsd};
2177 +\node (bulbh) at (-4.2,-1.2) {% 2179 +\node (bulbh) at (-4.2,-1.1) {%
2178 +\colorlet{LightColor}{MediumBlue} 2180 +\colorlet{LightColor}{MediumBlue}
2179 +\begin{tikzpicture}[scale=0.19,rotate=90] 2181 +\begin{tikzpicture}[scale=0.19,rotate=90]
2180 +% main body 2182 +% main body
2181 +\fill[color=BodyColor] 2183 +\fill[color=BodyColor]
2182 + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- 2184 + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) --
2183 + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; 2185 + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle;
2186 +% main body light
2187 +\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white]
2188 + (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm);
2189 +\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white]
2190 + (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm);
2184 + 2191 +
2185 +% led - body separator 2192 +% led - body separator
2186 +\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; 2193 +\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle;
2187 + 2194 +
2188 +% led part 2195 +% led part
2198 + -- ++(0,18mm); 2205 + -- ++(0,18mm);
2199 + 2206 +
2200 +% socket 2207 +% socket
2201 +\fill[color=SocketColor] 2208 +\fill[color=SocketColor]
2202 + (-10mm,-38mm) -- ++(0,-4mm) 2209 + (-10mm,-38mm) -- ++(0,-4mm)
2203 + decorate[decoration={name=snake,amplitude=0.1mm,segment length=0.6mm}] {(-10mm,-42mm) -- ++(0,-10mm)} 2210 + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)}
2204 + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) 2211 + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm)
2205 + decorate[decoration={name=snake,amplitude=0.1mm,segment length=0.6mm}] {(10mm,-52mm) -- ++(0,10mm)} 2212 + decorate[screw] {(10mm,-52mm) -- ++(0,10mm)}
2206 + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; 2213 + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle;
2207 +\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); 2214 +\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm);
2208 + 2215 +
2216 +% socket light
2217 +\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white]
2218 + (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm);
2219 +
2220 +% lower body light
2221 +\draw[line width=1.8mm,color=BodyColor]
2222 + (5mm,-18mm) -- ++(0,-20mm);
2223 +
2224 +% led - body separator light
2225 +\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm);
2209 +% led - body separator shade 2226 +% led - body separator shade
2210 +\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); 2227 +\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm);
2211 +\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); 2228 +\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm);
2212 + 2229 +
2213 +% socket shade 2230 +% socket shade
2237 +\draw[thick,rounded corners=1pt,color=LightColor!70!white] 2254 +\draw[thick,rounded corners=1pt,color=LightColor!70!white]
2238 + (-28mm,34.5mm) -- ++(0,14mm) 2255 + (-28mm,34.5mm) -- ++(0,14mm)
2239 + .. controls ++(28mm,1mm) .. ++(56mm,0) 2256 + .. controls ++(28mm,1mm) .. ++(56mm,0)
2240 + -- ++(0,-14mm) -- cycle; 2257 + -- ++(0,-14mm) -- cycle;
2241 +\end{tikzpicture}}; 2258 +\end{tikzpicture}};
2242 +\node (bulbl) at (-4.2,-2.8) {% 2259 +\node (bulbl) at (-4.2,-2.9) {%
2243 +\colorlet{LightColor}{BlueViolet} 2260 +\colorlet{LightColor}{BlueViolet}
2244 +\begin{tikzpicture}[scale=0.19,rotate=90] 2261 +\begin{tikzpicture}[scale=0.19,rotate=90]
2245 +% main body 2262 +% main body
2246 +\fill[color=BodyColor] 2263 +\fill[color=BodyColor]
2247 + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- 2264 + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) --
2248 + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; 2265 + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle;
2266 +% main body light
2267 +\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white]
2268 + (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm);
2269 +\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white]
2270 + (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm);
2249 + 2271 +
2250 +% led - body separator 2272 +% led - body separator
2251 +\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; 2273 +\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle;
2252 + 2274 +
2253 +% led part 2275 +% led part
2263 + -- ++(0,18mm); 2285 + -- ++(0,18mm);
2264 + 2286 +
2265 +% socket 2287 +% socket
2266 +\fill[color=SocketColor] 2288 +\fill[color=SocketColor]
2267 + (-10mm,-38mm) -- ++(0,-4mm) 2289 + (-10mm,-38mm) -- ++(0,-4mm)
2268 + decorate[decoration={name=snake,amplitude=0.1mm,segment length=0.6mm}] {(-10mm,-42mm) -- ++(0,-10mm)} 2290 + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)}
2269 + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) 2291 + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm)
2270 + decorate[decoration={name=snake,amplitude=0.1mm,segment length=0.6mm}] {(10mm,-52mm) -- ++(0,10mm)} 2292 + decorate[screw] {(10mm,-52mm) -- ++(0,10mm)}
2271 + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; 2293 + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle;
2272 +\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); 2294 +\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm);
2273 + 2295 +
2296 +% socket light
2297 +\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white]
2298 + (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm);
2299 +
2300 +% lower body light
2301 +\draw[line width=1.8mm,color=BodyColor]
2302 + (5mm,-18mm) -- ++(0,-20mm);
2303 +
2304 +% led - body separator light
2305 +\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm);
2274 +% led - body separator shade 2306 +% led - body separator shade
2275 +\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); 2307 +\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm);
2276 +\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); 2308 +\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm);
2277 + 2309 +
2278 +% socket shade 2310 +% socket shade
2302 +\draw[thick,rounded corners=1pt,color=LightColor!70!white] 2334 +\draw[thick,rounded corners=1pt,color=LightColor!70!white]
2303 + (-28mm,34.5mm) -- ++(0,14mm) 2335 + (-28mm,34.5mm) -- ++(0,14mm)
2304 + .. controls ++(28mm,1mm) .. ++(56mm,0) 2336 + .. controls ++(28mm,1mm) .. ++(56mm,0)
2305 + -- ++(0,-14mm) -- cycle; 2337 + -- ++(0,-14mm) -- cycle;
2306 +\end{tikzpicture}}; 2338 +\end{tikzpicture}};
2339 +
2340 +\draw[ultra thick] (serialoscd) -| node[above left] {UDP} (monolight);
2341 +\draw[ultra thick] (lightsd) -| node[above,pos=0.25] {TCP/Unix} (monolight);
2342 +\draw[wifipath] (bulbh.east) -- (-2.2,-1.15);
2343 +\draw[wifipath] (lightsd.west) -- (-1.1,-2);
2344 +\draw[wifipath] (bulbl.east) -- (-2.2,-2.85);
2345 +\node (wifi) at (-2.3,-2.25) {\small{(2.4gHz Wi-Fi)}};
2346 +\draw ($(wifi.north) + (0,0.2)$) node {UDP};
2307 +\end{tikzpicture} 2347 +\end{tikzpicture}
2308 +\end{center} 2348 +\end{center}
2309 +\end{frame} 2349 +\end{frame}
2310 + 2350 +
2311 +\subsection{About monolight} 2351 +\subsection{About monolight}