diff --git a/2017/state-of-go.slide b/2017/state-of-go.slide
index e756037..a9633bd 100644
--- a/2017/state-of-go.slide
+++ b/2017/state-of-go.slide
@@ -12,9 +12,7 @@
 
 Go 1.7 is already 6 months old!
 
-Go 1.8 to be released sometime in February.
-
-Go 1.8 Candidate Release 3 was released on January 26th.
+Go 1.8 was released on February 16th.
 
 .image state-of-go/img/flying.png
 
diff --git a/2017/state-of-go/runtime/mapcrash.go b/2017/state-of-go/runtime/mapcrash.go
index 60a07bb..7a28524 100644
--- a/2017/state-of-go/runtime/mapcrash.go
+++ b/2017/state-of-go/runtime/mapcrash.go
@@ -1,4 +1,4 @@
-/// +build OMIT
+// +build OMIT
 
 package main
 
diff --git a/2017/state-of-go/runtime/mutex/main.go b/2017/state-of-go/runtime/mutex/main.go
index 3ff277e..561a911 100644
--- a/2017/state-of-go/runtime/mutex/main.go
+++ b/2017/state-of-go/runtime/mutex/main.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import (
diff --git a/2017/state-of-go/runtime/mutex/main_test.go b/2017/state-of-go/runtime/mutex/main_test.go
index be80382..2bbb3ce 100644
--- a/2017/state-of-go/runtime/mutex/main_test.go
+++ b/2017/state-of-go/runtime/mutex/main_test.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import (
diff --git a/2017/state-of-go/stdlib/http2/http2.go b/2017/state-of-go/stdlib/http2/http2.go
index c1b563e..fb4eca4 100644
--- a/2017/state-of-go/stdlib/http2/http2.go
+++ b/2017/state-of-go/stdlib/http2/http2.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import (
diff --git a/2017/state-of-go/stdlib/json_old.go b/2017/state-of-go/stdlib/json_old.go
index acb7041..2f4ceab 100644
--- a/2017/state-of-go/stdlib/json_old.go
+++ b/2017/state-of-go/stdlib/json_old.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import (
diff --git a/2017/state-of-go/stdlib/plugin/main.go b/2017/state-of-go/stdlib/plugin/main.go
index 5d5482f..7b36230 100644
--- a/2017/state-of-go/stdlib/plugin/main.go
+++ b/2017/state-of-go/stdlib/plugin/main.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import "plugin"
diff --git a/2017/state-of-go/stdlib/plugin/plugin.go b/2017/state-of-go/stdlib/plugin/plugin.go
index 99bb60d..e7c29c3 100644
--- a/2017/state-of-go/stdlib/plugin/plugin.go
+++ b/2017/state-of-go/stdlib/plugin/plugin.go
@@ -1,7 +1,6 @@
-package main
+// +build OMIT
 
-// No C code needed.
-import "C"
+package main
 
 import "fmt"
 
diff --git a/2017/state-of-go/stdlib/shutdown.go b/2017/state-of-go/stdlib/shutdown.go
index 4dfb915..fa799a9 100644
--- a/2017/state-of-go/stdlib/shutdown.go
+++ b/2017/state-of-go/stdlib/shutdown.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import (
diff --git a/2017/state-of-go/stdlib/sort/sort.go b/2017/state-of-go/stdlib/sort/sort.go
deleted file mode 100644
index d3d75c0..0000000
--- a/2017/state-of-go/stdlib/sort/sort.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package main
-
-/*
-
-import (
-	"fmt"
-	"sort"
-)
-
-type Person struct {
-	Name     string
-	AgeYears int
-	SSN      int
-}
-
-type byName []Person
-
-func (b byName) Len() int           { return len(b) }
-func (b byName) Less(i, j int) bool { return b[i].Name < b[j].Name }
-func (b byName) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
-
-type byAge []Person
-
-func (b byAge) Len() int           { return len(b) }
-func (b byAge) Less(i, j int) bool { return b[i].AgeYears < b[j].AgeYears }
-func (b byAge) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
-
-type bySSN []Person
-
-func (b bySSN) Len() int           { return len(b) }
-func (b bySSN) Less(i, j int) bool { return b[i].SSN < b[j].SSN }
-func (b bySSN) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
-
-func main() {
-	p := []Person{
-		{"Alice", 20, 1234},
-		{"Bob", 10, 2345},
-		{"Carla", 15, 3456},
-	}
-
-	sort.Sort(byName(p))
-	fmt.Printf("sorted by name: %v\n", p)
-
-	sort.Sort(byAge(p))
-	fmt.Printf("sorted by age: %v\n", p)
-
-	sort.Sort(bySSN(p))
-	fmt.Printf("sorted by SSN: %v\n", p)
-}
-*/
diff --git a/2017/state-of-go/stdlib/sort/sort_new.go b/2017/state-of-go/stdlib/sort/sort_new.go
deleted file mode 100644
index 2b9e76c..0000000
--- a/2017/state-of-go/stdlib/sort/sort_new.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package main
-
-/*
-import (
-	"fmt"
-	"sort"
-)
-
-type Person struct {
-	Name     string
-	AgeYears int
-	SSN      int
-}
-
-func main() {
-	p := []Person{
-		{"Alice", 20, 1234},
-		{"Bob", 10, 2345},
-		{"Carla", 15, 3456},
-	}
-
-	sort.Slice(p, func(i, j int) bool { return p[i].Name < p[j].Name })
-	fmt.Printf("sorted by name: %v\n", p)
-
-	sort.Slice(p, func(i, j int) bool { return p[i].AgeYears < p[j].AgeYears })
-	fmt.Printf("sorted by age: %v\n", p)
-
-	sort.Slice(p, func(i, j int) bool { return p[i].SSN < p[j].SSN })
-	fmt.Printf("sorted by SSN: %v\n", p)
-}
-*/
diff --git a/2017/state-of-go/tools/gofix.go b/2017/state-of-go/tools/gofix.go
index 9f62814..d3640ea 100644
--- a/2017/state-of-go/tools/gofix.go
+++ b/2017/state-of-go/tools/gofix.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import "golang.org/x/net/context" // HL
diff --git a/2017/state-of-go/tools/govet.go b/2017/state-of-go/tools/govet.go
index 520e8a7..d41d537 100644
--- a/2017/state-of-go/tools/govet.go
+++ b/2017/state-of-go/tools/govet.go
@@ -1,3 +1,5 @@
+// +build OMIT
+
 package main
 
 import (
