https://www.bytesizego.com/blog/learning-golang-2024
The way I see it, there are four main ways people like to learn:
• Books/Blogs
• Video Courses/Conference Talks
• Building (or what should I build?)
• Listen
Bytesizego
Learning Go in 2024; From Beginner to Senior
We all learn differently and at different paces. Finding content that is right for us is challenging. Below is my attempt to curate all the great content I have come across over the years into one place to hopefully help folks advance their Golang journey…
https://failsafe-go.dev/
Failsafe-go is a library for building fault tolerant Go applications. It works by wrapping executable logic with one or more resilience policies, which can be combined and composed as needed. Policies include:
• Failure handling: Retry, Fallback
• Load limiting: Circuit Breaker, Bulkhead, Rate Limiter, Cache
• Time limiting: Timeout, Hedge
Failsafe-go
Fault tolerance and resilience patterns for Go
Failsafe-go website
gohack
can be useful in some cases where a quick check is all you need. Since gohack obtains the dependency on its own, it makes it a bit faster to use than cloning manually. That said, I'd be concerned about committing the replace line accidentally, which is why I think the workspace approach is safer (and also more explicit)
https://eli.thegreenplace.net/2024/locally-patching-dependencies-in-go/
My usecase was ethical hacking, I needed to send 500 million of non RFC compliant HTTP/1.1 requests to 2.5 million hosts in a short period of time - ideally in a couple of hours.
https://www.moczadlo.com/2024/how-i-sent-500-million-http-requests-in-under-24h
Moczadlo
I sent 500 million HTTP requests to 2.5 million hosts
How I sent 500 million HTTP requests to 2.5 million hosts in a couple of hours. Deep dive into HTTP/1.1 and Go.
In 2023, Go 1.21 introduced profile-guided optimization, or PGO. With PGO, you can provide the Go compiler a profile of your application at runtime, which the Go compiler then uses to make smarter decisions about how to optimize your code on the next build
https://cloud.google.com/blog/products/application-development/using-profile-guided-optimization-for-your-go-apps
Google Cloud Blog
Using profile-guided optimization (PGO) for your Go apps | Google Cloud Blog
Learn how profile-guided optimization, or PGO, enables the Go compiler to use a profile of your application to optimize your next build.
Supercharge terminal logs with
web browser UI and low-code
Save 90% of time searching and browsing logs
https://logdy.dev
logdy.dev
Logdy - Web based real-time log viewer. Stream any content to a web UI. $ tail -f file.log | logdy
It's like jq, tail, less, grep and awk merged together and available in a clean UI. Self-hosted, single binary.
Recently, I’ve implemented a Unicode tokenizer in in Go and in C#, and my career has been ~equally divided between those languages. Here are some tips moving between them
https://clipperhouse.com/go-csharp/
GitHub
GitHub - clipperhouse/uax29: A tokenizer based on Unicode text segmentation (UAX #29), for Go. Split words, sentences and graphemes.
A tokenizer based on Unicode text segmentation (UAX #29), for Go. Split words, sentences and graphemes. - clipperhouse/uax29
If you use Timer.Reset() in Go 1.22 or earlier, you may be doing it wrong. Even the book 100 Go Mistakes (which is usually right about Go nuances) got it wrong
https://antonz.org/timer-reset/
antonz.org
Resetting timers in Go
Chances are you are doing it wrong.
It's a milestone day for Gophers and WebAssembly: the wasi-preview-2 feature branch of TinyGo has landed in TinyGo's dev branch, bringing WASI P2 support to TinyGo
https://wasmcloud.com/blog/compile-go-directly-to-webassembly-components-with-tinygo-and-wasi-p2
Wasmcloud
Compile Go directly to WebAssembly components with TinyGo and WASI P2 | wasmCloud
Write idiomatic Go and compile to a Wasm component
A useful error handling pattern for Go REST, gRPC, and other services
https://boldlygo.tech/posts/2024-01-08-error-handling/
Boldly Go
Error handling in Go web apps shouldn't be so awkward
A useful error handling pattern for Go REST, gRPC, and other services.
DefaultClient is of type *http.Client and http.Client is the struct that has all the code to perform HTTP calls. DefaultClient is a HTTP client with all the underlying settings pointing to the default values
https://vishnubharathi.codes/blog/know-when-to-break-up-with-go-http-defaultclient/
Vishnu Bharathi
Know when to break up with Go's http.DefaultClient
These might be the first set of snippets that you see when trying to use Go’s HTTP client. (taken from the “overview” section of the standard library docs) 1234resp, err := http.Get("http://examp
In today's digital age, images play a crucial role in various applications and services. However, managing and extracting metadata from these images can be a challenging task, especially when dealing with large volumes of data. In this article, we'll explore how to leverage AWS Lambda, Go, and PostgreSQL to create an automated system for extracting EXIF data from images and storing it in a database
https://docs.rapidapp.io/blog/automating-image-metadata-extraction-with-aws-lambda-go-and-postgresql
docs.rapidapp.io
Automating Image Metadata Extraction with AWS Lambda, Go, and PostgreSQL | Rapidapp Documentation & Blog
Learn how to automate image metadata extraction using AWS Lambda, Go, and PostgreSQL
The context API is a critical foundation for modern Go development. This is especially the case with APIs that use concurrency under the hood or perform distributed operations. Given this, I would like to do a deep dive on several topics around the context API. I expect this post to be the first of several. In this one, I cover contexts and program scopes
https://matttproud.com/blog/posts/contextualizing-context-scopes.html
Identity providers (IAMs) allow users to log in to related, yet independent, platforms using a single set of credentials
https://permify.co/post/implement-oauth-2-golang-app/
OpenHue Go is a library written in Golang for interacting with the Philips Hue smart lighting systems
https://github.com/openhue/openhue-go
GitHub
GitHub - openhue/openhue-go: OpenHue Go is a library written in Golang for interacting with the Philips Hue smart lighting systems
OpenHue Go is a library written in Golang for interacting with the Philips Hue smart lighting systems - openhue/openhue-go
Joker is a small interpreted dialect of Clojure written in Go. It is also a Clojure(Script) linter
https://joker-lang.org