#295 — January 17, 2020 |
Golang Weekly |
Porting the Go Pigo Face Detection Library to WebAssembly — Pigo is a neat face detection library we’ve linked to a few times now, but wouldn’t it be great to use directly in the browser too? Here’s what was involved. Endre Simo |
Plumbing At Scale: Event Sourcing and Stream Processing Pipelines at Grab — Grab is a Singapore-based food ordering app and this post digs into their journey building and deploying an event sourcing platform with Go for servicing 300 billion events each week. Karan Kamath (Grab) |
Start 2020 Strong. Ultimate Go Training: Charlotte, NC - January 27-29, 2020 — Take advantage of the early bird pricing and attend Bill Kennedy's Ultimate Go Training in Charlotte, North Carolina in January 2020. If you have a team of 5 or more engineers request a group discount here. Ardan Labs sponsor |
How We Optimized Our DNS Server using Go Tools — It’s written in an idiosyncratic way but there’s a lot to enjoy here. Arash Cordi |
Stream Is Deprecating Virtual Go ( Tommaso B (Stream) |
💻 Jobs |
Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks. CrowdStrike |
Enjoy Building Scalable Infrastructure in Go? Stream is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now. Stream |
Find a Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers. Vettery |
📘 Articles & Tutorials |
Exposing Interfaces — Writing good interfaces can be tricky, but there are some guidelines you can follow which this article outlines with examples. Efe Karakus |
▶ How GitLab Scaled Git Access with Go — A 25 minute talk on the story behind how GitLab switched from a Ruby on Rails app to using feature flags, protocol buffers, gRPC and Go. Oswaldo Ferreira |
PubSub Using Channels in Go — As with most things, there are multiple possible approaches here. Eli covers several and chooses his favorite. Eli Bendersky |
Go Things I Love: Channels and Goroutines — A quick look at a few concurrency patterns. Justin Fuller |
▶ Go at Heroku — Take a peek into how Heroku uses Go for its services, and how they teach through style guides and pairing sessions. Heroku sponsorpodcast |
The 'await/async' Concurrency Pattern in Go — Another look at concurrency from the perspective of replicating the Matteo Madeddu |
How Go's Chris Siebenmann |
🛠 Code & Tools |
BLAKE3: A Pure Go Implementation of the BLAKE3 Cryptographic Hash Function — BLAKE3 is a Merkle-tree based cryptographic hash function (originally implemented in Rust) that’s fast, secure, and highly parallelizable. And in case you’re wondering why you’d want a faster hash, here are some ideas. Luke Champine |
sqlmw: Wrap a Alan Shreve |
Avo: Better x86 Assembly Generation from Go — Avo makes assembly easier to write by using Go control structures and virtual registers, with values handled for you. The basic adding two numbers example shows off how it works in a simple way. Michael McLoughlin |
GoJSONQ: A Package to Query JSON Data — Provide a fluent chainable API to query JSON documents. Saddam H |
asciigraph: Make Lightweight ASCII Line Graphs — We’ve linked this a few times over the years, but I still love the output from this package and it continues to get updates from time to time. Rohit Gupta |
Aini: Go Library for Parsing Ansible Inventory Files Relex |
Fault Tolerant Job Scheduling System for Cloud Native Environments dkron.io sponsor |
ok-zoomer: Turn Portraits Into Zooming Animated GIFs — Finds a face in an image using Pigo then zooms in and out of that face and turns the result into an animated GIF. Got it? 😂 Justin Birmingham |
zero-width: Zero-Width Character Detection and Removal — Things like zero width spaces in strings can cause all sorts of headaches. Nikola Trubitsyn |