#447 — February 10, 2023 |
|
The Go Weekly Newsletter |
An Introduction to Go's Profile-Guided Optimization — What if the Go compiler could improve how it compiles software based upon real-world profiling? Profile-Guided Optimization (PGO) feeds runtime profiles to the compiler to optimize the binary based on usage. Go 1.20 includes initial support for this, so try this with your apps and (hopefully) see some perf gains. Michael Pratt |
Transparent Telemetry for Open Source Projects — It's an emotive topic, but Russ puts forth a concept of ‘transparent telemetry’, a privacy-sensitive approach to gathering usage data in the Go toolchain to help Go library devs, the core team, and others. There’s a lot to unpack and there's a a GitHub discussion where you can have your own say (as things stand it has 144 👍 and 449 👎…) Russ Cox |
Russ also has a use cases post which might help win you over or at least realize there are things that surveys alone cannot capture. He makes a compelling case. |
The Fast Way for Developers to Build Mobile Apps — Build native iOS and Android apps with no mobile expertise—all you need is JS and SQL. Retool Mobile is the fast way for developers to build business apps for teams on the go, at a warehouse, or in the field. Teams of up to 5 can build for free. Retool sponsor |
Building Conc: Better Structured Concurrency for Go — A month ago we featured Conc, a new set of abstractions for working with concurrency in Go, and now its author gives the full backstory and explains where it fits in. Camden Cheek |
Slidedeck: Five Steps to Make Your Go Code Faster and More Efficient — From FOSDEM 2023, the author of Efficient Go walks through the steps you can start using in your code today. It’s much easier than you might expect. Bonus: New acronyms abound here. Bartłomiej Płotka |
IN BRIEF:
|
Fast and Dynamic Encoding of Protocol Buffers — Protocol Buffers (a.k.a. protobuf) provide one common language-neutral way to serialize data structures. This post looks at the fastest way to create them dynamically in Go without proto files. Vincent Bernat |
Working at the Bit Level in Go — A lot of developers will never need to work at the bit level, but this is very useful stuff to at least know about. Daniel Lemire |
Preslav Rachev |
Top Trending Content: Terraforming Kubernetes (Free 75‑Minute Course) — Lead by Udemy instructor, Justin Mitchel, this course shows you how to spin up a K8s cluster on Linode using Terraform. Linode sponsor |
▶ The History of Building Webapps, And Is 'htmx' The Way to Go? — htmx is a modern, lightweight JavaScript library for making modern dynamic page features that’s particularly popular with folks outside the JS ecosystem. Go Time Podcast podcast |
Testing Generated HTML with |
🛠 Code & Tools |
Plumber 2.0: A 'Swiss Army Knife' CLI Tool for Messaging Systems — Event streaming and pub/sub systems, more particularly, including Kafka, RabbitMQ, Google Cloud Platform PubSub, MQTT, Kinesis Streams, SQS, SNS, NATS, and more. Streamdal |
Goption: Optional Values for Go — An implementation of a generic optional type that supports common encoders/decoders, SQL, and stdlib string formatting. Jordan Bonecutter |
Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut — The best issue tracking software is one that software developers are actually happy to use. Shortcut (formerly Clubhouse.io) sponsor |
|
|
🔠 Go's not just a language.. |
It's also a typeface! You may or may not recall that back in 2016, the Go team announced the release of the Go fonts, available in both proportional and monospace variants. If you want to give them a Go for yourself, they're located alongside Go's image libraries and you can get them like so: |
git clone https://go.googleso
|
The TTF files are then located at: |