From 161b6e14881c8677fc0bd9ba772bbcd8f807c478 Mon Sep 17 00:00:00 2001 From: NikolajDanger Date: Sun, 19 Feb 2023 15:06:22 +0100 Subject: [PATCH] :sparkles: --- bachelor-project.pdf | Bin 14745 -> 25016 bytes bachelor-project.tex | 46 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/bachelor-project.pdf b/bachelor-project.pdf index 86b2e32128d820a704751e605bedd28b0e19547e..f11c6e2819e612add85417870328c2c597e41621 100644 GIT binary patch delta 20078 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%0D(~`6M6f}4oekbJFC3R!3G%Lr5~weeN+(F{ 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 Um;9aE*Jgp7ER~?37DAiqKVI~sA^-pY delta 9987 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 diff --git a/bachelor-project.tex b/bachelor-project.tex index f514adc..b9006bf 100644 --- a/bachelor-project.tex +++ b/bachelor-project.tex @@ -18,31 +18,59 @@ \begin{document} \section{Abstract} - \textit{Explains briefly the paper and what it aims to do.} + \textit{Explains briefly the paper and what it does. 1 page} \section{Introduction} - \textit{Introduce the scope.} + \textit{Introduce the scope. Explaining the existing code and what it does and why. 2 pages} + + \begin{itemize} + \item Event-based scheduling as a concept + \item General \texttt{MEOW\_BASE} structure: \begin{itemize} + \item Monitors check if patterns are triggered \begin{itemize} + \item Patterns are triggered by an event. Currently only file event triggers are implemented. + \end{itemize} + \item Handlers perform recipes \begin{itemize} + \item Recipes are actions that are taken when triggered. python code can be run as a recipe. + \end{itemize} + \item The conductor handles the job queue of rules \begin{itemize} + \item Rules combine patterns and recipes (When this pattern is triggered, perform this recipe). + \end{itemize} + \end{itemize} + \end{itemize} \section{Problem} - \textit{Something about the MEOW monitor, and expanding it. Probably also why it would be a good idea(?)} + \textit{Something about the MEOW monitor, and expanding it. Probably also why it would be a good idea(?). 2 pages} + + \begin{itemize} + \item What network events are \begin{itemize} + \item REST APIs + \end{itemize} + \item Why \texttt{MEOW} needs it \begin{itemize} + \item Further + \end{itemize} + \end{itemize} \section{Background} - \textit{Explaining the existing code and what it does and why.} + \textit{? 2 pages} \section{Method} - \textit{Coding and shit} + \textit{Explaining the code I wrote and why I made those choices. 2 pages} + + \begin{itemize} + \item \textbf{How granular should this part be?} + \end{itemize} \section{Results} - \textit{It works! (Hopefully. I haven't made it yet)} + \textit{Does it work? How well? 2 pages} \section{Discussion} - \textit{Why did I do that? What could I have done instead? Why would that have been way worse and stupid?} + \textit{With the hindsight of the results, what could I have done better? 2 pages} \section{Future Work} - \textit{What should someone do if they want to fix my mistakes, or expand on them further.} + \textit{What should someone do if they want to fix my mistakes, or expand on them further. 2 pages} \section{Conclusion} - \textit{Something about being the best (but be humble about it).} + \textit{Did I succeed in what I wanted to do? 2 pages} \newpage \appendix