[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/03: talks: Add GHM 2016 talk.
From: |
Ludovic Courtès |
Subject: |
01/03: talks: Add GHM 2016 talk. |
Date: |
Thu, 18 Aug 2016 08:46:26 +0000 (UTC) |
civodul pushed a commit to branch master
in repository maintenance.
commit 148c48b464b92c51ca5458d50b103f9ab5a844b6
Author: Ludovic Courtès <address@hidden>
Date: Thu Aug 18 10:42:56 2016 +0200
talks: Add GHM 2016 talk.
---
.gitignore | 8 +
.../update/images/GuixSD-horizontal-print.pdf | Bin 0 -> 6174 bytes
talks/ghm-2016/update/images/GuixSD.pdf | 1 +
.../images/arstechnica-snappy-goodbye-apt-yum.png | Bin 0 -> 176140 bytes
talks/ghm-2016/update/images/better.png | 1 +
.../update/images/docker-image-layers-cropped.png | 1 +
.../update/images/dockerfile-owncloud-cropped.png | 1 +
.../update/images/flatpak-how-it-works-cropped.png | Bin 0 -> 40978 bytes
.../update/images/flatpak-how-it-works.png | Bin 0 -> 52598 bytes
talks/ghm-2016/update/images/flatpak.png | Bin 0 -> 445459 bytes
talks/ghm-2016/update/images/frozen-pizza.jpg | 1 +
talks/ghm-2016/update/images/gimp-graph.dot | 1 +
talks/ghm-2016/update/images/gimp-graph.pdf | Bin 0 -> 60585 bytes
talks/ghm-2016/update/images/libreboot-server.jpg | Bin 0 -> 159364 bytes
.../update/images/npm-curl-pipe-sh-cropped.png | 1 +
talks/ghm-2016/update/images/openhub-activity.png | Bin 0 -> 24396 bytes
.../update/images/openhub-contributors.png | Bin 0 -> 20182 bytes
talks/ghm-2016/update/images/os-declaration.jpg | 1 +
.../update/images/package-managers-cropped.png | 1 +
.../update/images/snappy-press-release.png | Bin 0 -> 172394 bytes
talks/ghm-2016/update/images/snappy.png | Bin 0 -> 83547 bytes
.../update/images/universal_install_script.png | Bin 0 -> 40485 bytes
talks/ghm-2016/update/notes.org | 275 ++++++++
talks/ghm-2016/update/rules.ini | 9 +
talks/ghm-2016/update/talk.tex | 660 ++++++++++++++++++++
25 files changed, 961 insertions(+)
diff --git a/.gitignore b/.gitignore
index c6eabf4..43190c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,3 +52,11 @@
/talks/fosdem-2016/scheme-api/talk.snm
/talks/fosdem-2016/scheme-api/talk.toc
/talks/fosdem-2016/scheme-api/talk.vrb
+/talks/ghm-2016/update/talk.aux
+/talks/ghm-2016/update/talk.log
+/talks/ghm-2016/update/talk.nav
+/talks/ghm-2016/update/talk.out
+/talks/ghm-2016/update/talk.pdf
+/talks/ghm-2016/update/talk.snm
+/talks/ghm-2016/update/talk.toc
+/talks/ghm-2016/update/talk.vrb
diff --git a/talks/ghm-2016/update/images/GuixSD-horizontal-print.pdf
b/talks/ghm-2016/update/images/GuixSD-horizontal-print.pdf
new file mode 100644
index 0000000..b5242cb
Binary files /dev/null and
b/talks/ghm-2016/update/images/GuixSD-horizontal-print.pdf differ
diff --git a/talks/ghm-2016/update/images/GuixSD.pdf
b/talks/ghm-2016/update/images/GuixSD.pdf
new file mode 120000
index 0000000..688296d
--- /dev/null
+++ b/talks/ghm-2016/update/images/GuixSD.pdf
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/GuixSD.pdf
\ No newline at end of file
diff --git
a/talks/ghm-2016/update/images/arstechnica-snappy-goodbye-apt-yum.png
b/talks/ghm-2016/update/images/arstechnica-snappy-goodbye-apt-yum.png
new file mode 100644
index 0000000..593084a
Binary files /dev/null and
b/talks/ghm-2016/update/images/arstechnica-snappy-goodbye-apt-yum.png differ
diff --git a/talks/ghm-2016/update/images/better.png
b/talks/ghm-2016/update/images/better.png
new file mode 120000
index 0000000..b8230c8
--- /dev/null
+++ b/talks/ghm-2016/update/images/better.png
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/better.png
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/docker-image-layers-cropped.png
b/talks/ghm-2016/update/images/docker-image-layers-cropped.png
new file mode 120000
index 0000000..829451a
--- /dev/null
+++ b/talks/ghm-2016/update/images/docker-image-layers-cropped.png
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/docker-image-layers-cropped.png
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/dockerfile-owncloud-cropped.png
b/talks/ghm-2016/update/images/dockerfile-owncloud-cropped.png
new file mode 120000
index 0000000..3df6c3b
--- /dev/null
+++ b/talks/ghm-2016/update/images/dockerfile-owncloud-cropped.png
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/dockerfile-owncloud-cropped.png
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/flatpak-how-it-works-cropped.png
b/talks/ghm-2016/update/images/flatpak-how-it-works-cropped.png
new file mode 100644
index 0000000..12a03f8
Binary files /dev/null and
b/talks/ghm-2016/update/images/flatpak-how-it-works-cropped.png differ
diff --git a/talks/ghm-2016/update/images/flatpak-how-it-works.png
b/talks/ghm-2016/update/images/flatpak-how-it-works.png
new file mode 100644
index 0000000..d2424bc
Binary files /dev/null and
b/talks/ghm-2016/update/images/flatpak-how-it-works.png differ
diff --git a/talks/ghm-2016/update/images/flatpak.png
b/talks/ghm-2016/update/images/flatpak.png
new file mode 100644
index 0000000..c7cbdfc
Binary files /dev/null and b/talks/ghm-2016/update/images/flatpak.png differ
diff --git a/talks/ghm-2016/update/images/frozen-pizza.jpg
b/talks/ghm-2016/update/images/frozen-pizza.jpg
new file mode 120000
index 0000000..20306e2
--- /dev/null
+++ b/talks/ghm-2016/update/images/frozen-pizza.jpg
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/frozen-pizza.jpg
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/gimp-graph.dot
b/talks/ghm-2016/update/images/gimp-graph.dot
new file mode 120000
index 0000000..d3ecaff
--- /dev/null
+++ b/talks/ghm-2016/update/images/gimp-graph.dot
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/gimp-graph.dot
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/gimp-graph.pdf
b/talks/ghm-2016/update/images/gimp-graph.pdf
new file mode 100644
index 0000000..338b59b
Binary files /dev/null and b/talks/ghm-2016/update/images/gimp-graph.pdf differ
diff --git a/talks/ghm-2016/update/images/libreboot-server.jpg
b/talks/ghm-2016/update/images/libreboot-server.jpg
new file mode 100644
index 0000000..6af4a17
Binary files /dev/null and b/talks/ghm-2016/update/images/libreboot-server.jpg
differ
diff --git a/talks/ghm-2016/update/images/npm-curl-pipe-sh-cropped.png
b/talks/ghm-2016/update/images/npm-curl-pipe-sh-cropped.png
new file mode 120000
index 0000000..e98fb8f
--- /dev/null
+++ b/talks/ghm-2016/update/images/npm-curl-pipe-sh-cropped.png
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/npm-curl-pipe-sh-cropped.png
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/openhub-activity.png
b/talks/ghm-2016/update/images/openhub-activity.png
new file mode 100644
index 0000000..6fb7b69
Binary files /dev/null and b/talks/ghm-2016/update/images/openhub-activity.png
differ
diff --git a/talks/ghm-2016/update/images/openhub-contributors.png
b/talks/ghm-2016/update/images/openhub-contributors.png
new file mode 100644
index 0000000..3ce39f7
Binary files /dev/null and
b/talks/ghm-2016/update/images/openhub-contributors.png differ
diff --git a/talks/ghm-2016/update/images/os-declaration.jpg
b/talks/ghm-2016/update/images/os-declaration.jpg
new file mode 120000
index 0000000..50f01cc
--- /dev/null
+++ b/talks/ghm-2016/update/images/os-declaration.jpg
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/os-declaration.jpg
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/package-managers-cropped.png
b/talks/ghm-2016/update/images/package-managers-cropped.png
new file mode 120000
index 0000000..5cc98e4
--- /dev/null
+++ b/talks/ghm-2016/update/images/package-managers-cropped.png
@@ -0,0 +1 @@
+../../../fosdem-2016/distributions/images/package-managers-cropped.png
\ No newline at end of file
diff --git a/talks/ghm-2016/update/images/snappy-press-release.png
b/talks/ghm-2016/update/images/snappy-press-release.png
new file mode 100644
index 0000000..f20fe8a
Binary files /dev/null and
b/talks/ghm-2016/update/images/snappy-press-release.png differ
diff --git a/talks/ghm-2016/update/images/snappy.png
b/talks/ghm-2016/update/images/snappy.png
new file mode 100644
index 0000000..8f9ffde
Binary files /dev/null and b/talks/ghm-2016/update/images/snappy.png differ
diff --git a/talks/ghm-2016/update/images/universal_install_script.png
b/talks/ghm-2016/update/images/universal_install_script.png
new file mode 100644
index 0000000..15aeefd
Binary files /dev/null and
b/talks/ghm-2016/update/images/universal_install_script.png differ
diff --git a/talks/ghm-2016/update/notes.org b/talks/ghm-2016/update/notes.org
new file mode 100644
index 0000000..29f4975
--- /dev/null
+++ b/talks/ghm-2016/update/notes.org
@@ -0,0 +1,275 @@
+scaling up for the next century!
+
+* context: the rise and fall of distros
+
+** "when i got involved..."
+
+distros like Debian were the pride of free software hackers:
+
+ - unique model for the free software commons
+ - efficient, well-integrated systems, unforeseen before
+ - well-defined distributed social structure (upstream/downstream)
+
+** distros unloved
+
+ - "that thing you run Docker on"
+ - main griefs:
+ + distros are inflexible
+ + distros "lag behind"
+ * or: people no longer feel concerned)
+ * or: developers are selfish
+ + barrier to entry too high
+ * arcane tools
+ * evolution is hard since everything is intermingled
+
+** need for flexibility: virtualenv, Vagrant, Docker, Spack, etc.
+
+** profusion of language package managers (-> xkcd image)
+
+ - good for developers: facilitates distribution of small packages,
+ makes the language environment more useful
+ - good: upstream formalizes the dependency graph
+ - bad for users: makes things messier
+ + example: npm relies on the host system to build C++ extensions
+ + need to use several package managers
+ - bad: a bunch of isolated communities
+
+** Flatpak and Snappy
+
+ - cite FOSDEM 2016 talk by RH employee about "core" vs. non-core
+ - see "runtimes" at http://flatpak.org/apps.html
+
+#+BEGIN_EXAMPLE
+ {
+ "app-id": "com.igalia.Gobby",
+ "branch": "0.4",
+ "runtime": "org.gnome.Platform",
+ "runtime-version": "3.20",
+ "sdk": "org.gnome.Sdk",
+ "separate-locales": false,
+ "command": "gobby",
+ "rename-desktop-file": "gobby.desktop",
+ "rename-icon": "gobby",
+ "desktop-file-name-prefix": "(0.4) ",
+ "finish-args": [
+ /* X11 + XShm access */
+ "--share=ipc", "--socket=x11",
+ /* Home directory */
+ "--filesystem=home",
+ /* Network access */
+ "--share=network"
+ ],
+ "build-options" : {
+ "cflags": "-O2 -g0",
+ "cxxflags": "-O2 -g0 --std=c++11",
+ "env": {
+ "V": "1"
+ }
+ },
+ "cleanup": [
+ "/include",
+ "/lib/*.a",
+ "/lib/*.la",
+ "/lib/*.so",
+ "/lib/atkmm-1.6",
+ "/lib/cairomm-1.0",
+ "/lib/debug",
+ "/lib/gdkmm-2.4",
+ "/lib/giomm-2.4",
+ "/lib/glibmm-2.4",
+ "/lib/gtkmm-2.4",
+ "/lib/libxml++-2.6",
+ "/lib/pangomm-1.4",
+ "/lib/pkgconfig",
+ "/lib/sigc++-2.0",
+ "/share/devhelp",
+ "/share/doc",
+ "/share/gtk-doc"
+ ],
+ "modules": [
+ {
+ "name": "sigc++",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.8/libsigc++-2.8.0.tar.xz",
+ "sha256":
"774980d027c52947cb9ee4fac6ffe2ca60cc2f753068a89dfd281c83dbff9651"
+ }
+ ]
+ },
+
+ {
+ "name": "glibmm",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.48/glibmm-2.48.1.tar.xz",
+ "sha256":
"dc225f7d2f466479766332483ea78f82dc349d59399d30c00de50e5073157cdf"
+ }
+ ]
+ },
+
+ {
+ "name": "cairomm",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/cairomm/1.12/cairomm-1.12.0.tar.xz",
+ "sha256":
"a54ada8394a86182525c0762e6f50db6b9212a2109280d13ec6a0b29bfd1afe6"
+ }
+ ]
+ },
+
+ {
+ "name": "pangomm",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/pangomm/2.40/pangomm-2.40.0.tar.xz",
+ "sha256":
"7dd0afa9dcce57cdb0aad77da9ea46823ee8515d5f3ffd895b9ede7365c3d70d"
+ }
+ ]
+ },
+
+ {
+ "name": "atkmm",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/atkmm/2.24/atkmm-2.24.2.tar.xz",
+ "sha256":
"ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd"
+ }
+ ]
+ },
+
+ {
+ "name": "gtkmm",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.24/gtkmm-2.24.4.tar.xz",
+ "sha256":
"443a2ff3fcb42a915609f1779000390c640a6d7fd19ad8816e6161053696f5ee"
+ }
+ ]
+ },
+
+ {
+ "name": "xmlmm",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/libxml++/2.40/libxml++-2.40.1.tar.xz",
+ "sha256":
"4ad4abdd3258874f61c2e2a41d08e9930677976d303653cd1670d3e9f35463e9"
+ }
+ ]
+ },
+
+ {
+ "name": "gtksourceview",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://ftp.gnome.org/pub/GNOME/sources/gtksourceview/2.10/gtksourceview-2.10.5.tar.bz2",
+ "sha256":
"c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e"
+ }
+ ]
+ },
+
+ {
+ "name": "net6",
+ "sources": [
+ {
+ "type": "archive",
+ "url": "http://releases.0x539.de/net6/net6-1.3.14.tar.gz",
+ "sha256":
"155dd82cbe1f8354205c79ab2bb54af4957047422250482596a34b0e0cc61e21"
+ }
+ ]
+ },
+
+ {
+ "name": "obby",
+ "config-opts": [
+ "--enable-ipv6"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "http://releases.0x539.de/obby/obby-0.4.8.tar.gz",
+ "sha256":
"7d1d7ba6e800cea1b1a3c47d1189f959ef49a647ebe77170351e2dfd27b89b67"
+ }
+ ]
+ },
+
+ {
+ "name": "gobby",
+ "post-install": [
+ "sed -e s/^_// contrib/gobby.desktop.in >
contrib/gobby.desktop",
+ "install -dm755 /app/share/applications",
+ "install -m644 contrib/gobby.desktop /app/share/applications"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://releases.0x539.de/gobby/gobby-0.4.13.tar.gz",
+ "sha256":
"8cbd89ffbe3e056160a8d76e11d641f3b045793e35897546f98d2de368001871"
+ }
+ ]
+ }
+ ]
+ }
+#+END_EXAMPLE
+
+*** quote from Adam Williamson (Red Hat, Fedora)
+
+"You may have read some stuff this week about an application delivery
+mechanism called Snappy and how it’s going to unite all distributions
+and kill apt and rpm!
+
+This is, to put it diplomatically, a heaping pile of steaming
+bullshit. You may not be surprised to learn that said pile has been
+served by the Canonical press department."
+
+"There is in fact another system with very similar goals, which is now
+called Flatpak [...] Canonical’s press
+release, of course, doesn’t even acknowledge Flatpak’s existence…"
+
+https://www.happyassassin.net/2016/06/16/on-snappy-and-flatpak-business-as-usual-in-the-canonical-propaganda-department/
+
+** fundamental problems
+
+*** losing "big picture" work, integration work
+
+*** not composable
+
+*** where's the Corresponding Source?
+
+*** "app" model/free software mismatch
+
+* what we have
+
+** package manager
+
+** development environment
+
+** GuixSD
+
+*** VM, container, metal
+*** services
+
+* scaling up
+
+** packages: guix import, guix refresh
+
+** builds: hardware donations, funding campaign, Igalia
+
+*** new machine: picture, Libreboot
+
+** contributions: guix lint, documented processes
+
+ - reviews
+ - tools? (Patchwork, etc.)
+
+** maintainership, responsibilities
+
+ - distributed sysadmin
+ - talks
diff --git a/talks/ghm-2016/update/rules.ini b/talks/ghm-2016/update/rules.ini
new file mode 100644
index 0000000..5a74423
--- /dev/null
+++ b/talks/ghm-2016/update/rules.ini
@@ -0,0 +1,9 @@
+;; Rules for Rubber.
+
+[dot-pdf]
+target = (.*)\.pdf
+source = \1.dot
+rule = shell
+cost = 0
+command = dot -Tpdf -Gratio=.78 -o $target $source
+message = rendering $source into $target
diff --git a/talks/ghm-2016/update/talk.tex b/talks/ghm-2016/update/talk.tex
new file mode 100644
index 0000000..c87a4f8
--- /dev/null
+++ b/talks/ghm-2016/update/talk.tex
@@ -0,0 +1,660 @@
+% The comment below tells Rubber to compile the .dot files.
+%
+% rubber: module graphics
+% rubber: rules rules.ini
+
+\documentclass{beamer}
+
+\usetheme{default}
+
+\usefonttheme{structurebold}
+\usepackage{helvet}
+\usecolortheme{seagull} % white on black
+
+\usepackage[utf8]{inputenc}
+\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref,xspace,multicol}
+\usepackage[absolute,overlay]{textpos}
+\usepackage{tikz}
+\usetikzlibrary{arrows,shapes,trees,shadows,positioning}
+\usepackage{fancyvrb} % for \Verb
+
+% Remember the position of every picture.
+\tikzstyle{every picture}+=[remember picture]
+
+\tikzset{onslide/.code args={<#1>#2}{%
+ \only<#1>{\pgfkeysalso{#2}} % \pgfkeysalso doesn't change the path
+}}
+
+% Colors.
+\definecolor{guixred1}{RGB}{226,0,38} % red P
+\definecolor{guixorange1}{RGB}{243,154,38} % guixorange P
+\definecolor{guixyellow}{RGB}{254,205,27} % guixyellow P
+\definecolor{guixred2}{RGB}{230,68,57} % red S
+\definecolor{guixred3}{RGB}{115,34,27} % dark red
+\definecolor{guixorange2}{RGB}{236,117,40} % guixorange S
+\definecolor{guixtaupe}{RGB}{134,113,127} % guixtaupe S
+\definecolor{guixgrey}{RGB}{91,94,111} % guixgrey S
+\definecolor{guixdarkgrey}{RGB}{46,47,55} % guixdarkgrey S
+\definecolor{guixblue1}{RGB}{38,109,131} % guixblue S
+\definecolor{guixblue2}{RGB}{10,50,80} % guixblue S
+\definecolor{guixgreen1}{RGB}{133,146,66} % guixgreen S
+\definecolor{guixgreen2}{RGB}{157,193,7} % guixgreen S
+
+\setbeamerfont{title}{size=\huge}
+\setbeamerfont{frametitle}{size=\huge}
+\setbeamerfont{normal text}{size=\Large}
+
+% White-on-black color theme.
+\setbeamercolor{structure}{fg=guixorange1,bg=black}
+\setbeamercolor{title}{fg=white,bg=black}
+\setbeamercolor{date}{fg=guixorange1,bg=black}
+\setbeamercolor{frametitle}{fg=white,bg=black}
+\setbeamercolor{titlelike}{fg=white,bg=black}
+\setbeamercolor{normal text}{fg=white,bg=black}
+\setbeamercolor{alerted text}{fg=guixyellow,bg=black}
+\setbeamercolor{section in toc}{fg=white,bg=black}
+\setbeamercolor{section in toc shaded}{fg=white,bg=black}
+\setbeamercolor{subsection in toc}{fg=guixorange1,bg=black}
+\setbeamercolor{subsection in toc shaded}{fg=white,bg=black}
+\setbeamercolor{subsubsection in toc}{fg=guixorange1,bg=black}
+\setbeamercolor{subsubsection in toc shaded}{fg=white,bg=black}
+\setbeamercolor{frametitle in toc}{fg=white,bg=black}
+\setbeamercolor{local structure}{fg=guixorange1,bg=black}
+
+\newcommand{\highlight}[1]{\alert{\textbf{#1}}}
+
+\title{GNU~Guix is 4 years old!}
+
+\author{Ludovic Courtès}
+\date{\small{GNU Hackers Meeting, Rennes, August 2016}}
+
+\setbeamertemplate{navigation symbols}{} % remove the navigation bar
+
+\AtBeginSection[]{
+ \begin{frame}
+ \frametitle{}
+ \tableofcontents[currentsection]
+ \end{frame}
+}
+
+
+\newcommand{\screenshot}[1]{
+ \begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=\paperwidth]{#1}};
+ \end{tikzpicture}
+ \end{frame}
+}
+
+
+\begin{document}
+
+\maketitle
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}
+ \Huge{\textbf{The rise and fall of distros.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+%% \begin{frame}[plain]
+%% \Huge{It's worse, really.}
+%% \end{frame}
+
+%% \setbeamercolor*{normal text}{bg=guixdarkgrey,fg=white}
+%% \begin{frame}[plain]
+%% \Large{``Let's Package jQuery: A Javascript Packaging Dystopian
+%% Novella'' by Chris Webber}
+%% \\[2.cm]
+
+%% \url{http://dustycloud.org/blog/javascript-packaging-dystopia/}
+%% \end{frame}
+%% \setbeamercolor*{normal text}{fg=white,bg=black}
+
+\setbeamercolor{normal text}{bg=guixred3,fg=white}
+\begin{frame}[plain]
+ \begin{quotation}
+ \noindent
+ \LARGE{``Debian and other distributions are going to be \textbf{that
+ thing you run docker on}, little more.''}
+ \end{quotation}
+ \hfill{--- Jos Poortvliet, ownCloud developer}
+
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.south east), anchor=south east]{
+ \url{http://lwn.net/Articles/670566/}
+ };
+ \end{tikzpicture}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+
{\includegraphics[width=\paperwidth]{images/dockerfile-owncloud-cropped}};
+
+ \node [at=(current page.center), anchor=south west, overlay,
+ text=black, text opacity=1, fill=white, opacity=.7, text width=5cm]
+ {\LARGE{It's also that thing you run \emph{inside} Docker!}};
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[plain]
+ \LARGE{
+ main griefs:
+ \begin{itemize}
+ \item distros are \textbf{inflexible}
+ \item distros \textbf{``lag behind''}
+ \item developers have to \textbf{``chase distros''}
+ \end{itemize}
+ }
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\screenshot{images/package-managers-cropped}
+\screenshot{images/npm-curl-pipe-sh-cropped}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+
{\includegraphics[height=\paperheight]{images/universal_install_script}};
+ \node [at=(current page.north east), anchor=south east, rotate=90,
+ text=black, text opacity=1, fill=white, opacity=.6]{
+ \url{http://xkcd.com/1654/}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=black}
+
+\begin{frame}[plain]
+ \Huge{\textbf{Giving up?}}
+ \\[1.0cm]
+ \uncover<2->{\Large{$\rightarrow$ ``app bundles''}}
+\end{frame}
+
+\screenshot{images/dockerfile-owncloud-cropped}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+
{\includegraphics[width=\paperwidth]{images/docker-image-layers-cropped}};
+ \node [at=(current page.north east), anchor=north east,
+ text=black, text opacity=1, fill=white, opacity=.6]{
+ \url{https://imagelayers.io/}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixdarkgrey,fg=white}
+\begin{frame}[plain]
+ \Huge{... still too low-level}
+ \\[1cm]
+ \uncover<2->{\Huge{Maybe what we need is an \textbf{app store} that
+ \emph{feels} like apt, yum \& co.?}}
+\end{frame}
+\setbeamercolor{normal text}{bg=black,fg=white}
+
+\screenshot{images/arstechnica-snappy-goodbye-apt-yum}
+
+\setbeamercolor{normal text}{bg=guixred3,fg=white}
+\begin{frame}[plain]
+ \begin{quotation}
+ \noindent
+ \LARGE{``This is, to put it diplomatically, a heaping pile of
+ steaming bullshit [...] served by the Canonical press
+ department.''}
+ \\[6mm]
+ \LARGE{\uncover<2->{``There is in fact another system with very
+ similar goals, which is now called \textbf{Flatpak} [...]''}}
+ \end{quotation}
+ \hfill{--- Adam Williamson (Red Hat, Fedora)}
+
+ %
https://www.happyassassin.net/2016/06/16/on-snappy-and-flatpak-business-as-usual-in-the-canonical-propaganda-department/
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.south east), anchor=south east]{
+ \url{https://www.happyassassin.net/}
+ };
+ \end{tikzpicture}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+
+\screenshot{images/flatpak}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+
{\includegraphics[width=\paperwidth]{images/flatpak-how-it-works-cropped}};
+ \node [at=(current page.north east), anchor=north east,
+ text=black, text opacity=1, fill=white, opacity=.6]{
+ \url{http://flatpak.org/}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+
+\begin{frame}[plain]{``app bundles'' are headed wrong}
+ \Large{
+ \begin{itemize}
+ \item difficulty to \highlight{compose} software packages
+ \item no ``big picture'' \highlight{integration work}
+ \item where's the \highlight{Corresponding Source}?
+ \item \textbf{``app'' model/free software commons mismatch}
+ \end{itemize}
+ }
+\end{frame}
+
+%% \screenshot{images/frozen-pizza}
+%% \screenshot{images/docker-security}
+
+% TODO:
http://www.vitavonni.de/blog/201503/2015031201-the-sad-state-of-sysadmin-in-the-age-of-containers.html
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbeamercolor{normal text}{fg=black,bg=white}
+\screenshot{images/GuixSD-horizontal-print}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}{Guix}
+ \LARGE{
+ \begin{enumerate}
+ \item transactional package manager
+ \item software environment manager
+ \item APIs \& tools to customize environments
+ \item packaging tools
+ \end{enumerate}
+ }
+\end{frame}
+
+\begin{frame}[fragile]
+
+ \begin{semiverbatim}
+\$ guix package -i gcc-toolchain coreutils sed grep
+\textrm{...}
+
+\$ eval `guix package --search-paths`
+\textrm{...}
+
+\$ guix package --manifest=my-software.scm
+\textrm{...}
+ \end{semiverbatim}
+
+ %% \begin{tikzpicture}[overlay]
+ %% \node[rounded corners=4, text centered,
+ %% fill=guixorange1, text width=3cm,
+ %% inner sep=3mm, rotate=5, opacity=.75, text opacity=1,
+ %% drop shadow={opacity=0.5}] at (5, 4) {
+ %% \textbf{\large{demo}}
+ %% };
+ %% \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixdarkgrey,fg=guixred3}
+\begin{frame}[fragile]
+ \Huge{Want to get started hacking on GIMP?}
+ \\[2cm]
+ \uncover<2->{\Large{A simple matter of installing the deps, right?}}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=\paperwidth]{images/gimp-graph}};
+ \end{tikzpicture}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+\$ guix environment --container gimp
+\textrm{...}
+
+\$ guix environment --container gimp \\
+ --ad-hoc git autoconf automake gdb
+\textrm{...}
+
+ \end{semiverbatim}
+\end{frame}
+
+\begin{frame}[plain]
+ \Huge{Creating package variants at the command line}
+\end{frame}
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+\$ guix package -i emacs \\
+ \alert<1>{--with-source}=./emacs-25.1rc0.tar.gz
+\textrm{...}
+
+\pause
+\$ guix package -i git \\
+ \alert<2>{--with-input}=openssl=libressl
+\textrm{...}
+
+ \end{semiverbatim}
+\end{frame}
+
+\begin{frame}[plain]
+ \Huge{Your personal packages or variants in
+ \texttt{GUIX\_PACKAGE\_PATH}!}
+\end{frame}
+
+\begin{frame}[plain]
+ \Huge{Security updates ``grafted'' onto available binaries}
+\end{frame}
+
+\screenshot{images/gimp-graph}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=\paperwidth]{images/os-declaration}};
+ \node [at=(current page.center), fill=black, opacity=.3, text
+ opacity=1., minimum height=21cm, minimum width=297mm]
+ {\huge{\textbf{GuixSD: declarative OS config}}};
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile]
+ \begin{overlayarea}{\textwidth}{8cm}
+ \begin{tikzpicture}[kernel/.style = {
+ text width=10cm, minimum height=1.4cm,
+ text centered,
+ rounded corners=2mm,
+ fill=white, text=black
+ },
+ userland/.style = {
+ draw=guixorange1, very thick,
+ fill=white, text=black, text width=6cm,
+ rounded corners=2mm, minimum height=1.4cm,
+ text centered
+ }]
+ \matrix[row sep=6mm, column sep=1cm] {
+ \node(kernel)[kernel]{\textbf{\Large{Linux-libre}}};
+ \\
+
+ \node<2->(initrd)[userland]{\textbf{\Large{initial RAM disk}}};
+ \\
+
+ \node<4->(shepherd)[userland]{\textbf{\Large{PID 1: GNU Shepherd}}
+ \\ services...};
+ \\
+
+ \node<6->(user)[userland, dashed]{\textbf{\Large{applications}}};
+ \\
+ };
+
+ \path[->, very thick, draw=guixred1]<2->
+ (kernel) edge (initrd);
+ \path[->, very thick, draw=guixred1]<4->
+ (initrd) edge (shepherd);
+ \path[->, very thick, draw=guixred1]<6->
+ (shepherd) edge (user);
+
+ \end{tikzpicture}
+ \end{overlayarea}
+
+ \begin{tikzpicture}[overlay,
+ guile/.style = {
+ fill=guixyellow, text=black, rotate=30,
+ rounded corners=4mm, text width=3cm,
+ opacity=.75, text opacity=1, text centered,
+ minimum height=1.3cm
+ }]
+ \node<3->(labelinitrd) [guile] at (initrd.east) {%
+ \Large{Guile}
+ };
+ \node<5->(labelinitrd) [guile] at (shepherd.east) {%
+ \Large{Guile}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{Status.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}{4 years!}
+ \begin{itemize}
+ \item Aug. 2012 --- GNU Hackers Meeting, Düsseldorf
+ \item Nov. 2012 --- dubbed GNU
+ \item{Jan. 2013 --- \alert{0.1}}
+ \item ...
+ \item{July 2014 --- \alert{0.7}, \textbf{installable operating
+ system}}
+ \item ...
+ \item{Nov. 2015 --- \alert{0.9.0}, new service framework, etc.}
+ \item{Jan. 2016 --- successful \alert{fundraiser} for new
+ \textbf{build farm}}
+ \item{Mar. 2016 --- \alert{0.10.0}, grafts, GNOME}
+ \item{Aug. 2016 --- \alert{0.11.0}, system tests, more services}
+ \end{itemize}
+\end{frame}
+
+\screenshot{images/better}
+
+\begin{frame}{growth!}
+ \Large{
+ \begin{itemize}
+ \item 3,800+ packages
+ \item 4 architectures
+ \item binaries at \url{https://hydra.gnu.org}
+ \item $\approx$500 new packages per release
+ \end{itemize}
+ }
+\end{frame}
+
+
+\setbeamercolor{normal text}{bg=white}
+\screenshot{images/openhub-activity}
+\screenshot{images/openhub-contributors}
+\setbeamercolor{normal text}{bg=black}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{Scaling up.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[fragile]{importers \& updaters}
+ \Large{
+ \begin{itemize}
+ \item{\texttt{guix import}
+ \begin{itemize}
+ \item \highlight{8.5 importers}: GNU, Nix, PyPI, CPAN, CRAN,
+ Hackage, ELPA, Gem, npm (GSoC~2016)
+ \end{itemize}}
+ \item{\texttt{guix refresh}
+ \begin{itemize}
+ \item \highlight{11 updaters}: GNU, GNOME, KDE, Xorg, ELPA, CRAN,
+ Bioconductor, Hackage, PyPI, Gem, GitHub
+ \end{itemize}}
+ \item \texttt{guix lint -c cve} (vulnerabilities)
+ \end{itemize}
+ }
+\end{frame}
+
+\begin{frame}{contributions}
+ \Large{
+ \begin{itemize}
+ \item \highlight{documented processes}, code of conduct
+ \item \highlight{consensus-based} decision making
+ \item \highlight{tools}: \texttt{guix lint} (12 checkers!),
+ \texttt{guix build --rounds=2}, etc.
+ \item good \highlight{reviews \& mentoring}
+ \item<2-> 30 committers, but \highlight{5--10 frequent reviewers}
+ \item<3->{50+ emails per day, \highlight{hard to track patches}
+ \begin{itemize}
+ \item Patchwork? QEMU's \texttt{patches}? suggestions?
+ \end{itemize}}
+ \end{itemize}
+ }
+\end{frame}
+
+\begin{frame}{maintainership, responsibilities}
+ \Large{
+ \begin{itemize}
+ \item \highlight{Ricardo Wurmus} co-maintainer since July!
+ \item{currently \highlight{$\approx$3 build farm sysadmins}
+ \begin{itemize}
+ \item ... but heading towards distributed sysadmin!
+ \item run GuixSD everywhere, version-control that
+ \item eventually: \texttt{guix deploy}
+ \end{itemize}}
+ \end{itemize}
+ }
+\end{frame}
+
+\begin{frame}{build farm \& funding}
+ \Large{
+ \begin{itemize}
+ \item \highlight{hardware donated} by FSF, TUM, GNU~Spain,
+ individuals
+ \item 2 \highlight{Novena} boards (ARMv7) donated by Bunnie
+ \item \highlight{raised \$8,000+} in January 2016
+ \item \highlight{5,000~EUR donated by Igalia}
+ \item ``\highlight{Guix Europe}'' NPO created in France in 2016
+ \end{itemize}
+ }
+
+ \begin{tikzpicture}[overlay]
+ \node<2>[rounded corners=4, text centered,
+ fill=guixorange1, text width=5cm,
+ inner sep=5mm, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}] at (5, 3) {
+ \textbf{\LARGE{Thank You! :-)}}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+
+\begin{frame}[plain,fragile]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=\paperwidth]{images/libreboot-server}};
+ \end{tikzpicture}
+
+ \begin{tikzpicture}[overlay]
+ \node<2>[rounded corners=4, text centered,
+ fill=guixorange1, text width=8cm,
+ inner sep=5mm, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}] at (current page.center) {
+ \textbf{\Large{Libreboot inside! No MEâ„¢!}}
+ };
+ \end{tikzpicture}
+
+ %% \begin{tikzpicture}[overlay]
+ %% \node<3>[rounded corners=4, text centered,
+ %% fill=guixorange1, text width=8cm, rotate=10,
+ %% inner sep=5mm, opacity=.75, text opacity=1, anchor=north east,
+ %% drop shadow={opacity=0.5}] at (current page.center) {
+ %% \Large{chewing new dog food soon...}
+ %% };
+ %% \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{What's left before 1.0?}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[plain]{getting to 1.0}
+ \Large{
+ \begin{itemize}
+ \item \texttt{guix pull} \& authenticated checkouts
+ \item performance \& usability improvements
+ \item{\highlight{GuixSD}
+ \begin{itemize}
+ \item encrypted root file system
+ \item LVM support
+ \item more system services
+ \item fix bugs and glitches!
+ \end{itemize}}
+ \item self-hosted infra: \texttt{guix publish} and Cuirass
+ \end{itemize}
+ }
+\end{frame}
+
+\begin{frame}[plain]
+
+ \vspace{0.7cm}
+ \Large{
+ \begin{itemize}
+ \item \textbf{install the distribution}
+ \item \textbf{use it}, report bugs, add packages
+ \item help with the \textbf{infrastructure} + admin
+ \item \textbf{donate} hardware/money
+ \item share your \textbf{ideas}!
+ \end{itemize}
+ }
+
+ \begin{textblock}{5}(7,8)
+ \tikz
+ \node[overlay, rounded corners=4, text centered,
+ minimum size=10mm, fill=guixorange1, text width=5cm,
+ inner sep=3mm, rotate=-7, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}] at (3, 3) {
+ \textbf{your help needed!}
+ };
+ \end{textblock}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}[plain]
+
+\vfill{
+ \vspace{2.5cm}
+ \center{\includegraphics[width=0.3\textwidth]{images/GuixSD}}\\[1.0cm]
+ address@hidden://gnu.org/software/guix/}}}
+}
+
+\end{frame}
+
+\begin{frame}{}
+
+ \begin{textblock}{12}(2, 8)
+ \tiny{
+ Copyright \copyright{} 2010, 2012--2016 Ludovic Courtès address@hidden
+ GNU GuixSD logo, CC-BY-SA 4.0, \url{http://gnu.org/s/guix/graphics}
+
+ Copyright of other images included in this document is held by
+ their respective owners.
+ \\[3.0mm]
+ This work is licensed under the \alert{Creative Commons
+ Attribution-Share Alike 3.0} License. To view a copy of this
+ license, visit
+ \url{http://creativecommons.org/licenses/by-sa/3.0/} or send a
+ letter to Creative Commons, 171 Second Street, Suite 300, San
+ Francisco, California, 94105, USA.
+ \\[2.0mm]
+ At your option, you may instead copy, distribute and/or modify
+ this document under the terms of the \alert{GNU Free Documentation
+ License, Version 1.3 or any later version} published by the Free
+ Software Foundation; with no Invariant Sections, no Front-Cover
+ Texts, and no Back-Cover Texts. A copy of the license is
+ available at \url{http://www.gnu.org/licenses/gfdl.html}.
+ \\[2.0mm]
+ % Give a link to the 'Transparent Copy', as per Section 3 of the GFDL.
+ The source of this document is available from
+ \url{http://git.sv.gnu.org/cgit/guix/maintenance.git}.
+ }
+ \end{textblock}
+\end{frame}
+
+\end{document}
+
+% Local Variables:
+% coding: utf-8
+% comment-start: "%"
+% comment-end: ""
+% ispell-local-dictionary: "american"
+% compile-command: "rubber --pdf talk.tex"
+% End:
+
+%% LocalWords: Reproducibility