#​444 — January 20, 2023

Unsub  |  Web Version

Together with  Pangea logo

The Go Weekly Newsletter

Generating Diagrams Programmatically with D2 — This is useful! D2 is a Go-powered declarative diagram scripting tool and this post walks through using it from your Go code to generate a diagram of a database schema direct from a supplied SQL schema.

Alexander Wang

Time to Take the January 2023 Go Developer Survey — This official survey, now in its eighth year, has been the source of gauging support to numerous considerable changes to the language (such as generics) so don’t miss this opportunity to shape the future of Go (again.)

Alice Merrick and the Go Team

Add Secure Audit Logging to Your Go App with Pangea — Need a fast, easy, and secure audit log for your Go app? Pangea’s Audit Log API delivers tamperproof audit logging with just a few lines of code. Cryptographically verified with storage, compute, and security managed for you. Get started for free.

Pangea sponsor

More on What’s Coming in Go 1.20 — The second post in a three-part series, where Carl covers new additions such as the (now considered ‘truly experimental’ and semi-‘removed’) memory arenas package, multierrors, and http.ResponseController (an extended interface for ResponseWriter).

Carl M. Johnson

IN BRIEF:

The State of Go: JetBrains' Developer Ecosystem Report — Every year JetBrains surveys thousands of developers about how they use programming languages. This post focuses on Go and also includes insights from Bartlomiej Plotka, Carolyn Van Slyck, and Michael Gasch.

JetBrains

Examples of Problems with Integers — A few of these examples are in Go, but they are all worth reading and will teach you about compiler issues, common typos, buffer overflows, and a couple of odd bits of trivia about integers and computing.

Julia Evans

Learn How to Use Temporal OSS Using Go — Join this course to learn the basics of Temporal while using Temporal’s GO SDK to develop an app that communicates with an external service.

Temporal Technologies sponsor

Executable Examples in Go — Putting code examples in your code docs is a good practice, but having those examples executed by test runs is next level and could help keep your docs aligned with your code.

John Arundel (Bitfield Consulting)

The Exasperated Engineer's Guide to IPs in Go — While this is a bit ranty about net.IP, the addition of the net/netip package solves the problems that inspired said rant, as Dave shows with some useful code snippets.

Dave Josephsen

🛠 Code & Tools

Graph: Library to Work with Generic Graph Data Structures — You can create graphs with vertices of any type, find paths through them, transform them, and even create visualizations of them.

Dominik Braun

Simplify Workflows with Tailscale SSH — A new way to SSH into devices on your Tailscale network. Simply enable it, and we’ll take care of the rest — from distributing keys to authenticating connections.

Tailscale sponsor

pREST: Serve a RESTful API From a Postgres Database — Turn a Postgres database into a RESTful API. Covers similar ground to PostgREST but in Go rather than Haskell.

pREST

LiteFS: FUSE-Based SQLite Replication — From the genius mind of Ben Johnson (who you may know for the Go-based Bolt key/value store) comes a fresh take on scaling SQLite by using a FUSE-based file system to replicate SQLite transparently. Go is a fantastic fit for this sort of thing. v0.3.0 adds WAL support.

fly․io

Garble: A Toolchain to Obfuscate Go Builds — Obfuscation can’t guarantee security but if you want your binaries to have “as little information about the original source code as possible,” Garble presents an option.

Daniel Martí

Cadet: Library for Creating Simple HTTP-RPC Servers

Martin Rue

Jobs

Site Reliability Engineer — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs

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

QUICK RELEASES:

  • Lumberjack 2.2
    ↳ Writing logs to rolling files. Very punny!

  • conc 0.2
    ↳ Better structured concurrency.

  • Goose 3.8
    ↳ Database migrations with SQL changes or Go functions.

  • Viper 1.15
    ↳ Complete configuration solution for Go apps.

  • v8go 0.8
    ↳ Execute JavaScript from Go.