summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2016-01-19 09:13:23 -0500
committerDavid Thompson <dthompson2@worcester.edu>2016-01-19 09:13:23 -0500
commit8dce270e3d64cd7d6145ddcfa9060964c9a5361b (patch)
treef8ce00fbfa8f62d8277d5ef5b0896d4cbd25dfa1
parent21a3308f96e5a1db4dda9fcf0a94139889810262 (diff)
Update Guix talk.
-rw-r--r--guix-blu-2016-01-20.org83
1 files changed, 48 insertions, 35 deletions
diff --git a/guix-blu-2016-01-20.org b/guix-blu-2016-01-20.org
index 5cc53e6..c5375a2 100644
--- a/guix-blu-2016-01-20.org
+++ b/guix-blu-2016-01-20.org
@@ -21,10 +21,13 @@
* About me
- - GNU project volunteer
- - GNU Guile user and contributor since 2012
- - GNU Guix contributor since 2013
- - Day job: Ruby + JavaScript web development / “DevOps”
+ GNU project volunteer
+
+ GNU Guile user and contributor since 2012
+
+ GNU Guix contributor since 2013
+
+ Day job: Ruby + JavaScript web development / “DevOps”
* Overview
@@ -47,8 +50,10 @@
* User autonomy and control
+ #+latex: \huge{
“Debian and other distributions are going to be that thing you run
Docker on, little more.” [fn:7]
+ #+latex: }
* User autonomy and control
@@ -57,13 +62,19 @@
* What’s wrong with Apt/Yum/Pacman/etc.?
- - Global state (=/usr=) that prevents multiple versions of a package
- from coexisting
- - Non-atomic installation, removal, upgrade of software
- - No way to roll back
- - Nondeterminstic package builds (though this is changing!)
- - Reliance on pre-built binaries provided by a single point of trust
- - Requires superuser privileges
+ Global state (=/usr=) that prevents *multiple versions* of a package
+ from coexisting
+
+ *Non-atomic* installation, removal, upgrade of software
+
+ No way to *roll back*
+
+ *Nondeterminstic* package builds and maintainer-uploaded binaries
+ (though this is changing!)
+
+ Reliance on pre-built binaries provided by a *single point of trust*
+
+ Requires *superuser* privileges
* The problem is bigger
@@ -102,12 +113,14 @@
* Problems with configuration management software
- - Imperative config management makes is overly-complex and brittle
- (idempotence is hard)
- - More reliable builds require spawning new machines and building
- from scratch each time (sledgehammer)
- - Made primarily for developers for server maintenance, but all
- users could benefit
+ Imperative config management is overly-complex and brittle
+ (idempotence is hard)
+
+ More reliable builds require spawning new machines and building
+ from scratch each time (sledgehammer)
+
+ Made primarily for developers for server maintenance, but all users
+ could benefit
* Docker?
@@ -123,18 +136,18 @@
* Problems with Docker
- - Still imperative (though resulting images are immutable)
+ Still imperative (though resulting images are immutable)
- - Dockerfile DSL is not expressive
+ Dockerfile DSL is not expressive
- - Promotes one disk image per application to cover up underlying
- package management mess [fn:4]
+ Promotes one disk image per application to cover up underlying
+ package management mess [fn:4]
- - No provenance
+ No provenance
- - Image layering is an ineffective caching strategy
+ Image layering is an ineffective caching strategy
- - Does not compose (containers are only one important use-case)
+ Does not compose (what about the host?)
* Problems with Docker
@@ -334,14 +347,14 @@
\includegraphics[width=4cm]{guile-logo.png}
\end{center}
- - GNU Guile is a Scheme implementation and the official extension
- language of the GNU project
+ GNU Guile is a Scheme implementation and the official extension
+ language of the GNU project.
- - It’s a great choice for EDSLs because of Scheme’s hygienic macro
- system
+ It’s a great choice for EDSLs because of Scheme’s *hygienic macro
+ system*.
- - It’s a great choice for Guix because purely functional
- programming is well-supported in Scheme
+ It’s a great choice for Guix because *purely functional*
+ programming is well-supported in Scheme.
* Guile goes with everything
@@ -359,13 +372,13 @@
* Guix as a library
- - Guix is a big collection of Guile modules
+ Guix is a big collection of Guile modules.
- - Packages are first-class Scheme objects
+ Packages are first-class Scheme objects.
- - Anyone can use Guix as a library to write new Guile programs that
- manipulate package recipes, create new user interfaces (like a web
- UI), etc.
+ Anyone can use Guix as a library to write new Guile programs that
+ manipulate package recipes, create new user interfaces (like a web
+ UI), etc.
* Example package recipe