× Want to read this newsletter every week?! × 👋  Join FAUN
 
 
🌐 View in your browser.   |  ✍️ Publish on FAUN   |  🦄 Become a sponsor
 
GoLang best tutorials, news and libraries from last week!
GoPa
 
Golang Weekly Newsletter, Gopa. Curated Golang news, tutorials, tools and more!
 
 
⭐ Patrons
 
goteleport.com goteleport.com
 
Implementing Zero Trust Security for AWS Infrastructure with Teleport
 
 
Download this resource to learn how Teleport’s tight integration with AWS simplifies the implementation of Zero Trust in the cloud.

This tech paper also outlines how Teleport’s access platform can become the centralized window and the single entry point for consuming AWS internal and external services.

Learn more.
 
 

👉 Spread the word and help developers find you by promoting your projects on FAUN. Get in touch for more information.

 
🔗 Stories, Tutorials & Articles
 
josephwoodward.co.uk josephwoodward.co.uk
 
Providing context to cancellations in Go 1.20 with the new context WithCause API
 
 
A blog post about a new feature in the Go programming language, specifically in the context package.

Prior to version 1.20, Go did not have good options for understanding why a context was cancelled. It was limited to only two options context.DeadlineExceeded or context.Canceled.

But with Go 1.20, a new WithCause API has been added to the context package, which allows developers to provide custom error types when cancelling the context.

This will allow developers to provide more context as to why the context was cancelled, such as whether the operation is safe to retry or not. The new WithCancelCause, WithDeadlineCause, and WithTimeoutCause APIs are now available in Go 1.20.
 
 
f4t.dev f4t.dev
 
Faster Go code by being mindful of memory   ✅
 
 
The author is discussing a particular puzzle and how it's a good example of how efficient memory management can lead to better performance.

The puzzle is about finding the first consecutive block of 14 bytes in a stream of bytes, where all 14 bytes are different.

The author and a friend are solving this puzzle using the Go programming language and are trying to find a balance between simplicity and performance in their solutions.
 
 
www.dolthub.com www.dolthub.com
 
Some Useful Patterns for Go's os/exec
 
 
The tutorial explains how to use the os/exec package in Go to spawn and interact with background processes, with specific focus on the Dolt project, which is an SQL database with Git-like version control.

The author provides examples and explanations of how to use the os/exec package, including basic usage, running a process and waiting for completion, sharing standard output, and capturing output.

It points out that Go's os/exec package has robust facilities for error handling and concurrency and provides a good replacement for scripts that rely on shell commands.
 
 
medium.com medium.com
 
Apache AVRO and Go: encoding and decoding
 
 
A tutorial that describes how to use the Apache Avro serialization framework in the Go programming language to encode and decode data. Avro is used to compress data payloads in the Apache Kafka ecosystem and is typically used when you need to serialize your data into bytes, and then decode those bytes into data structures.

The article explains that Avro requires a schema to convert the data into bytes and the same schema to convert bytes back into an existing data structure. This allows for more efficient compression of data because metadata (such as the names and types of variables) can be stored in the schema rather than with the data itself.

The author provides examples of how to use the Avro serialization framework in Go and how it compares to the JSON format.
 
 
tomthorogood.net tomthorogood.net
 
passit: a password generation toolkit for Go
 
 
This blog post describes a password generation toolkit for Go programming language called 'passit'.

It includes two CLI commands, "passphrase" and "twoproblems", that can be used to generate random passphrases or passwords based on regular expression templates respectively.

The passphrase command takes command-line arguments such as wordlist, number of words, and separator to use. The twoproblems command also takes regular expression template as an argument.

The package also provides a number of generators that can be used programmatically to generate passwords. These generators return output from a fixed set such as digits, lowercase or uppercase alphabets, etc.
 
 
 
📺 Quick Hits
 
 
The Go team has released go1.20rc2, a release candidate version of Go 1.20.
 
 
ngrok team has announced the GA of ngrok-go, our open-source and idiomatic package for embedding ngrok networking directly into Go apps.
 
 
The Go team has released Go versions 1.19.5 and 1.18.10, minor point releases.
 
 
⭐ Supporters
 
faun.dev faun.dev
 
Post Developers Jobs for Free on FAUN
 
 
FAUN's Job Board offers an exceptional platform to connect with skilled developers, DevOps professionals, and software engineers who are eager to contribute to the success of your organization.

Post your job openings on FAUN's Job Board today and watch your talent pool grow.

Get started now .
 
 
faun.dev faun.dev
 
Join Humans Behind Code
 
 
👉 If you're a Developer or a maintainer of a widely adopted Open Source project and you think it's worth talking about it and your experiences in building it, join Humans Behind Code and get interviewed and published on faun.dev!
 
 
👉 Spread the word and help developers find you by promoting your projects on FAUN. Get in touch for more information.
 
🛍️ Swag, Deals, And Offers
 
 
Kubernetes Mug
 
 
"My Code, My Rules" Mousepad
 

❤️ Get a 20% exclusive discount on all our swag (with free shipping) when you use the code "THANKSFAUN".

 
💬 Discussions, Q&A & Forums
 
www.reddit.com www.reddit.com
 
How Golang is used inside Google?
 
 
Does Google have some internal Golang libraries commonly used in internal Golang projects?
What are closest open source alternatives for those libraries?
 
 
 
🎦 Videos, Talks & Presentations
 
www.youtube.com www.youtube.com
 
Buffered VS UnBuffered Channels In Golang
 
 
The main difference between buffered and unbuffered channels in Golang.
 
 
 
📚 Book picks
 
www.amazon.com www.amazon.com
 
A quick Cookbook on Network automation and Go
 
 
Learn to automate network operations and applications using the Go programming language.

This book is a guide to using Go language for network automation tasks. It covers general overviews of Go and provides hands-on examples to help readers become proficient in using Go for network automation.

The book begins by discussing the common areas and challenges of network automation and the language features that can be used in these areas. It also covers common software tools and packages for network automation.
 
 
 
⚙️ Tools, Apps & Software
 
github.com github.com
 
wtetsu/gaze
 
 
Executes commands for you
 
 
github.com github.com
 
kataras/neffos
 
 
A modern, fast and scalable websocket framework with elegant API written in Go
 
 
github.com github.com
 
slashbaseide/slashbase
 
 
Collaborative in-browser database IDE for your team. Supports PostgreSQL & MongoDB.
 
 
github.com github.com
 
ktr0731/evans
 
 
Evans: more expressive universal gRPC client
 
 
github.com github.com
 
traefik/yaegi
 
 
Yaegi is Another Elegant Go Interpreter
 
 
github.com github.com
 
charmbracelet/gum
 
 
A tool for glamorous shell scripts
 
 
github.com github.com
 
tomarrell/wrapcheck
 
 
A Go linter to check that errors from external packages are wrapped
 
 

👉 Spread the word and help developers find and follow your Open Source project by promoting it on FAUN. Get in touch for more information.

 
😂 Meme of the week
 
 
source
 
 
❤️ Thanks for reading
 
 
👉 Never miss an issue
Join FAUN Developer Community and subscribe to our newsletter here.

👋 Keep in touch and follow us on social media:
- 💼LinkedIn
- 📝Medium
- 🐦Twitter
- 👥Facebook
- 📰Reddit
- 📸Instagram

👌 Was this newsletter helpful?
We'd really appreciate it if you could share it with your friends! You can also donate to help us keep this newsletter going.

ℹ️ Have a question or feedback?
Feel free to reach out to us at community@faun.dev. We'd love to hear from you!

🤩 Want to sponsor our newsletter?
Reach out to us at sponsors@faun.dev and we'll get back to you as soon as possible.