diff --git a/talks-public/2019-03-27-gsoc-epita/2019-03-27-gsoc-epita.org b/talks-public/2019-03-27-gsoc-epita/2019-03-27-gsoc-epita.org index df930da..3e50905 100644 --- a/talks-public/2019-03-27-gsoc-epita/2019-03-27-gsoc-epita.org +++ b/talks-public/2019-03-27-gsoc-epita/2019-03-27-gsoc-epita.org @@ -1,360 +1,91 @@ #+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 -#+SUBTITLE: Google Summer of Code -- EPITA +#+SUBTITLE: EPITA #+AUTHOR: Antoine Pietri #+EMAIL: antoine.pietri1@gmail.com @swheritage @seirl_ #+BEAMER_HEADER: \date{March 27th, 2019} -#+BEAMER_HEADER: \title[www.softwareheritage.org]{Software Heritage} +#+BEAMER_HEADER: \title[www.softwareheritage.org]{GSoC @ Software Heritage} #+BEAMER_HEADER: \author{Antoine Pietri} # #+BEAMER_HEADER: \setbeameroption{show notes on second screen} #+BEAMER_HEADER: \institute[Software Heritage]{Software Heritage\\\href{mailto:antoine.pietri1@gmail.com}{\tt antoine.pietri1@gmail.com}} #+BEAMER_HEADER: \setbeameroption{hide notes} #+KEYWORDS: software heritage legacy preservation knowledge mankind technology # # 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.org" :minlevel 1 # #+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}} -* 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 +* Software Heritage + #+INCLUDE: "../../common/modules/swh-overview-sourcecode.org::#mission" :minlevel 2 + #+INCLUDE: "../../common/modules/status-extended.org::#dataflow" :minlevel 2 + #+INCLUDE: "../../common/modules/status-extended.org::#archive" :minlevel 2 + +** A giant Merkle DAG + #+BEAMER: \centering + #+LATEX: \colorbox{white}{\includegraphics[width=.7\linewidth]{git-merkle/merkle_5_releases.pdf}}% +# #+LATEX: {\colorbox{white}{\includegraphics[width=.7\linewidth]{git-merkle/merkle_1.pdf}}}% + +** Google Summer of Code + +*** Increase the archive coverage +- Write an origin **lister** (Bitbucket, Gitorious, Curseforge, ...) +- Write a **loader** (NPM package, tarball, ...) + +*** Mine information from archived content +- Detect MIME types, languages, ctags, ... +- Parse metadata files (PKG-INFO, package.json, ...) +- ... + +*** Improve the Web UI +- Accessibility +- Developer features +- ... + +** How to apply + +*** Steps +- Follow our guide: \url{http://deb.li/swhgsoc19} +- Write a small patch for our code, then send us your project ideas! + +*** Contact +- IRC channel: \texttt{\#swh-devel @ irc.freenode.net} +- Mailing list (public): \url{swh-devel@inria.fr} + -** 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 -* The Software Heritage initiative -# -# One slide motivation + goals -# -** Software Heritage, in a nutshell -#+INCLUDE: "../../common/modules/swh-goals-oneslide-vertical.org::#goals" :only-contents t :minlevel 3 -# -* Collect, Preserve, Share -** Collect - #+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 -*** - - all the software source code - - full development history permanently archived - - push deposit for scientific software source code -** Preserve -*** Build a mirror network :B_block: - :PROPERTIES: - :BEAMER_env: block - :END: - - resilience - - biodiversity - - work in progress with FOSSID -#+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 -** Share -*** Open collaborations :B_block: - :PROPERTIES: - :BEAMER_env: block - :END: - - Open Data publications ("Make your own queries on our dataset") - - Research collaborations (e.g. on efficient representations of our graph) - - Industry partnerships (e.g. with Qwant on making a search engine scale to our needs) -*** Open to the World :B_block: - :PROPERTIES: - :BEAMER_env: block - :END: - - FLOSS development workflow (copyleft Free Software, open Forge, Google Summer of Code participation) - - Public wayback machine for Software Source Code - - Public exports of the dataset -* 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 :noexport: -*** 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 -* Using the Software Heritage archive :noexport: -** Reference archive for all software -*** A "wayback machine" for software source code ... \hfill and *intrinsic identifiers*! - - *\url{http://archive.softwareheritage.org/browse}* \hfill (*icse* / *2018*) - - *\url{http://bit.ly/swhpids}* for persistent identifiers -#+BEAMER: \pause -*** - \hfill Demo time: let's highlight some features... -*** Origin search :B_block: - :PROPERTIES: - :BEAMER_env: block - :BEAMER_COL: .33 - :END: - #+latex: \centering % \vspace{-3mm} - #+ATTR_LATEX: :width \linewidth - file:webui-origin-search.png -*** Directory browsing - :PROPERTIES: - :BEAMER_env: block - :BEAMER_COL: .33 - :END: - #+latex: \centering % \vspace{-3mm} - #+ATTR_LATEX: :width \linewidth - file:webui-directory.png -*** Revisions as diffs - :PROPERTIES: - :BEAMER_env: block - :BEAMER_COL: .33 - :END: - #+latex: \centering % \vspace{-3mm} - #+ATTR_LATEX: :width \linewidth - file:webui-commit-diff.png -*** Web UI --- syntax highlighting and selection - #+latex: \centering \vspace{-3mm} - #+ATTR_LATEX: :width .85\textwidth - file:webui-source-file.png -** A glimpse at the technical roadmap :noexport: -*** Features... - - (done) *lookup* by content hash - - *browsing*: "wayback machine" for archived code - - (done) *\url{http://archive.softwareheritage.org/api}* - - (done) *\url{http://archive.softwareheritage.org/browse/search}* - - (done) *download*: =wget= / =git clone= from the archive - - (done) *deposit* of source code bundles directly to the archive - - (todo) *provenance* lookup for all archived content - - (todo) *full-text search* on all archived source code files -#+BEAMER: \pause -*** ... and much more ... - you have the world's software development graph at your hands!\\ - \hfill your tools could be here! -** Supporting more accessible and reproducible science :noexport: - :PROPERTIES: - :CUSTOM_ID: research - :END: - #+LATEX: \includegraphics[width=\extblockscale{.4\linewidth}]{action-research__bi} \hfill - #+LATEX: \includegraphics[width=\extblockscale{.5\linewidth}]{PreservationTriangle} \hfill\mbox{} -*** A global library referencing all software used in all research fields - - completes the infrastructure for *Open Access* in science - - provides intrinsic persistent identifiers needed for scientific *reproducibility* - - enables large scale, verifiable *software studies* -** Deposit Scientific Software :noexport: - #+INCLUDE: "../../common/modules/swh-scientific-publishing.org::#hal" :minlevel 3 :only-contents t -#+BEAMER: \pause -*** Intrinsic PIDS for referencing content now available - \hfill see \url{http://bit.ly/swhpids} and the forthcoming iPres 2018 article -** The way to go to archive and reference scientific software :noexport: - #+INCLUDE: "../../common/modules/swh-scientific-publishing.org::#benefits" :minlevel 3 :only-contents t -** Big Code = Big data + AI :noexport: -#+LATEX: \includegraphics[width=\extblockscale{.13\linewidth}]{universal.png} -*** Large scale /repeatable/ software studies... - :PROPERTIES: - :BEAMER_act: +- - :END: - - vulnerability detection - - dependency analysis - - pattern elicitation - - automatic classification ... -*** ... need a uniform representation - Software Heritage has *one data model* for all forges/VCS...\\ - \hfill ... yes, we do *data normalization* of software evolutiona! -*** - \hfill Coming soon to a platform near you! -* Building for the long term :noexport: -** Growing Support :noexport: - :PROPERTIES: - :CUSTOM_ID: support - :END: -*** Landmark Inria Unesco agreement, April 3rd, 2017 - #+BEGIN_EXPORT latex - \includegraphics[width=\extblockscale{.25\linewidth}]{inria-logo-new} \hfill - \includegraphics[width=\extblockscale{.35\linewidth}]{unesco-accord} \hfill - \includegraphics[width=\extblockscale{.2\linewidth}]{unesco}\\[1em] - #+END_EXPORT -*** Sharing the vision :B_block: - :PROPERTIES: - :CUSTOM_ID: endorsement - :BEAMER_COL: .5 - :BEAMER_env: block - :END: - #+LATEX: \begin{center}\includegraphics[width=\extblockscale{1.4\linewidth}]{support.pdf}\end{center} -*** See more :noexport: - \hfill\tiny\url{http:://www.softwareheritage.org/support/testimonials} -*** Contributing to the mission :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: \includegraphics[width=\extblockscale{1.1\linewidth}]{sponsors.pdf} - #+LATEX: \end{center} -# - sponsoring / partnership :: \hfill \url{sponsorship.softwareheritage.org} -** You can help! :noexport: - #+BEAMER: \vspace{-1mm} -*** Tackle the research challenges - - efficient tracking of development streams - - machine learning/classification - - ... -*** Contribute to the development \hfill see \url{http://forge.softwareheritage.org} - | ٭٭ | listers/loaders for other unsupported forges, VCS | - | ٭٭ | Web UI improvements | -#+BEAMER: \pause -*** Funding :B_block: - :PROPERTIES: - :BEAMER_env: block - :BEAMER_COL: .63 - :END: - - pester /companies/ to become sponsors : - \url{sponsorship.softwareheritage.org} - - give /your own contribution/ : \url{www.softwareheritage.org/donate} -#+BEAMER: \pause -*** Spread the word! :B_block: - :PROPERTIES: - :BEAMER_env: block - :BEAMER_COL: .37 - :END: - - help research teams /use/ the archive - - tell everybody about Software Heritage * Conclusion -** Come in, we're open! \hfill www.softwareheritage.org +** Come and talk to us! \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