#333 — October 9, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

Embedding Python in Go — There are a couple of ways to skin this, um, snake, and Chris takes the more approachable but less performant one. This article provides a great entry point into the world of Python-Go interoperability though.

Chris Korneck

Finding Goroutine Bugs with TLA+ — I suspect most developers don’t have first hand experience with ‘formal methods’ (a rigorous approach to defining the specifications of code in order to verify it) but TLA+ is one way to write formal specifications and here’s an example of writing a spec to test a Go feature.

Hillel Wayne

Remote Instructor-Led Go, Docker, Kubernetes, Terraform, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, Terraform, and Python. We’ve trained over 10,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

Prisma Client Go: Auto-Generated and Type-Safe Database Client — The name Prisma might ring some bells if you’re in the JavaScript space, but they now have an alpha quality query builder for Go that is pitched as an alternative to things like GORM or SQLBoiler. Early days but worth watching this space.

Prisma

Increasing http.Server Boilerplate — The boilerplate here adds on the ability to listen on sockets, automatic HTTPS redirect, and graceful shutdown.

Bojan Živanović

⚡️ Quick bytes:

💻 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

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.

X-Team

Find Your Next Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

📘 Tutorials

Go, WebAssembly, HTTP Requests and Promises — A guide to interacting with JavaScript from Go delivered in a WebAssembly context.

Alessando Segala

Automating Go Integration Tests with Docker — Integration tests are slow and often have external dependencies (like a database), so pushing them into Docker can help keep them isolated and maintainable. There are multiple approaches to this, and this is just one.

James Dudley

Creating PowerPoint Slides From Templates — Creating Powerpoint slides from templates is useful in content generation. Danish illustrates this with UniOffice.

UniDoc UniOffice sponsor

Environment Variables in Golang — A lot of this is 101, but I did learn about os.ExpandEnv for easy string substitution of environment variables.

LoginRadius Engineering

Correlating Logs — How to use middleware to create and track correlation IDs for a single request through a system.

Filip Nikolovski

Some Basic and Common Uses of Regular Expressions in Go — A brief piece aimed squarely at beginners, but that may be you :-)

Gregory Schier

Polymorphism in Limbo and Go 2 — Drawing a comparison in code between Limbo (a language developed at Bell Labs by Rob Pike and others) and Go’s forthcoming generics.

Sean Hinchee

🛠 Code & Tools

Bit: An Experimental, Modern CLI for Git — Brings some extra niceties to the idea of git, including file and branch name autocompletion, command and flag suggestions, and even some new commands.

Chris Walz

Hetty: A HTTP Toolkit for Security Research — An intercepting HTTP proxy with a Web interface and proxy log viewer. The aim is to become an open source alternative to commercial software like Burp Suite Pro.

David Stotijn

pospop: High Performance Positional Population Counting — You’d use this for counting set bits in sets of values which has value in areas like statistics and machine learning.

Robert Clausecker

Getting Started with OpenTelemetry and Distributed Tracing in Go

Lightstep sponsor

Elsa: A Minimal, Secure Runtime for JavaScript and TypeScript Written in Go — Joining Deno in the land of new JS runtimes this year comes the Go-powered Elsa which uses QuickJS rather than V8. It feels somewhat more experimental, but it’s always fun to see such projects, and if you don’t like it.. you can 🎵 let it go… let it go…

Elsaland Team

MTProto: A Fully-Native Go Implementation of the Telegram API — For if you want to work with Telegram’s protocol at a low level. Be warned, this has a rather ‘animated’ README(!)

Xelaj Technologies

HAProxy Configuration Parser — I’m a hugely vocal fan of HAProxy, a popular TCP and HTTP load balancer/proxy, and I can’t think of a use for this, but maybe you can!

HAProxy Technologies

ksqlDB Go Library 0.04 — A client for the Kafka-native ksqlDB event streaming database.

Robin Moffatt