---
title: "Some problems with integers"
publication: "Go Weekly"
issue: 444
published_at: "2023-01-20"
canonical_url: "https://golangweekly.com/issues/444"
---

Plus it's Go community survey time again, drawing diagrams and graphs, and more on Go 1.20. |        

#​444 — January 20, 2023 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/444)  

Together with [![Pangea logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto/e_make_transparent/co_white,e_outline:7/vdxvaq0osr46vwyw8hkt.png)](https://pangea.cloud/resources/technologies?utm_medium=display&utm_source=cooperpress&utm_campaign=golang-weekly-jan)  

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vngfolxmongmmcjvxtgm.jpg)](https://terrastruct.com/blog/post/generate-diagrams-programmatically/)  

[Generating Diagrams Programmatically with D2](https://terrastruct.com/blog/post/generate-diagrams-programmatically/) — This is useful! [D2](https://d2lang.com/tour/intro/) 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](https://go.dev/blog/survey2023-q1) — 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   [![\](https://copm.s3.amazonaws.com/2714c885.jpg)](https://pangea.cloud/resources/technologies?utm_medium=display&utm_source=cooperpress&utm_campaign=golang-weekly-jan) 

[Add Secure Audit Logging to Your Go App with Pangea](https://pangea.cloud/resources/technologies?utm_medium=display&utm_source=cooperpress&utm_campaign=golang-weekly-jan) — 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](https://blog.carlmjohnson.net/post/2023/golang-120-arenas-errors-responsecontroller/) — 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](https://miro.com/app/board/uXjVPyMixKs=/?share_link_id=599604647740).
- If you use [ngrok](https://ngrok.com/) for ingress to locally running apps, they've [introduced ngrok-go](https://blog.ngrok.com/posts/announcing-ngrok-go), a way to integrate ngrok declaratively directly into a Go app.   

[The State of Go: JetBrains' Developer Ecosystem Report](https://blog.jetbrains.com/go/2023/01/17/what-s-new-in-go-the-developer-ecosystem-report-2022/) — 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](https://jvns.ca/blog/2023/01/18/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](https://t.mp/3WVgVVK) — 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](https://bitfieldconsulting.com/golang/examples) — 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](https://djosephsen.github.io//posts/ipnet/) — 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 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vjv0k8crdunhof2nhyzq.jpg)](https://github.com/dominikbraun/graph/)  

[Graph: Library to Work with Generic Graph Data Structures](https://github.com/dominikbraun/graph/) — 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](https://tailscale.com/tailscale-ssh/?utm_source=golang&utm_medium=email&utm_campaign=2023-1-20&utm_content=brand) — 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](https://github.com/prest/prest) — Turn a Postgres database into a RESTful API. Covers similar ground to [PostgREST](https://postgrest.org/en/stable/) but in Go rather than Haskell. 

pREST   

[LiteFS: FUSE-Based SQLite Replication](https://github.com/superfly/litefs) — From the genius mind of Ben Johnson (who you may know for the Go-based [Bolt](https://github.com/boltdb/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](https://github.com/burrowers/garble) — 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](https://github.com/martinrue/cadet) 

Martin Rue    

Jobs  

[Site Reliability Engineer](https://www.stickermule.com/career/2482befb-4aa7-4372-98d7-042aaf774315) — 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)](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html) — 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](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — 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](https://github.com/natefinch/lumberjack)
 ↳ Writing logs to rolling files. _Very punny!_
- [conc 0.2](https://github.com/sourcegraph/conc/releases/tag/v0.2.0)
 ↳ Better structured concurrency.
- [Goose 3.8](https://github.com/pressly/goose)
 ↳ Database migrations with SQL changes or Go functions.
- [Viper 1.15](https://github.com/spf13/viper)
 ↳ Complete configuration solution for Go apps.
- [v8go 0.8](https://github.com/rogchap/v8go/releases/tag/v0.8.0)
 ↳ Execute JavaScript from Go.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
