gophercon 2016 recap
TRANSCRIPT
Monday
Understanding nil
• presented by Francesc Campoy Flores
• WTF is nil? … no what is it really?
• not the same as null
• many nils
• useful by design
•
Navigating Unfamiliar Code with the Go Guru
• presented by Alan Donovan
• guru (née oracle)
• given a position in a .go file … tell me about it
• practical vs completeness – speed + search space
• https://godoc.org/golang.org/x/tools/cmd/guru
•
Go for Data Science
• presented by Daniel Whitenack
• s/go/(R|python)/ … yes, with advantages
• very capable for numbers, stats, graphing
• Go based Notebook in the works
• https://github.com/gonum
•
Don’t Just Check Errors, Handle Them Gracefully
• presented by Dave Cheney
• errors should be opaque as possible
• can errors be a bit more like Exceptions?
• https://github.com/pkg/errors
•
Go Vendoring Deconstructed
• presented by Wisdom Omuya
• pre-1.5; GO15VENDOREXPERIMENT; post-1.6
• practical concerns from a working team
• https://golang.org/cmd/go/#hdr-Vendor_Directories
•
Visualizing Concurrency in Go
• presented by Ivan Daniluk
• how do humans visualize things … like concurrency?
• goroutines & channels in cylindrical coords
• interesting challenges to getting data
• https://github.com/divan/gotrace
•
Communicating Sequential Goroutines
• presented by Adrian Cockcroft
• many insightful tidbits
• CSP code etc. > Pi-calculus style notation
• simulations of distributed systems (in Go)
•
Handling Text from Around the World in Go
• presented by Marcel van Lohuizen
• internationalization is a huge engineering challenge
• the [intimidating] basics of i8n
• how go is solving these challenges
• https://godoc.org/golang.org/x/text
•
Go for Mobile Games
• presented by Takuya Ueda
• What Go Mobile is (& isn’t) capable of [today]
• lots of examples: basic cmd; native activity; SDK
• goes deep
• https://godoc.org/golang.org/x/mobile/
•
Tuesday
Mind the Gap
• presented by Katrina Owen
• Go is for programmers, does it have to be?
• How do people (not) learn Go?
• uses empirical evidence to answer this question
• http://exercism.io/
•
Inside the Map Implementation
• presented by Keith Randall
• how do you make the map type for Go?
• Go maps are different [from other langs]
• significant engineering
•
Go Without the Operating System
• presented by Bernerd Schaefer
• how to run a Go program atop a hypervisor (Xen)
• Go + a bit of ASM replaces the OS
• https://github.com/atmanos/atmanos
•
The Design of the Go Assembler
• presented by Rob Pike
• cross compiling taken for granted, why?
• all assemblies are the same [if you squint your eyes]
• common language for ASM -> target all architectures
• text processing, not microprocessor problem
•
Go Mobile as the Backbone of Lantern for Android
• presented by José Carlos Nieto
• Lantern: circumvents censorship
• Go’s excellent networking capabilities is enabling it
• Big win is mobile – not only HTTP proxy but also VPN
•
The Go Gopher: A Character Study
• presented by Renee French
• not computer related! but in depth about comics
• history of the gopher and gopher-like things
• how a kidney [bean] appear to do so many things?
• derivative art – called out ATX Gopher with cowboy hat
•
Building Microservices with gRPC - A Practical Introduction
• presented by Kelsey Hightower
• lost presentation material
• tutorial of Kubernetes instead
• overview of customer Scheduler
•
The Power and Elegance of Reflection
• presented by Emily Gu
• given interface{} how can use it?
• step by step examples
• don’t abuse reflection … but don’t be intimidated
• you will pleasantly understand reflection
•
Packet Capture, Analysis, and Injection with Go
• presented by John Leon
• capture network data … in Go
• wraps libpcap … in Go
• very fun talk
• https://github.com/google/gopacket
•
Wednesday (HACK DAY)
Hackday
• lots of topics … but gobot
• Hybrid Group!
• parrot drones; spheroes & ollies; edison & arduino; btle
• learning; making support; doing stuff
• blast was had
• https://gobot.io/
•
overall
resources
• https://github.com/gophercon/2016-talks