#215 — June 14, 2018 |
Golang Weekly |
Why Add Versions to Go? — Still uncertain about vgo and why Go needs package versioning support at all? Russ Cox digs into the motivation here. Russ Cox |
Go Code Refactoring: The 23x Performance Hunt — Counting on presumptions like “concurrency is better” can lead to worse performance. Benchmarking, tracing, and profiling with different algorithms lead to true performance gains. Val Deleplace |
Telegraf: The Go Collection Agent — Learn more about Telegraf: an open source, lightweight, plugin-driven collection agent written in Go. InfluxData sponsor |
Experimenting with Go's Early WebAssembly Support — The forthcoming Go 1.11 supports compiling to WASM, so some basic examples of what to do with it are certainly welcome. If you’re into this topic, you may also appreciate these notes or this guide. Lazy Hacker |
Fo: An Experimental Language Which Adds Generics to Go — If you ask Go developers what new language features they’d like, ‘generics’ comes up as a common response. So, how could it work and what might it look like? Alex Browne |
Using GraphQL with Microservices in Go — This very complete tutorial includes micorservices, gRPC, and GraphQL to create a fake online store from the ground up. Tin Rabzelj |
Go 1.10.3 and Go 1.9.7 Released — Minor releases including fixes to the Filippo Valsorda |
Draft Release Notes for Go 1.11 — Go 1.11 is due for release in August 2018 so these notes are very much a work in progress. The Go Programming Language |
💻 Jobs |
Sr. Software Developer at CrowdStrike (Multiple Locations) — CrowdStrike stops hackers using a massive micro services architecture written in golang. CrowdStrike |
Have You Tried Vettery? — Vettery matches top tech talent with fast-growing companies. Take a few minutes to join our platform. Vettery |
📘 Tutorials |
Using Job Queues in Go for Resilient Systems — The reasoning and a quick proof-of-concept using RabbitMQ. Soham Kamani |
How-To: Achieve Observability in Modern Applications 🔭 — Deep dive into modern observability challenges and why monitoring falls short. ROLLBAR sponsor |
What A Go Developer Needs to Know About Google Cloud Platform — The options for deploying to GCP, their respective advantages, along with the services offered on the platform. Eno Compton (Google) |
Hacking Drones (like the DJI Tello) with Go — This project shows how you can control the new DJI Tello drone flight commands and video using Go. Ron Evans |
Gracefully Restarting a Go Program Without Downtime Russell Jones |
'append' Is Not Always Thread Safe — Using append can lead to data races, if you’re not careful. This post explains how to work around the issue. Jack Lindamood |
Host Git Repository Servers w/ DigitalOcean’s One-Click GitLab App DigitalOcean sponsor |
Faster Test Driven Development With Go on macOS — Using fswatch and grc to automatically run relevant tests on every code change. Tyson Maly |
🔧 Tools & Code |
ppds: Pretty Print Data Structures — ASCII-based pretty printing of trees, linked lists, stacks, and queues. Shivam Mamgain |
usql: A Universal Command-Line Interface for SQL Databases — The latest release adds support for Cassandra and switches from dep to vgo. Kenneth Shaw |
USBDMX: A USB DMX Library for Programatic Show Control — DMX is the standard for controlling intelligent lighting fixtures as used in stage lighting. Oliver Read |
Polluter: Seed a Database with Data from YAML Files Roman Budnikov |
Monitoring & Distributed Tracing for Go Apps. Try Datadog Free Datadog sponsor |
php-parser: A PHP Parser Written in Go — Uses goyacc and golex libraries to parse PHP sources into AST. Demo here. Vadym Slizov |
stripe-go: Go Library for The Stripe API — The latest release (v32) has some breaking changes. Stripe |