diff --git a/talks-public/2020-10-29-JAIIO/2020-10-29-JAIIO.org b/talks-public/2020-10-29-JAIIO/2020-10-29-JAIIO.org new file mode 100644 index 0000000..800a88d --- /dev/null +++ b/talks-public/2020-10-29-JAIIO/2020-10-29-JAIIO.org @@ -0,0 +1,420 @@ +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) +#+TITLE: Software Heritage: why and how we preserve our Software Commons +# #+AUTHOR: Roberto Di Cosmo +# #+EMAIL: roberto@dicosmo.org @rdicosmo @swheritage +#+BEAMER_HEADER: \date[29/10/2020]{29/10/2020, \emph{49 JAIIO}} +#+BEAMER_HEADER: \title[(CC-BY 4.0) Preserving the Software Commons]{Software Heritage: why and how we preserve our Software Commons} +#+BEAMER_HEADER: \author[Roberto Di Cosmo]{Roberto Di Cosmo\\Inria and Universit\'e de Paris} +# #+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} +* Software Source Code: precious part of our Knowledge +** Software source code: a precious part of our heritage + #+INCLUDE: "../../common/modules/source-code-different-short.org::#softwareisdifferent" :only-contents t :minlevel 3 +** Software Commons, Open Science + #+INCLUDE: "../../common/modules/foss-commons.org::#commonsdef" :only-contents t +#+BEAMER: \pause +*** + *Source code*: part of our commons\hfill ... pillar of Open Science! /(would require another talk)/ +#+BEAMER: \pause +*** Precious, endangered /executable/ and /human readable/ knowledge + key people *passing away*, platforms (GoogleCode, Gitorious, etc.) closing down ...\\ +* Meet 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 +** Largest software archive, principled \hfill \url{http://bit.ly/swhpaper} + #+latex: \begin{center} + #+ATTR_LATEX: :width 0.5\linewidth + file:SWH-as-foundation-slim.png + #+latex: \end{center} + #+BEAMER: \pause + #+latex: \centering + #+ATTR_LATEX: :width \extblockscale{.6\linewidth} + file:2020-09-08-growth.png + #+BEAMER: \pause +*** Technology + :PROPERTIES: + :BEAMER_col: 0.34 + :BEAMER_env: block + :END: + - transparency and FOSS + - replicas all the way down +*** Content (billions!) + :PROPERTIES: + :BEAMER_col: 0.32 + :BEAMER_env: block + :END: + - *intrinsic identifiers* + - facts and provenance +*** Organization + :PROPERTIES: + :BEAMER_col: 0.33 + :BEAMER_env: block + :END: + - non-profit + - multi-stakeholder +** An international, non profit initiative... + :PROPERTIES: + :CUSTOM_ID: support + :END: +*** Sharing the vision :B_block: + :PROPERTIES: + :CUSTOM_ID: endorsement + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + #+LATEX: \begin{center}{\includegraphics[width=\extblockscale{.4\linewidth}]{unesco_logo_en_285}}\end{center} + #+LATEX: \vspace{-0.8cm} + #+LATEX: \begin{center}\vskip 1em \includegraphics[width=\extblockscale{1.4\linewidth}]{support.pdf}\end{center} + #+latex: \small And many more ...\\ + #+latex:\mbox{}~~~~~~~\tiny\url{www.softwareheritage.org/support/testimonials} +#+BEAMER: \pause +*** Donors, members, sponsors :B_block: + :PROPERTIES: + :CUSTOM_ID: sponsors + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + #+LATEX: \begin{center}\includegraphics[width=\extblockscale{.4\linewidth}]{inria-logo-new}\end{center} + #+LATEX: \begin{center} + # #+LATEX: \includegraphics[width=\extblockscale{.2\linewidth}]{sponsors-levels.pdf} + #+LATEX: \colorbox{white}{\includegraphics[width=\extblockscale{1.4\linewidth}]{sponsors.pdf}} + #+LATEX: \end{center} +# - sponsoring / partnership :: \hfill \url{sponsorship.softwareheritage.org} +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Research collaboration :B_picblock:noexport: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: picblock + :BEAMER_OPT: pic=Qwant_Logo, leftpic=true + :END: + source code search engine +*** See more :noexport: + \hfill\tiny\url{http:://www.softwareheritage.org/support/testimonials} +*** Global network :B_picblock:noexport: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: picblock + :BEAMER_OPT: pic=fossid, leftpic=true, width=.3\linewidth + :END: + - first *independent mirror* + - increased reliability +** A peek under the hood + #+BEAMER: \begin{center} + #+BEAMER: \mode{\only<1>{\includegraphics[width=\extblockscale{1\textwidth}]{swh-dataflow-merkle-listers.pdf}}} + #+BEAMER: \only<2-3>{\includegraphics[width=\extblockscale{1\textwidth}]{swh-dataflow-merkle.pdf}} + #+BEAMER: \end{center} +#+BEAMER: \pause +#+BEAMER: \pause + /Global development history/ permanently archived in a /unique/ git-like Merkle DAG + - *~400 TB* (uncompressed) blobs, *~20 B* nodes, *~280 B* edges + # - *GitHub*, Gitlab.com, Bitbucket, /Gitorious/, /GoogleCode/, GNU, PyPi, Debian, NPM... +** Software Heritage Identifiers (SWHID) \hfill [[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][link to full docs]] +# #+INCLUDE: "../../common/modules/swh-id-syntax.org::#swh-id-syntax" :only-contents t :minlevel 3 + #+LATEX: \centering%\forcebeamerstart + #+LATEX: \mode{\only<1>{\includegraphics[width=\linewidth]{SWHID-v1.4_1.png}}} + #+LATEX: \mode{\only<2>{\includegraphics[width=\linewidth]{SWHID-v1.4_2.png}}} + #+LATEX: \only<3->{\includegraphics[width=\linewidth]{SWHID-v1.4_3.png}} + #+LATEX: %\forcebeamerend +*** An emerging standard :B_block: + :PROPERTIES: + :BEAMER_act: <4-> + :BEAMER_COL: .6 + :BEAMER_env: block + :END: + - in Linux Foundation's [[https://spdx.github.io/spdx-spec/appendix-VI-external-repository-identifiers/#persistent-id][SPDX 2.2]] + - IANA registered, WikiData property [[https://www.wikidata.org/wiki/Property:P6138][P6138]] +*** Examples: :B_block: + :PROPERTIES: + :BEAMER_act: <5-> + :BEAMER_COL: .4 + :BEAMER_env: block + :END: + - [[https://archive.softwareheritage.org/swh:1:cnt:64582b78792cd6c2d67d35da5a11bb80886a6409;origin=https://github.com/virtualagc/virtualagc;lines=245-261/][Apollo 11 AGC excerpt]], + - [[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;lines=549-572/][Quake III rsqrt]] + +** A revolutionary infrastructure for software source code + #+BEAMER: \vspace{-2mm} +*** The /graph/ of Software Development :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_COL: .5 + :BEAMER_OPT: pic=git-merkle/merkle-vertical, leftpic=true, width=.4\linewidth + :END: + All software development with its history, + in *a single graph* ... + #+BEAMER: \pause \vspace{-2mm} +*** The /blockchain/ of Software Development :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=merkle, leftpic=true, width=.8\linewidth + :BEAMER_env: picblock + :BEAMER_COL: .5 + :BEAMER_act: + :END: + ... a single *Merkle* graph, with /intrinsic ids/ for *traceability* + #+BEAMER: \pause +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** A /pillar/ of Open Science :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_OPT: pic=PreservationTriangle.png,leftpic=true, width=.6\linewidth + :BEAMER_COL: .5 + :END: + Reference *archive* of\\ + Research Software + #+BEAMER: \pause +*** Reference platform for /Big Code/ :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=universal, leftpic=true, width=.4\linewidth + :BEAMER_env: picblock + :BEAMER_COL: .5 + :BEAMER_act: + :END: + *One uniform data structure* enables /massive/ machine learning + for *quality, cybersecurity*, etc. + +* The archive in action +** Rescuing landmark legacy software... \hfill /\href{https://unesdoc.unesco.org/ark:/48223/pf0000371017}{SWHAP}/ + # variant of #+INCLUDE: "../../common/modules/swh-acquisition-process.org::#swhap" :only-contents t :minlevel 3 +*** Paris Call on Software Source Code + “[We call to] support efforts to gather and preserve the artifacts and + narratives of the history of computing, while the earlier creators are still + alive” + #+BEAMER: \pause +*** :B_block:BMCOL: + :PROPERTIES: + :BEAMER_col: 0.3 + :END: +#+BEGIN_EXPORT latex +\begin{center} +\includegraphics[width=\extblockscale{1.1\linewidth}]{SWHAP-cover.pdf} +\end{center} +#+END_EXPORT +*** :B_block:BMCOL: + :PROPERTIES: + :BEAMER_col: 0.7 + :END: + - **Rescue** Legacy Software from different media\\ + \mbox{}\\ + - **Curate** the code + - reconstruct the development history + + /Software Heritage - GitHub/ work on fixing git + - collect the metadata\\ + \mbox{}\\ + - **Archive** in Software Heritage +*** + *UNESCO, UniPi and Software Heritage* collaboration \hfill worldwide scope + +** An example: TAUmus, from Pisa (70's) + #+INCLUDE: "../../common/modules/swh-acquisition-process.org::#swhaptaumus" :only-contents t :minlevel 3 + +** ... and massive amount of present source code! +*** Saving 250.000 endangered repositories... + - summer 2019: BitBucket announce Mercurial VCS phase out + - fall 2019: Software Heritage teams up with Octobus (funded by NLNet, thanks!) + - july 2020: BitBucket erases /250.000/ repositories + - august 2020: [[https://bitbucket-archive.softwareheritage.org][bitbucket-archive.softwareheritage.org]] is live +#+BEAMER: \pause +*** ... preserving the web of knowledge \hfill (Tweet [[https://twitter.com/gabrielaltay/status/1300218789762662401][is here]] ) :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_OPT: pic=bitbucket_swh_praise.png, width=.6\linewidth, leftpic=true + :END: + +\\ + *Bottomline*\\ + /explicit deposit/ is important, ...\\ + \mbox{}\hfill ... and we must promote it...\hfill\mbox{}\\ + \mbox{}\hfill ... but will never be enough.\\ +\mbox{}\\ +\mbox{}\hfill /(think also of all software dependencies!)/ + +* Demo time! +** A walkthrough + - Browse [[https://archive.softwareheritage.org][the archive]] + - Get and use SWHIDs ([[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][full specification available online]]) + - cite software [[https://www.softwareheritage.org/2020/05/26/citing-software-with-style/][with the biblatex-software style]] from CTAN + - Example use in a research article: compare Fig. 1 and conclusions + - in [[http://www.dicosmo.org/Articles/2012-DaneluttoDiCosmo-Pcs.pdf][the 2012 version]] + - in [[https://www.dicosmo.org/share/parmap_swh.pdf][the updated version]] using SWHIDs and Software Heritage + - Example use in a research article: extensive use of SWHIDs in [[https://www.dicosmo.org/Articles/2020-ReScienceC.pdf][a replication experiment]] + - [[https://save.softwareheritage.org][Trigger archival]] of your preferred software in a breeze + - [[https://doc.archives-ouvertes.fr/en/deposit/deposit-software-source-code/][curated deposit in SWH via HAL]], see for example: + [[https://hal.archives-ouvertes.fr/hal-02130801][LinBox]], [[https://hal.archives-ouvertes.fr/hal-01897934][SLALOM]], [[https://hal.archives-ouvertes.fr/hal-02130729][Givaro]], [[https://hal.archives-ouvertes.fr/hal-02137040][NS2DDV]], [[https://hal.archives-ouvertes.fr/lirmm-02136558][SumGra]], [[https://hal.archives-ouvertes.fr/hal-02155786][Coq proof]], ... + - rescue landmark legacy software, see the [[https://www.softwareheritage.org/swhap/][SWHAP process with UNESCO]] + +* Conclusion +** Come in, we're open! \hfill www.softwareheritage.org +#+BEGIN_EXPORT latex + \begin{center} + \includegraphics[width=.6\linewidth]{SWH-logo.pdf} + \end{center} + \begin{center} + {\large \url{www.softwareheritage.org} \hspace{4em} \url{@swheritage}} + \end{center} +#+END_EXPORT +#+LATEX: {\begin{center}\Large Everybody is concerned, everybody can help build\end{center}} +*** The Library of Alexandria of code :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_COL: 0.42 + :BEAMER_OPT: pic=clock-spring-forward.png,width=.45\linewidth,leftpic=true + :END: + - recover the past + - structure the future +*** A CERN for Software :B_picblock: + :PROPERTIES: + :BEAMER_env: picblock + :BEAMER_COL: 0.5 + :BEAMER_OPT: pic=atacama-telescope.jpg,width=.5\linewidth,leftpic=true + :END: + - build better software + + for industry + + for society as a whole + +* Appendix :B_appendix: + :PROPERTIES: + :BEAMER_env: appendix + :END: +** + \vfill + \centerline{\Huge Appendix} + \vfill +* SWHIDs by the example +** A word on the trust model for systems of identifiers + \vspace{-5pt} +*** Two general classes of systems of identifiers + - intrinsic :: /computed/ from the object /(no registry required, fully decentralised)/\\ + /(e.g.: chemical notation, music notation, hashes, SWHIDs)/\pause + - extrinsic :: /assigned/ by an authority /(need a registry)/\\ + /(e.g.: passport number, DOI, ARK, RRID, etc.)/\pause + \mbox{}\hfill See [[https://www.softwareheritage.org/2020/07/09/intrinsic-vs-extrinsic-identifiers/][the dedicated blog post]] for more details +#+BEAMER: \pause +*** Trust model, extrinsic (e.g. DOIs) :B_block: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: +#+ATTR_LATEX: :width \linewidth +file:doi-vs-pid-1.pdf +#+BEAMER: \pause +*** Trust model, intrinsic (e.g. SWHIDs) :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .45 + :END: +#+ATTR_LATEX: :width .8\linewidth +file:doi-vs-pid-3.pdf +*** Trust model for DOIs with checksums :B_block:noexport: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: +#+ATTR_LATEX: :width \linewidth +file:doi-vs-pid-2.pdf +*** :B_ignoreheading:noexport: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +** Software Heritage Identifiers (SWHID) \hfill [[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][link to full docs]] +# #+INCLUDE: "../../common/modules/swh-id-syntax.org::#swh-id-syntax" :only-contents t :minlevel 3 + #+LATEX: \centering%\forcebeamerstart + #+LATEX: \mode{\only<1>{\includegraphics[width=\linewidth]{SWHID-v1.4_1.png}}} + #+LATEX: \mode{\only<2>{\includegraphics[width=\linewidth]{SWHID-v1.4_2.png}}} + #+LATEX: \only<3->{\includegraphics[width=\linewidth]{SWHID-v1.4_3.png}} + #+LATEX: %\forcebeamerend +*** An emerging standard :B_block: + :PROPERTIES: + :BEAMER_act: <4-> + :BEAMER_COL: .6 + :BEAMER_env: block + :END: + - in Linux Foundation's [[https://spdx.github.io/spdx-spec/appendix-VI-external-repository-identifiers/#persistent-id][SPDX 2.2]] + - IANA registered, WikiData property [[https://www.wikidata.org/wiki/Property:P6138][P6138]] +*** Examples: :B_block: + :PROPERTIES: + :BEAMER_act: <5-> + :BEAMER_COL: .4 + :BEAMER_env: block + :END: + - [[https://archive.softwareheritage.org/swh:1:cnt:64582b78792cd6c2d67d35da5a11bb80886a6409;origin=https://github.com/virtualagc/virtualagc;lines=245-261/][Apollo 11 AGC excerpt]], + - [[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;lines=549-572/][Quake III rsqrt]] + +** 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 +* News +** Milestones :noexport: + #+INCLUDE: "../../common/modules/swh-key-dates.org::#keydates" :minlevel 3 :only-contents t +** News : archiving /public/ code + #+latex: \begin{center} + #+ATTR_LATEX: :width 0.7\linewidth + file:codeetalab.png + #+latex: \end{center} +#+BEAMER: \pause + https://code.etalab.gouv.fr +** News : SWHAP +*** Paris Call on Software Source Code + “[We call to] support efforts to gather and preserve the artifacts and + narratives of the history of computing, while the earlier creators are still + alive” +#+BEAMER: \pause +*** SWHAP : an important step forward + - detailed guidelines to *curate* landmark legacy source code + and *archive* it on Software Heritage + - intense cooperation with *Università di Pisa* and *UNESCO* + - open to all, we'll promote it worldwide +*** + https://www.softwareheritage.org/swhap + diff --git a/talks-public/2020-10-29-JAIIO/METADATA b/talks-public/2020-10-29-JAIIO/METADATA new file mode 100644 index 0000000..cdde6a8 --- /dev/null +++ b/talks-public/2020-10-29-JAIIO/METADATA @@ -0,0 +1,14 @@ +Nombre y apellido +Roberto Di Cosmo + +Mini-CV +Roberto Di Cosmo es profesor titular de Ciencias de la Computación en la Universidad de París, con una larga trayectoria de investigación en Informática Teórica, programación e ingeniería del software. +Defensor del Software Libre desde hace más de dos décadas, es fideicomisario del instituto IMDEA Software y miembro del Consejo Nacional para la Ciencia Abierta en Francia. +Actualmente está de licencia en Inria, donde creó, y dirige, Software Heritage, una iniciativa para construir el archivo universal de todo el código fuente disponible públicamente, en asociación con la UNESCO. + +Imagen +Acessible en linea: https://www.dicosmo.org/bio.html + +Titulo +Software Heritage: porque y como construir el archivo universal del código fuente del software + diff --git a/talks-public/2020-10-29-JAIIO/Makefile b/talks-public/2020-10-29-JAIIO/Makefile new file mode 100644 index 0000000..68fbee7 --- /dev/null +++ b/talks-public/2020-10-29-JAIIO/Makefile @@ -0,0 +1 @@ +include ../Makefile.slides diff --git a/talks-public/2020-10-29-JAIIO/Plenario49JAIIO - AIA-ALSyT.pdf b/talks-public/2020-10-29-JAIIO/Plenario49JAIIO - AIA-ALSyT.pdf new file mode 100644 index 0000000..b3d86a3 Binary files /dev/null and b/talks-public/2020-10-29-JAIIO/Plenario49JAIIO - AIA-ALSyT.pdf differ