#232 — October 11, 2018 |
Golang Weekly |
Compile-Time Dependency Injection with Go Cloud's 'Wire' — A couple of months ago, the Go team announced Go Cloud, a framework for making it easier to build portable cloud apps with Go - here’s a detailed look at Wire, a dependency injection tool that’s part of the project. Robert van Gent |
A Proposal for Goroutine Scoped Contexts — Not only does Eyal outline the problem he perceives and a potential way forward, he’s built a proof of concept implementation too. Eyal Posener |
Lower Latency for a Better End User Experience. Learn More — Updated to include a built-in CDN, Spaces object storage can deliver web assets up to 70% faster. DigitalOcean sponsor |
Pixel: A 2D Game Development Library — Focused on fast 2D graphics rendering via a simple API. Yesterday’s 0.8 release is significant as it now supports custom fragment shaders. Michal Štrba |
How 'Go 1.11 Got Me to Stop Ignoring Go' — Specifically, Go modules brought Drew onboard. Drew DeVault |
vim-go's Creator is Taking a Sabbatical — Fatih has worked tirelessly on his popular vim-go Go plugin for Vim - he’ll no longer be maintaining it but two new full-time contributors are now on board. On the flip side, a variety of other projects of his (e.g. color) are essentially ending, and he is inviting you to fork them. Fatih Arslan |
'Programs Compiled by 1.11 Allocate An Unreasonable Amount of Virtual Memory' — This is unlikely to cause many issues as programs aren’t actually going to be using that extra memory. Go GitHub Repo |
💻 Jobs |
Architect, Senior Software Engineer - Subscriptions (SF) — Operating at massive scale, Twitch Subs is seeking a Senior Architect to experiment, build and scale solutions across our organization. Twitch |
Join Our Career Marketplace & Get Matched With A Job You Love — Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details. Hired |
📘 Tutorials & Articles |
A Deep Dive Into the OS Memory Use of a Simple Go Program Chris Siebenmann |
Calling Java From Go Using gRPC — Faced with a need not served well by any Go library, redByte wrote a service in Java and called it via gRPC in an excellent example of a gRPC use case. Martin Kováčik |
The Design Choices of the Go Garbage Collector — There are many ways to do garbage collection, here’s why Go chose the approach we have today. Haruki Okada |
Manipulating Istio & other Custom Kubernetes Resources in Go Dave Kerr |
▶ Running Go Programs Directly on the BBC micro:bit — The BBC micro:bit is an ARM Cortex M0 microcontroller. Here’s a quick look at using TinyGo to run programs on it. Hybrid Group |
Monitor and Analyze Go App Performance in Real-Time. Try Datadog Free Datadog sponsor |
Some Basic Go 1.0 vs Go 1.11 Benchmarks — Yes, Go 1.0 (not 1.10). Go was already pretty fast when 1.0 came out six years ago, so it’s nice to see the progress made. Dave Cheney |
How Go Hits the Concurrency Nail Right on the Head — Eli explains why Go is one of few modern, mainstream languages to really get concurrency right. Eli Bendersky |
🔧 Tools & Code |
Ghost: Locate And Fix Overly Complex Lines of Code Elliot Chance |
go-jsonschema: A Tool to Generate Go Types from JSON Schema Definitions Alexander Staubo |
gohack: Make Temporary Edits to Your Go Module Dependencies — Goes a little further feature-wise than Roger Peppe |
gse: Efficient Text Segmentation Library — Notably not just for English, it supports languages like Japanese and Chinese too. vcaesar |
OpenCensus Metrics and InfluxDB InfluxData sponsor |
Biscuit: A Basic POSIX-Subset OS Written in Go for x86-64 — Very much a prototype/research project, but interesting work to see in Go nonetheless. Boot it for yourself if you have Linux and qemu. MIT PDOS |
Astiencoder: An FFMpeg-Based Video Encoder Written in Go Quentin Renard |
A Bloom Filter Library (a Go port of Bloomfilter.js) GitHub |
Robotgo: Desktop Automation on Mac, Windows and Linux — Move the mouse and type on the keyboard from Go. |