#232 — October 11, 2018

Read on the Web

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 go mod edit.

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.