-\documentclass[aspectratio=169,ignorenonframetext,hyperref={pdfpagelabels=false}]{beamer}
+\documentclass[aspectratio=169,hyperref={pdfpagelabels=false}]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A]{fontenc}
\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}