By Speakers on November 6, 2017
The lightning talks are the first round of lightning talks from many speakers.
Note: This post was live-blogged at dotGo 2017. Let us know on Twitter (@srcgraph) if we missed anything. All content is from the talk; any mistakes or misrepresentations are our fault, not the speaker's.
Reducing Go programs
Handling slow requests in your Go web server
- You are coding a lot and run
go get a lot to get great packages to solve
- You are about to launch your product but then have to do legal review.
- The lawyers start vetting dependency packages with bad license.
- The issue here is license creep, you introduce a dependency without
realising you can't use it due to the license.
- Fabio created a tool called: WWHRD - What would Henry Rollins Do. \m/
- For use in CI, and compares against your whitelist of licenses. So your CI
will fail before you can merge the dependency into master.
DNA Sequencing using Go
Embedding cpython in Go
- https://github.com/DataDog/datadog-agent embeds CPython into Go.
- The talk is a quick experience report.
- The important thing to know about using CPython is GIL, the Global Interpreter Lock.
- As an analogy if you think of an american airport line there can be parallel lines you can wait in, but usually there is one TSA agent.
- People are python threads, queues are the CPU, TSA agent is the GIL.
To embed cpython in Go:
- Tell cpython to handle GIL manually
- Acquire GIL
- Do work
- Release GIL
- Complication: Goroutine runtime can switch the thread you are running on, but GIL tracks the thread that locks it.
- To stop that you can tell go to not move goroutine off the current thread.