From 8f3e8a273ee4df3bbb41c693f7eb7d68c0e26032 Mon Sep 17 00:00:00 2001 From: Horea Christian <chr@chymera.eu> Date: Mon, 11 Nov 2019 01:11:20 +0100 Subject: [PATCH] Demo re-write --- .../get_samri_data.sh | 3 + scientific_software_management/img/fork.png | Bin 0 -> 25156 bytes scientific_software_management/img/git.png | Bin 0 -> 5990 bytes scientific_software_management/img/pr.png | Bin 0 -> 19436 bytes scientific_software_management/samri/setup.py | 23 ++ scientific_software_management/slides.tex | 324 +++++++++++++----- 6 files changed, 263 insertions(+), 87 deletions(-) create mode 100755 scientific_software_management/get_samri_data.sh create mode 100644 scientific_software_management/img/fork.png create mode 100644 scientific_software_management/img/git.png create mode 100644 scientific_software_management/img/pr.png create mode 100644 scientific_software_management/samri/setup.py diff --git a/scientific_software_management/get_samri_data.sh b/scientific_software_management/get_samri_data.sh new file mode 100755 index 0000000..ca2d645 --- /dev/null +++ b/scientific_software_management/get_samri_data.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +wget https://raw.githubusercontent.com/IBT-FMI/SAMRI/master/setup.py -O samri/setup.py diff --git a/scientific_software_management/img/fork.png b/scientific_software_management/img/fork.png new file mode 100644 index 0000000000000000000000000000000000000000..12bcd26d8f71db5c637504e669221e5be086e859 GIT binary patch literal 25156 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 literal 0 HcmV?d00001 diff --git a/scientific_software_management/img/git.png b/scientific_software_management/img/git.png new file mode 100644 index 0000000000000000000000000000000000000000..18c5b29d788326339b39df657ad2c9134de2ac45 GIT binary patch literal 5990 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 V;Tt|$1g&KAn44Oflp9@*`X8LzeVG6N literal 0 HcmV?d00001 diff --git a/scientific_software_management/img/pr.png b/scientific_software_management/img/pr.png new file mode 100644 index 0000000000000000000000000000000000000000..029e4b4a4ea58f31d8e26ddff450f69a0a392a4a GIT binary patch literal 19436 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 MKkbF2IR7K#PxNo>^Z)<= literal 0 HcmV?d00001 diff --git a/scientific_software_management/samri/setup.py b/scientific_software_management/samri/setup.py new file mode 100644 index 0000000..e061391 --- /dev/null +++ b/scientific_software_management/samri/setup.py @@ -0,0 +1,23 @@ +from setuptools import setup, find_packages + +packages = find_packages(exclude=('samri.tests*', 'samri.*.tests*')) + +setup( + name="SAMRI", + version="9999", + description = "Small animal magnetic resonance imaging via Python.", + author = "Horea Christian", + author_email = "chr@chymera.eu", + url = "https://github.com/IBT-FMI/SAMRI", + keywords = ["fMRI", "pipelines", "data analysis", "bruker"], + classifiers = [], + install_requires = [], + provides = ["samri"], + packages = packages, + include_package_data=True, + extras_require = { + }, + entry_points = {'console_scripts' : \ + ['SAMRI = samri.cli:main'] + }, + ) diff --git a/scientific_software_management/slides.tex b/scientific_software_management/slides.tex index 7edc8a7..c74acd1 100644 --- a/scientific_software_management/slides.tex +++ b/scientific_software_management/slides.tex @@ -11,49 +11,80 @@ \begin{frame}{These Slides} Type one link, click all others: \begin{itemize} - \item Download \textcolor{lg}{\href{http://chymera.eu/pres/ld_packaging-sci/pres.pdf}{\texttt{chymera.eu/pres/ld\_foss/pres.pdf}}} + \item Download \textcolor{lg}{\href{https://thealternative.ch/ssm/slides.tex}{\texttt{thealternative.ch/ssm/slides.tex}}} \end{itemize} \end{frame} \section{Requirements} - \subsection{... for the Demo Session} + \subsection{... for the demo session} \begin{frame}{SSH} Linux and MacOS: \begin{itemize} \item check that you can run - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|ssh userXX@130.60.24.172| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|ssh YOURUSER@130.60.24.66| \end{itemize} Windows: \begin{itemize} \item Download and launch “Git for Windows†from \textcolor{lg}{\href{https://git-for-windows.github.io}{\texttt{git-for-windows.github.io}}} \item check that you can run - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|ssh userXX@130.60.24.172| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|ssh YOURUSER@130.60.24.66| \end{itemize} \end{frame} - \begin{frame}{GitHub Account} + \begin{frame}{Command Line Text Editor} + Usable via SSH and ubiquitous. There are many alternatives, but here we use \textcolor{lg}{\texttt{nano}}: + \begin{itemize} + \item Open file + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|nano file| + \item Save via: \keys{Ctrl + c} + \item Exit via: \keys{Ctrl + x} + \end{itemize} + \end{frame} + \begin{frame}{Git and Social Coding} + Git needs to know who you are. + \begin{itemize} + \item On the server, run: + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git config --global user.name "Your Name"| + \vspace{-3.1em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git config --global user.email yourname@example.com| + \end{itemize} + GitHub is a \textbf{social coding platform} providing free accounts: \begin{itemize} \item Register under \textcolor{lg}{\href{https://github.com}{\texttt{github.com}}} + \item Use a password which you can remember. \end{itemize} \end{frame} \section{What?} - \subsection{What is Packaging?} + \subsection{What is software management?} \begin{frame}{The Package} + \begin{center} + \textcolor{ldorange}{\Large Better organization for your research!} + \end{center} + \vspace{1.5em} + A package is a software format which is (easily): + \begin{multicols}{2} \begin{itemize} - \item distributable (i.e. installable) + \item distributable \item integrated \item testable \item updateable \item uninstallable \item understandable \end{itemize} + \end{multicols} \end{frame} \begin{frame}{Package Management --- best done automatically} \begin{minipage}{0.44\textwidth} Packages interact in complex and nontrivial manners: \begin{itemize} - \item architecture requirements - \item dependencies (incl. blockers, version-dependent behaviour, static/dynamic linking) + \item version-dependent behaviour + \item optional features + \item incompatibilities + \item static/dynamic linking \end{itemize} \end{minipage} \begin{minipage}{0.55\textwidth} @@ -68,14 +99,14 @@ \begin{figure} \centering \includegraphics[width=0.9\textwidth]{img/pm_d.png} - \caption{Rudimentary overview of binary package distribution workflow.} + \caption{Rudimentary overview of binary package distribution.} \end{figure} \begin{columns} \column{.5\linewidth} Advantages: \begin{itemize} \item Faster installation - \item More reproducible installation + \item Less variable installation \end{itemize} \column{.5\linewidth} Disadvantages: @@ -86,11 +117,11 @@ \end{itemize} \end{columns} \end{frame} - \begin{frame}{Source Packages} + \begin{frame}{Source-Based Packages} \begin{figure} \centering \includegraphics[width=0.9\textwidth]{img/pm_g.png} - \caption{Rudimentary overview of source distribution workflow.} + \caption{Rudimentary overview of source-based package distribution.} \end{figure} \begin{columns} \column{.5\linewidth} @@ -109,16 +140,14 @@ \end{columns} \end{frame} \section{Why?} - \subsection{Why Package my Software?} - \begin{frame}{Recognition} + \subsection{Why does open science require package management?} + \begin{frame}{Quality} \begin{itemize} - \item Establish proof of authorship. - \item Publicize your innovative workflows, solutions, data structures. - \item Create a handle for attribution (including DOI), e.g: - \begin{itemize} - \item BehavioPy: \textcolor{lg}{\href{http://doi.org/10.5281/zenodo.188169}{\texttt{10.5281/zenodo.188169}}} - \item Nipype: \textcolor{lg}{\href{http://doi.org/10.5281/zenodo.50186}{\texttt{10.5281/zenodo.50186}}} - \end{itemize} + \item Make development more transparent. + \item Get \textbf{constructive} feedback. + \item Ask for help with concrete reproducible examples. + \item Easily manage \textcolor{lg}{\href{https://github.com/gentoo-science/sci/issues}{\texttt{bugs/issues}}} and \textcolor{lg}{\href{https://github.com/gentoo-science/sci/pulls}{\texttt{conributions}}}. + \item Implement proper version tracking. \end{itemize} \end{frame} \begin{frame}{Impact} @@ -128,34 +157,37 @@ \item Retain more users. \end{itemize} \end{frame} - \begin{frame}{Quality} + \begin{frame}{Recognition} \begin{itemize} - \item Make development more transparent. - \item Get \textbf{constructive} feedback. - \item Ask for help with concrete reproducible examples. - \item Easily manage \textcolor{lg}{\href{https://github.com/gentoo-science/sci/issues}{\texttt{bugs/issues}}} and \textcolor{lg}{\href{https://github.com/gentoo-science/sci/pulls}{\texttt{conributions}}}. - \item Implement proper version tracking. + \item Establish proof of authorship. + \item Publicize your innovative workflows, solutions, data structures. + \item Create a handle for attribution (including DOI), e.g: + \begin{itemize} + \item BehavioPy: \textcolor{lg}{\href{http://doi.org/10.5281/zenodo.188169}{\texttt{10.5281/zenodo.188169}}} + \item Nipype: \textcolor{lg}{\href{http://doi.org/10.5281/zenodo.50186}{\texttt{10.5281/zenodo.50186}}} + \end{itemize} \end{itemize} \end{frame} \begin{frame}{Sustainability} + A sustainable project \textbf{cannot} depend on environments remaining unchanged. \begin{itemize} + \item Ensure long-term viability of your software. \item Avoid death-by-PhD. - \item Ensure long-term availability of your software. - \item Give your funding bodies their money's worth. + \item Give your funders their money's worth. \item Develop a lean start-up. - \item Maintain a sustainable and affordable infrastructure for your business/employer. + \item Maintain a reliable and affordable infrastructure for your work. \end{itemize} \end{frame} \begin{frame}{Why Not?} \begin{itemize} \item Don't be afraid of your software not being “good/unique enoughâ€! - \item Don't be wait until your software is “readyâ€! + \item Don't wait until your software is “readyâ€! \item A lot of research software you are already using is not written by “professional†programmers. \end{itemize} \end{frame} \section{How?} - \subsection{How Do I Package my Software?} - \begin{frame}{Choose an Environment} + \subsection{How do I package my software?} + \begin{frame}{Choose Appropriate Technologies} \begin{columns} \column{.5\linewidth} \begin{figure} @@ -171,56 +203,67 @@ \end{figure} \end{columns} \end{frame} - \begin{frame}{Reposit Your Software} - \begin{itemize} - \item Bitbucket - \item GitHub - \item GitLab - \item ... - \end{itemize} - \end{frame} \begin{frame}{Python Package Distribution} \begin{columns} - \column{.4\linewidth} + \column{.55\linewidth} You can package your python software by writing \textbf{one short} file. \begin{itemize} - \item Python provides its own package management, e.g. via \textcolor{lg}{\href{https://packaging.python.org/distributing/}{\texttt{setuptools}}}. + \item Python provides its own limited package management, e.g. via \textcolor{lg}{\href{https://packaging.python.org/distributing/}{\texttt{setuptools}}}. \item Package metadata saved in \texttt{setup.py}, e.g. \textcolor{lg}{\href{https://github.com/IBT-FMI/SAMRI/blob/master/setup.py}{\texttt{SAMRI/setup.py}}} \end{itemize} - \column{.6\linewidth} - \begin{figure} - \centering - \includegraphics[width=0.9\textheight]{img/sp.png} - \end{figure} + \column{.45\linewidth} + \inputminted[bgcolor=tlg,fontsize=\Tiny,tabsize=4]{python}{samri/setup.py} \end{columns} \end{frame} \begin{frame}{Gentoo Packages} \begin{columns} - \column{.4\linewidth} - You can package your software for Gentoo by writing \textbf{one short} file. + \column{.55\linewidth} + A Gentoo package is \textbf{one short} file. \begin{itemize} - \item Gentoo packages metadata/instruction text files - \item The Gentoo package manager understands external package management formats, e.g. as seen in \textcolor{lg}{\href{https://github.com/TheChymera/overlay/blob/master/sci-biology/samri/samri-9999.ebuild}{\texttt{=sci-biology/samri-9999}}} + \item regardless of the programming language + \item can automatically interpret information contained in the package, e.g. in \textcolor{lg}{\texttt{setup.py}} \end{itemize} - \column{.6\linewidth} - \begin{figure} - \centering - \includegraphics[width=0.7\textheight]{img/eb.png} - \end{figure} + \column{.47\linewidth} + \vspace{-3em} + \inputminted[bgcolor=tlg,fontsize=\Tiny,tabsize=4,firstline=1,lastline=36]{bash}{samri/samri-0.4.ebuild} + \vspace{-3.2em} + \inputminted[bgcolor=tlg,fontsize=\Tiny,tabsize=4,firstline=47,lastline=49]{bash}{samri/samri-0.4.ebuild} \end{columns} \end{frame} + \begin{frame}{Reposit Your Software} + \begin{figure} + \centering + \includegraphics[width=0.4\textwidth]{img/git.png} + \caption{Git Logo by Jason Long (\href{https://creativecommons.org/licenses/by/3.0/}{CC-BY-3.0})} + \end{figure} + You can self-host, but hosting also available via social coding platforms: + \begin{multicols}{3} + \begin{itemize} + \item GitLab + \item GitHub + \item Bitbucket + \end{itemize} + \end{multicols} + \end{frame} \section{Demo} \subsection{Put what you have learned into practice, and start typing...} \begin{frame}{A Few Basic Gentoo Commands} \begin{itemize} \item check available package names, versions, and details - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|eix samri| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|eix nibabel| \item see package dependencies - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|equery g samri| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|equery g nibabel| \item see what packages depend on a said package - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|equery d nipype| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|equery d nibabel| + \item see files installed by package + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|equery f nibabel| \item try to install a new package - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|emerge -p =nilearn-0.1.4.1| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|emerge -p nibabel| \end{itemize} \end{frame} \begin{frame}{Reproduce a Scientific Article} @@ -229,22 +272,26 @@ \item Get the source code for brand-new articles: \begin{itemize} \item Work-in-progress (reexecution time \SI{\approx 3}{\second}) - \vspace{-0.5em} + \vspace{-0.6em} \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git clone https://gitlab.com/Chymera/nvcz.git | \item Preprint (reexecution time \SI{\approx 2}{\minute}) - \vspace{-0.5em} - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git clone git clone https://bitbucket.org/TheChymera/irsabi.git | + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git clone https://bitbucket.org/TheChymera/irsabi.git | \end{itemize} \item Switch to article directory - \vspace{-0.5em} + \vspace{-0.6em} \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|cd nvcz| \item Attempt to reexecute - \vspace{-0.5em} + \vspace{-0.6em} \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|./compile.sh| %\mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git chechout 28b5d2d1| \end{itemize} \end{frame} \begin{frame}{What happened? Dependency requirements happened.} + \begin{center} + \textcolor{ldorange}{\Large But you can solve the issue yourself!} + \end{center} + \vspace{2em} Write a new package atom for the package manager. \begin{itemize} \item Gentoo Linux makes this wholly autonomous. @@ -255,28 +302,130 @@ \end{itemize} \end{itemize} \end{frame} - \begin{frame}{Write an ebuild} + \begin{frame}{Write a Package Atom --- The Overlay} \begin{itemize} - \Item Fork an overlay on GitHub. - \textcolor{lg}{\href{https://github.com/TheChymera/overlay}{\texttt{github.com/TheChymera/overlay}}} + \item Fork an overlay on GitHub, e.g. from \textcolor{lg}{\href{https://github.com/TheChymera/overlay}{\texttt{github.com/TheChymera/overlay}}} + \begin{figure} + \vspace{-0.1em} + \includegraphics[width=0.94\textwidth]{img/fork.png} + \end{figure} \item Go back to your home directory. - \vspace{-0.5em} + \vspace{-0.6em} \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|cd| \item Clone your fork of the overlay. - \vspace{-0.5em} - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git clone https://github.com/TheChymera/overlay.git| - \item Clone your fork of the overlay. - \vspace{-0.5em} - \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git clone https://github.com/TheChymera/overlay.git| + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git clone https://github.com/YourName/overlay.git| + \item Make the ebuild directory, and navigate into it. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|mkdir -p overlay/sci-biology/samri && cd $_|%stopzone + \end{itemize} + \end{frame} + \begin{frame}{Transparency means less work for you!} + You could write the following files from scratch, but you can also reuse analogous files from existing packages. + \begin{itemize} + \item Copy a metadata file from a Python package + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|cp /usr/portage/sci-libs/nibabel/metadata.xml .| + \item Copy an ebuild file from a Python package + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|cp /usr/portage/sci-libs/nibabel/*2.5.1.ebuild samri-0.4.ebuild| + \end{itemize} + \end{frame} + \begin{frame}{Write a Package Atom --- The Metadata File} + \vspace{-0.9em} + \inputminted[bgcolor=tlg,fontsize=\scriptsize,tabsize=4]{xml}{samri/metadata.xml} + \end{frame} + \begin{frame}{Write a Package Atom --- The Ebuild (header excerpt)} + \inputminted[bgcolor=tlg,fontsize=\scriptsize,tabsize=4,firstline=1,lastline=17]{bash}{samri/samri-0.4.ebuild} + \end{frame} + \begin{frame}{Write a Package Atom --- The Ebuild (dependency excerpts)} + \begin{itemize} + \item Compile-time dependency example: + \vspace{-0.6em} + \inputminted[bgcolor=tlg,fontsize=\scriptsize,tabsize=4,firstline=18,lastline=25]{bash}{samri/samri-0.4.ebuild} + \item Run-time dependency DIY (fill out, consulting \textcolor{lg}{\href{https://github.com/IBT-FMI/SAMRI}{\texttt{github.com/IBT-FMI/SAMRI}}}): + \vspace{-0.6em} + \inputminted[bgcolor=tlg,fontsize=\scriptsize,tabsize=4,firstline=26,lastline=29]{bash}{samri/samri-0.4.ebuild} + \vspace{-3em} + \inputminted[bgcolor=tlg,fontsize=\scriptsize,tabsize=4,firstline=47,lastline=47]{bash}{samri/samri-0.4.ebuild} + \end{itemize} + \end{frame} + \begin{frame}{Write a Package Atom --- Finishing Touches} + \begin{itemize} + \item Not all packages are perfect. Append the following to the ebuild. + \vspace{-0.6em} + \inputminted[bgcolor=tlg,fontsize=\scriptsize,tabsize=4,firstline=49,lastline=49]{bash}{samri/samri-0.4.ebuild} + \item Check your work. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|wget https://thealternative.ch/ssm/samri/samri-0.4.ebuild -P ~| + \vspace{-3.1em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|colordiff ~/samri-0.4.ebuild samri-0.4.ebuild| + \vspace{-3.1em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|wget https://thealternative.ch/ssm/samri/metadata.xml -P ~| + \vspace{-3.1em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|colordiff ~/metadata.xml metadata.xml| + \end{itemize} + \end{frame} + \begin{frame}{Social Coding --- Upload Your Package for Reuse} + \begin{itemize} + \item Quality Control. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|repoman full| + \item Record and publish your work in version control. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git commit -a && git push origin master| + \item Include your work in widely used overlay: visit \textcolor{lg}{\href{https://github.com/YourName/overlay}{\texttt{github.com/YourName/overlay}}}. + \begin{figure} + \vspace{-0.1em} + \includegraphics[width=0.94\textwidth]{img/pr.png} + \end{figure} + \end{itemize} + \end{frame} + \begin{frame}{Use Your Work} + \begin{itemize} + \item Package index update (done by the superuser). + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|eix-sync| + \item Try out the install command yourself. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|emerge -pv samri| + \item Install (done by the superuser). + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|emerge -v samri| + \end{itemize} + \end{frame} + \begin{frame}{The Article Environment is Now Reproducible} + \begin{itemize} + \item Navigate back to the article directory. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|cd ~/nvcz| + \item Compile. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|./compile| + \item Log out from SSH: \keys{Ctrl + d} + \item Get the document locally. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|scp YOURUSER@130.60.24.66:nvcz/article.pdf .| \end{itemize} \end{frame} - \begin{frame}{Write Packaged Free and Open Source Scientific Software} - \begin{enumerate} - \item correct URL in \textcolor{lg}{\href{https://github.com/IBT-FMI/SAMRI/blob/master/setup.py}{\texttt{SAMRI/setup.py}}} - \item Add notice of dependency on nilearn in \textcolor{lg}{\href{https://github.com/IBT-FMI/SAMRI/blob/master/README.md}{\texttt{SAMRI/README.md}}} - \item Add notice of dependency on nilearn in \textcolor{lg}{\href{https://github.com/TheChymera/overlay/blob/master/sci-biology/samri/samri-9999.ebuild}{\texttt{=sci-biology/samri-9999}}} - \item Remove \texttt{dcmstack} import and dependency from the SAMRI source and the Gentoo SAMRI package - \end{enumerate} + \begin{frame}{And the Article is now Automated} + \begin{itemize} + \item Log back in and navigate to article directory. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|ssh YOURUSER@130.60.24.66| + \vspace{-3.1em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|cd nvcz| + \item Automatically adjust the t-statistic threshold for the entire document. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}:grep -rlI 3\.5 | xargs sed -i -e "s/3.5/3.0/g": + \item Visualize what you have changed. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|git diff| + \item Compile, log out. + \item Get the document locally. + \vspace{-0.6em} + \mint[bgcolor=tlg,fontsize=\footnotesize]{bash}|scp YOURUSER@130.60.24.66:nvcz/article.pdf newarticle.pdf| + \end{itemize} \end{frame} @@ -290,19 +439,20 @@ \textcolor{lg}{in a few minutes} \item Get help with running your own Gentoo Linux data analysis server\\ \textcolor{lg}{in a few hours} - \item Spread the word\\ + \item Spread package management in your field\\ \textcolor{lg}{tomorrow at work} \end{itemize} \end{frame} \begin{frame}{These Slides} \begin{itemize} - \item \textcolor{lg}{Latest Slides:}\\ \url{http://chymera.eu/pres/ld_packaging-sci/pres.pdf} - \item \textcolor{lg}{Source:}\\ \url{https://bitbucket.org/TheChymera/ld_packaging-sci/} + \item \textcolor{lg}{Latest Slides:}\\ + \texttt{\href{https://thealternative.ch/ssm/slides.tex}{thealternative.ch/ssm/slides.tex}} + \item \textcolor{lg}{Source:}\\ + \texttt{\href{https://gitlab.ethz.ch/thealternative/courses/tree/master/scientific_software_management}{\footnotesize gitlab.ethz.ch/thealternative/courses/tree/master/scientific\_software\_management}} \end{itemize} %separate sources from info so it looks nicer \begin{itemize} \item \textcolor{lg}{License:} \href{https://creativecommons.org/licenses/by-sa/3.0/}{CC BY-SA 3.0} - \item \small\textcolor{lg}{Special Thanks to} Mickey Vaenskae \end{itemize} \end{frame} \begin{frame}{References} -- GitLab