#444 — January 20, 2023
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:
-
Fancy a broader look at Go 1.20? Jan Stamer has put together a Miro board of the key updates.
-
If you use ngrok for ingress to locally running apps, they've introduced ngrok-go, a way to integrate ngrok declaratively directly into a Go app.
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í
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.