Join The Go Gazette


| The Go Gazette - weekly newsletter for Golang engineers.

 

The Go Gazette

The Go Gazette

Weekly resources for Golang pros. Carefully curated by Maarten from Jexia.


Go Gazette #90

Weekly curated resources for professional Golang developers

Winning a hackathon award, together with Jexia co-founder Michael (left) and co-Gopher Tarik (right)

Fundamentals

Concurrency in Go

by Sean Carpenter

8 minutes - If you know Go, but want to improve your understanding of how to use its concurrency features, then read on. If you do not know Go, I'd recommend you first start off with the Tour of Go.

Go routines and thread safe data structures

by Eleni Fragkiadaki

6 minutes - Threads is a way for a program to run parts of itself in some sort of concurrent way. In this post we are going to examine the differences between running a program sequentially, using Go routines and Wait Groups

Building a Go application server (for starters)

by Chris Berry

8 minutes - Creating a Golang application server with 100% parity to an existing NodeJS web app, enabling an existing VueJS front-end to connect to the application with no additional code changes.

Algorithms in Go: heap sort

by Dorin Fodor

3 minutes - A front-end performance checklist that takes 87 minutes to read! Well, it includes all the tech you need to know to create fast experiences on the web today.

How does Go stop the world?

by Vincent Blanchon

4 minutes - A "Stop the World" (STW) is a crucial phase in some garbage collector algorithms to get track of the memory. It suspends the execution of the program to scan the memory roots and add write barriers.

"for" statement and all its faces in Golang

by Michal Lowicki

9 minutes - In contrast to many other languages, Go doesn’t have multiple constructs for executing block of code repeatedly. There’s a single `for` statement which takes different forms to support various scenarios and also integrates well with Go-specific mechanisms like slices or channels.

More fundamentals:

Real-world reports

Go: defer is synchronous

by John Refior

5 minutes - Defer is executed immediately _before_ the function exits. And it occurs synchronously, so the caller waits for the defer to complete.

PayPal taps Go to modernize and scale

by the core Go team

5 minutes - As its Payments Platform grew larger and more complicated, PayPal sought to modernize its systems and reduce time-to-market for new applications. PayPal chose to embrace Go.

How I build robust, scalable Go applications

by Dirk Hoekstra

3 minutes - I use interfaces to keep my Go applications modular.

BitBanged SPI in Go, an explanation

By Lane Wagner

4 minutes - I’m going to focus mostly on some design decisions and how I went about writing an SPI interface using Go on a Raspberry Pi.

Handling XML-RPC communication in Go

by Alex Kubarev

2 minutes - While working on one of my smaller projects I came across a need to make XML-RPC requests.

How we optimized our DNS server using Go tools

by Arash Cordi

18 minutes - We managed to optimize our service to handle high load of requests and better utilize system recources.

More real-world reports:

Tutorials

Microservice background jobs

by Tit Petric

7 minutes - In our stats microservice, we issue insert queries for each request directly into the database. To take advantage of the bulk insert features of the database, we need to start a goroutine that will periodically aggregate and flush collected to the database.

Micro in action - a series

by Che Dan

7 minutes - We will build a micro service step by step, explain features of Micro during this journey.

Training neural networks with Gorgonia

by Cleuton Sampaio

3 minutes - I will show a very basic example of MLP - Multilayer Perceptron trying to find the weights for an approximation of the exclusive disjunction function or XOR.

Logging: rules of thumb

by Vlamidir Garvardt

3 minutes - I gathered some rules of thumb regarding logging that I use for the code I work with. All of them came from my personal experience of running and maintaining different types of services.

Hands-on IPLD tutorial in Golang - Part 2

by Vaibhav Saini & Ganesh Prasad Kumble

5 minutes - Enhancing the code to handle document entries instead of key-value entries.

More tutorials:

Tools

Elastic Cloud Control 1.0.0 beta

5 minutes -A command-line tool to interact with the Elastic Cloud Enterprise (ECE) REST API. Plus: we provide you with a Golang SDK that can programmatically interact with our REST API as part of your Go application.

Weave Ignite - The GitOps VM

4 minutes - Weave Ignite combines Firecracker microVMs with OCI images, containerd and CNI to unify containers and Virtual Machines (VMs). It integrates with Kubernetes and GitOps operators that can be managed declaratively.

GW Tester: testing S/P-GW without pains

5 minutes - As Gophers probably can see that this needs more works to be "a product", I’d be very happy with your contributions, even small parts.

Terrier: identify and scan container & image components

14 minutes - Heroku showing you how Terrier can help you identify and verify container and image components for a wide variety of use-cases, be it from a supply-chain perspective or forensics perspective.

Go-ruleguard: new static analysis library (and CLI utility)

7 minutes - It’s like a gogrep that is adapted for the use inside your CI pipeline.

More tooling:

Perspectives

My thoughts on Uber FX

By Ewan Valentine

4 minutes - I rarely write posts on specific libraries, but this one in particular seems to have created some discussion within the Go community. So thought I'd throw my thoughts into the ring.

Everything old is new again

By Mike Hoskins

4 minutes - Learning from the past and continuously improving is noble, but that doesn't mean old patterns fail to be useful. This is why historic awareness (not just keeping up with trends) is important to the modern polymath.

`net.DialContext()` stops things when context is cancelled

By Chris Siebenmann

2 minutes - These days, a number of core Go standard packages support functions that take a `context.Context` argument and abort their operation if the context is cancelled.

If Haskell is so great, why hasn't it taken over the world?

By Paul Chiusano

5 minutes - And the curious case of Go.

More perspectives:

Academic articles

Stochastic probabilistic programs

By David Tolpin & Tomer Dobkin

15 minutes -Introducing the notion of a stochastic probabilistic program and presenting a reference implementation of a probabilistic programming facility, that supports specification of stochastic probabilistic programs and inference in them. Examples in Sections 2–3 are in a subset of Go.

Comparing Python, Go, and C++ on the N-Queens problem

By Pascal Fua & Krzysztof Lis

15 minutes - In this report, we use the well-known N-queens puzzle as a benchmark to show that once compiled using the Numba compiler Python becomes competitive with C++ and Go in terms of execution speed while still allowing for very fast prototyping.

NodeRacer: event race detection for Node.js applications

By André Takeshi Endo & Anders Møller

15 minutes - No Go paper, yet interesting from back-end perspective.

Presentations

Building microservices with Go

by Nic Jackson

Duration: 35 minutes

About my projects

Go Gazette is a mailing consisting of the latest and finest blogs and tools curated for Golang professionals. I am your curator Maarten Bezemer, building Dutch cloud-based platform Jexia. Our platform is providing hosting and several serverless back-end functions for front-end or full-stack developers.

Product Examples Pricing