Common Anti-Patterns in Go Web Applications

At one point in my career, I was no longer excited about the software I was building. My favorite part of the job were low-level details and complex algorithms. After switching to user-facing applications, they were mostly gone. It seemed programming was about moving data from on...

The Ultimate Channel Abstraction

Author(s): Changkun Ou Permalink: https://golang.design/research/ultimate-channel Recently, I have been rethinking the programming patterns regarding graphics applications, and already wrote a 3D graphics package in Go, called polyred. While I was designing the rendering pipelin...

Anonymous ("transparent") structures are a good thing in programming languages

Learning that you can use unions in C for grouping things into namespaces

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub Actions. Today’s post has the same idea, but using Podman instead of Docker. The main advantage of Podman is that you can run in rootless mode (e.g. inside a container) and that...

How Go maps store their values (and keys)

Incrementally measuring my internet speed with Prometheus

I live in Brazil, and, if you’re not familiar, internet usually sucks here. I’m one of the lucky few that can afford a good internet, aka 1gbps. But, I’m not used to trust telecom companies, so I measure my internet speed every 30m and store the results in a tim...

Data Science in Go: How Much To Tip

The Question When you work on data science problems, you always start with a question you’re trying to answer. This question will affect the data you pick, your exploration process, and how you interpret the results. The question for this article is: How much (in percentage...

Why it matters that map values are unaddressable in Go

Sri Lanka Golang meetup

A hands on talk on how to create and setup a project with GoReleaser.