guix-commits
[Top][All Lists]
Advanced

[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]
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]