What is the Tao of Go, and how can we work with it, like a surfer going with the waves instead of struggling against them? By being kind, simple, humble, and not striving; here’s how.
Premise A few months ago I worked with a company which provided fully functional backend for online multiplayer games. As part of their product portfolio, they provided their customers with a cli utility, called ds-uploader (dedicated server uploader).
Written in Go, this CLI helped the customer:
Process all files and assets in a directory of their choice containing their game server. Synchronize each file to a remote object storage bucket (meaning to upload only files that are new or modified).
Unmasking a Go HTML Parser Bug with Differential Fuzzing
In this write-up, we’ll delve into how, through differential fuzzing, we uncovered a bug in Go’s exp/net HTML’s tokenizer. We’ll show potential XSS implications of this flaw. Additionally, we’ll outline how Google assessed this finding within their VRP program and guide how to engage and employ fuzzing to evaluate your software.
Introduction Reminisce with me the discussion boards of 2005. Open to all, searchable from every corner, with no account needed to peek in.
Choosing good test cases for our Go programs can be a bit hit-and-miss. What if we could automate that process? Let’s talk about randomisation, property-based testing, and Go’s built-in fuzz testing feature.
How to troubleshoot memory leaks in Go with Grafana Pyroscope | Grafana Labs
Explore common causes of memory leaks in Go and learn to use Grafana Pyroscope, an open source continuous profiling solution, to find and fix these leaks.
Go is often praised for its fast build times. While they are pretty quick, they are slow enough that I spend a lot of time waiting for them, enough that it prompted me to go down the rabbit hole of thoroughly analyzing them. This post covers all aspects of what makes Go builds fast or slow.
Throughout this blog, we will use Istio as an example of real-world codebase.
For reference on its size:
A Deep Look Into Golang Profile-Guided Optimization (PGO)
Intro Profile-Guided Optimization (PGO) is an optimization method which improves final compiled binary by using profile data hints and compiling the code based on those profiles.
There are several optimization mechanisms that compilers usually get into account when compiling your code to binary. Like dead code elimination, Register allocation, Constant folding or function inlining; you may split your code into smaller and smaller functions and different level of abstractions to ease up future changes and modifications, but from compiler point of view multiple calls to different functions may not be very optimize and sometimes compiler decides to inline your functions!
Everything You Need To Know About Pointers In Golang
► Join my Discord community for free education 👉 https://discord.com/invite/bDy8t4b3Rz► Become a Patreon for exclusive tutorials 👉 https://www.patreon.com/...
GopherCon 2018: Kat Zien - How Do You Structure Your Go Apps
How should I structure my Go code?” is probably one of the most commonly asked questions, by new and experienced programmers alike. There is almost always mo...
Go Maps Explained: How Key-Value Pairs Are Actually Stored
Map is a built-in type that acts as a key-value storage. Unlike arrays where you’re stuck with keys as increasing indices like 0, 1, 2, and so on, with maps, the key can be any comparable type.