\subsection{Overview}
\begin{frame}
	\frametitle{Solution}
	\begin{block}{Downsides of the current mTask view}
		\begin{itemize}
			\item It all seems perfect
			\item \ldots\pause{} but\ldots
			\pause{}
			\item No interaction
			\item Compilation requires reprogramming
		\end{itemize}
	\end{block}
	\pause{}
	\begin{block}{Solution}
		\begin{itemize}[<+->]
			\item New bytecode backend for mTask
			\item Interpreter on client
			\item Server in iTasks with integration
			\item No taskserver generation, onetime programming
		\end{itemize}
	\end{block}
\end{frame}

\subsection{Extending mTask}
\begin{frame}[fragile]
	\frametitle{Adding a View}
	\begin{lstlisting}
:: ByteCode a p = BC (RWS () [BC] BCState ())
:: BCValue      = E.e: BCValue e              & mTaskType, TC e
:: BCShare      = { sdsi   :: Int, sdsval :: BCValue, sdsname :: String    }
:: BCState      = { freshl :: Int, freshs :: Int,     sdss    :: [BCShare] }

instance ByteCode arith, boolExpr, ...
	\end{lstlisting}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Functionality}
	\begin{block}{SDS scope and naming}
		\begin{itemize}
			\item SDS is lost
			\item State per device
			\item Tasks are sent and gone
		\end{itemize}
		\pause{}
		\begin{lstlisting}
class namedsds v where
	namedsds :: ((v t Upd) -> In (Named t String) (Main (v c s)))
		-> (Main (v c s)) | ...
:: Named a b = Named infix 1 a b
		\end{lstlisting}
	\end{block}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Task scheduling}
	\begin{block}{Old}
		\begin{itemize}
			\item Task server
			\item Tasks start other tasks
		\end{itemize}
	\end{block}
	\pause{}
	\begin{block}{New}
		\begin{itemize}
			\item Old system, taskserver, tasks start tasks
			\item New system, task+strategy
				\pause{}
				\begin{itemize}
					\item \CI{OnShot}
					\item \CI{OnInterval}
					\item \CI{OnInterrupt}
				\end{itemize}
			\pause{}
			\item How to handle termination
		\end{itemize}
		\pause{}
		\begin{lstlisting}
class retrn v where
	retrn :: v () Expr
		\end{lstlisting}
	\end{block}
\end{frame}

\subsection{Devices}
\subsection{Server}
\subsection{Examples}
