[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
08/10: talks: fosdem-2017/services: Morning tweaks.
From: |
Ludovic Courtès |
Subject: |
08/10: talks: fosdem-2017/services: Morning tweaks. |
Date: |
Sun, 5 Feb 2017 12:00:18 +0000 (UTC) |
civodul pushed a commit to branch master
in repository maintenance.
commit 55302c0257a1394c948d163e614c377553d5ef19
Author: Ludovic Courtès <address@hidden>
Date: Sun Feb 5 12:51:59 2017 +0100
talks: fosdem-2017/services: Morning tweaks.
---
.gitignore | 3 +
.../services/images/service-extensions-desktop.dot | 135 ++++++++++++++
.../services/images/service-extensions.dot | 69 +++++++
talks/fosdem-2017/services/outline.org | 2 +-
talks/fosdem-2017/services/talk.tex | 193 +++++++++++++++++++-
5 files changed, 395 insertions(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1c6c406..b896322 100644
--- a/.gitignore
+++ b/.gitignore
@@ -111,3 +111,6 @@
/talks/fosdem-2017/services/talk.snm
/talks/fosdem-2017/services/talk.toc
/talks/fosdem-2017/services/talk.vrb
+/talks/fosdem-2017/services/images/service-extensions-desktop.pdf
+/talks/fosdem-2017/services/images/service-extensions.pdf
+/talks/fosdem-2017/services/images/shepherd-graph.pdf
diff --git a/talks/fosdem-2017/services/images/service-extensions-desktop.dot
b/talks/fosdem-2017/services/images/service-extensions-desktop.dot
new file mode 100644
index 0000000..c9f7fa1
--- /dev/null
+++ b/talks/fosdem-2017/services/images/service-extensions-desktop.dot
@@ -0,0 +1,135 @@
+digraph "Guix service" {
+ "81564352" [label = "system", shape = box, fontname = Helvetica];
+ "81578496" -> "81564352" [color = cyan3];
+ "81578592" -> "81564352" [color = red];
+ "60165152" -> "81564352" [color = darkgoldenrod];
+ "81578496" [label = "profile", shape = box, fontname = Helvetica];
+ "60450336" -> "81578496" [color = red];
+ "54318528" -> "81578496" [color = red];
+ "68219488" -> "81578496" [color = magenta];
+ "68219648" -> "81578496" [color = darkgoldenrod];
+ "68219680" -> "81578496" [color = darkseagreen];
+ "68219744" -> "81578496" [color = peachpuff4];
+ "68219776" -> "81578496" [color = magenta];
+ "68220000" -> "81578496" [color = red];
+ "69334496" -> "81578496" [color = darkgoldenrod];
+ "69334560" -> "81578496" [color = red];
+ "60450336" [label = "shepherd-root", shape = box, fontname = Helvetica];
+ "81544832" -> "60450336" [color = darkgoldenrod];
+ "81544800" -> "60450336" [color = cyan3];
+ "81531680" -> "60450336" [color = peachpuff4];
+ "81544768" -> "60450336" [color = dimgrey];
+ "81544736" -> "60450336" [color = blue];
+ "81564224" -> "60450336" [color = peachpuff4];
+ "54318432" -> "60450336" [color = cyan3];
+ "54318496" -> "60450336" [color = darkseagreen];
+ "54318528" -> "60450336" [color = red];
+ "54318560" -> "60450336" [color = peachpuff4];
+ "54319040" -> "60450336" [color = darkgoldenrod];
+ "54319168" -> "60450336" [color = magenta];
+ "68219392" -> "60450336" [color = darkseagreen];
+ "68219424" -> "60450336" [color = red];
+ "68219648" -> "60450336" [color = darkgoldenrod];
+ "68219744" -> "60450336" [color = peachpuff4];
+ "68219776" -> "60450336" [color = magenta];
+ "68220000" -> "60450336" [color = red];
+ "81544832" [label = "file-systems", shape = box, fontname = Helvetica];
+ "68219488" -> "81544832" [color = magenta];
+ "68219488" [label = "elogind", shape = box, fontname = Helvetica];
+ "81544800" [label = "user-file-systems", shape = box, fontname = Helvetica];
+ "81531680" [label = "root-file-system", shape = box, fontname = Helvetica];
+ "81544768" [label = "user-processes 4", shape = box, fontname = Helvetica];
+ "81544736" [label = "host-name antelope", shape = box, fontname = Helvetica];
+ "81564224" [label = "account", shape = box, fontname = Helvetica];
+ "54318528" -> "81564224" [color = red];
+ "68219392" -> "81564224" [color = darkseagreen];
+ "68219424" -> "81564224" [color = red];
+ "68219520" -> "81564224" [color = darkviolet];
+ "68219584" -> "81564224" [color = dimgrey];
+ "68219616" -> "81564224" [color = cyan3];
+ "68219776" -> "81564224" [color = magenta];
+ "54318528" [label = "guix", shape = box, fontname = Helvetica];
+ "68219392" [label = "ntp", shape = box, fontname = Helvetica];
+ "68219424" [label = "dbus", shape = box, fontname = Helvetica];
+ "68219488" -> "68219424" [color = magenta];
+ "68219520" -> "68219424" [color = darkviolet];
+ "68219584" -> "68219424" [color = dimgrey];
+ "68219616" -> "68219424" [color = cyan3];
+ "68219648" -> "68219424" [color = darkgoldenrod];
+ "68219680" -> "68219424" [color = darkseagreen];
+ "68219744" -> "68219424" [color = peachpuff4];
+ "68219776" -> "68219424" [color = magenta];
+ "68219520" [label = "polkit", shape = box, fontname = Helvetica];
+ "68219488" -> "68219520" [color = magenta];
+ "68219616" -> "68219520" [color = cyan3];
+ "68219680" -> "68219520" [color = darkseagreen];
+ "69334496" -> "68219520" [color = darkgoldenrod];
+ "69334560" -> "68219520" [color = red];
+ "68219616" [label = "colord", shape = box, fontname = Helvetica];
+ "68219680" [label = "udisks", shape = box, fontname = Helvetica];
+ "69334496" [label = "xfce-desktop", shape = box, fontname = Helvetica];
+ "69334560" [label = "gnome-desktop", shape = box, fontname = Helvetica];
+ "68219584" [label = "geoclue", shape = box, fontname = Helvetica];
+ "68219648" [label = "upower", shape = box, fontname = Helvetica];
+ "68219744" [label = "wicd", shape = box, fontname = Helvetica];
+ "68219776" [label = "avahi", shape = box, fontname = Helvetica];
+ "54318432" [label = "udev", shape = box, fontname = Helvetica];
+ "68219488" -> "54318432" [color = magenta];
+ "68219616" -> "54318432" [color = cyan3];
+ "68219648" -> "54318432" [color = darkgoldenrod];
+ "68219680" -> "54318432" [color = darkseagreen];
+ "68219808" -> "54318432" [color = darkviolet];
+ "68219808" [label = "mtp", shape = box, fontname = Helvetica];
+ "54318496" [label = "nscd", shape = box, fontname = Helvetica];
+ "68219776" -> "54318496" [color = magenta];
+ "54318560" [label = "syslog", shape = box, fontname = Helvetica];
+ "54319040" [label = "static-networking", shape = box, fontname = Helvetica];
+ "54319168" [label = "mingetty", shape = box, fontname = Helvetica];
+ "68220000" [label = "slim", shape = box, fontname = Helvetica];
+ "81578592" [label = "etc", shape = box, fontname = Helvetica];
+ "81578560" -> "81578592" [color = darkseagreen];
+ "81564224" -> "81578592" [color = peachpuff4];
+ "81564256" -> "81578592" [color = magenta];
+ "54319040" -> "81578592" [color = darkgoldenrod];
+ "68219424" -> "81578592" [color = red];
+ "68219520" -> "81578592" [color = darkviolet];
+ "81578560" [label = "fstab", shape = box, fontname = Helvetica];
+ "81544832" -> "81578560" [color = darkgoldenrod];
+ "81564256" [label = "pam", shape = box, fontname = Helvetica];
+ "54319200" -> "81564256" [color = darkviolet];
+ "68219488" -> "81564256" [color = magenta];
+ "68219520" -> "81564256" [color = darkviolet];
+ "68219872" -> "81564256" [color = dimgrey];
+ "68219936" -> "81564256" [color = darkgoldenrod];
+ "68220000" -> "81564256" [color = red];
+ "54319200" [label = "login", shape = box, fontname = Helvetica];
+ "68219872" [label = "screen-locker", shape = box, fontname = Helvetica];
+ "68219936" [label = "screen-locker", shape = box, fontname = Helvetica];
+ "60165152" [label = "boot", shape = box, fontname = Helvetica];
+ "81564320" -> "60165152" [color = blue];
+ "60163232" -> "60165152" [color = peachpuff4];
+ "60450336" -> "60165152" [color = red];
+ "81564320" [label = "cleanup", shape = box, fontname = Helvetica];
+ "60163232" [label = "activate", shape = box, fontname = Helvetica];
+ "81578464" -> "60163232" [color = dimgrey];
+ "60162752" -> "60163232" [color = blue];
+ "81578528" -> "60163232" [color = darkgoldenrod];
+ "81578592" -> "60163232" [color = red];
+ "81564224" -> "60163232" [color = peachpuff4];
+ "54318496" -> "60163232" [color = darkseagreen];
+ "54318528" -> "60163232" [color = red];
+ "68219392" -> "60163232" [color = darkseagreen];
+ "68219424" -> "60163232" [color = red];
+ "68219616" -> "60163232" [color = cyan3];
+ "68219648" -> "60163232" [color = darkgoldenrod];
+ "68219744" -> "60163232" [color = peachpuff4];
+ "68219776" -> "60163232" [color = magenta];
+ "81578464" [label = "firmware", shape = box, fontname = Helvetica];
+ "60162752" [label = "linux-bare-metal", shape = box, fontname = Helvetica];
+ "81578528" [label = "setuid-program", shape = box, fontname = Helvetica];
+ "68219424" -> "81578528" [color = red];
+ "68219520" -> "81578528" [color = darkviolet];
+ "68219872" -> "81578528" [color = dimgrey];
+ "68219936" -> "81578528" [color = darkgoldenrod];
+
+}
diff --git a/talks/fosdem-2017/services/images/service-extensions.dot
b/talks/fosdem-2017/services/images/service-extensions.dot
new file mode 100644
index 0000000..f59fd5e
--- /dev/null
+++ b/talks/fosdem-2017/services/images/service-extensions.dot
@@ -0,0 +1,69 @@
+digraph "Guix service" {
+ fontsize=20;
+ "84253216" [label = "system", shape = box, fontname = Helvetica];
+ "84251072" -> "84253216" [color = blue];
+ "84251200" -> "84253216" [color = darkseagreen];
+ "66509216" -> "84253216" [color = darkgoldenrod];
+ "84251072" [label = "profile", shape = box, fontname = Helvetica];
+ "66790304" -> "84251072" [color = darkgoldenrod];
+ "56553696" -> "84251072" [color = red];
+ "66790304" [label = "shepherd-root", shape = box, fontname = Helvetica];
+ "84228768" -> "66790304" [color = red];
+ "84228736" -> "66790304" [color = darkseagreen];
+ "84100544" -> "66790304" [color = darkgoldenrod];
+ "84228704" -> "66790304" [color = darkgoldenrod];
+ "84228672" -> "66790304" [color = cyan3];
+ "84253088" -> "66790304" [color = blue];
+ "56573696" -> "66790304" [color = blue];
+ "56553664" -> "66790304" [color = darkseagreen];
+ "56553696" -> "66790304" [color = red];
+ "56554304" -> "66790304" [color = peachpuff4];
+ "56554400" -> "66790304" [color = blue];
+ "56554432" -> "66790304" [color = dimgrey];
+ "74365408" -> "66790304" [color = magenta];
+ "74365440" -> "66790304" [color = darkviolet];
+ "84228768" [label = "file-systems", shape = box, fontname = Helvetica];
+ "84228736" [label = "user-file-systems", shape = box, fontname = Helvetica];
+ "84100544" [label = "root-file-system", shape = box, fontname = Helvetica];
+ "84228704" [label = "user-processes 4", shape = box, fontname = Helvetica];
+ "84228672" [label = "host-name komputilo", shape = box, fontname =
Helvetica];
+ "84253088" [label = "account", shape = box, fontname = Helvetica];
+ "56553696" -> "84253088" [color = red];
+ "74365408" -> "84253088" [color = magenta];
+ "56553696" [label = "guix", shape = box, fontname = Helvetica];
+ "74365408" [label = "openssh", shape = box, fontname = Helvetica];
+ "56573696" [label = "udev", shape = box, fontname = Helvetica];
+ "56553664" [label = "nscd", shape = box, fontname = Helvetica];
+ "56554304" [label = "syslog", shape = box, fontname = Helvetica];
+ "56554400" [label = "static-networking", shape = box, fontname = Helvetica];
+ "56554432" [label = "mingetty", shape = box, fontname = Helvetica];
+ "74365440" [label = "dhcp-client", shape = box, fontname = Helvetica];
+ "84251200" [label = "etc", shape = box, fontname = Helvetica];
+ "84251168" -> "84251200" [color = darkgoldenrod];
+ "84253088" -> "84251200" [color = blue];
+ "84253120" -> "84251200" [color = dimgrey];
+ "56554400" -> "84251200" [color = blue];
+ "84251168" [label = "fstab", shape = box, fontname = Helvetica];
+ "84228768" -> "84251168" [color = red];
+ "84253120" [label = "pam", shape = box, fontname = Helvetica];
+ "56554464" -> "84253120" [color = cyan3];
+ "56554464" [label = "login", shape = box, fontname = Helvetica];
+ "66509216" [label = "boot", shape = box, fontname = Helvetica];
+ "84253184" -> "66509216" [color = darkgoldenrod];
+ "66507296" -> "66509216" [color = peachpuff4];
+ "66790304" -> "66509216" [color = darkgoldenrod];
+ "84253184" [label = "cleanup", shape = box, fontname = Helvetica];
+ "66507296" [label = "activate", shape = box, fontname = Helvetica];
+ "84251040" -> "66507296" [color = darkviolet];
+ "66506816" -> "66507296" [color = blue];
+ "84251136" -> "66507296" [color = cyan3];
+ "84251200" -> "66507296" [color = darkseagreen];
+ "84253088" -> "66507296" [color = blue];
+ "56553664" -> "66507296" [color = darkseagreen];
+ "56553696" -> "66507296" [color = red];
+ "74365408" -> "66507296" [color = magenta];
+ "84251040" [label = "firmware", shape = box, fontname = Helvetica];
+ "66506816" [label = "linux-bare-metal", shape = box, fontname = Helvetica];
+ "84251136" [label = "setuid-program", shape = box, fontname = Helvetica];
+
+}
diff --git a/talks/fosdem-2017/services/outline.org
b/talks/fosdem-2017/services/outline.org
index e5853bc..aec7eb0 100644
--- a/talks/fosdem-2017/services/outline.org
+++ b/talks/fosdem-2017/services/outline.org
@@ -71,7 +71,7 @@ See also
[[https://www.gnu.org/software/guix/news/service-composition-in-guixsd.
*** bad
**** services can change anything
-**** unstructured
+**** syntactic structure, but not value structure
**** can enter endless loops
**** no static checks: dependencies among units, wrong key
**** implementors have to fiddle with lazy/strict evaluation
diff --git a/talks/fosdem-2017/services/talk.tex
b/talks/fosdem-2017/services/talk.tex
index bcaffda..c54e66d 100644
--- a/talks/fosdem-2017/services/talk.tex
+++ b/talks/fosdem-2017/services/talk.tex
@@ -133,6 +133,15 @@
\begin{frame}[fragile]
\begin{semiverbatim}
+ (service openssh-service-type
+ (openssh-configuration
+ (x11-forwarding? #t)
+ (permit-root-login 'without-password)))
+ \end{semiverbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
(\alert{operating-system}
;; \textrm{...}
(services (remove (lambda (service)
@@ -249,7 +258,44 @@
\end{semiverbatim}
\end{frame}
-% TODO: Add container example.
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+;; Shepherd service to mount/unmount a file system.
+
+(\alert{with-imported-modules} '((gnu build file-systems))
+ (\alert{shepherd-service}
+ (provision '(file-system-/home))
+ (start \alert{#~}(lambda ()
+ (mount "/dev/foo" "/home" "ext4")))
+ (stop \alert{#~}(lambda ()
+ (umount "/home")))))
+ \end{semiverbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+;; Shepherd service for the BitlBee IRC gateway daemon.
+\uncover<2->{;; Running in a container!}
+
+\uncover<2->{(\alert{with-imported-modules} '((gnu build linux-container))}
+ (\alert{shepherd-service}
+ (provision '(bitlbee))
+ (requirement '(loopback))
+ (start
\alert{#~}(\alert<2>{make-forkexec-constructor\uncover<2->{/container}}
+ (list \alert{#$}(file-append bitlbee "/sbin/bitlbee")
+ \textrm{...})))
+ (stop \highlight{#~}(make-kill-destructor)))\uncover<2->{)}
+ \end{semiverbatim}
+
+ \begin{tikzpicture}[overlay]
+ \node<2->[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 (9, 0) {
+ \large{\textbf{world première!}}
+ };
+ \end{tikzpicture}
+\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamercolor{normal text}{bg=guixblue2}
@@ -373,7 +419,8 @@
\end{frame}
\setbeamercolor{normal text}{fg=white,bg=guixred3}
\begin{frame}
- \Huge{\textbf{Digression: NixOS configuration.}}
+ \Huge{\textbf{Digression:\\
+ NixOS configuration.}}
\end{frame}
\setbeamercolor{normal text}{fg=white,bg=black}
@@ -401,13 +448,127 @@ in \{
\end{semiverbatim}
\end{frame}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\setbeamercolor{normal text}{bg=guixblue2}
-\begin{frame}
- \Huge{\textbf{OS testing!}}
+\setbeamercolor{normal text}{fg=black,bg=white}
+\begin{frame}[fragile]
+ \vspace{2cm}
+ \begin{overlayarea}{\textwidth}{\textheight}
+ \begin{tikzpicture}[service/.style = {
+ rectangle, text width=17mm, text centered,
+ rounded corners=2mm, minimum height=10mm,
+ fill=guixyellow,
+ text=black}]
+ %% \node[text=black, at=(1,1), anchor=north]
+ %% {\textbf{the ``service extension'' graph}};
+ \matrix[row sep=10mm, column sep=13mm]
+ {
+ \node(colord)[service]{colord}; &
+ \node(geoclue)[service]{geoclue}; &
+
+ \\
+
+ \node(polkit)[service]{polkit}; &
+ \node(elogind)[service]{elogind}; &
+ \node(upower)[service]{upower};
+ \\
+
+ \node(udev)[service]{udev}; &
+ \node(dbus)[service]{dbus}; &
+ \node(udisks)[service]{udisks};
+ \\
+
+ \node(shepherd)[service, onslide=<1>{white}]{shepherd}; &
+ \node(etc)[service, onslide=<1-2>{white}]{/etc}; &
+ \\
+ };
+
+ \path[->, very thick, draw=guixgrey, dashed] (udisks) edge [out=210,
in=-30] (udev);
+ \path[->, very thick, draw=guixgrey] (udisks) edge (dbus);
+ \path[->, very thick, draw=guixgrey, dashed] (upower) edge (udev);
+ \path[->, very thick, draw=guixgrey] (upower) edge (dbus);
+ \path[->, very thick, draw=guixgrey] (elogind) edge (dbus);
+ \path[->, very thick, draw=guixgrey] (polkit) edge (dbus);
+ \path[->, very thick, draw=guixgrey] (polkit) edge (dbus);
+ \path[->, very thick, draw=guixgrey] (colord) edge (dbus);
+ \path[->, very thick, draw=guixgrey] (colord) edge (polkit);
+ \path[->, very thick, draw=guixgrey, dashed] (colord)
+ edge [out=210, in=120] node[text=black]{\texttt{.rules}} (udev);
+ \path[->, very thick, draw=guixgrey] (geoclue) edge [out=-30, in=30]
+ node[text=black]{\texttt{.service}} (dbus);
+ \path[->, very thick, draw=guixgrey]<2-> (dbus) edge (shepherd);
+ \path[->, very thick, draw=guixgrey]<3-> (dbus) edge (etc);
+ \end{tikzpicture}
+ \end{overlayarea}
\end{frame}
\setbeamercolor{normal text}{fg=white,bg=black}
+\begin{frame}[fragile]{what users type}
+ \begin{semiverbatim}
+ \small{
+(\alert{operating-system}
+ (host-name "schememachine")
+ ;; \textrm{...}
+ (services (cons* (dhcp-client-service)
+ (service openssh-service-type
+ (openssh-configuration
+ (x11-forwarding? #t)
+ (permit-root-login
+ 'without-password)))
+ (service nginx-service-type \textrm{...})
+ %base-services)))
+ }
+ \end{semiverbatim}
+\end{frame}
+
+\setbeamercolor{normal text}{fg=white,bg=guixgrey}
+\begin{frame}[plain]
+ \Huge{Services,\\
+ service types.\\}
+\end{frame}
+
+\setbeamercolor{normal text}{fg=black,bg=white}
+\begin{frame}[fragile]
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.center), inner sep=0mm]{
+ \includegraphics[width=1.2\textwidth]{images/service-extensions}
+ };
+ \node (command) [at=(current page.south west), text=guixgrey,
+ anchor=south west, inner sep=5mm]{
+ \small{\texttt{guix system extension-graph config.scm}}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{fg=black,bg=white}
+\begin{frame}[fragile]
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.center), inner sep=0mm]{
+ \includegraphics[width=1.2\textwidth]{images/service-extensions-desktop}
+ };
+ \node (command) [at=(current page.south west), text=guixgrey,
+ anchor=south west, inner sep=5mm]{
+ \small{\texttt{guix system extension-graph config.scm}}
+ };
+ \end{tikzpicture}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\setbeamercolor{normal text}{fg=white,bg=guixgrey}
+\begin{frame}[plain]
+ \Huge{\texttt{fold-services}.}
+\end{frame}
+
+\begin{frame}[plain]
+ \Huge{Dear Haskeller,\\
+ this is a monoid!}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% \setbeamercolor{normal text}{bg=guixblue2}
+%% \begin{frame}
+%% \Huge{\textbf{OS testing!}}
+%% \end{frame}
+%% \setbeamercolor{normal text}{fg=white,bg=black}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamercolor{normal text}{bg=guixblue2}
\begin{frame}
@@ -415,6 +576,26 @@ in \{
\end{frame}
\setbeamercolor{normal text}{fg=white,bg=black}
+\setbeamercolor{normal text}{fg=white,bg=guixgrey}
+\begin{frame}[plain]
+ \Huge{\textbf{GuixSD leverages\\
+ a holistic approach\\
+ to system services.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[plain]
+ \Large{
+ \begin{itemize}
+ \item services can \highlight{use and extend} PID 1
+ \item ``service extensions'' capture\\
+ \highlight{\emph{all} the service aspects}
+ \item makes complex configurations \highlight{tractable}
+ \item<2-> \textbf{come up with your own services!}
+ \end{itemize}
+ }
+\end{frame}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[plain]
- branch master updated (d4843f4 -> c8c1e2a), Ludovic Courtès, 2017/02/05
- 09/10: talks: fosdem-2017/services: Add PDF., Ludovic Courtès, 2017/02/05
- 07/10: talks: fosdem-2017/hpc: Add PDF., Ludovic Courtès, 2017/02/05
- 10/10: Merge branch 'wip-fosdem', Ludovic Courtès, 2017/02/05
- 04/10: talks: fosdem-2017/hpc: Move status bits to the first part., Ludovic Courtès, 2017/02/05
- 05/10: talks: fosdem-2017/hpc: Update OpenHub stats., Ludovic Courtès, 2017/02/05
- 06/10: talks: fosdem-2017/hpc: Last-minute tweaks., Ludovic Courtès, 2017/02/05
- 02/10: talks: fosdem-2017/hpc: Incorporate Pjotr's part., Ludovic Courtès, 2017/02/05
- 08/10: talks: fosdem-2017/services: Morning tweaks.,
Ludovic Courtès <=
- 03/10: talks: fosdem-2017: Add services talk., Ludovic Courtès, 2017/02/05
- 01/10: talks: Add beginning of FOSDEM HPC talk., Ludovic Courtès, 2017/02/05