#​361 — May 7, 2021

Unsubscribe  |  Read on the Web

Go Weekly

The Art of Solving Problems with Monte Carlo Simulations — This is pretty math-heavy, but it does show several examples of using Monte Carlo simulations to converge on a value that could prove useful in this data-driven age.

Gabriel Carvalho

Proposal: A New Package to Provide Generic Slice Functions — Off the back of the eventual arrival of generics comes a proposal for a package containing a lot of the functions you’d expect around comparison and enumeration.

Ian Lance Taylor et al.

Book a Demo. Ship Fast. Rest Easy. LaunchDarkly — Testing in production? It's scary until it's not. Get total control of your code to ship fast, reduce risk, and reclaim your nights and weekends.

LaunchDarkly sponsor

'How Litestream Eliminated My Database Server for $0.03/month'Litestream replicates data from a local (to your app) SQLite database to an S3-compatible set of SQLite snapshots. In effect, this removes the need for backups and data migrations. Oh, and it runs in its own process.

Michael Lynch

Quick Bits

  • Go 1.16.4 and Go 1.15.12 have been released in line with Go's new security policy. They fix an issue where ReadRequest and ReadResponse in net/http can hit an unrecoverable panic when reading a very large headers.
  • CORRECTION 👀 Tim Heckman wrote in noting my interpretation of the discussion around standard Go project layouts was incorrect. The Go team does not plan to offer official guidance on this matter – it was merely a third party suggestion to do so. Thanks Tim.

📘 Tutorials and Stories

Branchless Coding in Go — Matt had some bit-packing to do and wondered if he could pull it off without any conditional branching. He gave it a go and reports on the pros and cons of the approach.

Matt Nakama

Between Go and Elixir“Reason wanted me to make a choice, and I am so glad I didn’t. Because the more I kept delving into both Elixir and Go, the more I found out how complementary the two can be to one another.”

Preslav Rachev

Provision Infrastructure with Go and Pulumi — Use the Go language and ecosystem to manage and provision modern infrastructure across any cloud and a variety of workloads.

Pulumi sponsor

Building a Bingo Game Backend with EncoreEncore does, as promised, provide a lot of ‘magic’ when it comes to getting a service developed and deployed quickly.

Daniel Aguilera

▶  Building Tamper-Proof Systems with ImmuDB and GoImmuDB is an Go-powered database that boasts no data mutation APIs at all and a ‘tamper-evident’ history system. (16 minutes.)


A Note on Worker Pools in Go — If you’re using goroutines to handle requests then you’ll likely hit memory limits at scale, so worker pools to the rescue. However, there are sharks in those waters, too.

Adhityaa Chandrasekar

How to Model JSON Data in Go with CockroachDB
Jack Christensen

Building a Simple Terminal Emulator in 100 Lines of Go
Ishuah Kariuki


Platform Senior Software Engineer [Remote] — Doximity is on a mission to transform the US healthcare system. Join us and build the platform our teams use to ship software.

Senior Software Engineer (Go) - 100% Remote, UK/EU Only — Solving complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster.

🛠 Code & Tools

Gomponents: View Components in Pure Go — Write view components in the Go you know and love and they get rendered to HTML. I’ve never been a fan of this approach myself but it’s a neat project all the same.

Markus Wüstenberg

goyek: Create Build Pipelines in Go — This package was heavily influenced by the testing package which is apparent when you run a pipeline.


Rapidly Identify Golang Bottlenecks with Datadog APM. Try It Free

Datadog sponsor

Twirp 8.0: Simple RPC Framework with Protobuf Service Definitions — Define your service in a Protobuf file and this autogenerates Go code with a server interface and fully functional clients. Think gRPC, but without the custom HTTP server and transport implementations - it uses net/http instead. 8.0.0 brings Twirp up to Protobuf APIV2 standards.


sqlc 1.8: Generate Type Safe Go(lang) from SQL — You write SQL queries, run sqlc to generate code and interfaces for those queries, then write Go code that calls the aforementioned code. 1.8.0 adds support for Postgres 12 and 13 features by upgrading an underlying dependency.

Kyle Conroy

  • Ebiten 2.1.0 has been released. No big jumps, but it continues to be a fantastic 2D game library for Go.

  • Fiber 2.9.0 is out – it's an Express.js inspired Web framework so if that was something you like about the Node world, check it out.