---
title: "Go quirks and intermediate tricks"
publication: "Go Weekly"
issue: 448
published_at: "2023-02-17"
canonical_url: "https://golangweekly.com/issues/448"
---

Plus the Go powered balloon over Europe. |        

#​448 — February 17, 2023 

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

Together with [![Cockroach Labs logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_740,h_100/e_make_transparent/co_white,e_outline:10/d9sktlkk3ipcaszkhybd.png)](https://www.cockroachlabs.com/guides/oreilly-cloud-native-go?utm_source=cooperpress&utm_medium=sponsor&utm_campaign=tofu-pipe-oreilly-cloud-native-go&utm_content=guide-build-for-scale-download-now-newsletter-0217&utm_term=prosp-go-newsletter-primary)  

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/tgzfvpr5to6yxgft4hgg.jpg)](https://github.com/ebitengine/purego)  

[Purego: A Dynamic Way to Call C Functions from Go _Without_Cgo](https://github.com/ebitengine/purego) — No C means you can build for other platforms easily without a target C compiler/toolchain. No wrapper functions either. One of the contributors [noted on HN](https://news.ycombinator.com/item?id=34764450): _"It uses the same mechanisms that Cgo does to switch to the system stack and then call the C code. Purego just avoids having to need a C toolchain to cross compile code that calls into C from Go."_ 

Ebitengine   

[Go Quirks and Intermediate Tricks](https://eblog.fly.dev/quirks.html) — This isn’t the best formatted post, but you might pick up a few things from this list (which, handily, has code examples for each item). 

Efron Licht   [![\](https://copm.s3.amazonaws.com/618d4972.jpg)](https://www.cockroachlabs.com/guides/oreilly-cloud-native-go?utm_source=cooperpress&utm_medium=sponsor&utm_campaign=tofu-pipe-oreilly-cloud-native-go&utm_content=guide-build-for-scale-download-now-newsletter-0217&utm_term=prosp-go-newsletter-primary) 

[Free from O’Reilly: Build Resilient Apps in Go](https://www.cockroachlabs.com/guides/oreilly-cloud-native-go?utm_source=cooperpress&utm_medium=sponsor&utm_campaign=tofu-pipe-oreilly-cloud-native-go&utm_content=guide-build-for-scale-download-now-newsletter-0217&utm_term=prosp-go-newsletter-primary) — Learn to build cloud-native, cost-effective, and fault-tolerant applications in this 3-chapter excerpt from O’Reilly’s Cloud Native Go. 

CockroachDB sponsor   

[Rust vs Go in 2023](https://bitfieldconsulting.com/golang/rust-vs-go) — A 2023-flavored update to a popular article first released in 2020. John is a fan of _both_ Rust and Go and takes a careful look at where each independently makes the most sense. 

John Arundel   

🗣 [Go May Add Telemetry Reporting That's On by Default](https://www.theregister.com/2023/02/10/googles_go_programming_language_telemetry_debate/) — We featured the [initial discussion](https://github.com/golang/go/discussions/58409) behind this last week, but _The Register_ has decided to run with the story and digested the public opinion a little more. Issues around ‘phoning home’ and privacy are always going to be fierce, but the _intent_, at least, appears to be good and [as Nate Finch says](https://github.com/golang/go/discussions/58409#discussioncomment-4909242) _“It’s just Go developers wanting to know how people use their software, so they can make it better. For you. For me. For all of us.”_ 

The Register   

**IN BRIEF:** 

- [Go 1.20.1 and 1.19.6](https://groups.google.com/g/golang-announce/c/V0aBFqaFs_E/m/CnYKgKwBBQAJ) have been released – they include four security fixes around `path/filepath`, `net/http`, and `crypto/tls`
- One developer has seen a huge improvement in compile times [just from getting a better SSD?](https://www.octobench.com/comparison-compile-speed-ssd/go-compiler-with-wd-black-sn850-1-vs-samsung-ssd-970-evo-plus-1)
- Johnny Boursiquot reminds us it's possible to [request an episode of the _Go Time_ podcast](https://changelog.com/request/gotime), if you've got any guest or topic ideas.   

[Structured Logging with slog](https://mrkaran.dev/posts/structured-logging-in-go-with-slog/) — There is a language proposal to add [slog](https://pkg.go.dev/golang.org/x/exp/slog) to the standard library ([GitHub discussion here.](https://github.com/golang/go/issues/56345)) slog has the basic features you’d expect. Still, not everyone is wild about how it handles attributes and custom loggers. 

Karan Sharma   

▶⬆️ [Really Simple Structured Logging with Tracing](https://www.youtube.com/watch?v=IsPa11N5pzI) 
Kai Hendry   

[Building a URL Shortener using Go, SQLite and GORM](https://blog.pratimbhosale.com/building-a-url-shortener-using-go-and-sqlite) — [GORM](https://gorm.io/) is an ORM library for Go. 

Pratim Bhosale   

▶[Debugging Concurrent Programs in Go](https://www.youtube.com/watch?v=D_S9qQ7jzkQ) — The audio isn’t _great_ but this is too useful not to link. 

Andrii Soldatenko   

▶[A Wacky Journey of Building a Vector Database in Go](https://www.youtube.com/watch?v=K1R7oK2piUM) 
Etienne Dilocker  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/s67qnqeg2bzdlub2uqbu.jpg)](https://github.com/jedib0t/go-pretty)  

[go-pretty: Pretty Print Tables, Lists and Text on the Terminal](https://github.com/jedib0t/go-pretty) — Utilities to prettify console output of tables, lists, progress-bars, text, etc. with a heavy emphasis on customization. 

Naveen Mahalingam   

[gofumpt: A Stricter `gofmt`](https://github.com/mvdan/gofumpt) — You like rules? `gofmt` not strict enough? `gofumpt` has even [stricter rules](https://github.com/mvdan/gofumpt#added-rules) to keep your codebase clean and behaving. 

Daniel Martí   

[Connect to Your Cloud Resources with Tailscale](https://tailscale.com/?utm_source=golang&utm_medium=email&utm_campaign=2023-2-17&utm_content=brand) — Spend more time coding and less time troubleshooting with Tailscale. Now you can connect directly to cloud resources, containers, or VMs like they’re on your local network. 

Tailscale sponsor   

[Go-Redis Now an _Official_ Redis Client](https://redis.com/blog/go-redis-official-redis-client/) — A couple of weeks ago we mentioned [Go-Redis v9](https://uptrace.dev/blog/go-redis-v9.html) and how it had moved under the official Redis organization – now we get the full story. 

Igor Malinovskyi   

- [Noti 3.7](https://github.com/variadico/noti)
 ↳ Monitor a process and trigger a notification.
- [ZincSearch 0.4](https://github.com/zinclabs/zincsearch)
 ↳ Go-powered Elasticsearch alternative.
- [Imagor 1.4](https://github.com/cshum/imagor)
 ↳ libvips-powered image processing server and Go library.
- [q 0.9](https://github.com/natesales/q)
 ↳ Command line DNS client with support for UDP, TCP, DoT, DoH, DoQ and ODoH.
- [TinyGo 0.27](https://github.com/tinygo-org/tinygo)
 ↳ The Go compiler for small places.    

Jobs  

[Site Reliability Engineer](https://jobs.ashbyhq.com/stickermule/2482befb-4aa7-4372-98d7-042aaf774315?utm_source=Cooperpress) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers. 
Sticker Mule   

[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=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired     

🎈 Up, up, and away. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mvsz6mpovcgw5zvqvtb2.jpg)](https://github.com/hybridgroup/tinyglobo)  

[TinyGlobo: The TinyGo Powered Long Distance Balloon](https://github.com/hybridgroup/tinyglobo) — It seems you don’t need to be a nation state agency to get in on the UFO action nowadays – you could just be a Go developer! Featuring a RP2040 programmed with [TinyGo](https://tinygo.org/), this balloon sent back data using LoRaWAN long-range radio. [▶️ Here’s a video of the fun.](https://www.youtube.com/watch?v=yiX-U753VNw) 

Ron Evans         

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
