aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--img/project-flow-small.pngbin0 -> 25337 bytes
-rw-r--r--slides-intro-short.tex168
-rw-r--r--slides-intro.tex30
-rw-r--r--tex/git-branch.tex33
5 files changed, 82 insertions, 151 deletions
diff --git a/Makefile b/Makefile
index ef1bfa3..a9ece23 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ clean: clean-latex
# PDF slides:
-slides=slides-intro.pdf slides-intro-short.pdf
+slides = slides-intro-short.pdf slides-intro.pdf
$(slides): %.pdf: %.tex tex/*.tex
# We'll run pdflatex two times so the page numbers and
# internal links also work.
diff --git a/img/project-flow-small.png b/img/project-flow-small.png
new file mode 100644
index 0000000..010a491
--- /dev/null
+++ b/img/project-flow-small.png
Binary files differ
diff --git a/slides-intro-short.tex b/slides-intro-short.tex
index 3bc3f8f..b7c551a 100644
--- a/slides-intro-short.tex
+++ b/slides-intro-short.tex
@@ -51,7 +51,7 @@
%% Set the date and insitutional logos.
\date{\footnotesize\vspace{0cm}\\
- \href{https://www.rd-alliance.org/rda-global-adoption-week-15-19-june-2020}{RDA Global Adoption week}\\June 18th, 2020\\
+ IAC Scientific Coffee\\July 2nd, 2020\\
\tiny\vspace{3mm}
Most recent slides available in link below (this PDF is built from \href{http://git.maneage.org/slides-intro.git}{Git commit} \gitcommit):\\
\footnotesize\textcolor{blue}{\url{https://maneage.org/pdf/slides-intro-short.pdf}}\\
@@ -95,33 +95,33 @@
\usebackgroundtemplate{ } %% undeclare it
- \begin{frame}{Challenges of the RDA-WDS Publishing Data Workflows WG {\small (DOI:\href{https://doi.org/10.1007/s00799-016-0178-2}{10.1007/s00799-016-0178-2})}}
- Challenges (also relevant to researchers, not just repositories)
- \begin{itemize}
- \item \emph{Bi-directional linking}: how to \alert{link data and publications}.
- \item \emph{\alert{Software management}:} how to manage, preserve, publish and cite software?
- \item \emph{Metrics:} \alert{how often} are data used.
- \item \emph{Incentives to researchers:} how to \alert{communicate benefits} of following good practices \alert{to researchers}.
- \end{itemize}
-
- \begin{center}
- \includegraphics[width=4cm]{img/rda.png}\hspace{1cm}
- \includegraphics[width=4cm]{img/wds.jpg}
- \end{center}
-
- \ifdefined\longformat\pause\fi
-
- ``\emph{We would like to see a workflow that results in all
- \textcolor{blue!30!green}{\bf scholarly objects being connected},
- linked, citable, and persistent to allow researchers to navigate
- smoothly and to \alert{\bf enable reproducible research}. This
- includes \alert{{\bf linkages} between documentation, code, data, and
- journal articles in an integrated environment}. Furthermore,
- in the ideal workflow, all of these objects need to be
- \alert{\bf well documented} to enable other researchers (or
- citizen scientists etc) to reuse the data for new
- discoveries.}''
- \end{frame}
+% \begin{frame}{Challenges of the RDA-WDS Publishing Data Workflows WG {\small (DOI:\href{https://doi.org/10.1007/s00799-016-0178-2}{10.1007/s00799-016-0178-2})}}
+% Challenges (also relevant to researchers, not just repositories)
+% \begin{itemize}
+% \item \emph{Bi-directional linking}: how to \alert{link data and publications}.
+% \item \emph{\alert{Software management}:} how to manage, preserve, publish and cite software?
+% \item \emph{Metrics:} \alert{how often} are data used.
+% \item \emph{Incentives to researchers:} how to \alert{communicate benefits} of following good practices \alert{to researchers}.
+% \end{itemize}
+
+% \begin{center}
+% \includegraphics[width=4cm]{img/rda.png}\hspace{1cm}
+% \includegraphics[width=4cm]{img/wds.jpg}
+% \end{center}
+
+% \ifdefined\longformat\pause\fi
+
+% ``\emph{We would like to see a workflow that results in all
+% \textcolor{blue!30!green}{\bf scholarly objects being connected},
+% linked, citable, and persistent to allow researchers to navigate
+% smoothly and to \alert{\bf enable reproducible research}. This
+% includes \alert{{\bf linkages} between documentation, code, data, and
+% journal articles in an integrated environment}. Furthermore,
+% in the ideal workflow, all of these objects need to be
+% \alert{\bf well documented} to enable other researchers (or
+% citizen scientists etc) to reuse the data for new
+% discoveries.}''
+% \end{frame}
\newcommand{\allopacity}{1}
\ifdefined\longformat
@@ -752,6 +752,10 @@
\ifdefined\longformat
\begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
+ \newcommand{\tomorrow}{1}
+ \begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
+ \newcommand{\abstractify}{1}
+ \begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
\newcommand{\projinit}{}
\begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
\newcommand{\projwork}{}
@@ -834,22 +838,6 @@
- \begin{frame}[t]{General outline of using Maneage (for example \href{https://arxiv.org/abs/2006.03018}{arXiv:2006.03018})}
- \vspace{1cm}
- \texttt{\$ git clone https://gitlab.com/makhlaghi/maneage-paper{ }{ }{ }{ }\textcolor{gray}{\# Import the project.}}\\
-
- \ifdefined\longformat\pause\fi
- \vspace{1.5cm}
- \texttt{\$ ./project configure { }{ }{ }{ }{ }{ }{ }{ }\textcolor{gray}{\# You will specify the build directory on your system,}}\\
- \texttt{{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }\textcolor{gray}{\# and it will build all software (about 1.5 hours).}}
-
- \ifdefined\longformat\pause\fi
- \vspace{1.5cm}
- \texttt{\$ ./project make { }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }\textcolor{gray}{\# Does all the analysis and makes final PDF.}}\\
- \end{frame}
-
-
-
\ifdefined\longformat
\begin{frame}{Project source and its execution}
\begin{tcolorbox}
@@ -867,6 +855,26 @@
+
+
+ \begin{frame}[t]{Executing a Maneaged project (for example \href{https://arxiv.org/abs/2006.03018}{arXiv:2006.03018})}
+ \vspace{1cm}
+ \texttt{\$ git clone https://gitlab.com/makhlaghi/maneage-paper{ }{ }{ }{ }\textcolor{gray}{\# Import the project.}}\\
+
+ \ifdefined\longformat\pause\fi
+ \vspace{1.5cm}
+ \texttt{\$ ./project configure { }{ }{ }{ }{ }{ }{ }{ }\textcolor{gray}{\# You will specify the build directory on your system,}}\\
+ \texttt{{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }\textcolor{gray}{\# and it will build all software (about 1.5 hours).}}
+
+ \ifdefined\longformat\pause\fi
+ \vspace{1.5cm}
+ \texttt{\$ ./project make { }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }{ }\textcolor{gray}{\# Does all the analysis and makes final PDF.}}\\
+ \end{frame}
+
+
+
+
+
\begin{frame}{Future prospects...}
\large Adoption of reproducibility by many researchers will enable
the following:
@@ -944,76 +952,4 @@
\textcolor{blue}{\footnotesize\url{https://gitlab.com/maneage/project/-/blob/maneage/README-hacking.md}}
\end{tcolorbox}
\end{frame}
-
-
-\ifdefined\longformat
-\begin{frame}{Existing technologies (Independent environment)}
- \begin{itemize}
- \setlength\itemsep{7mm}
- \item \textbf{Virtual machines:}
- \begin{itemize}
- \setlength\itemsep{3mm}
- \item Contain the \alert{full operating system}, are thus very large ($\times$Gigabytes).
- \item In \emph{binary} format (decoding a built VM's environment is extremely hard and inaccurate).
- \end{itemize}
- \item \textbf{Containers:} (For example Docker or Singularity)
- \begin{itemize}
- \setlength\itemsep{3mm}
- \item Similar to virtual machines, but \alert{without low-level kernel} (use host's kernel).
- \item \alert{Will fail} as soon as kernel is no longer supported\\(for example Docker currently only supports Linux kernel 3.10 and above \alert{from 2013}).
- \item Good solutions for software engineers (that need to \emph{reproduce a bug's environment today}).
- \item Docker is modular, needs root previlages (not available in HPCs), Dockerfiles allow incompleteness\\(especially in the common scenario of using the operating system's package manager, see next slide)
- \item Singularity is monolithic and thus can be very large.
- \item In \alert{binary} format (similar to VMs, especially when OS package managers are used).
- \end{itemize}
- \end{itemize}
-
- \vspace{3mm}
-In summary, they only \alert{store a built} environment (they are outputs, not good for archiving).
-\end{frame}
-
-
-
-
-\begin{frame}{Existing technologies (Package managers)}
-
- \begin{itemize}
- \item \textbf{Operating system package managers:}
- \begin{itemize}
- \setlength\itemsep{2mm}
- \item For example \texttt{apt} or \texttt{yum} for Debian-based and RedHat-based GNU/Linux operating systems\\(the most common way to install software).
- \item Tightly intertwined with the operating system's components\\(arbitrary control of software versions is not easily possible).
- \item Older software (for example +5 years) is usually removed.
- \end{itemize}
- \item \textbf{Conda/Anaconda:}
- \begin{itemize}
- \setlength\itemsep{2mm}
- \item Conda has build instructions for software and their dependencies.
- \item But it doesn't go down to the C library or the lower-level components of operating system.
- \item It is written in Python (can't be used later when current Python is depreciated).
- \item Authors of Uhse+2019\footnote{\url{http://dx.doi.org/10.1002/cppb.20097}} report\footnote{\url{https://github.com/conda-forge/conda-forge.github.io/issues/787}} that their Conda environment breaks roughly every 3 months\\(Conda environments need to be updated to be used later! Breaking reproducibility).
- \end{itemize}
- \item \textbf{Nix, or GNU Guix:}
- \begin{itemize}
- \setlength\itemsep{2mm}
- \item Deliver perfectly reproducible builds (bit-wise reproducibility of software), needs root access.
- \item Doesn't \emph{require} documentation of dependencies.
- \end{itemize}
- \item \textbf{Spack:} Similar to Nix/Guix but written in Python.
- \end{itemize}
-\end{frame}
-
-\begin{frame}{Existing technologies (workflow tools)}
- \begin{itemize}
- \setlength\itemsep{4mm}
- \item \textbf{Binder:} (\url{https://mybinder.org}) Docker+Conda.
- \item \textbf{Galaxy:} (\url{https://galaxyproject.org}) A web-based user interface, primarily designed for genomics. The GUI make it hard to automate, and has too many dependencies. Very similar to GenePattern (2008 to 2017): with +40,000 users and $\sim4000$ jobs running per week, but cut due to funding.
- \item \textbf{Sciunit:} (\url{https://sciunit.run}) Parses program binaries to try to infer their dependencies and copy them.
- \item \textbf{Popper:} (\url{https://falsifiable.us}), HCL (previously used by GitHub Actions) + Conda + Docker.
- \item \textbf{WholeTale:} (\url{https://wholetale.org}) Jupyter + Conda + Docker.
- \item \textbf{Image Processing On Line (IPOL) journal:} The best example of publishing algorithms/methods I have seen, only useful for very basic/low-level software.
- \end{itemize}
- \alert{Summary}: except for IPOL, most solutions surveyed have far too many dependencies to be usable \alert{beyond the immediate future}.
-\end{frame}
-\fi
\end{document}
diff --git a/slides-intro.tex b/slides-intro.tex
index 3ffedf9..c070764 100644
--- a/slides-intro.tex
+++ b/slides-intro.tex
@@ -1185,7 +1185,10 @@ for computational reproducibility]
-
+ \begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
+ \newcommand{\tomorrow}{1}
+ \begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
+ \newcommand{\abstractify}{1}
\begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
\newcommand{\projinit}{}
\begin{frame}{New projects branch from Maneage} \include{tex/git-branch} \end{frame}
@@ -1364,31 +1367,6 @@ for computational reproducibility]
- \begin{frame}{Workshop on Maneage at IAC: \alert{first week of April} (March 30th to April 3rd)}
-
- We are organizing a workshop to help interested \alert{early career researchers} adopt Maneage.
-
- \vspace{5mm}
- \begin{columns}
- \column{0.25\linewidth}
- \centering
- \includegraphics[width=\linewidth]{img/rda-europe.png}
- \column{0.5\linewidth}
- \centering
- \includegraphics[width=\linewidth]{img/workshop-shutterstock.png}\\
- {\tiny Image from \href{https://www.shutterstock.com/es/image-vector/managers-workshop-training-manager-skills-brainstorming-1334996078}{shutterstock.com}}
-
- \column{0.25\linewidth}
- \includegraphics[width=0.7\linewidth]{img/iac.png}
- \end{columns}
-
- \vspace{7mm}
- Please contact \alert{akhlaghi@iac.es} to join (Space is very limited: it is hands-on).
- \end{frame}
-
-
-
-
\begin{frame}{Existing technologies (Independent environment)}
\begin{itemize}
\setlength\itemsep{7mm}
diff --git a/tex/git-branch.tex b/tex/git-branch.tex
index ad5b2c9..79b7e24 100644
--- a/tex/git-branch.tex
+++ b/tex/git-branch.tex
@@ -18,6 +18,7 @@
\begin{tikzpicture}
\draw [white] (0,0) -- (0,7.4);
+ \draw [white] (-1cm,0) -- (5,0);
%% Template branch.
\ifdefined\tofuture
@@ -26,7 +27,9 @@
\ifdefined\tempevolve
\draw[->, line width=2mm] (0,0) -- (0,5.5);
\else
- \draw[->, line width=2mm] (0,0) -- (0,2.3);
+ \ifdefined\abstractify
+ \draw[->, line width=2mm] (0,0) -- (0,2.3);
+ \fi
\fi
\fi
@@ -57,12 +60,22 @@
%% otherwise the black lines are going to be over the commit
%% circles.
- %% Template commits.
- \draw[anchor=north] (0,0) node {\textbf{Maneage}};
- \draw [fill=green!80!blue, opacity=0.5] (0,0.55cm) circle [radius=2.1mm];
- \draw[anchor=east] (-5pt,0.55cm) node {\tiny\texttt{ad2c476}};
- \draw [fill=green!80!blue, opacity=0.5] (0,1.55cm) circle [radius=2.1mm];
- \draw[anchor=east] (-5pt,1.55cm) node {\tiny\texttt{706c644}};
+ %% Maneage commits.
+ \ifdefined\abstractify
+ \draw[anchor=north] (0,0) node {\textbf{Maneage}};
+ \draw [fill=green!80!blue, opacity=0.5] (0,0.55cm) circle [radius=2.1mm];
+ \draw[anchor=east] (-5pt,0.55cm) node {\tiny\texttt{ad2c476}};
+ \draw [fill=green!80!blue, opacity=0.5] (0,1.55cm) circle [radius=2.1mm];
+ \draw[anchor=east] (-5pt,1.55cm) node {\tiny\texttt{706c644}};
+ \else
+ \node [inner sep=0pt] at (0,0.55cm) {\includegraphics[width=1.5cm]{img/project-flow-small.png}};
+ \draw[anchor=center] (0,0.55cm) node {\bf Today};
+ \ifdefined\tomorrow
+ \node [inner sep=0pt] at (0,1.55cm) {\includegraphics[width=1.5cm]{img/project-flow-small.png}};
+ \draw[anchor=center] (0,1.55cm) node {\bf Tomorrow};
+ \else
+ \fi
+ \fi
\ifdefined\tempevolve
\draw [fill=green!80!blue, opacity=0.5] (0,2.55cm) circle [radius=2.1mm];
\draw[anchor=east] (-5pt,2.55cm) node {\tiny\texttt{fa2ac10}};
@@ -119,7 +132,11 @@
\vspace{-1cm}
\begin{itemize}
\setlength\itemsep{0.2cm}
- \item Template's history is recorded in Git.
+ \ifdefined\abstractify
+ \item Each point of project's history is recorded with Git.
+ \else
+ \item The project (answers to questions above) will evolve.
+ \fi
\ifdefined\projinit
\item New project: a branch from the template.\\
Recall that \alert{every commit} contains the following: