Mercurial > louis > mq > lightsd
changeset 526:9a05a1cb84da
wip fosdem slide
author | Louis Opter <kalessin@kalessin.fr> |
---|---|
date | Thu, 26 Jan 2017 14:47:50 +0100 |
parents | 31fa95cbcc6f |
children | 825305f44913 |
files | add_slides.patch |
diffstat | 1 files changed, 161 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/add_slides.patch Thu Jan 26 00:10:41 2017 +0100 +++ b/add_slides.patch Thu Jan 26 14:47:50 2017 +0100 @@ -1704,7 +1704,7 @@ new file mode 100644 --- /dev/null +++ b/slides/fosdem_2017/fosdem_2017.tex -@@ -0,0 +1,312 @@ +@@ -0,0 +1,459 @@ +\documentclass[utf8,xcolor={usenames,svgnames}]{beamer} + +\usepackage{tikz} @@ -1720,12 +1720,18 @@ +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{bibliography item}[text] + -+\usetikzlibrary{calc,decorations.pathreplacing,decorations.pathmorphing,shapes,positioning} ++\usetikzlibrary{% ++ calc, ++ decorations.pathreplacing, ++ decorations.pathmorphing, ++ shapes, ++ positioning ++} + +\title{Playing with the lights} -+\subtitle{\textit{Control LIFX WiFi-enabled light bulbs}} -+\date{Fosdem, IoT, 2017} -+\author{Louis Opter} ++\subtitle{\textit{Control WiFi-enabled LIFX light bulbs}} ++\date{Fosdem 2017, IoT track} ++\author{Louis Opter <louis@opter.org>} + +% butts: +\tikzset{mbuttoff/.style={color=gray,rounded corners=1pt}} @@ -1818,6 +1824,9 @@ +\coordinate (NE) at (3.86, 1.75); +\coordinate (SW) at (-4, -2.11); +\coordinate (SE) at (3.86, -2.11); ++\coordinate (b0) at (-4, 1.75); ++\coordinate (b16) at (-3.82,1.07); ++\coordinate (b32) at (-3.82,0.57); + +\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); @@ -1846,9 +1855,18 @@ +\node[rectangle] (b114) at (-2.82,-1.93) {}; +\node[rectangle] (b115) at (-2.32,-1.93) {}; +\node[rectangle] (b116) at (-1.82,-1.93) {}; -+\node[rectangle] (b117) at (-1.32,-1.93) {}; \node[rectangle] (b127) at (3.68,-1.93) {}; ++\node[rectangle] (b117) at (-1.32,-1.93) {}; ++\node[rectangle] (b127) at (3.68,-1.93) {}; ++} ++\onslide<2>{ ++\node (toggle) [above=1.1cm of b112] {% ++\begin{minipage}{2cm} ++\begin{center} ++on/off + -+\node (toggle) [above=1.1cm of b112] {toggle}; ++toggle ++\end{center} ++\end{minipage}}; +\node (off) [above=0.7cm of b113] {off}; +\node (on) [above=1.1cm of b114] {on}; +\node (scenes) [above=0.7cm of b116] {scenes\ldots}; @@ -1862,6 +1880,18 @@ +\draw[ultra thick,decorate,decoration={name=brace}] + ($(b115.north west) + (-0.1,0.35)$) -- ($(b116.north east) + (0.1,0.35)$); +} ++\onslide<3->{% ++\draw ($(b0) + (-0.25, 0)$) node[below right] {% ++\begin{minipage}{10cm} ++Other ideas: ++\vspace{1em} ++\begin{itemize} ++\item Navigation controls (pagination\ldots); % will make sense on the next slide ++\item MPD control. ++\end{itemize} ++\end{minipage} ++}; ++} +\end{tikzpicture} +\end{center} +\end{frame} @@ -1893,7 +1923,7 @@ + +\foreach \x in {-2,-1.5,...,-0.5} +\foreach \y in {1.75,1.25,...,-1.25} -+\fill[mbutthigh] (\x, \y) rectangle +(0.36, -0.36); ++\fill[mbuttmed] (\x, \y) rectangle +(0.36, -0.36); + +\foreach \x in {0,0.5,...,1.5} +\foreach \y in {1.75,1.25,...,-1.25} @@ -1901,7 +1931,7 @@ + +\foreach \x in {2,2.5,...,3.5} +\foreach \y in {1.75,1.25,...,-1.25} -+\fill[mbutthigh] (\x, \y) rectangle +(0.36, -0.36); ++\fill[mbuttmed] (\x, \y) rectangle +(0.36, -0.36); + +\foreach \x in {-4,-3.5,...,3.5} +\fill[mbuttoff] (\x, -1.75) rectangle +(0.36, -0.36); @@ -1915,7 +1945,7 @@ +\foreach \y in {1.75,1.25,...,-1.25} +\fill[mbuttoff] (-2, \y) rectangle +(0.36, -0.36); + -+\fill[color=fgcolor,decoration={name=snake,amplitude=2,segment length=45}] ++\fill[color=fgcolor,decoration={name=snake,amplitude=2,segment length=45}] + decorate {(-1.75,2) -- (-1.75,-2.36)} -- (4.2,-2.36) -- (4.2,2) -- cycle; + +\foreach \x in {-3.5,-3,...,-2.5} @@ -1955,14 +1985,15 @@ +\node[rectangle] (b4) at (-1.82,1.57) {}; +\node[rectangle] (b5) at (-1.32,1.57) {}; +\draw[arrow] (b5) -- (b4.west); -+\draw (b5) node[right] {Functions/status row (toggle/TBD)}; ++\draw (b5) node[right] {Functions/status row (toggle, TBD\ldots)}; + +\node[rectangle] (b20) at (-1.82,1.07) {}; +\node[rectangle] (b21) at (-1.32,1.07) {}; +\draw[arrow] (b21) -- (b20.west); +\draw (-1.32,1.32) node[below right] {% +\begin{minipage}{10cm} -+4 sliders (Hsbk): ++4 sliders (Hsbk, ``color wheel''): ++\vspace{1ex} +\begin{itemize} +\item Hue: 0.0--360.0°; +\item Saturation: 0.0--1.0; @@ -1984,11 +2015,127 @@ +\item UI feedback; +\item Monolight layer definitions. +\end{itemize} ++\vspace{1em} ++\pause ++One last (unimplemented) idea I wanna show you\ldots +\end{frame} + -+\subsection{More ideas} ++\subsection{One last idea} + +\begin{frame}{Timer/Repeat} ++\begin{center} ++\begin{tikzpicture}[overlay,scale=1.2] ++\onslide<1->{% ++\coordinate (NW) at (-4, 1.75); ++\coordinate (NE) at (3.86, 1.75); ++\coordinate (SW) at (-4, -2.11); ++\coordinate (SE) at (3.86, -2.11); ++\coordinate (caption) at ($(NW) + (-1.155,0.65)$); ++ ++\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++ ++\foreach \x in {-4,-3.5,...,3.5} ++\foreach \y in {1.75,1.25,...,-1.75} ++\fill[mbuttoff] (\x, \y) rectangle +(0.36, -0.36); % blank grid ++ ++\foreach \x in {-4,-3.5,...,-1} ++\fill[mbutton] (\x, -1.75) rectangle +(0.36, -0.36); % function row ++ ++\fill[controlpt] (NW) circle (0.1); ++\fill[controlpt] (SW) circle (0.1); ++\fill[controlpt] (NE) circle (0.1); ++\fill[controlpt] (SE) circle (0.1); ++ ++\node[rectangle] (b117) at (-1.32,-1.93) {}; ++\node[rectangle] (b118) at (-0.82,-1.93) {}; ++} ++\onslide<1,3->{% ++% targets toggles: ++\fill[mbutton] (-4, 1.75) rectangle +(0.36, -0.36); ++\foreach \x in {-2,0,...,3.5} ++\fill[mbuttvlow] (\x, 1.75) rectangle +(0.36, -0.36); ++ ++% h: ++\fill[mbutthigh] (-4, -0.25) rectangle +(0.36, -0.36); ++\fill[mbutton] (-4, -0.75) rectangle +(0.36, -0.36); ++\fill[mbutton] (-4, -1.25) rectangle +(0.36, -0.36); ++ ++% s: ++\fill[mbuttmed] (-3.5, -0.75) rectangle +(0.36, -0.36); ++\fill[mbutton] (-3.5, -1.25) rectangle +(0.36, -0.36); ++ ++% b: ++\foreach \y in {1.25,0.75,...,-1.25} ++\fill[mbutton] (-3, \y) rectangle +(0.36, -0.36); ++ ++% k: ++\fill[mbutthigh] (-2.5, -1.25) rectangle +(0.36, -0.36); ++} ++\onslide<1>{% ++\draw (caption) node[right] {Let's add two more functions:}; ++ ++\node (timer) [below=0.5cm of b117] {timer}; ++\node (repeat) [below=0.9cm of b118] {repeat}; ++\draw[arrow] (timer) -- (b117); ++\draw[arrow] (repeat) -- (b118); ++} ++\onslide<2>{% ++\draw (caption) node[right] {Time selection (1 lit button = 1 unit of time):}; ++ ++% partially lit grid: ++\foreach \x in {-4,-3.5,...,-0.5} ++\foreach \y in {1.75,1.25,...,-1.25} ++\fill[mbutton] (\x, \y) rectangle +(0.36, -0.36); ++\foreach \y in {1.75,1.25,...,-0.5} ++\fill[mbutton] (0, \y) rectangle +(0.36, -0.36); ++ ++\foreach \x in {-4,-3.5,...,3.5} ++\fill[mbuttoff] (\x, -1.75) rectangle +(0.36, -0.36); % blank function row ++ ++\fill[mbutton] (-1.5, -1.75) rectangle +(0.36, -0.36); % time button ++\fill[mbutton] (0, -1.75) rectangle +(0.36, -0.36); % dec time scale ++\fill[mbutton] (0.5, -1.75) rectangle +(0.36, -0.36); % inc time scale ++ ++%\node[rectangle] (b117) at (-1.32,-1.93) {}; ++%\node[rectangle] (b118) at (-0.82,-1.93) {}; ++%\node[rectangle] (b119) at (-0.32,-1.93) {}; ++\node[rectangle] (b120) at (0.18,-1.93) {}; ++\node[rectangle] (b121) at (0.68,-1.93) {}; ++\node[rectangle] (b122) at (1.18,-1.93) {}; ++\draw[ultra thick,decorate,decoration={name=brace,mirror}] ++ ($(b120.south west) + (-0.1,-0.35)$) -- ($(b121.south east) + (0.1,-0.35)$); ++\node (timectl) [below=0.5cm of b122] {dec/inc time unit\ldots}; ++} ++\onslide<3>{% ++\draw (caption) node[right] {Target selection, optional repeat selection:}; ++ ++\node (repeat) [below=0.5cm of b118] {[repeat]}; ++\draw[arrow] (repeat) -- (b118); ++ ++\node[rectangle,opacity=0] (b0) at (-3.82,1.57) {B}; ++\node[rectangle,opacity=0] (b4) at (-1.82,1.57) {B}; ++\node[rectangle,opacity=0] (b8) at (0.18,1.57) {B}; ++\node[rectangle,opacity=0] (b12) at (2.18,1.57) {B}; ++ ++\coordinate (targetwd) at ($(caption) + (0.7, -0.05)$); ++\node[controlpt,circle] (legend) at (targetwd) {}; ++ ++\coordinate (upturn) at ($(legend) + (0,-1.36)$); ++\draw[arrow,<-] (b0.south) -- ++(0,-0.35) -- (upturn) -- (legend.south); ++\draw[arrow,<-] (b4.south) -- ++(0,-0.35) -- (upturn) -- (legend.south); ++\draw[arrow,<-] (b8.south) -- ++(0,-0.35) -- (upturn) -- (legend.south); ++\draw[arrow,<-] (b12.south) -- ++(0,-0.35) -- (upturn) -- (legend.south); ++} ++\onslide<4>{% ++\fill[mbutton] (-3.5, 1.75) rectangle +(0.36, -0.36); ++ ++\node[rectangle] (b1) at (-3.32,1.57) {}; ++\node (feedback) [above=0.5cm of b1] {Activity feedback}; ++\draw[arrow] (feedback) -- (b1); ++} ++\end{tikzpicture} ++\end{center} +\end{frame} + +\section{Implementation details} @@ -2008,7 +2155,7 @@ +\begin{frame} +\begin{center}\Huge{Thanks}\end{center} +\vspace{1em} -+\begin{center}\Large{Time for Q\&A and discussion}\end{center} ++\begin{center}\Large{\emph{Time for Q\&A and discussion}}\end{center} +\vspace{1em} +\begin{itemize} +\item \Large{\url{https://www.lightsd.io/}}