diff --git a/talks-public/2022-11-13-biennale/2022-11-13-biennale.org b/talks-public/2022-11-13-biennale/2022-11-13-biennale.org index f7b8d4a..ebcc26f 100644 --- a/talks-public/2022-11-13-biennale/2022-11-13-biennale.org +++ b/talks-public/2022-11-13-biennale/2022-11-13-biennale.org @@ -1,371 +1,363 @@ #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) #+TITLE: Preservare il Software Bene Comune per il Futuro dell'Umanità #+BEAMER_HEADER: \date[2022-11-13, Torino]{13 Novembre 2022\\Biennale Tecnologia\\Torino, Italy\\[-2mm]} #+AUTHOR: Stefano Zacchiroli #+DATE: 13 Novembre 2022 #+EMAIL: stefano.zacchiroli@telecom-paris.fr #+INCLUDE: "../../common/modules/prelude-toc.org" :minlevel 1 #+INCLUDE: "../../common/modules/169.org" #+BEAMER_HEADER: \institute[Télécom Paris]{Télécom Paris, Institut Polytechnique de Paris\\ {\tt stefano.zacchiroli@telecom-paris.fr}} #+BEAMER_HEADER: \title[Preservare il Software Bene Comune]{Preservare il Software Bene Comune per il Futuro dell'Umanità} #+BEAMER_HEADER: \author{Stefano Zacchiroli} * Preface ** About the speaker :PROPERTIES: :CUSTOM_ID: bio :END: *** - Professor of Computer Science, Télécom Paris, Institut Polytechnique de Paris - Free/Open Source Software activist (20+ years) - Debian Developer & Former 3x Debian Project Leader - Former Open Source Initiative (OSI) director - Software Heritage co-founder & CTO * The Software Commons ** Software is everywhere (and a key mediator) in society #+latex: \begin{center} #+ATTR_LATEX: :width .7\linewidth file:software-center.pdf #+latex: \end{center} # #+INCLUDE: "../../common/modules/foss-commons.org::#freeswdef" ** Free/Open Source Software (FOSS) is everywhere as well *** Free Software (1986) :PROPERTIES: :BEAMER_env: definition :END: A program is *free software* if the program's users have the four /essential freedoms/: - Freedom #0, to *run* the program, for any purpose - Freedom #1, to *study* how the program works, and change it - Freedom #2, to *redistribute* copies - Freedom #3, to *improve* the program, and *release* improvements # #+INCLUDE: "../../common/modules/foss-commons.org::#commonsdef" *** linebreak :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: Current estimates: 99% of software products on the market contains at least /some/ free software parts (Synopsis 2020). ** The Commons and FOSS *** Definition (Commons) The *commons* is the cultural and natural resources accessible to all members of a society, including natural materials such as air, water, and a habitable earth. These resources are held in common, not owned privately. *** Definition (Software Commons) The *software commons* consists of all computer software which is available at little or no cost and which can be altered and reused with few restrictions. Thus /all open source software and all free software are part of the [software] commons/. […] *** linebreak :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: Kranich and Schement (2008); Schweik and English (2012). ** Software is dual-form knowledge #+INCLUDE: "../../common/modules/source-code-different-short.org::#thesourcecode" :only-contents t :minlevel 3 ** Software /source code/ is precious human knowledge #+INCLUDE: "../../common/modules/source-code-different-short.org::#softwareisdifferent" :only-contents t :minlevel 3 * An Endangered Knowledge ** But /where/ is this commons? #+latex: \begin{flushleft} #+ATTR_LATEX: :width \extblockscale{.7\linewidth} file:myriadsources.png #+latex: \end{flushleft} *** - many disparate *development* platforms, with a few dominant players (e.g., GitHub) - a myriad places where *distribution* may happen - most of them operated by *for-profit* companies +** Software source code is fragile +#+INCLUDE: "../../common/modules/swh-motivations.org::#fragile" :only-contents t :minlevel 3 ** Calling for preservation: UNESCO *** :B_column:BMCOL: :PROPERTIES: :BEAMER_col: .53 :BEAMER_env: column :END: #+ATTR_LATEX: :width .7\linewidth file:UNESCOParisCallMeeting.png UNESCO, Inria, Software Heritage invite\\ [[https://en.unesco.org/news/experts-call-greater-recognition-software-source-code-heritage-sustainable-development][40 international experts meet in Paris]] ... #+BEAMER: \pause *** :B_column:BMCOL: :PROPERTIES: :BEAMER_col: .5 :BEAMER_env: column :END: #+ATTR_LATEX: :width .65\linewidth file:paris_call_ssc_cover.jpg [[https://en.unesco.org/foss/paris-call-software-source-code][The call is published on Feb 2019]]\pause *** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: *** :PROPERTIES: :BEAMER_COL: 1.06 :BEAMER_env: block :END: “[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” \vspace{10pt} \hfill https://en.unesco.org/foss/paris-call-software-source-code \hfill\mbox{} ** Calling for preservation: Donald Knuth and Len Shustek *** Communications of the ACM, February 2021 :B_picblock: :PROPERTIES: :BEAMER_env: picblock :BEAMER_OPT: pic=KnuthHistory.jpg, leftpic=true, width=.3\textwidth :END: /"Telling historical stories is the best way to teach. It's much easier to understand something if you know the threads it is connected to."/ \mbox{}\\ \mbox{}\\ \mbox{}\hfill /Let's Not Dumb Down the History of Computer Science/\\ \mbox{}\hfill Donald E. Knuth, Len Shustek\\ \mbox{}\hfill https://doi.org/10.1145/3442377 #+BEAMER: \pause *** A unique opportunity most of the creators are still here: we can talk to them!\\ \hfill but the clock is ticking... # - Software Heritage provides a key infrastructure for software historians ** Source code history for Open Science #+INCLUDE: "../../common/modules/swh-ardc.org::#pillaropenscience" :only-contents t :minlevel 3 #+BEAMER: \pause *** \hfill Preserving the history of source code is important for /reproducibility/ -** Software source code is fragile -#+INCLUDE: "../../common/modules/swh-motivations.org::#fragile" :only-contents t :minlevel 3 -** Takeaways :noexport: +** Takeaways *** Software Commons - Good news: thanks to FOSS developers we are growing by the day a novel kind of digital commons rich in valuable human knowledge: the *software commons*. *** Risk of losing it - However: there is a risk of "ruining" it (specifically: losing access to it forever). - As per other commons (including traditional material commons, like natural resources), we need to apply *individual care, public policies, and proactive initiatives* to mitigate this risk. -*** linebreak :B_ignoreheading: - :PROPERTIES: - :BEAMER_env: ignoreheading - :END: -#+BEAMER: \pause -... enter Software Heritage! * Avoiding the Tragedy of an Unattended Software Commons ** Software Heritage in a nutshell \hfill www.softwareheritage.org #+INCLUDE: "../../common/modules/swh-goals-oneslide-vertical.org::#goals" :only-contents t :minlevel 3 ** The largest public source code archive, principled \hfill \small \url{bit.ly/swhpaper} *** :PROPERTIES: :BEAMER_env: block :BEAMER_col: 0.5 :END: #+latex: \centering #+ATTR_LATEX: :width \linewidth file:SWH-as-foundation-slim.png *** :PROPERTIES: :BEAMER_env: block :BEAMER_col: 0.5 :END: #+latex: \centering #+ATTR_LATEX: :width \linewidth file:archive-growth.png\\ [[https://archive.softwareheritage.org][archive.softwareheritage.org]] *** linebreak :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: #+BEAMER: \pause *** Technology :PROPERTIES: :BEAMER_env: block :BEAMER_col: 0.34 :END: - transparency and FOSS - replicas all the way down *** Content (billions!) :PROPERTIES: :BEAMER_env: block :BEAMER_col: 0.32 :END: - intrinsic identifiers - facts and provenance *** Organization :PROPERTIES: :BEAMER_env: block :BEAMER_col: 0.33 :END: - non-profit - multi-stakeholder ** A peek under the hood: a global view on the software commons *** #+BEAMER: \begin{center} #+BEAMER: \vspace{-2mm} #+BEAMER: \includegraphics[width=.8\textwidth]{swh-dataflow-merkle.pdf} #+BEAMER: \end{center} #+BEAMER: \pause *** #+BEAMER: \vspace{-2mm} \small A *global graph* linking together fully *deduplicated* source code artifact (files, commits, directories, releases, etc.) to the places that distribute them (e.g., Git repositories), providing a *unified view* on the entire */Software Commons/*. (Size: *~30 B* nodes, *~300 B* edges, *~1 PiB* blobs) ** Software Heritage /intrinsic/ Identifiers (SWHID) \hfill [[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][(full spec)]] # #+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]] ** Demo time! - Browse [[https://archive.softwareheritage.org][the archive]] - [[https://save.softwareheritage.org][Trigger archival]] of your preferred software in a breeze - Get and use SWHIDs ([[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][full specification available online]]) - The [[https://www.softwareheritage.org/2019/07/20/archiving-and-referencing-the-apollo-source-code/][Apollo 11 AGC source code example]] - 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]] - Example in a journal: [[http://www.ipol.im/pub/art/2020/300/][an article from IPOL]] - [[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]] * Researching the Software Commons (highligts) #+INCLUDE: "../../common/modules/ese-research.org::#provenance" :only-contents t #+INCLUDE: "../../common/modules/ese-research.org::#diversity" :only-contents t #+INCLUDE: "../../common/modules/dataset.org::#graphdataset" :minlevel 2 ** The Software Commons is growing fast and becoming more diverse :noexport: An observatory on the Software Commons enables studying broad phenomena and trends. #+BEAMER: \begin{center} \includegraphics[width=\textwidth]{revision_content_growth_wide.png} \end{center} - *Original content* released as public code doubles every 22-30 months (Di Cosmo, Rousseau, Zacchiroli. Emp.Sw.Eng. 2020). - Other examples: long-term population trends such as *gender diversity* (Zacchiroli, IEEE Software 2021) and *geography diversity* (Rossi and Zacchiroli. ICSE 2022 & MSR 2022) in public code. * Preserving the Software Commons --- Present and Future ** Academia & policy: growing adoption (selection) #+INCLUDE: "../../common/modules/swh-adoption-academic.org::#adoption" :only-contents t :minlevel 3 ** An international, non profit initiative\hfill built for the long term :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:\begin{center}\tiny\url{www.softwareheritage.org/support/testimonials}\end{center} # #+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: \vspace{-1cm} #+LATEX: \begin{center} #+LATEX: \colorbox{white}{\includegraphics[width=\extblockscale{1.4\linewidth}]{sponsors.pdf}} #+LATEX: \end{center} #+latex:\begin{center}\tiny\url{www.softwareheritage.org/support/sponsors}\end{center} *** :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 ** You can help! *** Foster adoption and best practices + [[https://www.softwareheritage.org/save-and-reference-research-software/][archive and reference relevant source code]] (save code now, and [[https://hal.inria.fr/hal-01872189][deposit]]) + use Software Heritage in research articles, journals, and books + [[https://www.softwareheritage.org/swhap/][rescue and preserve landmark legacy source code]] with SWHAP and Software Stories # #+BEAMER: \pause *** Engage with Software Heritage as an individual - join the [[https://www.softwareheritage.org/ambassadors/][ambassador program]], help raise awareness - contribute to [[https://www.softwareheritage.org/community/developers/][technical]] and [[https://www.softwareheritage.org/community/scientists/][scientific]] development # #+BEAMER: \pause *** Engage with Software Heritage as an organization - become [[https://www.softwareheritage.org/support/sponsors/][a member/sponsor]] - build a Software Heritage mirror ** Thank you! *** Resources - homepage :: [[https://www.softwareheritage.org/][www.softwareheritage.org]] - archive :: [[https://archive.softwareheritage.org/][archive.softwareheritage.org]] + - development :: [[https://forge.softwareheritage.org/][forge.softwareheritage.org]] - blog :: [[https://www.softwareheritage.org/blog/][www.softwareheritage.org/blog]] - newsletter :: [[https://www.softwareheritage.org/newsletter/][www.softwareheritage.org/newsletter]] -*** Selected references +*** Selected references \hfill \footnotesize (complete bibliography: [[https://www.softwareheritage.org/publications][www.softwareheritage.org/publications]]) #+BEGIN_EXPORT latex \begin{thebibliography}{Foo Bar, 1969} \footnotesize \bibitem{DiCosmo2017} Roberto Di Cosmo, Stefano Zacchiroli \newblock Software Heritage: Why and How to Preserve Software Source Code \newblock iPRES 2017: Intl. Conf. on Digital Preservation \bibitem{Abramatic2018} J.F. Abramatic, R. Di Cosmo, S. Zacchiroli, \newblock Building the Universal Archive of Source Code \newblock Communications of the ACM, October 2018 \end{thebibliography} #+END_EXPORT - #+BEAMER: \footnotesize ~\\ - (complete bibliography: [[https://www.softwareheritage.org/publications][www.softwareheritage.org/publications]]) - * Appendix :B_appendix: :PROPERTIES: :BEAMER_env: appendix :END: ** \vfill \centerline{\Huge Appendix} \vfill #+INCLUDE: "../../common/modules/status-extended.org::#archivinggoals" :minlevel 2 #+INCLUDE: "../../common/modules/status-extended.org::#architecture" :minlevel 2 :only-contents t #+INCLUDE: "../../common/modules/status-extended.org::#merkletree" :minlevel 2 #+INCLUDE: "../../common/modules/data-model.org::#merklestruct" :minlevel 2 #+INCLUDE: "../../common/modules/status-extended.org::#dagdetailsmall" :minlevel 2 :only-contents t