add presentation notes
authorMart Lubbers <mart@martlubbers.net>
Tue, 26 Sep 2023 06:01:21 +0000 (08:01 +0200)
committerMart Lubbers <mart@martlubbers.net>
Mon, 2 Oct 2023 11:58:00 +0000 (13:58 +0200)
talk.tex

index 5949b87..613c008 100644 (file)
--- a/talk.tex
+++ b/talk.tex
@@ -1,4 +1,4 @@
-\documentclass[aspectratio=169,ignorenonframetext,hyperref={pdfpagelabels=false}]{beamer}
+\documentclass[aspectratio=169,hyperref={pdfpagelabels=false}]{beamer}
 
 \usepackage[utf8]{inputenc}
 \usepackage[T1,T2A]{fontenc}
@@ -9,6 +9,8 @@
 
 \graphicspath{{./img}}
 
+\setbeameroption{hide notes}
+%\setbeameroption{show only notes}
 \beamertemplatenavigationsymbolsempty%
 \urlstyle{same}
 \usefonttheme{serif}
 %      \vspace{2mm}
 %}
 
-\title{\texorpdfstring{\larger[2]}{}Orchestrating the Internet of Things\texorpdfstring{\\}{\ }with Task-Oriented Programming}
-\subtitle{\texorpdfstring{\larger[2]}{}a purely functional rhapsody}
+\title{Orchestrating the Internet of Things\texorpdfstring{\\}{\ }with Task-Oriented Programming}
+\subtitle{a purely functional rhapsody}
 \titlegraphic{\includegraphics{ru}}
 \author{Mart Lubbers}
 \date{October 4th, 2023}
 
 \begin{document}
+
 \begin{frame}[plain]
-       \maketitle
+       \note{%
+               \begin{itemize}
+                       \item Welcome!
+                       \item Mention title
+               \end{itemize}
+       }
+       \begin{columns}
+               \begin{column}{.6\textwidth}
+                       \maketitle
+               \end{column}
+               \begin{column}{.4\textwidth}
+                       \begin{figure}
+                               \centering
+                               \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{kaft/front.pdf.png}
+                       \end{figure}
+               \end{column}
+       \end{columns}
 \end{frame}
 
 \begin{frame}[plain]
+       \note{%
+               \begin{itemize}
+                       \item The Internet of Things is all around us.
+                       \item It is the term/buzzword for systems of which appliances, things, are connected.
+                       \item Systems in which computers sense, act or otherwise interact with the real world.
+               \end{itemize}
+       }
        \begin{figure}
                \centering
                \includegraphics[height=.95\textheight]{iot}\\
 \end{frame}
 
 \begin{frame}[plain]
+       \note{%
+               \begin{itemize}
+                       \item These systems are ofter designed as layered architectures.
+                       \item The number of layers varies a lot.
+                       \item For the intents and purposes of this presentation, a three/four layered architecture is used. CLICK
+                       \item The top layer is the presentation layer, it provides the interface between the users and the \IOT{} system.
+                       \item It is powered by webbrowsers and apps that usually run on phones or tablets.
+                       \item The middle layer is the application layer.
+                       \item This layer is the powerhouse, the brain of the system.
+                       \item It runs on powerful hardware at home, in your fuse box cupboard.
+                       \item Or in the cloud, CLICK, but that is just someone elses (powerful) computer. CLICK
+                       \item At the edge of the system is the perception layer, also called the edge layer.
+                       \item This layer is powered by tiny computers with little processing power.
+                       \item Connected to these computers, microcontrollers or single-board computers, are sensors and actuators. CLICK
+                       \item Each layer is connected using the network layer.
+                       \item This layer is powered by technologies that we know, CLICK
+                       \item But there are also specialised network technologies for the \IOT{} available.
+                       \item The variety of computers in all these layers is enormous but they have one thing in common CLICK
+                       \item Driven by software, because of this mix and match, programming such systems is complex CLICK
+                       \item The difference in characteristics results in semantic friction.
+                       \item We would like to be able to orchestrate such system better CLICK, like in an orchestra.
+                       \item To achieve this, we employ Task-Oriented Programming CLICK
+               \end{itemize}
+       }
        \begin{figure}
                \centering
                \begin{tikzpicture}[node distance=3em,nodes={rectangle,draw,minimum width=12em, minimum height=3em}]
 \end{frame}
 
 \begin{frame}[shrink]
+       \note{%
+               \begin{itemize}
+                       \item What is TOP\@? CLICK
+                       \item Task is the basic concept.
+                       \item Tasks are combined with combinators to form workflows.
+                       \item Workflows are suitable to describe the program flow.
+                       \item These are not instructions, they are a description: CLICK
+                       \item Declarative programming, focus on what and not how.
+                       \item The underlying system/compiler/scaffolding generates the actual program.
+                       \item Solved for web stacks (top two layers).
+                       \item Complex for such tiny computers. CLICK
+                       \item This is where DSLs come into play.
+                       \item DSL contains domain knowledge and that allows for more efficient code. CLICK
+                       \item mTask is a TOP language, a DSL, for microcontrollers/tiny computers. CLICK
+                       \item It takes care of the perception layer. CLICK
+                       \item mTask is real TOP, high level.
+                       \item Generate efficient code, automatic dynamic scheduling.
+                       \item It is integrated in iTask, a TOP DSL for the web (the top two layers). CLICK
+                       \item It takes care of the entire system. CLICK
+                       \item This style is called tierless programming and it makes your life better.
+                       \item Code for all layers is generated.
+                       \item Communication is generated.
+                       \item Less error prone.
+                       \item More maintainable.
+                       \item Less semantic friction.
+               \end{itemize}
+       }
        \begin{columns}[t]
                \begin{column}{.4\textwidth}
                        \begin{block}{Task-oriented programming}
                                \begin{itemize}
-                                       \item Task
+                                       \item<2-> Task
 
                                                \begin{itemize}
                                                        \item Abstraction over work
+                                                       \item Combinators
                                                \end{itemize}
-                                       \item Declarative programming
-               
-                                               \begin{itemize}
-                                                       \item Focus on \emph{What} and not \emph{How}.
-                                               \end{itemize}
-                                       \item<2-> mTask: Domain-specific language
+                                       \item<3-> Declarative programming
                
                                                \begin{itemize}
-                                                       \item Constrained TOP language for small computers.
-                                               \end{itemize}
-                                       \item<4-> iTask: TOP for the web
-                                       \item<6-> Tierless programming
-                                               \begin{itemize}
-                                                       \item Maintainability
-                                                       \item Security
-                                                       \item Interoperability
+                                                       \item \emph{What} and not \emph{How}.
                                                \end{itemize}
+                                       \item<4-> Domain-specific languages
+                                       \item<5-> mTask: TOP DSL for tiny computers
+                                       \item<7-> iTask: TOP DSL for the web
+                                       \item<9-> Tierless programming
                                \end{itemize}
                        \end{block}
                \end{column}
                                        \draw [densely dotted] (1.south) -- (2.north);
                                        \draw<-2> [densely dotted] (2.south) -- (3.north);
                                
-                                       \begin{uncoverenv}<3->
+                                       \begin{uncoverenv}<6->
                                                \node (mtask) [dotted,line width=3pt,fit={(3)},label={[fill=white]\large\bf mTask}] {};
                                        \end{uncoverenv}
-                                       \begin{uncoverenv}<5->
+                                       \begin{uncoverenv}<8->
                                                \node (itask) [densely dotted,line width=2pt,inner sep=1em,fit={(1) (2) (3) ([xshift=5em]1.north east)},label=above:{\large\bf iTask}] {};
                                        \end{uncoverenv}
                                \end{tikzpicture}