guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: talks: Add UST4HPC Guix-Jupyter talk.


From: Ludovic Courtès
Subject: 01/02: talks: Add UST4HPC Guix-Jupyter talk.
Date: Mon, 25 Jan 2021 06:32:54 -0500 (EST)

civodul pushed a commit to branch master
in repository maintenance.

commit af15838577aab4a8cdc5c83b31aab772125cfeb3
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri Jan 22 11:25:48 2021 +0100

    talks: Add UST4HPC Guix-Jupyter talk.
    
    * talks/ust4hpc-2021/jupyter: New directory.
---
 .../jupyter/images/binder-config-files.png         |   1 +
 talks/ust4hpc-2021/jupyter/images/container.png    |   1 +
 talks/ust4hpc-2021/jupyter/images/download.png     |   1 +
 .../jupyter/images/eelco-pointer-discipline.png    |   1 +
 talks/ust4hpc-2021/jupyter/images/environment.png  |   1 +
 .../jupyter/images/feynman-notebook.jpg            | Bin 0 -> 93980 bytes
 .../jupyter/images/fsfe-there-is-no-cloud.pdf      | Bin 0 -> 25203 bytes
 talks/ust4hpc-2021/jupyter/images/guix-jupyter.png |   1 +
 .../jupyter/images/guixhpc-logo-transparent.pdf    |   1 +
 .../jupyter/images/inria-white-2019.pdf            |   1 +
 .../jupyter/images/jupyter-matplotlib.png          |   1 +
 .../jupyter/images/jupyter-select-kernel.png       |   1 +
 .../jupyter/images/jupyterhub-openstack.png        | Bin 0 -> 95319 bytes
 talks/ust4hpc-2021/jupyter/images/mybinder-web.png |   1 +
 .../jupyter/images/notebook-local-files.png        | Bin 0 -> 81414 bytes
 talks/ust4hpc-2021/jupyter/images/pin.png          |   1 +
 .../jupyter/images/pip-install-scared.png          |   1 +
 talks/ust4hpc-2021/jupyter/images/search.png       | Bin 0 -> 87537 bytes
 .../jupyter/images/zero-to-jupyterhub.png          | Bin 0 -> 104574 bytes
 talks/ust4hpc-2021/jupyter/talk.tex                | 386 +++++++++++++++++++++
 20 files changed, 399 insertions(+)

diff --git a/talks/ust4hpc-2021/jupyter/images/binder-config-files.png 
b/talks/ust4hpc-2021/jupyter/images/binder-config-files.png
new file mode 120000
index 0000000..19c34c7
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/binder-config-files.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/binder-config-files.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/container.png 
b/talks/ust4hpc-2021/jupyter/images/container.png
new file mode 120000
index 0000000..3177c8b
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/container.png
@@ -0,0 +1 @@
+../../../jcad-2019/images/container.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/download.png 
b/talks/ust4hpc-2021/jupyter/images/download.png
new file mode 120000
index 0000000..34fb8c9
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/download.png
@@ -0,0 +1 @@
+../../../jcad-2019/images/download.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/eelco-pointer-discipline.png 
b/talks/ust4hpc-2021/jupyter/images/eelco-pointer-discipline.png
new file mode 120000
index 0000000..e94b90a
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/eelco-pointer-discipline.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/eelco-pointer-discipline.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/environment.png 
b/talks/ust4hpc-2021/jupyter/images/environment.png
new file mode 120000
index 0000000..6ff20f6
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/environment.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/environment.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/feynman-notebook.jpg 
b/talks/ust4hpc-2021/jupyter/images/feynman-notebook.jpg
new file mode 100644
index 0000000..2fcf4c0
Binary files /dev/null and 
b/talks/ust4hpc-2021/jupyter/images/feynman-notebook.jpg differ
diff --git a/talks/ust4hpc-2021/jupyter/images/fsfe-there-is-no-cloud.pdf 
b/talks/ust4hpc-2021/jupyter/images/fsfe-there-is-no-cloud.pdf
new file mode 100644
index 0000000..dba6f1a
Binary files /dev/null and 
b/talks/ust4hpc-2021/jupyter/images/fsfe-there-is-no-cloud.pdf differ
diff --git a/talks/ust4hpc-2021/jupyter/images/guix-jupyter.png 
b/talks/ust4hpc-2021/jupyter/images/guix-jupyter.png
new file mode 120000
index 0000000..b473381
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/guix-jupyter.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/guix-jupyter.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/guixhpc-logo-transparent.pdf 
b/talks/ust4hpc-2021/jupyter/images/guixhpc-logo-transparent.pdf
new file mode 120000
index 0000000..5e11cf0
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/guixhpc-logo-transparent.pdf
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/guixhpc-logo-transparent.pdf
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/inria-white-2019.pdf 
b/talks/ust4hpc-2021/jupyter/images/inria-white-2019.pdf
new file mode 120000
index 0000000..63ee0cf
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/inria-white-2019.pdf
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/inria-white-2019.pdf
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/jupyter-matplotlib.png 
b/talks/ust4hpc-2021/jupyter/images/jupyter-matplotlib.png
new file mode 120000
index 0000000..f8c5109
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/jupyter-matplotlib.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/jupyter-matplotlib.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/jupyter-select-kernel.png 
b/talks/ust4hpc-2021/jupyter/images/jupyter-select-kernel.png
new file mode 120000
index 0000000..48f59fb
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/jupyter-select-kernel.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/jupyter-select-kernel.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/jupyterhub-openstack.png 
b/talks/ust4hpc-2021/jupyter/images/jupyterhub-openstack.png
new file mode 100644
index 0000000..e31388b
Binary files /dev/null and 
b/talks/ust4hpc-2021/jupyter/images/jupyterhub-openstack.png differ
diff --git a/talks/ust4hpc-2021/jupyter/images/mybinder-web.png 
b/talks/ust4hpc-2021/jupyter/images/mybinder-web.png
new file mode 120000
index 0000000..129dd7f
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/mybinder-web.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/mybinder-web.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/notebook-local-files.png 
b/talks/ust4hpc-2021/jupyter/images/notebook-local-files.png
new file mode 100644
index 0000000..29e592c
Binary files /dev/null and 
b/talks/ust4hpc-2021/jupyter/images/notebook-local-files.png differ
diff --git a/talks/ust4hpc-2021/jupyter/images/pin.png 
b/talks/ust4hpc-2021/jupyter/images/pin.png
new file mode 120000
index 0000000..2f3eab5
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/pin.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/pin.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/pip-install-scared.png 
b/talks/ust4hpc-2021/jupyter/images/pip-install-scared.png
new file mode 120000
index 0000000..36745d5
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/images/pip-install-scared.png
@@ -0,0 +1 @@
+../../../fosdem-2020/guix-jupyter/images/pip-install-scared.png
\ No newline at end of file
diff --git a/talks/ust4hpc-2021/jupyter/images/search.png 
b/talks/ust4hpc-2021/jupyter/images/search.png
new file mode 100644
index 0000000..6d82e98
Binary files /dev/null and b/talks/ust4hpc-2021/jupyter/images/search.png differ
diff --git a/talks/ust4hpc-2021/jupyter/images/zero-to-jupyterhub.png 
b/talks/ust4hpc-2021/jupyter/images/zero-to-jupyterhub.png
new file mode 100644
index 0000000..4d7d0be
Binary files /dev/null and 
b/talks/ust4hpc-2021/jupyter/images/zero-to-jupyterhub.png differ
diff --git a/talks/ust4hpc-2021/jupyter/talk.tex 
b/talks/ust4hpc-2021/jupyter/talk.tex
new file mode 100644
index 0000000..bec6582
--- /dev/null
+++ b/talks/ust4hpc-2021/jupyter/talk.tex
@@ -0,0 +1,386 @@
+% Make sure URLs are broken on hyphens.
+% See <https://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url>.
+\RequirePackage[hyphens]{url}
+
+\documentclass[aspectratio=169]{beamer}
+
+\usetheme{default}
+
+\usefonttheme{structurebold}
+
+% Nice sans-serif font.
+\usepackage[sfdefault,lining]{FiraSans} %% option 'sfdefault' activates Fira 
Sans as the default text font
+%% \usepackage[fakebold]{firamath-otf}
+\renewcommand*\oldstylenums[1]{{\firaoldstyle #1}}
+
+% Nice monospace font.
+\usepackage{inconsolata}
+%% \renewcommand*\familydefault{\ttdefault} %% Only if the base font of the 
document is to be typewriter style
+\usepackage[T1]{fontenc}
+
+\usepackage{helvet}
+\usecolortheme{seagull}         % white on black
+
+\usepackage[utf8]{inputenc}
+\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref,xspace,multicol}
+
+\usepackage[absolute,overlay]{textpos}
+\usepackage{tikz}
+\usetikzlibrary{arrows,shapes,trees,shadows,positioning}
+\usepackage{fancyvrb}           % for '\Verb'
+\usepackage{xifthen}            % for '\isempty'
+
+% Remember the position of every picture.
+\tikzstyle{every picture}+=[remember picture]
+
+\tikzset{onslide/.code args={<#1>#2}{%
+  \only<#1>{\pgfkeysalso{#2}} % \pgfkeysalso doesn't change the path
+}}
+
+% Colors.
+\definecolor{guixred1}{RGB}{226,0,38}  % red P
+\definecolor{guixorange1}{RGB}{243,154,38}  % guixorange P
+\definecolor{guixyellow}{RGB}{254,205,27}  % guixyellow P
+\definecolor{guixred2}{RGB}{230,68,57}  % red S
+\definecolor{guixred3}{RGB}{115,34,27}  % dark red
+\definecolor{guixorange2}{RGB}{236,117,40}  % guixorange S
+\definecolor{guixtaupe}{RGB}{134,113,127} % guixtaupe S
+\definecolor{guixgrey}{RGB}{91,94,111} % guixgrey S
+\definecolor{guixdarkgrey}{RGB}{46,47,55} % guixdarkgrey S
+\definecolor{guixblue1}{RGB}{38,109,131} % guixblue S
+\definecolor{guixblue2}{RGB}{10,50,80} % guixblue S
+\definecolor{guixgreen1}{RGB}{133,146,66} % guixgreen S
+\definecolor{guixgreen2}{RGB}{157,193,7} % guixgreen S
+
+\setbeamerfont{title}{size=\huge}
+\setbeamerfont{frametitle}{size=\huge}
+\setbeamerfont{normal text}{size=\Large}
+
+% White-on-black color theme.
+\setbeamercolor{structure}{fg=guixorange1,bg=black}
+\setbeamercolor{title}{fg=white,bg=black}
+\setbeamercolor{date}{fg=guixorange1,bg=black}
+\setbeamercolor{frametitle}{fg=white,bg=black}
+\setbeamercolor{titlelike}{fg=white,bg=black}
+\setbeamercolor{normal text}{fg=white,bg=black}
+\setbeamercolor{alerted text}{fg=guixyellow,bg=black}
+\setbeamercolor{section in toc}{fg=white,bg=black}
+\setbeamercolor{section in toc shaded}{fg=white,bg=black}
+\setbeamercolor{subsection in toc}{fg=guixorange1,bg=black}
+\setbeamercolor{subsection in toc shaded}{fg=white,bg=black}
+\setbeamercolor{subsubsection in toc}{fg=guixorange1,bg=black}
+\setbeamercolor{subsubsection in toc shaded}{fg=white,bg=black}
+\setbeamercolor{frametitle in toc}{fg=white,bg=black}
+\setbeamercolor{local structure}{fg=guixorange1,bg=black}
+
+\newcommand{\highlight}[1]{\alert{\textbf{#1}}}
+
+\title{Towards Reproducible Jupyter Notebooks}
+
+\author{Ludovic Courtès}
+\date{\small{User Tools for HPC (UST4HPC), \oldstylenums{25 January 2021}}}
+
+\setbeamertemplate{navigation symbols}{} % remove the navigation bar
+
+\AtBeginSection[]{
+  \begin{frame}
+    \frametitle{}
+    \tableofcontents[currentsection]
+  \end{frame} 
+}
+
+
+\newcommand{\screenshot}[2][width=\paperwidth]{
+  \begin{frame}[plain]
+    \begin{tikzpicture}[remember picture, overlay]
+      \node [at=(current page.center), inner sep=0pt]
+        {\includegraphics[{#1}]{#2}};
+    \end{tikzpicture}
+  \end{frame}
+}
+
+
+\begin{document}
+
+% https://twitter.com/fermatslibrary/status/1034065248989466624
+% "Feynman's notebook"
+
+% https://en.wikipedia.org/wiki/Etheric_force
+% Edison
+\begin{frame}[plain, fragile]
+  \begin{tikzpicture}[overlay]
+    \node [at=(current page.center), fill=guixblue1, opacity=.4] {
+      \includegraphics[width=1.2\textwidth]{images/feynman-notebook}
+    };
+  \end{tikzpicture}
+
+  \vspace{10mm}
+  \Huge{\textbf{Towards Reproducible\\ Jupyter Notebooks}}
+  \\[2cm]
+  \large{Ludovic Courtès}
+  \\[2mm]
+  \alert{User Tools for HPC (UST4HPC), \oldstylenums{25 January 2021}}
+
+  \vfill{}
+  \hfill{\includegraphics[width=0.2\paperwidth]{images/inria-white-2019}}
+  \vspace{2mm}
+\end{frame}
+
+
+\setbeamercolor{normal text}{bg=guixred3}
+\begin{frame}[plain]
+  \Huge{Jupyter = reproducible science\uncover<2->{?}}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\screenshot{images/jupyter-matplotlib}
+\screenshot{images/pip-install-scared}
+%% \screenshot{images/conda-broke-tweet}
+\screenshot{images/mybinder-web}
+\screenshot{images/binder-config-files}
+
+\begin{frame}[fragile, plain]
+  \begin{tikzpicture}[overlay]
+    \node [at=(current page.center)] {
+      \includegraphics[width=\textwidth]{images/jupyterhub-openstack}
+    };
+    \node [at=(current page.south), anchor=south, text=guixdarkgrey,
+      text width=12cm] {
+      
\url{https://blog.jupyter.org/how-to-deploy-jupyterhub-with-kubernetes-on-openstack-f8f6120d4b1}
+    };
+  \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile, plain]
+  \begin{tikzpicture}[overlay]
+    \node [at=(current page.center)] {
+      \includegraphics[width=0.8\textwidth]{images/zero-to-jupyterhub}
+    };
+    \node [at=(current page.south), anchor=south, text=guixdarkgrey] {
+      \url{https://zero-to-jupyterhub.readthedocs.io}
+    };
+  \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixorange2}
+\begin{frame}[plain]
+  \Huge{\textbf{Notebook as a service, \\
+    reproducibile research, \\
+    \& autonomy}}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixdarkgrey}
+\begin{frame}[fragile, plain]
+  \vspace{5mm}
+  \LARGE{Hinsen: \textbf{The four possibilities\\
+      of reproducible scientific computations}}
+  \vspace{15mm}
+  \LARGE{
+    \begin{enumerate}
+    \item \highlight{inspect} data \& source code
+    \item \highlight{run} code on computer of choice
+    \item \highlight{explore} behavior of the code
+    \item \highlight{verify} that published results correspond to code
+    \end{enumerate}
+  }
+
+  \vfill{}
+  
\center{\small{\url{https://blog.khinsen.net/posts/2020/11/20/the-four-possibilities-of-reproducible-scientific-computations/}}}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+
+% 
https://commons.wikimedia.org/wiki/File:FSFE_There_is_no_cloud_postcard_en.svg
+\screenshot[width=0.8\textwidth]{images/fsfe-there-is-no-cloud}
+
+
+\setbeamercolor{normal text}{bg=guixgreen1}
+\begin{frame}[plain]
+  \Huge{What if notebooks were self-contained, ``deployment-aware''?}
+\end{frame}
+
+%% \setbeamercolor{normal text}{bg=white}
+%% \begin{frame}[plain]
+%%   
\center{\includegraphics[width=0.6\textwidth]{images/Guix-horizontal-print}}\\[1.0cm]
+%% \end{frame}
+
+\setbeamercolor{normal text}{bg=guixtaupe}
+\begin{frame}[fragile]%{``Virtual environments''}
+  \LARGE{
+    \begin{semiverbatim}
+\$ guix \alert{environment} --ad-hoc \\
+      python python-numpy python-scipy \\
+      -- python3
+    \end{semiverbatim}
+  }
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\begin{frame}[plain, fragile]
+  \center{\includegraphics[width=0.35\textwidth]{images/guix-jupyter}}
+
+  \begin{tikzpicture}[overlay]
+    \node[text=guixdarkgrey, anchor=south, at=(current page.south),
+          inner sep=3mm]
+      
{\url{https://hpc.guix.info/blog/2019/10/towards-reproducible-jupyter-notebooks}};
+  \end{tikzpicture}
+
+\end{frame}
+
+\screenshot{images/jupyter-select-kernel}
+\screenshot{images/environment}
+\screenshot{images/search}
+
+%% \begin{frame}[fragile]
+%%   \begin{tikzpicture}[remember picture, overlay]
+%%     % 
https://commons.wikimedia.org/wiki/File:TeamTimeCar.com-BTTF_DeLorean_Time_Machine-OtoGodfrey.com-JMortonPhoto.com-07.jpg
+%%     \node [at=(current page.center), inner sep=0pt]
+%%           {\includegraphics[width=\paperwidth]{images/delorean}};
+%%     \node [rounded corners=4, text centered, anchor=north,
+%%            text width=10cm,
+%%           inner sep=3mm, opacity=.75, text opacity=1]
+%%       at (current page.center) {
+%%             \textbf{\Huge{travel in space \emph{and} time!}}
+%%           };
+%%   \end{tikzpicture}
+%% \end{frame}
+
+\screenshot{images/pin}
+
+\begin{frame}[fragile]
+  \begin{tikzpicture}[client/.style = {
+                        text width=35mm, minimum height=2cm,
+                        text centered,
+                        rounded corners=2mm,
+                        fill=guixorange1, text=white
+                      },
+                      kernel/.style = {
+                        rectangle, text width=35mm, text centered,
+                        rounded corners=2mm, minimum height=15mm,
+                        top color=guixorange1,
+                        bottom color=guixyellow,
+                        text=black
+                      }]
+    \matrix[row sep=3mm, column sep=1cm] {
+      & \node(jupyter)[client]{\large{\textbf{Jupyter}}}; & \\
+
+      & \node(guixjupyter)[client]{\large{Guix-Jupyter}}; & \\[1.2cm]
+
+      \node(kernel1)[kernel]{\large{IPykernel}}; &
+      \node(kernel2)[kernel]{\large{IRkernel}}; &
+      \node(kernel3)[kernel]{\large{IJulia}};
+      \\
+    };
+  \end{tikzpicture}
+
+  \begin{tikzpicture}[overlay]
+    \path[very thick, draw=guixorange1]
+      (jupyter.south) edge [->] (guixjupyter.north);
+    \path[very thick, draw=guixorange1]
+      (guixjupyter.south) edge [out=30, in=90, ->] (kernel1.north); 
+   \path[very thick, draw=guixorange1]
+      (guixjupyter.south) edge [out=-100, in=90, ->] (kernel2.north);
+    \path[very thick, draw=guixorange1]
+      (guixjupyter.south) edge [out=-30, in=120, ->] (kernel3.north);
+  \end{tikzpicture}
+\end{frame}
+
+
+% https://nbviewer.jupyter.org/gist/nealcaren/5105037
+\screenshot{images/notebook-local-files}
+
+\screenshot{images/container}
+\screenshot{images/download}
+\screenshot{images/eelco-pointer-discipline}
+
+\setbeamercolor{normal text}{bg=guixblue1}
+\begin{frame}[plain]
+  \Huge{\textbf{Wrap-up.}}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixdarkgrey}
+\begin{frame}
+  \Huge{\textbf{Open issues}}\\[2cm]
+
+  \Large{
+  \begin{itemize}
+  \item how can we improve the \textbf{user interface}?
+  \item should deployment be \textbf{built into Jupyter}?
+  \item what about \textbf{interoperability}?
+  \item ...
+  \end{itemize}
+  }
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixdarkgrey}
+\begin{frame}[plain]
+  \center{\Huge{\textbf{Guix-Jupyter =}}}\\[1cm]
+
+  \LARGE{
+  \begin{itemize}
+  \item \textbf{self-contained} notebooks
+  \item automatic \& \textbf{reproducible deployment}
+  \item code runs in \textbf{isolated environment}
+  \end{itemize}
+  }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbeamercolor{normal text}{bg=black}
+\begin{frame}[plain]
+
+\vfill{
+  \vspace{3cm}
+  
\center{\includegraphics[width=0.5\textwidth]{images/guixhpc-logo-transparent}}\\[1.0cm]
+  \center{\alert{\url{https://hpc.guix.info}}} \\[0.2cm]
+  \texttt{ludovic.courtes@inria.fr |} @GuixHPC
+  \\[1.2cm]
+}
+\end{frame}
+
+\begin{frame}{}
+  \begin{textblock}{12}(2, 6)
+    \tiny{
+      Copyright \copyright{} 2010, 2012--2021 Ludovic Courtès 
\texttt{ludo@gnu.org}.\\[3.0mm]
+      GNU Guix logo, CC-BY-SA 4.0, \url{https://gnu.org/s/guix/graphics}.
+      \\[1.5mm]
+      Feynman's notebook picture from \url{https://fermatslibrary.com}
+      \\[1.5mm]
+      ``There is NO CLOUD'' image by Markus Meier (FSFE), CC-BY-SA 4.0,
+      
\url{https://commons.wikimedia.org/wiki/File:FSFE_There_is_no_cloud_postcard_en.svg}
+      \\[1.5mm]
+      Copyright of other images included in this document is held by
+      their respective owners.
+      \\[3.0mm]
+      This work is licensed under the \alert{Creative Commons
+        Attribution-Share Alike 3.0} License.  To view a copy of this
+      license, visit
+      \url{https://creativecommons.org/licenses/by-sa/3.0/} or send a
+      letter to Creative Commons, 171 Second Street, Suite 300, San
+      Francisco, California, 94105, USA.
+      \\[2.0mm]
+      At your option, you may instead copy, distribute and/or modify
+      this document under the terms of the \alert{GNU Free Documentation
+        License, Version 1.3 or any later version} published by the Free
+      Software Foundation; with no Invariant Sections, no Front-Cover
+      Texts, and no Back-Cover Texts.  A copy of the license is
+      available at \url{https://www.gnu.org/licenses/gfdl.html}.
+      \\[2.0mm]
+      % Give a link to the 'Transparent Copy', as per Section 3 of the GFDL.
+      The source of this document is available from
+      \url{https://git.sv.gnu.org/cgit/guix/maintenance.git}.
+    }
+  \end{textblock}
+\end{frame}
+
+\end{document}
+
+% Local Variables:
+% coding: utf-8
+% comment-start: "%"
+% comment-end: ""
+% ispell-local-dictionary: "francais"
+% compile-command: "rubber --pdf talk.tex"
+% End:
+
+%%  LocalWords:  Reproducibility



reply via email to

[Prev in Thread] Current Thread [Next in Thread]