From 310f254ee1557824174e0327eb10120cd7377385 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Sat, 1 Feb 2020 23:25:25 +0100 Subject: Added principles before starting to describe the solution Until now, there wasn't any good transition onto the project, so the principles have now been added. --- Makefile | 2 +- img/figure-file-architecture-1.pdf | Bin 8755 -> 8782 bytes img/figure-file-architecture-2.pdf | Bin 16061 -> 16099 bytes reproducible-paper.tex | 51 ++++++++++++++++++++++++++----------- 4 files changed, 37 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 55ef6b2..dd4171b 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ reproducible-paper.pdf: reproducible-paper.tex tex/*.tex else v=NO-GIT; fi; \ echo "\newcommand{\gitcommit}{$$v}" > git-commit.tex pdflatex reproducible-paper - pdflatex reproducible-paper +# pdflatex reproducible-paper # Clean all extra files .PHONY: clean-latex clean diff --git a/img/figure-file-architecture-1.pdf b/img/figure-file-architecture-1.pdf index cae5b83..dfeb94c 100644 Binary files a/img/figure-file-architecture-1.pdf and b/img/figure-file-architecture-1.pdf differ diff --git a/img/figure-file-architecture-2.pdf b/img/figure-file-architecture-2.pdf index e51426a..19f1fe9 100644 Binary files a/img/figure-file-architecture-2.pdf and b/img/figure-file-architecture-2.pdf differ diff --git a/reproducible-paper.tex b/reproducible-paper.tex index d0b3f66..fe8817d 100644 --- a/reproducible-paper.tex +++ b/reproducible-paper.tex @@ -444,7 +444,7 @@ -\begin{frame} + \begin{frame} \begin{tcolorbox}[title={Buckheit \& Donoho (1996) \small Lecture Notes in Statistics (vol 103, DOI:\textcolor{blue!10!white}{\href{https://doi.org/10.1007/978-1-4612-2544-7\_5}{10.1007/978-1-4612-2544-7\_5}})}] \centering ``An \alert{article} about computational science [\emph{today: almost all sciences}] ... is not the scholarship itself, it is merely \textbf{ADVERTISING} of the \textbf{SCHOLARSHIP}. @@ -452,31 +452,52 @@ \pause The \textbf{ACTUAL SCHOLARSHIP} is the \alert{complete software development environment} and the \alert{complete set of instructions} which generated the figures.'' \end{tcolorbox} -\end{frame} + \end{frame} - \begin{frame}{Necessity of (exactly) reproducible research} + \begin{frame}{Principles behind proposed solution} \begin{tcolorbox}[title=Basic/simple principle:] \centering Science is defined by its METHOD, \alert{not} its result. \end{tcolorbox} - \vspace{0.5cm} + \pause \begin{itemize} - \setlength\itemsep{0.6cm} - \item The software(s) used, configuration file(s), the order of - steps taken, along with the input data are necessary for - reproducibility. - \item \alert{A solution} is proposed here, which if adopted from - the start, can greatly \alert{simplify a scientific research - project} and \alert{allow full/exact reproducibility} once it - is published. - \item In the next slides, we'll review the template from the - highest level (final research paper) to the lowest (setting up - the research environment). + \item \textbf{Complete/self-contained:} + \begin{itemize} + \pause + \item The project's \alert{only dependencies} should be \alert{POSIX} \textcolor{gray}{(discards Conda or Jupyter which need Python)}. + \pause + \item Project's source should be in \alert{plain-text}: a binary format neeeds special software. + \pause + \item Should be \alert{non-interactive} or runnable in batch (user interaction is an incompleteness). + \pause + \item Must \alert{not require root} permissions \textcolor{gray}{(discards tools like Docker or Nix/Guix)}. + \pause + \item Should \alert{not require internet} connection. + \pause + \item \alert{Version control} (e.g., with Git) can track project's history. + \end{itemize} + + \pause + \item \textbf{Modularity:} Parts of the project should be \alert{re-usable} in other projects. + \pause + \item \textbf{Minimal complexity:} Occum’s rasor: “Never posit pluralities without necessity”. + \begin{itemize} + \pause + \item Avoiding the \alert{fashionable} tool of the day (other tools can also do the job). + \pause + \item Easier \alert{learning curve}, also doesn't create a \alert{generational gap}. + \pause + \item Is \alert{compatible} and \alert{extensible}. + \end{itemize} + \pause + \item \textbf{Verifable inputs and outputs:} Inputs and Outputs must be \alert{automatically verified}. + \pause + \item \textbf{Free and open source software:} \alert{Free software} is essential: non-free software is not tracable, not configurable, not distributable, dependent on non-free provider. \end{itemize} \end{frame} -- cgit v1.2.1