#209 — May 3, 2018 |
Golang Weekly |
Go's New Brand — Based on Go’s philosophy of simplicity over complexity. You can even download the new “brand book”. Don’t worry, though, our beloved gopher is still alive and kicking. Steve Francia |
How Google Continuously Profiles Its Go Programs — “We can see who is accountable for CPU and memory usage, we can continuously monitor our production services for contention and blocking profiles” Google Cloud Platform |
MySQL: Scaling & High Availability Over the Last Decade — Join CEO, Peter Zaitsev as he presents Percona's upcoming webinar on Tuesday, May 22nd, 2018 at 7:00 AM PDT / 10:00 AM EDT. Percona sponsor |
When Writing Unit Tests, Don't Use Mocks (Use Fakes) — Fakes provide more flexibility and allow for easy testing and refactoring, says the author, before working through an example. Seth Ammons |
Google Releases gVisor, a Sandboxed Container Runtime — Built in Go, gVisor provides VM-style isolation for containers in multi-tenant environments in a lightweight way. Nicolas Lacasse (Google) |
An Official Introduction to the Go Compiler — Daniel said he, along with others, wrote this brief guide “after finding that lots of knowledge around the compiler wasn’t well organised.” Daniel Martí |
Go 1.10.2 and Go 1.9.5 Released — Very minor bug fix releases. Andrew Bonventre |
💻 Jobs |
Site Reliability / Operations Engineer (f/m) — With our unique distributed systems and a high uptime requirement, we offer an exciting technical environment to work in. Fraugster |
Open to a New Job? Sign Up for Vettery — Top developers can get 5+ interview requests during their first week on Vettery. Vettery |
📘 Tutorials and Articles |
Bounds Check Elimination in Go: A Micro-Optimization — A way to squeeze out a few more nanoseconds when you need it. William Kennedy |
Asynchronous Processing with Go using Kafka and MongoDB — A simple example of a (somewhat) complex architecture. Melvin Vivas |
Some Common Concurrent Programming Mistakes Go 101 |
eBook: Efficient Project Management for Small Engineering Teams Codeship sponsor |
Securely Logging and Tracing HTTP Requests in Go — Here’s one way to keep sensitive data out of your application logs. Bob Uhl |
Learn Go by Writing Tests: Synchronizing Asynchronous Processes — An evolutionary tutorial that ends by leveraging Go’s concurrency idioms. Chris James |
Scraping the Web with Colly and Goquery Benjamin Congdon |
Tinyterm: A Silly Terminal Emulator Written in Go — Based on a lightning talk at a Sydney Go User Group meeting. Dave Cheney |
Debugging an Evil Go Runtime Bug — The story of a Go program that crashes on certain machines but not others which led to a very low-level debugging mystery. Hector Martin |
🔧 Tools & Code |
TiDB 2.0: A Go-Powered Analytics (HTAP) Database — A MySQL-protocol compatible, distributed database focused on OLTP and OLAP. GitHub repo. PingCAP |
$20 Free On A New Linode Account — Linux cloud hosting starting at 1GB of RAM for $5/mo. Get $20 credit on a new account. Linode Cloud Hosting sponsor |
Corral: A Serverless MapReduce Framework for AWS Lambda — Think a Go-flavored Hadoop MapReduce-a-like that’s well-suited for ETL jobs. Ben Congdon |
Terratest: Write Automated Tests for Your Infrastructure Code — Test Terraform code, Packer templates, Docker images, interact with servers over SSH, work with AWS, and more. Gruntwork |
go_generics: A Tool Google Uses to Transform Go Source — Noticed within Google’s new gVisor project. |
Fuzzy: Fuzzy Matching Library Optimized for Small Strings — Ideal for filenames, code symbols, and the sort of things IDEs often use fuzzy search for. Sahil Muthoo |
➡ Better Way to Debug Production Issues ROLLBAR sponsor |
TextQL: Execute SQL Against Structured Text (like CSV or TSV) — Under the hood it pulls in a CSV to SQLite and runs queries against it. Paul Bergeron |