From: Mart Lubbers Date: Tue, 26 Sep 2023 06:01:21 +0000 (+0200) Subject: add presentation notes X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=8956fe16f0dc90b5f313cc03b5c8cb74ebcdbb0a;p=phd-thesis.git add presentation notes --- diff --git a/talk.tex b/talk.tex index 5949b87..613c008 100644 --- 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} @@ -23,18 +25,42 @@ % \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}\\ @@ -43,6 +69,30 @@ \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}] @@ -128,32 +178,52 @@ \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} @@ -185,10 +255,10 @@ \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}