Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 1 | # Go talks |
| 2 | |
Jason Buberel | f7f7d18 | 2015-08-21 16:44:01 -0700 | [diff] [blame] | 3 | Check out http://talks.golang.org for presentations for some of the talks. For a comprehensive, curated and searchable index, try [GopherVids](http://gophervids.appspot.com/) from Damian Gryski. |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 4 | |
| 5 | # Official |
| 6 | |
| 7 | ## Introductory Talks |
| 8 | |
| 9 | An introduction to Go. |
| 10 | |
| 11 | ### Russ Cox's Tour of Go |
| 12 | |
| 13 | [[video and discussion](http://research.swtch.com/gotour)] |
| 14 | |
| 15 | Three things that make Go fast, fun, and productive:interfaces, reflection, and concurrency. Builds a toy web crawler to demonstrate these. |
| 16 | |
| 17 | ### Go: a simple programming environment |
| 18 | |
| 19 | [[video](http://vimeo.com/53221558)] |
| 20 | [[another video](http://vimeo.com/69237265)] |
| 21 | [[slides](http://talks.golang.org/2012/simple.slide)] |
| 22 | |
| 23 | Go is a general-purpose language that bridges the gap between efficient statically typed languages and productive dynamic language. But it’s not just the language that makes Go special – Go has broad and consistent standard libraries and powerful but simple tools. |
| 24 | |
| 25 | This talk gives an introduction to Go, followed by a tour of some real programs that demonstrate the power, scope, and simplicity of the Go programming environment. |
| 26 | |
| 27 | ### Get Started with Go |
| 28 | |
| 29 | [[video](http://www.youtube.com/watch?v=2KmHtgtEZ1s)] |
| 30 | |
Budh Ram Gurung | bd33fe3 | 2016-07-18 11:41:36 +0530 | [diff] [blame] | 31 | Get a feel for the language and its standard libraries and tools in this session, where we go through installing Go and writing some simple but useful |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 32 | programs. |
| 33 | |
| 34 | ### Go Programming |
| 35 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 36 | [[video](http://www.youtube.com/watch?v=jgVhBThJdXc)] |
| 37 | [[code](http://talks.golang.org/2010/io/)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 38 | |
| 39 | A presentation delivered by Rob Pike and Russ Cox at Google I/O 2010. It |
| 40 | illustrates how programming in Go differs from other languages through a set of |
| 41 | examples demonstrating features particular to Go. These include concurrency, |
| 42 | embedded types, methods on any type, and program construction using interfaces. |
| 43 | |
| 44 | ### The Go Tech Talk |
| 45 | |
| 46 | [[video](http://www.youtube.com/watch?v=rKnDgT73v8s)] |
| 47 | [[slides](http://talks.golang.org/2009/go_talk-20091030.pdf)] |
| 48 | |
| 49 | An hour-long talk delivered by Rob Pike at Google in October 2009. |
| 50 | The language's first public introduction. The language has changed since it was made, |
| 51 | but it's still a good introduction. |
| 52 | |
| 53 | ## Development in Go |
| 54 | |
| 55 | ### Writing Web Apps in Go |
| 56 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 57 | [[video](http://www.youtube.com/watch?v=-i0hat7pdpk)] |
| 58 | [[slides](http://talks.golang.org/2011/Writing_Web_Apps_in_Go.pdf)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 59 | |
| 60 | A talk by Rob Pike and Andrew Gerrand presented at Google I/O 2011. |
| 61 | It walks through the construction and deployment of a simple web application |
| 62 | and unveils the [Go runtime for App Engine](http://blog.golang.org/2011/05/go-and-google-app-engine.html). |
| 63 | |
| 64 | ### Real World Go |
| 65 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 66 | [[video](http://www.youtube.com/watch?v=7QDVRowyUQA)] |
| 67 | [[slides](http://talks.golang.org/2011/Real_World_Go.pdf)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 68 | |
| 69 | A talk by Andrew Gerrand presented at Google I/O Bootcamp 2011. |
| 70 | It gives a broad overview of Go's type system and concurrency model |
| 71 | and provides four examples of Go programs that solve real problems. |
| 72 | |
| 73 | ### Building Integrated Apps on Google's Cloud Platform |
| 74 | |
| 75 | [[video](http://www.youtube.com/watch?v=Mo1YKpIF1PQ)] |
| 76 | |
| 77 | A talk by Andrew Gerrand presented at Google Developer Day Japan 2011. |
| 78 | It discusses the development of a web application that runs on Google |
| 79 | App Engine and renders raytraced that it stores on Google Cloud Storage. |
| 80 | |
| 81 | ### High Performance Apps with Go on App Engine |
| 82 | |
| 83 | Google I/O, May 2013 |
| 84 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 85 | [[video](http://www.youtube.com/watch?v=fc25ihfXhbg)] |
| 86 | [[slides](http://talks.golang.org/2013/highperf.slide)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 87 | |
| 88 | ### Practical Go Programming |
| 89 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 90 | [[video](http://www.youtube.com/watch?v=2-pPAvqyluI)] |
| 91 | [[slides](http://wh3rd.net/practical-go)] |
| 92 | [[code](http://github.com/nf/goto)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 93 | |
| 94 | This talk presents the development of a complete web application in Go. |
| 95 | It looks at design, storage, concurrency, and scaling issues in detail, using |
| 96 | the simple example of an URL shortening service. |
| 97 | |
| 98 | ### Lexical Scanning in Go |
| 99 | |
| 100 | [[video](http://www.youtube.com/watch?v=HxaD_trXwRE)] |
| 101 | |
| 102 | This GTUG talk by Rob Pike discusses the detailed design of a lexical scanner that uses Go's |
| 103 | features in expressive combinations. (The discussion near the end about avoiding goroutines |
| 104 | at initialization is obsolete: Go 1 allows goroutines in init functions so the extra complexity |
| 105 | is unnecessary.) |
| 106 | |
| 107 | ### Go in Production |
| 108 | |
| 109 | Google I/O, June 2012 |
| 110 | |
| 111 | [[video](http://www.youtube.com/watch?v=kKQLhGZVN4A)] |
| 112 | |
| 113 | Since Go's release in 2009 many companies (besides Google, of course) have used the language to build cool stuff. In this session programmers from several companies will share their first-hand experience using Go in production environments. |
| 114 | |
| 115 | ### Go: code that grows with grace |
| 116 | |
| 117 | [[video](http://vimeo.com/53221560)] |
| 118 | [[slides](http://talks.golang.org/2012/chat.slide)] |
| 119 | |
| 120 | One of the Go Programming Language’s key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. In this talk I describe a simple “chat roulette” server that matches pairs of incoming TCP connections, and then use Go’s concurrency mechanisms, interfaces, and standard library to extend it with a web interface and other features. Although the function of the program changes dramatically, the inherent flexibility of Go allows the original design to remain intact as it grows. |
| 121 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 122 | ### Implementing a bignum calculator |
| 123 | |
| 124 | [[video](https://www.youtube.com/watch?v=PXoG0WX0r_E)] |
| 125 | [[slides](http://go-talks.appspot.com/github.com/robpike/ivy/talks/ivy.slide)] |
| 126 | |
| 127 | Rob Pike describes his interpreter for an APL-like calculator language. |
| 128 | |
| 129 | ### Go in Go |
| 130 | |
| 131 | [[video](https://www.youtube.com/watch?v=cF1zJYkBW4A)] |
| 132 | [[slides](https://talks.golang.org/2015/gogo.slide)] |
| 133 | |
| 134 | Rob Pike speaks on moving the Go toolchain from C to Go |
| 135 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 136 | ## Concurrency in Go |
| 137 | |
| 138 | ### Go concurrency patterns |
| 139 | |
| 140 | Google I/O, June 2012 |
| 141 | |
| 142 | [[video](http://www.youtube.com/watch?v=f6kdp27TYZs)] |
| 143 | |
| 144 | ### Advanced Concurrency Patterns |
| 145 | |
| 146 | [[video](https://www.youtube.com/watch?v=QDDwwePbDtw)] |
| 147 | [[slides](http://talks.golang.org/2013/advconc.slide)] |
| 148 | |
| 149 | Google I/0, May 2013 |
| 150 | |
| 151 | Concurrency is the key to designing high performance network services. This talk expands on last year's popular Go Concurrency Patterns talk to dive deeper into Go's concurrency primitives, and see how tricky concurrency problems can be solved gracefully with simple Go code. |
| 152 | |
| 153 | ## Design of Go |
| 154 | |
| 155 | ### The Expressiveness Of Go |
| 156 | |
| 157 | [[slides](http://talks.golang.org/2010/ExpressivenessOfGo-2010.pdf)] |
| 158 | |
| 159 | A discussion of the qualities that make Go an expressive and comprehensible |
| 160 | language. The talk was presented by Rob Pike at JAOO 2010. |
| 161 | The recording of the event was lost due to a hardware error. |
| 162 | |
| 163 | ### Another Go at Language Design |
| 164 | |
| 165 | [[video](http://sydney.edu.au/engineering/it/videos/seminar_pike) from Sydney University] |
| 166 | [[slides](http://assets.en.oreilly.com/1/event/45/Another%20Go%20at%20Language%20Design%20Presentation.pdf)] |
| 167 | |
| 168 | A tour, with some background, of the major features of Go, intended for |
| 169 | an audience new to the language. The talk was presented at OSCON 2010. |
| 170 | This talk was also delivered at Sydney University in September 2010. |
| 171 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 172 | ### Go Emerging Languages Conference Talk |
| 173 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 174 | [[video](http://confreaks.com/videos/115-elcamp2010-go)] |
| 175 | [[slides](http://assets.en.oreilly.com/1/event/45/Go%20Presentation.pdf)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 176 | |
| 177 | Rob Pike's Emerging Languages Conference presentation delivered in July 2010. Talk abstract: |
| 178 | |
| 179 | > Go’s approach to concurrency differs from that of many languages, even those |
| 180 | > (such as Erlang) that make concurrency central, yet it has deep roots. The path |
| 181 | > from Hoare’s 1978 paper to Go provides insight into how and why Go works as it |
| 182 | > does. |
| 183 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 184 | ## The State of Go |
| 185 | |
| 186 | ### June 2014 |
| 187 | |
| 188 | [[video](https://www.youtube.com/watch?v=0KF44QtoByk)] |
| 189 | [[slides](https://talks.golang.org/2014/state-of-go.slide)] |
| 190 | |
| 191 | ### February 2015 |
| 192 | |
| 193 | [[video](https://www.youtube.com/watch?v=Kd8EqTvW5EQ)] |
| 194 | [[slides](https://talks.golang.org/2015/state-of-go.slide)] |
| 195 | |
| 196 | ### May 2015 |
| 197 | |
| 198 | [[video](https://www.youtube.com/watch?v=S9Bu6fZnLGM)] |
| 199 | [[slides](https://talks.golang.org/2015/state-of-go-may.slide)] |
| 200 | |
| 201 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 202 | ## Miscellaneous |
| 203 | |
| 204 | ### The Go frontend for GCC |
| 205 | |
| 206 | [[paper](http://talks.golang.org/2010/gofrontend-gcc-summit-2010.pdf)] |
| 207 | |
| 208 | A description of the Go language frontend for gcc. |
| 209 | Ian Lance Taylor's paper delivered at the GCC Summit 2010. |
| 210 | |
| 211 | ### The Go Promo Video |
| 212 | |
| 213 | [[video](http://www.youtube.com/watch?v=wwoWei-GAPo)] |
| 214 | |
| 215 | A short promotional video featuring Russ Cox demonstrating Go's fast compiler. |
| 216 | |
| 217 | ### Meet the Go team |
| 218 | |
| 219 | Google I/O, June 2012 |
| 220 | |
| 221 | [[video](http://www.youtube.com/watch?v=sln-gJaURzk)] |
| 222 | |
| 223 | A panel discussion with David Symonds, Robert Griesemer, Rob Pike, Ken Thompson, Andrew Gerrand, and Brad Fitzpatrick. |
| 224 | |
| 225 | ### Fireside Chat with Go team |
| 226 | |
| 227 | Google I/0, May 2013 |
| 228 | |
| 229 | [[video](http://www.youtube.com/watch?v=p9VUCp98ay4)] |
| 230 | |
| 231 | A fireside chat with Andrew Gerrand, Brad Fitzpatrick, David Symonds, Ian Lance Taylor, Nigel Tao, Rob Pike, Robert Griesemer, Sameer Ajmani. |
| 232 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 233 | ### The State of the Gopher |
| 234 | |
| 235 | [[video](https://www.youtube.com/watch?v=4KFTacxqkcQ)] |
| 236 | [[slides](https://talks.golang.org/2014/state-of-the-gopher.slide)] |
| 237 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 238 | # Unofficial |
| 239 | |
| 240 | Talks by members of the community. |
| 241 | |
| 242 | ### Let's Go, or introduction to Go |
| 243 | |
Mitchell Riley | 9b36f2a | 2015-06-15 15:12:32 -0400 | [diff] [blame] | 244 | [[video (starting at 14:35)](http://live.digicast.ru/view/1582)] |
| 245 | [[slides](http://talks.godoc.org/github.com/AlekSi/LetsGo/lets-go.slide)] |
| 246 | [[source](https://github.com/AlekSi/LetsGo)] |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 247 | |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 248 | This talk gives an introduction to Go in Russian. |
| 249 | |
| 250 | ### What are Go modules and how do I use them? |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 251 | _[Paul Jolly](https://twitter.com/_myitcv) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 252 | |
| 253 | [[video](https://youtu.be/6MbIzJmLz6Q)] |
| 254 | [[slides](https://talks.godoc.org/github.com/myitcv/talks/2018-08-15-glug-modules/main.slide#1)] |
| 255 | |
| 256 | ### What else is in Go 1.11 |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 257 | _[Daniel Martì](https://twitter.com/mvdan_) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 258 | |
| 259 | [[video](https://youtu.be/mQYjjVCGVJ8)] |
| 260 | [[slides](https://talks.godoc.org/github.com/mvdan/talks/2018/go1.11.slide#1)] |
| 261 | |
| 262 | Sneak peak at the Go 1.11 release |
| 263 | |
| 264 | ### Get Going with WebAssembly |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 265 | _[Johan Brandhorst](https://twitter.com/JohanBrandhorst) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 266 | |
| 267 | [[video](https://youtu.be/iTrx0BbUXI4)] |
| 268 | [[slides](https://talks.godoc.org/github.com/johanbrandhorst/presentations/wasm-lightning/wasm.slide#1)] |
| 269 | [[code wasm](https://github.com/johanbrandhorst/wasm-experiments)] |
| 270 | [[code grpc](https://github.com/johanbrandhorst/grpcweb-wasm-example)] |
| 271 | |
| 272 | In this talk, Johan introduces you to the WebAssembly port in Go 1.11 and how it can help when dealing with JavaScript madness :) |
| 273 | |
| 274 | ### Go and Mongo - and how it's changing |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 275 | _[DJ Walker-Morgan](https://twitter.com/codepope) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 276 | |
| 277 | [[video](https://youtu.be/W22tZ5p3aDk)] |
| 278 | [[slides](https://github.com/codepope/talks/blob/master/GoAndMongo.pdf)] |
| 279 | |
| 280 | ### Building a simple concurrency teaching language with Go |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 281 | _[Nicholas Ng](https://twitter.com/nicholascwng) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 282 | |
| 283 | [[video](https://youtu.be/7cEp98y6WCs)] |
| 284 | [[slides](https://talks.godoc.org/github.com/nickng/londongophers-aug18/londongophers-aug18.slide#1)] |
| 285 | |
| 286 | In this talk Nicholas presents the design and implementation of a simple language designed for teaching concurrency theory (process calculi), implemented in Go. He covers some of Go's static analysis tools used in the implementation and show how you can use them too! |
| 287 | |
| 288 | ### Introducing Remoto |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 289 | _[Mat Ryer](https://twitter.com/matryer) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 290 | |
| 291 | [[video](https://youtu.be/dhbq7R7h-C0)] |
| 292 | |
| 293 | Mat shares the first glimpse of a new project that aims to make building RPC services easy. gRPC isn’t good for clients (especially web), and RESTful designs sometimes lead to confusing APIs. Remoto lets you define your service with a Go interface, and generate everything you need to build and consume the service. |
| 294 | |
| 295 | ### Go Swagger |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 296 | _[Simone Trubian](https://twitter.com/simone_trubian) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 297 | |
| 298 | [[video](https://youtu.be/PUejMR82RgU)] |
| 299 | |
| 300 | Simone gives an overview of the Go Swagger command line tool and briefly explain how he used it to improve productivity in designing REST API's. |
| 301 | |
| 302 | ### ORMs in Go |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 303 | _Renato Serra at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 304 | |
| 305 | [[video](https://youtu.be/0XW6wI2FnPA)] |
| 306 | |
| 307 | Renato explains where ORMs can help, what the options were and what it's been like to use one. |
| 308 | |
| 309 | ### Unused parameters in Go code |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 310 | _[Daniel Martì](https://twitter.com/mvdan_) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 311 | |
| 312 | [[video](https://youtu.be/VW5jI6V_Y2c)] |
| 313 | [[slides](https://talks.godoc.org/github.com/mvdan/talks/2018/unparam.slide#1)] |
| 314 | |
| 315 | Daniel talks about how to use SSA and callgraphs to write powerful code analysis tools. In particular, he demonstrates how to detect unused parameters in functions. |
| 316 | |
| 317 | ### Lies, Damn Lies, and Benchmarks |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 318 | _Amnon at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 319 | |
| 320 | [[video](https://youtu.be/YDPKUJndhw4)] |
| 321 | [[slides](https://talks.godoc.org/github.com/amnonbc/talks/lies.slide#1)] |
| 322 | |
| 323 | Amnon discusses why microbenchmarks can be misleading for optimising real world systems, why data layout is often more significant than code structure, and how Go can help us in the quest for performance. |
| 324 | |
| 325 | ### A debugger from scratch |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 326 | _[Liz Rice](https://twitter.com/LizRice) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 327 | |
| 328 | [[video](https://youtu.be/tZ5PUKbGjO4)] |
| 329 | [[slides](https://speakerdeck.com/lizrice/debuggers-from-scratch)] |
| 330 | [[code](https://github.com/lizrice/debugger-from-scratch)] |
| 331 | |
| 332 | Liz explains how a debugger works by building one in a few lines of Go. This includes mapping between Go source code and the machine code instructions it compiles to, and using the ptrace system call to set break points and examine and modify the running process. |
| 333 | |
| 334 | ### Fast Fractal Fun With SDL |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 335 | _[Sue Spence](https://twitter.com/virtualsue) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 336 | |
| 337 | [[video](https://youtu.be/eTjL3grAYAM)] |
| 338 | [[slides](https://gitlab.com/virtualsue/sdl-fractal/blob/master/Fast%20Fractal%20Fun.pdf)] |
| 339 | [[code](https://gitlab.com/virtualsue/sdl-fractal)] |
| 340 | |
| 341 | Go programs which create images such as the Mandelbrot & Julia sets often output an image file. I will show how to use Go bindings for the Simple Directmedia Layer library to output them on a display device instead. |
| 342 | |
| 343 | ### Concurrency: a Journey from Ruby to Go |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 344 | _[Mathilda Thompson](https://twitter.com/mathildathompso) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 345 | |
| 346 | [[video](https://youtu.be/mK3r5PDED-0)] |
| 347 | |
| 348 | ### Go in a Polyglot Environment |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 349 | _[Kevin McKelvin](https://twitter.com/kmckelvin) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 350 | |
| 351 | [[video](https://youtu.be/kWAxBhsEayk)] |
| 352 | |
| 353 | In this talk Kevin goes through his experience of adopting Go, moving to a polyglot environment, successes and challenges, and how Go fits into his company's overall architecture and strategy. |
| 354 | |
| 355 | ### Delivering Go Services |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 356 | _[Zak Knill](https://twitter.com/zakknill) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 357 | |
| 358 | [[video](https://youtu.be/pRdfJTuGxEw)] |
| 359 | |
| 360 | Delivering Go Services: After introducing Go to your company, and deploying your first go service. What are the next steps? This talk focuses on some of the things that come next, touching on the fabled "New service to prod in X (10, 20, 30) mins", as well as some gotchas along the way. |
| 361 | |
| 362 | ### Go-ing Lambda |
| 363 | |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 364 | _[David Blooman](https://twitter.com/dblooman) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 365 | |
| 366 | [[video](https://youtu.be/BBiIr19JOo4)] |
| 367 | |
| 368 | Go-ing Lambda - A year in production: How we(FundApps) used Go in lambda functions to build a service for importing/scraping/parsing data for financial services to build API's on top of. Tips and tricks of lambda functions in Go, limitations, performance and using the Apex framework. |
| 369 | |
| 370 | ### The RED method |
| 371 | |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 372 | _[Tom Wilkie](https://twitter.com/tom_wilkie) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 373 | |
| 374 | [[video](https://youtu.be/rc3V-k-JYAo)] |
| 375 | |
| 376 | We'll also have a section dedicated to those of you who are hiring or looking to get hired (if we'll miss it like last time, please don't be afraid to remind us). |
| 377 | |
| 378 | ### Abusing Go’s net package for fun and profit |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 379 | _[Michał Witkowski](https://twitter.com/MWitkow) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 380 | |
| 381 | [[video](https://youtu.be/JDjHFmke0ZI)] |
| 382 | |
| 383 | This talks into the details of how Go’s composition-based philosophy, as applied to the net package, can be creatively leveraged to beautiful and useful hacks that significantly augment the functionality of the stack. We’ll explore the net.Conn, and how one can (ab)use them in creative ways. We’ll take a peek into net/http, and explore how the http.Handler and http.Roundtripper interfaces can be creatively appropriated to build useful middleware. We’ll then dig even deeper into the net/http internals and how they related tls.Conn and x/net/http2, to understand how they work, and armed with that knowledge we’ll demonstrate some of our most beautiful hacks. |
| 384 | |
| 385 | ### 2018's stringer |
Antonio Troina | 7ab7c5b | 2018-08-18 15:11:55 +0100 | [diff] [blame] | 386 | _[Daniel Martì](https://twitter.com/mvdan_) at [**LondonGophers**](https://twitter.com/LondonGophers)_ |
Antonio Troina | 175ab9a | 2018-08-18 14:56:03 +0100 | [diff] [blame] | 387 | |
| 388 | [[video](https://youtu.be/IyVEW19IkXE)] |
| 389 | [[slides](https://talks.godoc.org/github.com/mvdan/talks/2018/stringer.slide)] |
| 390 | |
| 391 | 2018's stringer - a demonstration of new features you likely haven't heard of. |