new: [slides] Initial version of the slides presented at PTS 2020
3
best-practices/slides/build.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
export TEXINPUTS=::`pwd`/theme/
|
||||
xelatex slides.tex
|
||||
xelatex slides.tex
|
BIN
best-practices/slides/images/boite.png
Normal file
After Width: | Height: | Size: 685 KiB |
BIN
best-practices/slides/images/git-log.jpg
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
best-practices/slides/images/git-master.jpg
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
best-practices/slides/images/miso.png
Normal file
After Width: | Height: | Size: 307 KiB |
BIN
best-practices/slides/images/project.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
best-practices/slides/images/pts-ikea2.png
Normal file
After Width: | Height: | Size: 877 KiB |
BIN
best-practices/slides/images/pts-patron-1.png
Normal file
After Width: | Height: | Size: 490 KiB |
BIN
best-practices/slides/images/soutif.png
Normal file
After Width: | Height: | Size: 809 KiB |
BIN
best-practices/slides/slides.pdf
Normal file
190
best-practices/slides/slides.tex
Normal file
|
@ -0,0 +1,190 @@
|
|||
%!TEX program = xelatex
|
||||
\documentclass{beamer}
|
||||
|
||||
\usepackage{blindtext}
|
||||
\usepackage{multicol}
|
||||
|
||||
\usetheme{Execushares}
|
||||
|
||||
\title{How FOSS can help human to keep their sanity during a pandemic crisis?}
|
||||
\subtitle{{\it Building better open source projects}}
|
||||
\author{Pauline Bourmeau (@Ko97551819) - Alexandre Dulaunoy (@adulau)}
|
||||
\date{June 29, 2020}
|
||||
|
||||
\setcounter{showSlideNumbers}{1}
|
||||
|
||||
\begin{document}
|
||||
\setcounter{showProgressBar}{0}
|
||||
\setcounter{showSlideNumbers}{0}
|
||||
|
||||
\frame{\titlepage}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Background}
|
||||
{\center \it \Large During the lockdown, should we work on an obscure open source natural language processing project\\ or {\bf just do cloth face mask}?\\}
|
||||
\begin{flushright}
|
||||
Another video chat.
|
||||
\end{flushright}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Meaning of Life}
|
||||
\begin{itemize}
|
||||
\item {\bf Doing} something which is an imminent and vital need: {\bf face masks\footnote{\url{https://mianmo-project.github.io/}}}
|
||||
\begin{itemize}
|
||||
\item It works
|
||||
\item and many open source rules and practices apply
|
||||
\item What did we learn? and help your next open source security project
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\includegraphics[scale=0.08]{./images/project.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Resonate and be human}
|
||||
|
||||
\begin{multicols}{2}
|
||||
\null \vfill
|
||||
\includegraphics[scale=0.2]{./images/pts-patron-1.png}
|
||||
\vfill \null
|
||||
\columnbreak
|
||||
\null \vfill
|
||||
\begin{itemize}
|
||||
\item {\it Users are wonderful things to have, and not just because they demonstrate that you're serving a need, that you've done something right.}\footnote{The Cathedral and the Bazaar, Eric Steven Raymond}
|
||||
\item In other words, face masks without users are useless
|
||||
\item {\bf Be your first users}, this will already saves life
|
||||
\end{itemize}
|
||||
\vfill \null
|
||||
\end{multicols}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Try and don't be afraid}
|
||||
|
||||
\begin{multicols}{2}
|
||||
\null \vfill
|
||||
\includegraphics[scale=0.05]{./images/git-log.jpg}
|
||||
\vfill \null
|
||||
\columnbreak
|
||||
\null \vfill
|
||||
\begin{itemize}
|
||||
\item Learn from scratch
|
||||
\item Keep a trace and {\bf publish your failures}
|
||||
\item Why git was under-used during the design of cloth face mask?
|
||||
\item Keeping track of all face mask design videos is a f*cking challenge\footnote{{\tiny but we enjoyed seeing the different cultures through the lens of face mask design}}
|
||||
\item Pick a video and try \footnote{{\tiny bound to YouTube recommendation algorithms}}
|
||||
\item Filling the gap of written documentation
|
||||
\end{itemize}
|
||||
\vfill \null
|
||||
\end{multicols}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Tooling}
|
||||
\begin{multicols}{2}
|
||||
\null \vfill
|
||||
\includegraphics[scale=0.16]{./images/pts-ikea2.png}
|
||||
\vfill \null
|
||||
\columnbreak
|
||||
\null \vfill
|
||||
\begin{itemize}
|
||||
\item {\it \tiny Ivan Illich defined convivial tools as those most accessible by each person, the least controlled by others, and without restricting equal use by others.}\footnote{Ivan Illich’s book "Tools for Conviviality," published in 1973.}
|
||||
\item While designing and building face-masks, people took back the control of the tools by becoming producers
|
||||
\item They use the {\bf most easy and accessible tools} (not always open source) to provide guidelines
|
||||
\end{itemize}
|
||||
\vfill \null
|
||||
\end{multicols}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Less "Intellectual Property Rights"}
|
||||
\begin{itemize}
|
||||
\item The fluidity of creative exchanges was helped by fewer legal constraints
|
||||
\item Social pressure can help in such period
|
||||
\item Many projects during the lock-down relied on {\bf existing open source, free software and content licensing schemes}
|
||||
\item A lot of cloth face mask designers didn't know they were doing open source
|
||||
\end{itemize}
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Reinforcing Social Relationships}
|
||||
\begin{multicols}{2}
|
||||
\null \vfill
|
||||
\includegraphics[scale=0.08]{./images/soutif.png}
|
||||
\includegraphics[scale=0.08]{./images/miso.png}
|
||||
\vfill \null
|
||||
\columnbreak
|
||||
\null \vfill
|
||||
\begin{itemize}
|
||||
\item {\bf Fun is key} to keep sanity in an open source community
|
||||
\item With covid-19, all open source contributors discovered the social reality of existing remote contributors
|
||||
\item Relying on the existing experience of managing open source community\footnote{Social Architecture - Building On-line Communities by Pieter Hintjens}
|
||||
\end{itemize}
|
||||
\vfill \null
|
||||
\end{multicols}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Fun is really important}
|
||||
\includegraphics[scale=0.2]{./images/boite.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{How to cultivate your FOSS project?}
|
||||
\begin{itemize}
|
||||
\item Fun is important but the gift aspect is a strong community cement
|
||||
\item Sharing common tools and objectives to create values
|
||||
\item Create knowledge via open source projects as a medium
|
||||
\item {\bf Reciprocity to support self-management of open source communities}
|
||||
\item Diverse contributors and contribution ensure project stability
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Thank You}
|
||||
\begin{itemize}
|
||||
\item {\bf Markdown} format and all the open source rendering implementations
|
||||
\item {\bf Inkscape} (to make cool logos for open source project)
|
||||
\item {\bf git} (even if the handling of binary files is still hard)
|
||||
\item {\bf BBB BigBlueButton} and {\bf Jitsi} (diversity is good when one fails)
|
||||
\item {\bf Python} (for extracting large table of filtering tests only available in crappy PDF generated from an unpublished XLS file)
|
||||
\item {\bf SciHub} (thanks Alexandra) as it was the only way to download the academic papers about the filtering of textile fabrics
|
||||
\item {\bf All the people who did face masks} and didn't know they were part of the open source and maker community
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Where We Succeeded}
|
||||
\begin{itemize}
|
||||
\item The {\bf open source and maker communities resonated} during the crisis with a lot of initiatives
|
||||
\item The past 20+ years of open source licensing did help a lot (less friction in exchange)
|
||||
\item Git repositories supported the coordination effort on contributions and content publishing
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Where We Failed}
|
||||
\begin{itemize}
|
||||
\item Some open source tools are still {\bf too complex} to use compared of the sharing of a YouTube video
|
||||
\item We are still bad at indexing, evaluating, coordinating and archiving projects (how many face mask designs on GitHub?)
|
||||
\item Release early, release often. We failed there as early was a matter of days and not weeks
|
||||
\item {\bf Opportunity for new open source projects} such as markdown notes taking and video screenshot at the same time
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\appendix
|
||||
\backupbegin
|
||||
\begin{frame}
|
||||
\frametitle{Bibliography}
|
||||
\begin{enumerate}
|
||||
\item Ivan Illich, Tools for Conviviality, 1973. {\tiny \url{https://co-munity.net/system/files/ILLICH\%201973\_tools\_for\_convivality\_1.pdf}}
|
||||
\item Eric Steven Raymond, The Cathedral and the Bazaar, 1997. {\tiny \url{http://www.catb.org/~esr/writings/cathedral-bazaar/}}
|
||||
\item Pekka Himanen, The Hacker Ethic, 2001.
|
||||
\item Pieter Hintjens, Social Architecture - Building On-line Communities, 2016. {\tiny \url{http://www.foo.be/docs-free/social-architecture/book.pdf}}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
\backupend
|
||||
|
||||
\end{document}
|
216
best-practices/slides/theme/beamerthemeExecushares.sty
Normal file
|
@ -0,0 +1,216 @@
|
|||
% the various libraries we will be using
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{calc}
|
||||
\usepackage[none]{hyphenat}
|
||||
\usepackage{fontspec}
|
||||
\defaultfontfeatures{Ligatures=TeX}
|
||||
|
||||
\newif\ifbeamer@pixelitem
|
||||
\beamer@pixelitemtrue
|
||||
\DeclareOptionBeamer{nopixelitem}{\beamer@pixelitemfalse}
|
||||
\ProcessOptionsBeamer
|
||||
|
||||
% define colours
|
||||
% taken from pickton on Adobe Kuler:
|
||||
% https://kuler.adobe.com/Some-Kind-Of-Execushares-color-theme-3837185/
|
||||
%\definecolor{ExecusharesRed}{RGB}{230,37,52}
|
||||
\definecolor{ExecusharesBlack}{RGB}{43,40,40}
|
||||
\definecolor{ExecusharesRed}{RGB}{43,40,40} % Red is the new blue
|
||||
\definecolor{ExecusharesBlue}{RGB}{22,190,207} % Red is the new blue
|
||||
\definecolor{ExecusharesWhite}{RGB}{255,255,243}
|
||||
\definecolor{ExecusharesGrey}{RGB}{107,110,108}
|
||||
|
||||
% use Adobe's Source Pro fonts:
|
||||
% Source Serif Pro: https://github.com/adobe-fonts/source-serif-pro
|
||||
% Source Sans Pro: https://github.com/adobe-fonts/source-sans-pro
|
||||
% Source Code Pro: https://github.com/adobe-fonts/source-code-pro
|
||||
\setmainfont{Source Serif Pro}
|
||||
\setsansfont{Source Sans Pro}
|
||||
\setmonofont{Source Code Pro}
|
||||
|
||||
% To use with pdflatex,
|
||||
% comment the fontspec package at the top
|
||||
%\usepackage{sourceserifpro}
|
||||
%\usepackage{sourcesanspro}
|
||||
%\usepackage{sourcecodepro}
|
||||
|
||||
% set colours
|
||||
\setbeamercolor{itemize item}{fg=ExecusharesBlue}
|
||||
\setbeamercolor{enumerate item}{fg=ExecusharesBlue}
|
||||
\setbeamercolor{alerted text}{fg=ExecusharesBlue}
|
||||
\setbeamercolor{section in toc}{fg=ExecusharesBlack}
|
||||
|
||||
% set fonts
|
||||
\setbeamerfont{itemize/enumerate body}{size=\large}
|
||||
\setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
|
||||
\setbeamerfont{itemize/enumerate subsubbody}{size=\small}
|
||||
|
||||
\ifbeamer@pixelitem
|
||||
% make the itemize bullets pixelated >
|
||||
\setbeamertemplate{itemize item}{
|
||||
\tikz{
|
||||
\draw[fill=ExecusharesBlue,draw=none] (0, 0) rectangle(0.1, 0.1);
|
||||
\draw[fill=ExecusharesBlue,draw=none] (0.1, 0.1) rectangle(0.2, 0.2);
|
||||
\draw[fill=ExecusharesBlue,draw=none] (0, 0.2) rectangle(0.1, 0.3);
|
||||
}
|
||||
}
|
||||
% make the subitems also pixelated >, but a little smaller and red
|
||||
\setbeamertemplate{itemize subitem}{
|
||||
\tikz{
|
||||
\draw[fill=ExecusharesRed,draw=none] (0, 0) rectangle(0.075, 0.075);
|
||||
\draw[fill=ExecusharesRed,draw=none] (0.075, 0.075) rectangle(0.15, 0.15);
|
||||
\draw[fill=ExecusharesRed,draw=none] (0, 0.15) rectangle(0.075, 0.225);
|
||||
}
|
||||
}
|
||||
\fi
|
||||
|
||||
% disable navigation
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
|
||||
% custom draw the title page above
|
||||
\setbeamertemplate{title page}{}
|
||||
|
||||
% again, manually draw the frame title above
|
||||
\setbeamertemplate{frametitle}{}
|
||||
|
||||
% disable "Figure:" in the captions
|
||||
\setbeamertemplate{caption}{\tiny\insertcaption}
|
||||
\setbeamertemplate{caption label separator}{}
|
||||
|
||||
% since I don't know a better way to do this, these are all switches
|
||||
% doing `\setcounter{showProgressBar}{0}` will turn the progress bar off (I turn it off for Appendix slides)
|
||||
% etc
|
||||
\newcounter{showProgressBar}
|
||||
\setcounter{showProgressBar}{1}
|
||||
\newcounter{showSlideNumbers}
|
||||
\setcounter{showSlideNumbers}{1}
|
||||
\newcounter{showSlideTotal}
|
||||
\setcounter{showSlideTotal}{1}
|
||||
|
||||
% Set beginning of backup slides
|
||||
% This lets you having the slides counter ending with the "thank you" slide and avoiding the annoying question "why is the thank you at slide 38/41?"
|
||||
\newcommand{\backupbegin}{
|
||||
\newcounter{finalframe}
|
||||
\setcounter{finalframe}{\value{framenumber}}
|
||||
}
|
||||
\newcommand{\backupend}{
|
||||
\setcounter{framenumber}{\value{finalframe}}
|
||||
}
|
||||
|
||||
% use \makeatletter for our progress bar definitions
|
||||
% progress bar idea from http://tex.stackexchange.com/a/59749/44221
|
||||
% slightly adapted for visual purposes here
|
||||
\makeatletter
|
||||
\newcount\progressbar@tmpcounta% auxiliary counter
|
||||
\newcount\progressbar@tmpcountb% auxiliary counter
|
||||
\newdimen\progressbar@pbwidth %progressbar width
|
||||
\newdimen\progressbar@tmpdim % auxiliary dimension
|
||||
|
||||
\newdimen\slidewidth % auxiliary dimension
|
||||
\newdimen\slideheight % auxiliary dimension
|
||||
|
||||
% make the progress bar go across the screen
|
||||
%\progressbar@pbwidth=12.8cm
|
||||
\progressbar@pbwidth=\the\paperwidth
|
||||
\slidewidth=\the\paperwidth
|
||||
\slideheight=\the\paperheight
|
||||
|
||||
% use tikz to draw everything
|
||||
% it may not be the best, but it's easy to work with
|
||||
% and looks good
|
||||
% TODO: base title slide and contents slide on something other than slide numbers :/
|
||||
\setbeamertemplate{background}{
|
||||
% deal with progress bar stuff
|
||||
% (calculate where it should go)
|
||||
\progressbar@tmpcounta=\insertframenumber
|
||||
\progressbar@tmpcountb=\inserttotalframenumber
|
||||
\progressbar@tmpdim=\progressbar@pbwidth
|
||||
\divide\progressbar@tmpdim by 100
|
||||
\multiply\progressbar@tmpdim by \progressbar@tmpcounta
|
||||
\divide\progressbar@tmpdim by \progressbar@tmpcountb
|
||||
\multiply\progressbar@tmpdim by 100
|
||||
|
||||
\begin{tikzpicture}
|
||||
% set up the entire slide as the canvas
|
||||
\useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight);
|
||||
|
||||
% the background
|
||||
\fill[color=ExecusharesWhite] (0,0) rectangle(\the\paperwidth,\the\paperheight);
|
||||
|
||||
% separate the drawing based on if we're the first (title) slide or not
|
||||
\ifnum\thepage=1\relax
|
||||
% the title page
|
||||
% draw the fills
|
||||
\fill[color=ExecusharesRed] (0, 4cm) rectangle(\slidewidth,\slideheight);
|
||||
|
||||
% draw the actual text
|
||||
\node[anchor=south,text width=\slidewidth-1cm,inner xsep=0.5cm] at (0.5\slidewidth,4cm) {\color{ExecusharesWhite}\Huge\textbf{\inserttitle}};
|
||||
\node[anchor=north east,text width=\slidewidth-1cm,align=right] at (\slidewidth-0.4cm,4cm) {\color{ExecusharesBlack}\tiny\insertsubtitle};
|
||||
\node[above] at(0.5\slidewidth,2.3cm) {\color{ExecusharesBlack}\tiny by};
|
||||
\node at (0.5\slidewidth,2cm) {\color{ExecusharesBlack}\normalsize\insertauthor};
|
||||
|
||||
% add the date in the corner
|
||||
\node[anchor=south east] at(\slidewidth,0cm) {\color{ExecusharesGrey}\tiny\insertdate};
|
||||
\else
|
||||
% NOT the title page
|
||||
% title bar
|
||||
\fill[color=ExecusharesRed] (0, \slideheight-1cm) rectangle(\slidewidth,\slideheight);
|
||||
|
||||
% swap the comment on these to add section titles to slide titles
|
||||
%\node[anchor=north,text width=11.8cm,inner xsep=0.5cm,inner ysep=0.25cm] at (6.4cm,9.6cm) {\color{ExecusharesWhite}\Large\textbf{\insertsectionhead: \insertframetitle}};
|
||||
\node[anchor=north,text width=\slidewidth-1cm,inner xsep=0.5cm,inner ysep=0.25cm] at (0.5\slidewidth,\slideheight) {\color{ExecusharesWhite}\huge\textbf{\insertframetitle}};
|
||||
|
||||
% if we're showing a progress bar, show it
|
||||
% (I disable the progress bar and slide numbers for the "Appendix" slides)
|
||||
\ifnum \value{showProgressBar}>0\relax%
|
||||
% the the progress bar icon in the middle of the screen
|
||||
\draw[fill=ExecusharesGrey,draw=none] (0cm,0cm) rectangle(\slidewidth,0.25cm);
|
||||
\draw[fill=ExecusharesRed,draw=none] (0cm,0cm) rectangle(\progressbar@tmpdim,0.25cm);
|
||||
|
||||
% bottom information
|
||||
\node[anchor=south west] at(0cm,0.25cm) {\color{ExecusharesGrey}\tiny\vphantom{lp}\insertsection};
|
||||
% if slide numbers are active
|
||||
\ifnum \value{showSlideNumbers}>0\relax%
|
||||
% if slide totals are active
|
||||
\ifnum \value{showSlideTotal}>0\relax%
|
||||
% draw both slide number and slide total
|
||||
\node[anchor=south east] at(\slidewidth,0.25cm) {\color{ExecusharesGrey}\tiny\insertframenumber/\inserttotalframenumber};
|
||||
\else
|
||||
% slide totals aren't active, don't draw them
|
||||
\node[anchor=south east] at(\slidewidth,0.25cm) {\color{ExecusharesGrey}\tiny\insertframenumber};
|
||||
\fi
|
||||
\fi
|
||||
% don't show the progress bar?
|
||||
\else
|
||||
% section title in the bottom left
|
||||
\node[anchor=south west] at(0cm,0cm) {\color{ExecusharesGrey}\tiny\vphantom{lp}\insertsection};
|
||||
% if we're showing slide numbers
|
||||
\ifnum \value{showSlideNumbers}>0\relax%
|
||||
% if slide totals are active
|
||||
\ifnum \value{showSlideTotal}>0\relax%
|
||||
% draw both slide number and slide total
|
||||
\node[anchor=south east] at(\slidewidth,0cm) {\color{ExecusharesGrey}\tiny\insertframenumber/\inserttotalframenumber};
|
||||
\else
|
||||
% slide totals aren't active, don't draw them
|
||||
\node[anchor=south east] at(\slidewidth,0cm) {\color{ExecusharesGrey}\tiny\insertframenumber};
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\makeatother
|
||||
|
||||
% add section titles
|
||||
\AtBeginSection{\frame{\sectionpage}}
|
||||
\setbeamertemplate{section page}
|
||||
{
|
||||
\begin{tikzpicture}
|
||||
% set up the entire slide as the canvas
|
||||
\useasboundingbox (0,0) rectangle(\slidewidth,\slideheight);
|
||||
%\fill[color=ExecusharesWhite] (0,0) rectangle(\the\paperwidth,\the\paperheight);
|
||||
\fill[color=ExecusharesWhite] (-1cm, 2cm) rectangle (\slidewidth, \slideheight+0.1cm);
|
||||
\fill[color=ExecusharesRed] (-1cm, 0.5\slideheight-1cm) rectangle(\slidewidth, 0.5\slideheight+1cm);
|
||||
\node[text width=\the\paperwidth-1cm,align=center] at (0.4\slidewidth, 0.5\slideheight) {\color{ExecusharesWhite}\Huge\textbf{\insertsection}};
|
||||
\end{tikzpicture}
|
||||
}
|