Mercurial > louis > mq > lightsd
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} |