diff --git a/talks-public/2019-10-26-MiniDebConfVaumarcus/2019-10-26-MiniDebConfVaumarcus.org b/talks-public/2019-10-26-MiniDebConfVaumarcus/2019-10-26-MiniDebConfVaumarcus.org new file mode 100644 index 0000000..e58303d --- /dev/null +++ b/talks-public/2019-10-26-MiniDebConfVaumarcus/2019-10-26-MiniDebConfVaumarcus.org @@ -0,0 +1,321 @@ +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) +#+TITLE: Software Heritage: The Great Library of Source Code +# does not allow short title, so we override it for beamer as follows : +#+BEAMER_HEADER: \title[Software Heritage]{Software Heritage\\The Great Library of Source Code} +#+BEAMER_HEADER: \author{Nicolas Dandrimont} +#+BEAMER_HEADER: \date[2019-10-26 Vaumarcus]{26 october 2019\\MiniDebConf Vaumarcus} +#+AUTHOR: Nicolas Dandrimont +#+DATE: 2019-10-26 +#+EMAIL: olasd@softwareheritage.org +#+DESCRIPTION: Software Heritage: The Great Library of Source Code +#+KEYWORDS: software heritage legacy preservation knowledge mankind technology + +#+INCLUDE: "../../common/modules/prelude.org" :minlevel 1 +#+INCLUDE: "../../common/modules/169.org" +#+BEAMER_HEADER: \institute[Software Heritage]{Software Engineer - Software Heritage\\\href{mailto:olasd@softwareheritage.org}{\tt olasd@softwareheritage.org}} + +#+LATEX_HEADER_EXTRA: \usepackage{bbding} +#+LATEX_HEADER_EXTRA: \DeclareUnicodeCharacter{66D}{\FiveStar} +#+LATEX_HEADER_EXTRA: \usepackage{tikz} +#+LATEX_HEADER_EXTRA: \usetikzlibrary{arrows,shapes} +#+LATEX_HEADER_EXTRA: \definecolor{swh-orange}{RGB}{254,205,27} +#+LATEX_HEADER_EXTRA: \definecolor{swh-red}{RGB}{226,0,38} +#+LATEX_HEADER_EXTRA: \definecolor{swh-green}{RGB}{77,181,174} + + +* Software is everywhere around us +** Software is everywhere + :PROPERTIES: + :CUSTOM_ID: softwareispervasive + :END: + #+latex: \begin{center} + #+ATTR_LATEX: :width .5\linewidth +file:software-center.pdf + #+latex: \end{center} +#+BEGIN_EXPORT latex +\note{If we look around us, we see software everywhere.\\[1em] +It powers our industries, fuels innovation, mediates access to all digital information, +and is a pillar of modern scientific research.\\[1em] % +%Our industry, our society, our own lives depend on software!\\[1em] +Software in general, and Free and Open Source software in particular, is at the heart of our society.\\[1em] +The Source code of this software embodies our collective knowledge, and is a growing part of our cultural heritage.\\ +%Now the question is: are we taking care of it? +} +#+END_EXPORT +#+BEAMER: \pause +*** Software embodies a growing part of... + \hfill ... our scientific, /technical/ and Cultural Heritage! +** Source Code: /executable/ and /human readable/ knowledge +#+INCLUDE: "../../common/modules/source-code-different-short.org::#thesourcecode" :only-contents t :minlevel 3 + +** ~ 50 years, a lightning fast growth + # #+INCLUDE: "../../common/modules/50years-source-code.org::#apollolinux" :only-contents t :minlevel 3 +*** Apollo 11 (~60.000 lines), 1969 :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=Margaret_Hamilton, width=.4\linewidth, leftpic=true + :BEAMER_env: picblock + :BEAMER_act: + :BEAMER_COL: .58 + :END: + "When I first got into it, nobody knew what it was that we were doing. It was like the Wild West."\\ + \mbox{}\hfill Margaret Hamilton\\ +# https://github.com/chrislgarry/Apollo-11 +# https://archive.softwareheritage.org/api/1/origin/git/url/https://github.com/chrislgarry/Apollo-11 + #+BEAMER: \pause +*** Linux Kernel (in your pockets!) :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=Linuxlinecount, width=1.3\linewidth, leftpic=true + :BEAMER_env: picblock + :BEAMER_COL: .42 + :BEAMER_act: + :END: +# \mbox{}\\ + \vfill + #+BEAMER: \pause +*** Harold Abelson, Structure and Interpretation of Computer Programs \hfill (1985) + /“Programs must be written for people to read, and only incidentally for machines to execute.”/ + #+BEAMER: \pause +*** Len Shustek, Computer History Museum \hfill (2006) + \hfill /“Source code provides a view into the mind of the designer.”/ +#+INCLUDE: "../../common/modules/swh-motivations-foss.org::#fragile" :minlevel 2 +** We are at a turning point +*** Preserve the past + \hfill Only a few years left to recover the history of software technology +#+BEAMER: \pause +*** Improve the future + \hfill We need a \alert{universal} platform for all the future software source code +* Software Heritage + #+INCLUDE: "../../common/modules/swh-overview-sourcecode.org::#mission" :minlevel 2 +** Core principles + #+latex: \begin{center} + #+ATTR_LATEX: :width .9\linewidth + file:SWH-as-foundation-slim.png + #+latex: \end{center} + #+BEAMER: \pause +*** Open approach :B_block:BMCOL: + :PROPERTIES: + :BEAMER_col: 0.4 + :BEAMER_env: block + :END: + - 100% Free and Open Source Software + - transparency +*** In for the long haul :B_block:BMCOL: + :PROPERTIES: + :BEAMER_col: 0.4 + :BEAMER_env: block + :END: + - replication + - non profit + #+INCLUDE: "../../common/modules/status-extended.org::#archivinggoals" :minlevel 2 +* Data Model + #+INCLUDE: "../../common/modules/status-extended.org::#architecture" :only-contents t + #+INCLUDE: "../../common/modules/status-extended.org::#merkletree" :minlevel 2 + #+INCLUDE: "../../common/modules/status-extended.org::#datamodel" :only-contents t + #+INCLUDE: "../../common/modules/status-extended.org::#dagdetailsmall" :only-contents t +# #+INCLUDE: "../../common/modules/status-extended.org::#merklerevision" :only-contents t + #+INCLUDE: "../../common/modules/status-extended.org::#archive" :minlevel 2 + +* Accessing the archive + #+INCLUDE: "../../common/modules/webui.org::#intro" + +** Visiting the archive: the Apollo 11 source code +*** Margaret Hamilton today + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .42 + :END: +#+ATTR_LATEX: :width 0.4\linewidth + file:mhh-sweden.3-190x300.jpg +*** The Apollo 11 source code in SWH + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .42 + :END: + file:swh-apollo11.png +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Some pointers +# Source code entry point + - [[https://archive.softwareheritage.org/swh:1:dir:3c235a1a8223727a964c154eb8f2273176c48c88;origin=https://github.com/chrislgarry/Apollo-11/][Entry point]] + - [[https://archive.softwareheritage.org/swh:1:cnt:41ddb23118f92d7218099a5e7a990cf58f1d07fa;origin=https://github.com/chrislgarry/Apollo-11;lines=53-87/][Burn, baby, burn!]] +** Visiting the archive: the Quake 3 source code +*** John Carmack + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .42 + :END: +#+ATTR_LATEX: :width .7\linewidth + file:John_Carmack_GDC_2010.jpg +*** The Quake 3 source code in SWH + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .52 + :END: + file:swh-quake3.png +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Some pointers +# Source code entry point + - [[https://archive.softwareheritage.org/swh:1:dir:c6f07c2173a458d098de45d4c459a8f1916d900f;origin=https://github.com/id-Software/Quake-III-Arena/][Entry point]] + - [[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;lines=552-572/][What the f...]] + # #+INCLUDE: "../../common/modules/status-extended.org::#apiintro" :minlevel 2 + # #+INCLUDE: "../../common/modules/vault.org::#vault-short" :minlevel 2 :only-contents t + # #+INCLUDE: "../../common/modules/vault.org::#main" :minlevel 2 :only-contents t + + #+INCLUDE: "../../common/modules/webui.org" :minlevel 2 :lines "21-" + +* Architecture + #+INCLUDE: "../../common/modules/status-extended.org::#technology" :only-contents t + #+INCLUDE: "../../common/modules/status-extended.org::#development" :only-contents t + +* Recent updates + +** Google Summer of Code +*** [[https://wiki.softwareheritage.org/wiki/Google_Summer_of_Code_2019/Web_UI_improvements][Increase archive coverage]] - Archit Agrawal +- Listers for more upstream repositories (Ruby, NodeJS, CRAN, GNU Project) +- Refactoring of loaders for simpler implementation of new instances (e.g. CPAN?) + +*** [[https://wiki.softwareheritage.org/wiki/Google_Summer_of_Code_2019/Web_UI_improvements][End-to-end testing of the web frontend]] - Kalpit Kothari +- using cypress +- automates a lot of clicky QA work + +*** [[https://wiki.softwareheritage.org/wiki/Google_Summer_of_Code_2019/Graph_compression][Graph compression]] - Thibault Allançon +- Handle hundreds of billions of edges in (sensibly sized) memory +- Fast algorithms for large scale analysis... on a single machine +- Toolkit for source code analysis by the scientific community + +** Replication +*** Mirror infrastructure +- Based on kafka, and a [[https://forge.softwareheritage.org/source/swh-journal][dedicated Python component]] +- Pushes all object types to topics as soon as they're added +- Allows building a full replica of the archive, or just subscribing to some object types + +*** [[https://www.softwareheritage.org/mirrors/][Mirroring agreements]] +- Two partner organizations hosting a full mirror (Work in Progress) +- FOSSID +- ENEA + +** Preservation +*** [[https://en.unesco.org/foss/paris-call-software-source-code][Paris Call: Software Source Code as Heritage for Sustainable Development]] +- Signed in February 2019, by a group of experts on Software Preservation, with the support of UNESCO +- Global awareness of the importance of preserving software in general, and software source code in particular, for sustainable development. + +*** [[https://www.softwareheritage.org/swhap/][Software Heritage Acquisition Protocol]] +- Published in October 2019, in collaboration with the University of Pisa +- Step by step Collection and Curation of meaningful historical Software Source Code + +* Today +** Yes, now you can! +*** Wayback machine for source code :B_block: + :PROPERTIES: + :BEAMER_COL: .46 + :BEAMER_env: block + :END: + \hfill *retrieve* the source code as it was +*** Reference catalog :B_block: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + \hfill use *intrinsic identifiers* for software +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Open science :B_block: + :PROPERTIES: + :BEAMER_COL: .46 + :BEAMER_env: block + :END: + \hfill *deposit* scientific software (via HAL) +*** Universal knowledge base :B_block: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + \hfill store the *knowledge* about source code +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** And much, much more is in store! + \hfill With your help? +** The next steps +*** The Software Heritage Foundation :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .4 + :END: + - independent + - long term mission + - multistakeholder +*** The community :B_block: + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .58 + :END: + - academia: Open Access, research + - industry: better software + - cultural heritage: *all* the software history +*** The mirror network :B_block: + :PROPERTIES: + :BEAMER_env: block + :END: + - resilience + - biodiversity +#+BEGIN_EXPORT latex +\begin{quote} + “Let us save what remains: not by vaults and locks which fence them from the + public eye and use in consigning them to the waste of time, but by such a + multiplication of copies, as shall place them beyond the reach of accident.”\\ + \hfill Thomas Jefferson +\end{quote} +#+END_EXPORT +* 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 +* FAQ :B_appendix: + :PROPERTIES: + :BEAMER_env: appendix + :END: +** Q: do you archive /only/ Free Software? + - We only crawl origins /meant/ to host source code (e.g., forges) + - Most (~90%) of what we /actually/ retrieve is textual content + #+BEAMER: \vfill +*** Our goal + Archive *the entire Free Software Commons* + + #+BEAMER: \vfill +*** + - Large parts of what we retrieve is /already/ Free Software, today + - Most of the rest /will become/ Free Software in the long term + - e.g., at copyright expiration diff --git a/talks-public/2019-10-26-MiniDebConfVaumarcus/Makefile b/talks-public/2019-10-26-MiniDebConfVaumarcus/Makefile new file mode 100644 index 0000000..68fbee7 --- /dev/null +++ b/talks-public/2019-10-26-MiniDebConfVaumarcus/Makefile @@ -0,0 +1 @@ +include ../Makefile.slides