diff --git a/talks-public/2019-10-04-SWHforDO/2019-10-04-SWHforDO.org b/talks-public/2019-10-04-SWHforDO/2019-10-04-SWHforDO.org new file mode 100644 index 0000000..29429ca --- /dev/null +++ b/talks-public/2019-10-04-SWHforDO/2019-10-04-SWHforDO.org @@ -0,0 +1,554 @@ +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) +#+TITLE: Archiving and referencing software source code +#+SUBTITLE: a glimpse into the software development ecosystem +# #+AUTHOR: Roberto Di Cosmo +# #+EMAIL: roberto@dicosmo.org @rdicosmo @swheritage +#+BEAMER_HEADER: \date{September 24th, 2019} +#+BEAMER_HEADER: \title[(CC-BY 4.0) Software Source Code]{Archiving and referencing software source code} +#+BEAMER_HEADER: \author{Roberto Di Cosmo} +# #+BEAMER_HEADER: \setbeameroption{show notes on second screen} +#+BEAMER_HEADER: \setbeameroption{hide notes} +#+KEYWORDS: software heritage legacy preservation knowledge mankind technology +#+LATEX_HEADER: \usepackage{tcolorbox} +#+LATEX_HEADER: \definecolor{links}{HTML}{2A1B81} +#+LATEX_HEADER: \hypersetup{colorlinks,linkcolor=,urlcolor=links} + +# +# prelude.org contains all the information needed to export the main beamer latex source +# use prelude-toc.org to get the table of contents +# + +#+INCLUDE: "../../common/modules/prelude-toc.org" :minlevel 1 + + +#+INCLUDE: "../../common/modules/169.org" + +# +LaTeX_CLASS_OPTIONS: [aspectratio=169,handout,xcolor=table] + +#+LATEX_HEADER: \usepackage{bbding} +#+LATEX_HEADER: \DeclareUnicodeCharacter{66D}{\FiveStar} + +# +# If you want to change the title logo it's here +# +# +BEAMER_HEADER: \titlegraphic{\includegraphics[width=0.7\textwidth]{SWH-logo}} + +# aspect ratio can be changed, but the slides need to be adapted +# - compute a "resizing factor" for the images (macro for picblocks?) +# +# set the background image +# +# https://pacoup.com/2011/06/12/list-of-true-169-resolutions/ +# +#+BEAMER_HEADER: \pgfdeclareimage[height=90mm,width=160mm]{bgd}{swh-world-169.png} +#+BEAMER_HEADER: \setbeamertemplate{background}{\pgfuseimage{bgd}} +#+LATEX: \addtocounter{framenumber}{-1} +* Introduction +** Short Bio: Roberto Di Cosmo + # +BEAMER: \raisebox{-.5\height}{\includegraphics[width=.28\linewidth]{rdc}} + Computer Science professor in Paris, now working at INRIA\\ + - /30 years/ of research (Theor. CS, Programming, Software Engineering, Erdos #: 3)\\ + - /20 years/ of Free and Open Source Software\\ + - /10 years/ building and directing structures for the common good\\ + + \mbox{}\\ + \begin{minipage}[c]{0.18\linewidth} + \includegraphics[width=1.0\linewidth]{rdc} + \end{minipage} + \begin{minipage}[c]{0.8\linewidth} + \begin{description} +% \item[1998] \emph{Cybersnare} -- voice of French FOSS + \item[1999] \emph{DemoLinux} -- first live GNU/Linux distro +% \item[2004] \emph{EDOS} -- check package dependencies + \item[2007] \emph{Free Software Thematic Group}\\ + %\tiny{\url{http://www.systematic-paris-region.org/fr/logiciel-libre}}\\ + ~150 members ~40 projects ~200Me +% \item[2008] \emph{Mancoosi project} \url{www.mancoosi.org} +% \item[2010] \emph{IRILL} \url{www.irill.org} + \item[2015] \emph{Software Heritage} at INRIA + \item[2018] \emph{National Committee for Open Science}, France + \end{description} + \end{minipage} + +# # why software source code is special (2 slides) +# # +* Software Source Code and its development process +** Source code is /special/ +*** /Executable/ and /human readable/ knowledge \hfill copyright law + /“Programs must be written for people to read, and only incidentally for machines to execute.”/\\ + \hfill Harold Abelson +#+BEAMER: \pause +*** Software /evolves/ over time + - projects may last decades + - the /development history/ is key to its /understanding/ +#+BEAMER: \pause +*** Complexity :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_OPT: pic=python3-matplotlib.pdf, width=.6\linewidth + :END: + - /millions/ of lines of code + - large /web of dependencies/ + + easy to break, difficult to maintain + - sophisticated /developer communities/ +** Evolution of software development +*** Version control system (VCS) + - records changes made to a (set of) source code file(s) + - allows to operate on versions: diff/merge/fork/recover etc. + - *essential* tool for software development +*** Three decades of evolution + - Local VCS :: \mbox{}\\ + RCS (1982) + - Centralised VCS :: \mbox{}\\ + CVS (1990), Subversion (2000) + - Distributed VCS :: \mbox{}\\ + Git (2005), Mercurial (2005), Bazaar (2005) +** In a picture \hfill (from https://github.com/progit/progit2) + #+BEGIN_EXPORT latex + \centering\forcebeamerstart + \only<1>{\colorbox{white}{\includegraphics[width=\extblockscale{.5\linewidth}]{localvcs}}\mbox{}\\[2em] + \texttt{co -r1.2 file.c} + } + \only<2>{\colorbox{white}{\includegraphics[width=\extblockscale{.5\linewidth}]{centralisedvcs}}\mbox{}\\[2em] + \texttt{cvs co -r Rel-1A ProgABC} + } + \only<3>{\colorbox{white}{\includegraphics[width=\extblockscale{.5\linewidth}]{distvcs}}\mbox{}\\[2em] + \texttt{git checkout df3b1b08f756569eff0919e37d8af1f403515b31} + } + \forcebeamerend + #+END_EXPORT +** Foundations of modern DVCS +**** Requirements for the D in DVCS + - *intrinsic* unique identifiers... + - ... that work for *tree structures* (software directories) + #+BEAMER: \pause + # R. C. Merkle, A digital signature based on a conventional encryption + # function, Crypto '87 +**** Merkle tree to the rescue (R. C. Merkle, Crypto 1979) :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=merkle, leftpic=true, width=.7\linewidth + :BEAMER_env: picblock + :BEAMER_act: + :END: + Combination of + - tree + - hash function +** A worked example + #+LATEX: \centering\forcebeamerstart + #+LATEX: \only<1>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_1.pdf}}} + #+LATEX: \only<2>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/contents.pdf}}} + #+LATEX: \only<3>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_2_contents.pdf}}} + #+LATEX: \only<4>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/directories.pdf}}} + #+LATEX: \only<5>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_3_directories.pdf}}} + #+LATEX: \only<6>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/revisions.pdf}}} + #+LATEX: \only<7>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_4_revisions.pdf}}} + #+LATEX: \only<8>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/releases.pdf}}} + #+LATEX: \only<9>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_5_releases.pdf}}} + #+LATEX: \only<10>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/snapshots.pdf}}} + #+LATEX: \forcebeamerend +** A massive adoption +*** The GitHub "pull request" model + - Bob forks (makes a copy) of Alice's code + - Bob modifies (his copy) of the code + - Bob requests Alice to pull his changes into her code +#+BEAMER: \pause +*** GitHub today + - *100.000.000* repositories + - *40.000.000* developers worldwide + See https://octoverse.github.com/2017/ +** An exponential growth +*** /Original/ content grows /exponentially/ +#+latex:\begin{center}\includegraphics[width=\linewidth]{revision_content_growth_wide.png}\end{center} +* Software Heritage +** Software Heritage in a nutshell \hfill www.softwareheritage.org +#+BEAMER: \transdissolve +#+INCLUDE: "../../common/modules/swh-goals-oneslide-vertical.org::#goals" :only-contents t :minlevel 3 +** Automation, and storage + #+BEAMER: \begin{center} + #+BEAMER: \mode{\only<1>{\includegraphics[width=\extblockscale{.9\textwidth}]{swh-dataflow-merkle-listers.pdf}}} + #+BEAMER: \only<2-3>{\includegraphics[width=\extblockscale{.9\textwidth}]{swh-dataflow-merkle.pdf}} + #+BEAMER: \end{center} + #+BEAMER: \pause + #+BEAMER: \pause + - full development history *permanently archived!* + +** The Software Heritage initiative \hfill www.softwareheritage.org :noexport: + :PROPERTIES: + :CUSTOM_ID: mission + :END: +#+latex: \begin{center} +#+ATTR_LATEX: :width .5\linewidth +# file:SWH-logo+motto.pdf +file:SWH-logo.pdf +#+latex: \end{center} +*** Mission + \hfill *Collect*, *preserve* and *share* the /source code/ of /all + the software/ that is available +#+BEAMER: \pause +*** Partners + - Initiator :: Inria + - Industry philanthropic sponsors :: VmWare, Société Générale, Intel, GitHub ... + - Public sector :: UNESCO, DINSIC, DANS, UQAM, Bologna University +** Highlights \hfill bit.ly/swhpaper +*** The largest software source code archive /ever/ + #+latex: \centering + #+latex: \mbox{}\hfill\includegraphics[width=\extblockscale{.35\linewidth}]{swh-dataflow-merkle.pdf}\hfill\pause + #+latex: \includegraphics[width=\extblockscale{.75\linewidth}]{2019-09-archive-growth.png}\hfill\mbox{} +#+BEAMER: \pause +*** /20 billions intrinsic/ identifiers for reproducibility :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .6 + :END: + Compatible with *git* see \url{bit.ly/swhpidpaper} + #+BEAMER: \pause +*** Research software deposit :B_block:noexport: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .4 + :END: + - [[https://www.softwareheritage.org/2018/09/28/depositing-scientific-software-into-software-heritage/][moderated via *HAL*]]\\ + \hfill /open since 9/2018/ +*** Reference archive :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .4 + :END: + See the work done at \hfill /swmath.org/ + #+BEAMER: \pause +*** SWH IDs now a standard for Wikidata + \mbox{}\hfill See https://www.wikidata.org/wiki/Property:P6138 + #+BEAMER: \pause +*** Collaboration HUB :B_block:noexport: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .33 + :END: + - industry, research + - digital preservation +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Policy + \hfill Now part of the /French National Plan for Open Science/ \hfill\mbox{} +*** Guidelines :noexport: + https://www.softwareheritage.org/2019/08/05/saving-and-referencing-research-software-in-software-heritage/ +** Software Heritage for Open Science :noexport: +*** A revolutionary infrastructure :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_OPT: pic=PreservationTriangle.png,leftpic=true, width=.38\linewidth + :END: + - *universal archive* of all source code + + we archive /all/ software: both research and non research + + we /proactively collect software/ in a systematic way + - *intrinsic* identifiers for *reproducibility* + + identify software artefacts /without any third party/ + + cryptographically strong, compatible with git hashes + - also *save code now* and *curated deposit* (e.g. via *HAL*) +*** Guidelines are now available + - blog with overview: \hfill http://bit.ly/blogsaveres + - full details: \hfill http://bit.ly/swhsaveguide +# https://www.softwareheritage.org/2019/08/05/saving-and-referencing-research-software-in-software-heritage/ +# https://annex.softwareheritage.org/public/guidelines/archive-research-software.pdf +** Software Heritage for Research and Innovation :noexport: +*** Reference platform for /Big Code/ :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=universal, leftpic=true, width=.2\linewidth + :BEAMER_env: picblock + :BEAMER_act: + :END: + - unique *observatory* of all software development + - *big data, machine learning* paradise: classification, trends, coding patterns, code completion... +#+BEAMER: \pause +*** First datasets are available! + - full graph of software development (~20Bn nodes, ~200Bn edges) + see Pietri, Spinellis, Zacchiroli, MSR 2019 https://dx.doi.org/10.1109/MSR.2019.00030 + - MSR 2020 mining competition + see https://2020.msrconf.org/track/msr-2020-mining-challenge#Call-for-Papers +** Demo time +*** Exploring the archive + - [[https://www.softwareheritage.org/2019/07/20/archiving-and-referencing-the-apollo-source-code/][Apollo 11]] + - [[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;lines=548-572/][Quake III Arena]] +*** Feature highlights + - [[https://archive.softwareheritage.org/save/][Save code now]] +*** Archive interconnect + - [[https://swmath.org/software/7116][SemiPar on swmath.org]] +** Conclusion +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +#+latex: \hfill {\Large\bf Thank you!} \hfill\mbox{} + #+BEGIN_EXPORT latex + \begin{thebibliography}{Foo Bar, 1969} + \footnotesize + + \bibitem{Abramatic2018} Jean-François Abramatic, Roberto Di Cosmo, Stefano Zacchiroli\newblock + Building the Universal Archive of Source Code\newblock + Communications of the ACM, October 2018 + + \bibitem{DiCosmo2018} Roberto Di Cosmo, Morane Gruenpeter, Stefano Zacchiroli\newblock + Identifiers for Digital Objects: the Case of Software Source Code Preservation\newblock + iPRES 2018: Intl. Conf. on Digital Preservation + \end{thebibliography} + #+END_EXPORT +* Appendix :B_appendix: + :PROPERTIES: + :BEAMER_env: appendix + :END: +** + \vfill + \centerline{\Huge Appendix} + \vfill +* The SWH IDentifier schema +#+INCLUDE: "../../common/modules/swh-pids.org::#swhexamples" :minlevel 2 +** Software Source code: pillar of Open Science :noexport: +*** Software is everywhere in modern research :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=papermountain, leftpic=true, width=.3\linewidth + :BEAMER_env: picblock + :BEAMER_COL: .6 + :END: +#+BEGIN_QUOTE +[...] software [...] essential in their fields. + +\mbox{}\hfill Top 100 papers (Nature, 2014) +#+END_QUOTE +#+BEGIN_QUOTE +Sometimes, if you dont have the software, you dont have the data + +\mbox{}\hfill Christine Borgman, Paris, 2018 +#+END_QUOTE +# http://www.nature.com/news/the-top-100-papers-1.16224 +#+BEAMER: \pause +*** Open Science: three pillars :B_block: + :PROPERTIES: + :BEAMER_COL: .45 + :BEAMER_env: block + :END: +#+latex: \begin{center} +#+ATTR_LATEX: :width \extblockscale{\linewidth} +file:PreservationTriangle.png +#+latex: \end{center} +#+BEAMER: \pause +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Nota bene + \hfill The links in the picture are *essential* +** The state of the art is not ideal :noexport: +#+INCLUDE: "../../common/modules/reprod-bad-sota.org::#collbergmethod" :only-contents t :minlevel 3 +** ... cont'd :noexport: +#+INCLUDE: "../../common/modules/reprod-bad-sota.org::#collbergfindings" :only-contents t :minlevel 3 +#+BEAMER: \pause +*** The main reasons + \hfill source code (/or the right version of it/) cannot be found +** Pressure to make the source code available is raising :noexport: +*** Why + Necessary to + - /reproduce/ and verify, + - /modify/ and /evolve/, *building new experiments* from old ones +#+BEAMER: \pause +*** When and where + - debate started end of first 2000 decade (biology, statistics, medicine, etc.) + - growing in Computer Science since the [[https://www.artifact-eval.org/about.html][ESEC/FSE 2011 Artifact Evaluation context]] (winner: Vouillon and Di Cosmo) + +** Where we stand :noexport: +*** A wealth of initiatives! + - Policies: ACM [[https://www.acm.org/publications/policies/artifact-review-badging][Artifact Review and Badging]], ... + - Working groups: [[https://www.force11.org/software-citation-principles][FORCE11]], [[https://www.rd-alliance.org/groups/software-source-code-ig][RDA]], [[https://www.ouvrirlascience.fr/logiciels-libres-et-open-source/][SPSO]], ... + - Metrics: [[https://www.ouvrirlascience.fr/about-the-proposal-for-software-indicators-in-open-science-monitor-3/][Open Science Monitor]] (Elsevier!), ... + - Journals: [[https://www.ipol.im/][IPOL]], ReScience, InsightJournal, eLife, ACM DL, ... + - Repositories: FigShare, Zenodo, ... +#+BEAMER: \pause +*** + \hfill but ... \hfill \mbox{} +*** Lack of recognition + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .5 + :END: + not (yet) a first class citizen + - in the EOSC plan +# - in the EU copyright reform + - in the scholarly works +#+BEAMER: \pause +*** Lack of proper guidance on how to + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .5 + :END: + - /archive/ and /reference/ software + - choose a license + - /cite/ a software project +# #+BEAMER: \pause +# *** :B_ignoreheading: +# :PROPERTIES: +# :BEAMER_env: ignoreheading +# :END: +# *** Lack of basic prerequisites to reproducibility +# See a discussion in \url{annex.softwareheritage.org/talks/2018/2018-09-17-STScI_public.pdf} + +** ACM take on Reproducibility, Replicability and Source code :noexport: + ACM policies: [[https://www.acm.org/publications/policies/artifact-review-badging][Artifact Review and Badging]] +*** Terminology (not consensual yet!) + :PROPERTIES: + :BEAMER_col: 0.5 + :BEAMER_env: block + :END: + - *Repeatability* \\ same team, same experimental setup + - *Replicability* \\ different team, same experimental setup + - *Reproducibility* \\ different team, different experimental setup +#+BEAMER: \pause +*** Badging software artefacts + :PROPERTIES: + :BEAMER_col: 0.4 + :BEAMER_env: block + :END: +#+latex: \begin{center} + #+ATTR_LATEX: :width 0.6\linewidth +# file:file:metadata_landscape_final.png +file:acm_badges.png +#+latex: \end{center} +#+BEAMER: \pause + +** What is at stake \hfill in increasing order of difficulty :noexport: +*** Archival + Research software artifacts must be properly *archived*\\ + \hfill make it sure we can /retrieve/ them (/reproducibility/) +#+BEAMER: \pause +*** Identification + Research software artifacts must be properly *referenced*\\ + \hfill make it sure we can /identify/ them (/reproducibility/) +#+BEAMER: \pause +*** Metadata + Research software artifacts must be properly *described*\\ + \hfill make it easy to /discover/ them (/visibility/) +#+BEAMER: \pause +*** Citation + Research software artifacts must be properly *cited* /(not the same as referenced!)/\\ + \hfill to give /credit/ to authors (/evaluation/!) +* Towards Software Citation :noexport: +** Context +*** Many articles/guidelines :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .4 + :END: + - reproducibility + - archival + - credit and evaluation +#+BEAMER: \pause +*** Most common limitations :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .6 + :END: + - software is 'just data' + - citation = reference = DOIs + - citation produced by automated tools +#+BEAMER: \pause +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** A few remarkable exceptions + - [[https://www.ascl.net][ASCL]] (since 1999): metadata only, carefully curated + - [[https://www.geodynamics.org][geodynamics.org]] : source, documentation, metadata + - [[https://swmath.org][swmath.org]] : software catalog via articles +#+BEAMER: \pause +*** Software Citation WG at Inria (since 10/2018) + - leverage a 50 year experience, make recommendations + - read more https://hal.archives-ouvertes.fr/hal-02135891 +** Why it is not simple +*** Software is complex + - Structure :: monolithic/composite; self-contained/external dependencies + - Lifetime :: one-shot/long term + - Community :: one man/one team/distributed community + - Authorship :: complex set of roles /(more later)/ + - Authority :: institutions/organizations/communities/single person +#+BEAMER: \pause +*** Various granularities + - Exact status of the source code :: for reproducibility, e.g. +#+latex: \emph{``you can find at \href{https://archive.softwareheritage.org/swh:1:cnt:cdf19c4487c43c76f3612557d4dc61f9131790a4;lines=146-187/}{swh:1:cnt:cdf19c4487c43c76f3612557d4dc61f9131790a4;lines=146-187} the core algorithm used in this article''} + + - (Major) release :: \emph{``This functionality is available in OCaml version 4''} + + - Project :: \emph{``Inria has created OCaml and Scikit-Learn''}. +** Proposals for the scholarly world +*** Refined ontology for contributors :B_block: + :PROPERTIES: + :BEAMER_COL: .55 + :BEAMER_env: block + :END: + - Design, Architecture, + - Coding, Testing, Debugging, + - Documentation, Maintenance, Support, + - Management + \hfill see also [[https://www.casrai.org/credit.html][CRediT]], [[https://geodynamics.org/cig/metadata/?software=aspect&version=2.1.0][Geodynamics]] +#+BEAMER: \pause +*** Reference is distinct from citation :B_block: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + - *Reference* is for /reproducibility/ + - *Citation* is for /credit/ + \hfill They must not be conflated + - Beware :: of the numbers game: + \hfill ... do we really want an /s-index/ ? +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +#+BEAMER: \pause +*** Keep the human in the loop :B_block: + :PROPERTIES: + :BEAMER_env: block + :END: + When /credit/ is at stake, automation/crowdsourcing is not enough!\\ + \hfill Humans /are needed/ to get /quality information/ +** Inria's ongoing contributions +*** Software Heritage + - universal archive :: (research) software source code [[https://archive.softwareheritage.org/][archived and referenced]] +*** Reproducibility + - tools :: [[https://www.gnu.org/software/guix/][Guix]] (now [[https://www.softwareheritage.org/2019/04/18/software-heritage-and-gnu-guix-join-forces-to-enable-long-term-reproducibility/][with Software Heritage]]) + - training/research :: RR workshops, MOOC +*** Research software curation + - HAL - SWH bridge :: curation of metadata, and [[https://hal.inria.fr/hal-01872189][deposit in Software Heritage]] +* Under the hood :noexport: +** Automation, and storage :maybemove: + #+BEAMER: \begin{center} + #+BEAMER: \mode{\only<1>{\includegraphics[width=\extblockscale{.9\textwidth}]{swh-dataflow-merkle-listers.pdf}}} + #+BEAMER: \only<2-3>{\includegraphics[width=\extblockscale{.9\textwidth}]{swh-dataflow-merkle.pdf}} + #+BEAMER: \end{center} + #+BEAMER: \pause + #+BEAMER: \pause + - full development history *permanently archived!* + +** The archive in pictures :noexport: + #+LATEX: \centering\forcebeamerstart + #+LATEX: \only<1>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_1.pdf}}} + #+LATEX: \only<2>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/contents.pdf}}} + #+LATEX: \only<3>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_2_contents.pdf}}} + #+LATEX: \only<4>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/directories.pdf}}} + #+LATEX: \only<5>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_3_directories.pdf}}} + #+LATEX: \only<6>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/revisions.pdf}}} + #+LATEX: \only<7>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_4_revisions.pdf}}} + #+LATEX: \only<8>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/releases.pdf}}} + #+LATEX: \only<9>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/merkle_5_releases.pdf}}} + #+LATEX: \only<10>{\colorbox{white}{\includegraphics[width=\extblockscale{\linewidth}]{git-merkle/snapshots.pdf}}} + #+LATEX: \forcebeamerend +** A bird's eye view :noexport: + #+BEAMER: \begin{center} + #+BEAMER: \includegraphics[width=\extblockscale{1.3\textwidth}]{swh-merkle-dag-wide.pdf} + #+BEAMER: \end{center} +* Identifiers are not easy :noexport: +** URL decay disrupts the /web of reference/ + #+INCLUDE: "../../common/modules/urls-decay.org::#rfc" :minlevel 3 :only-contents t + #+INCLUDE: "../../common/modules/urls-decay.org::#examples" :minlevel 2 +** DOI limitations + #+INCLUDE: "../../common/modules/doi-analysis.org::#doiexplained" :minlevel 3 :only-contents t diff --git a/talks-public/2019-10-04-SWHforDO/Makefile b/talks-public/2019-10-04-SWHforDO/Makefile new file mode 100644 index 0000000..68fbee7 --- /dev/null +++ b/talks-public/2019-10-04-SWHforDO/Makefile @@ -0,0 +1 @@ +include ../Makefile.slides diff --git a/talks-public/2019-10-04-SWHforDO/centralisedvcs.png b/talks-public/2019-10-04-SWHforDO/centralisedvcs.png new file mode 100644 index 0000000..0124887 Binary files /dev/null and b/talks-public/2019-10-04-SWHforDO/centralisedvcs.png differ diff --git a/talks-public/2019-10-04-SWHforDO/distvcs.png b/talks-public/2019-10-04-SWHforDO/distvcs.png new file mode 100644 index 0000000..1adcda9 Binary files /dev/null and b/talks-public/2019-10-04-SWHforDO/distvcs.png differ diff --git a/talks-public/2019-10-04-SWHforDO/dvcs.png b/talks-public/2019-10-04-SWHforDO/dvcs.png new file mode 100644 index 0000000..7c89e8b Binary files /dev/null and b/talks-public/2019-10-04-SWHforDO/dvcs.png differ diff --git a/talks-public/2019-10-04-SWHforDO/localvcs.png b/talks-public/2019-10-04-SWHforDO/localvcs.png new file mode 100644 index 0000000..9175ed6 Binary files /dev/null and b/talks-public/2019-10-04-SWHforDO/localvcs.png differ