5949b87a07db201ecb031df7d58c8dccb2b5a79d
[phd-thesis.git] / talk.tex
1 \documentclass[aspectratio=169,ignorenonframetext,hyperref={pdfpagelabels=false}]{beamer}
2
3 \usepackage[utf8]{inputenc}
4 \usepackage[T1,T2A]{fontenc}
5 \usepackage[british]{babel}
6 \usepackage{relsize}
7 \usepackage{tikz}
8 \usetikzlibrary{pie,positioning,shapes,automata,fit,shadows,matrix,backgrounds,shapes.geometric}
9
10 \graphicspath{{./img}}
11
12 \beamertemplatenavigationsymbolsempty%
13 \urlstyle{same}
14 \usefonttheme{serif}
15 \newcommand{\IOT}{\texorpdfstring{Io\kern-1ptT}{IoT}}
16
17 % Add slide numbers
18 %\setbeamertemplate{footline}{%
19 % \quad%
20 % \usebeamercolor[fg]{page number in head/foot}%
21 % \usebeamerfont{page number in head/foot}%
22 % \insertframenumber%
23 % \vspace{2mm}
24 %}
25
26 \title{\texorpdfstring{\larger[2]}{}Orchestrating the Internet of Things\texorpdfstring{\\}{\ }with Task-Oriented Programming}
27 \subtitle{\texorpdfstring{\larger[2]}{}a purely functional rhapsody}
28 \titlegraphic{\includegraphics{ru}}
29 \author{Mart Lubbers}
30 \date{October 4th, 2023}
31
32 \begin{document}
33 \begin{frame}[plain]
34 \maketitle
35 \end{frame}
36
37 \begin{frame}[plain]
38 \begin{figure}
39 \centering
40 \includegraphics[height=.95\textheight]{iot}\\
41 % {\tiny \url{https://freesvg.org/internet-world} (CC 0)}
42 \end{figure}
43 \end{frame}
44
45 \begin{frame}[plain]
46 \begin{figure}
47 \centering
48 \begin{tikzpicture}[node distance=3em,nodes={rectangle,draw,minimum width=12em, minimum height=3em}]
49 \begin{uncoverenv}<2->
50 \node (1) [] {presentation \begin{uncoverenv}<4->\includegraphics[height=2em]{phone}\end{uncoverenv}};
51 \node (2) [below=of 1] {application \begin{uncoverenv}<6->\includegraphics[height=2em]{laptop}\end{uncoverenv}};
52 \node (3) [below=of 2] {perception \begin{uncoverenv}<7->\includegraphics[height=2em]{lamp}\includegraphics<7->[height=2em]{magn}\end{uncoverenv}};
53
54 \draw [<->] (1) -- (2);
55 \draw [<->] (2) -- (3);
56
57 \draw [fill=white]
58 ([xshift=1em,yshift=-2em]1.south west)
59 -- ([xshift=1em,yshift=-1em]1.south west)
60 -- ([yshift=-1em,xshift=1em]1.south east)
61 -- ([xshift=1em]1.north east)
62 -- ([xshift=5em]1.north east)
63 -- node [draw=none,midway,sloped,below,yshift=-2pt] {\large network \begin{uncoverenv}<9->\includegraphics[height=2em,origin=c,angle=90]{mail}\end{uncoverenv}} ([xshift=5em]3.south east)
64 -- ([xshift=1em]3.south east)
65 -- ([yshift=1em,xshift=1em]3.north east)
66 -- ([xshift=1em,yshift=1em]3.north west)
67 -- ([xshift=1em,yshift=2em]3.north west)
68 -- ([yshift=2em,xshift=1em]3.north east)
69 -- ([yshift=-2em,xshift=1em]1.south east)
70 -- cycle;
71
72 \draw [densely dotted] (1.south) -- (2.north);
73 \draw [densely dotted] (2.south) -- (3.north);
74 \end{uncoverenv}
75
76 \node<1-2> (text) [draw=none,fit=(1) (2) (3),xshift=20em] {};
77 \node<1-2> [draw=none] at (text.center) {\includegraphics[width=11em]{iot}};
78 \node<3-8> (text) [fit=(1) (2) (3),xshift=20em] {};
79 \node<3> [draw=none,align=left] at (text.center) {%
80 \includegraphics[width=3em]{ff}%
81 \includegraphics[width=3em]{chrome}%
82 \includegraphics[width=3em]{phone}\\
83 \includegraphics[width=9em]{tablet}
84 };
85 \node<4-5> [draw=none,align=left] at (text.center) {%
86 \includegraphics[width=5.5em]{laptop}%
87 \includegraphics[width=5.5em]{cloud}\\
88 \begin{uncoverenv}<5>
89 \includegraphics[width=11em]{server}
90 \end{uncoverenv}
91 };
92 \node<6> [draw=none,align=left] at (text.center) {%
93 \includegraphics[width=5.5em]{mcu}
94 \includegraphics[width=5.5em]{pi}\\
95 \includegraphics[width=5.5em]{pir}
96 \includegraphics[width=5.5em]{stepper}
97 };
98 \node<7-8> [draw=none,align=left] at (text.center) {%
99 \includegraphics[width=4em]{wifi}\\
100 \includegraphics[width=11em]{gsm}\\
101 \begin{uncoverenv}<8>
102 \includegraphics[width=5.5em]{lora}%
103 \includegraphics[width=5.5em]{blte}
104 \end{uncoverenv}
105 };
106 \uncover<9->{%
107 \node [draw=none] at (text.center) {%
108 \includegraphics<10>[height=15em,width=11em,keepaspectratio]{spaghetti}%
109 \includegraphics<11->[height=15em,width=11em,keepaspectratio]{orchestra}
110 };
111 }
112
113 \draw<3> [line width=1.5pt,densely dotted](1.north east) -- (text.north west);
114 \draw<3> [line width=1.5pt,densely dotted](1.south east) -- (text.south west);
115 \draw<4-5> [line width=1.5pt,densely dotted](2.north east) -- (text.north west);
116 \draw<4-5> [line width=1.5pt,densely dotted](2.south east) -- (text.south west);
117 \draw<6> [line width=1.5pt,densely dotted](3.north east) -- (text.north west);
118 \draw<6> [line width=1.5pt,densely dotted](3.south east) -- (text.south west);
119 \draw<7-8> [line width=1.5pt,densely dotted]([xshift=3em]1.north east) -- (text.north west);
120 \draw<7-8> [line width=1.5pt,densely dotted]([xshift=3em]3.south east) -- (text.south west);
121 \end{tikzpicture}
122 \end{figure}
123 \uncover<9->{%
124 \begin{center}
125 \Huge \strut\only<-10>{Driven by software}\only<12>{Task-Oriented Programming}
126 \end{center}
127 }
128 \end{frame}
129
130 \begin{frame}[shrink]
131 \begin{columns}[t]
132 \begin{column}{.4\textwidth}
133 \begin{block}{Task-oriented programming}
134 \begin{itemize}
135 \item Task
136
137 \begin{itemize}
138 \item Abstraction over work
139 \end{itemize}
140 \item Declarative programming
141
142 \begin{itemize}
143 \item Focus on \emph{What} and not \emph{How}.
144 \end{itemize}
145 \item<2-> mTask: Domain-specific language
146
147 \begin{itemize}
148 \item Constrained TOP language for small computers.
149 \end{itemize}
150 \item<4-> iTask: TOP for the web
151 \item<6-> Tierless programming
152 \begin{itemize}
153 \item Maintainability
154 \item Security
155 \item Interoperability
156 \end{itemize}
157 \end{itemize}
158 \end{block}
159 \end{column}
160 \begin{column}{.6\textwidth}
161 \begin{figure}
162 \begin{tikzpicture}[node distance=3em,nodes={rectangle,draw,minimum width=10em, minimum height=3em}]
163 \node (1) [] {presentation \includegraphics[height=1em]{phone}};
164 \node (2) [below=of 1] {application \includegraphics[height=1em]{laptop}};
165 \node (3) [below=of 2] {perception \includegraphics[height=1em]{lamp}\includegraphics[height=1em]{magn}};
166
167 \draw [<->] (1) -- (2);
168 \draw [<->] (2) -- (3);
169
170 \draw [fill=white]
171 ([xshift=1em,yshift=-2em]1.south west)
172 -- ([xshift=1em,yshift=-1em]1.south west)
173 -- ([yshift=-1em,xshift=1em]1.south east)
174 -- ([xshift=1em]1.north east)
175 -- ([xshift=4em]1.north east)
176 -- node (net) [draw=none,midway,sloped,below,yshift=-2pt] {\large network \includegraphics[height=1em,origin=c,angle=90]{mail}} ([xshift=4em]3.south east)
177 -- ([xshift=1em]3.south east)
178 -- ([yshift=1em,xshift=1em]3.north east)
179 -- ([xshift=1em,yshift=1em]3.north west)
180 -- ([xshift=1em,yshift=2em]3.north west)
181 -- ([yshift=2em,xshift=1em]3.north east)
182 -- ([yshift=-2em,xshift=1em]1.south east)
183 -- cycle;
184
185 \draw [densely dotted] (1.south) -- (2.north);
186 \draw<-2> [densely dotted] (2.south) -- (3.north);
187
188 \begin{uncoverenv}<3->
189 \node (mtask) [dotted,line width=3pt,fit={(3)},label={[fill=white]\large\bf mTask}] {};
190 \end{uncoverenv}
191 \begin{uncoverenv}<5->
192 \node (itask) [densely dotted,line width=2pt,inner sep=1em,fit={(1) (2) (3) ([xshift=5em]1.north east)},label=above:{\large\bf iTask}] {};
193 \end{uncoverenv}
194 \end{tikzpicture}
195 \end{figure}
196 \end{column}
197 \end{columns}
198 \end{frame}
199
200 \end{document}