GNU Emacs, use-package, and key binding for mode specific keymaps

Let's get optimizing

#​475 — September 12, 2023 Unsub  |  Web Version Go Weekly Profile-Guided Optimization (PGO) in Go 1.21 — PGO has been a popular topic for blog posts recently, but here’s an as-close-to-official-as-it-gets example of using it to...

Setting up a matrix for GitHub Actions with Go's `go.mod` and specific versions

When you're building a library or set of tooling in Go, you may want to test against different versions of Go to give confidence in the project for both you and your users. I set about doing this today for oapi-codegen, and found that I wanted to take the following configuration:...

The AWK book's 60-line version of Make

A discussion of the minimal version of Make included in 'The AWK Programming Language', as well as a Python port of the AWK program.

Introduction to CORS for Go programmers

From its inception, the Web has been a game of whackamole between people finding security holes and exploits, and other people plugging these holes and adding defensive security mechanisms. One of the busiest arenas in this struggle is the interaction between code running on one...

Scaling gopls for the growing Go ecosystem

As the Go ecosystem gets bigger, gopls must get smaller

Slices Package: Contains, Delete, and Equal

Series Here are all the posts in this series about the slices package. Binary Search Clip, Clone, and Compact Compare Contains, Delete, and Equal Introduction In the last post of this series, I discussed the Compare API from the slices package. In this post, I will share how th...

Profile-guided optimization in Go 1.21

Introduction to profile-guided optimization, generally available in Go 1.21.

'Cgo performance is good actually'

#​474 — September 5, 2023 Unsub  |  Web Version Go Weekly Perfectly Reproducible, Verified Go Toolchains — Go 1.21 contains some significant features, but truly reproducible builds is a big deal and Russ goes (deep) into how it wor...

Configuring options in Go

Suppose, you have a function that takes an option struct and a message as input. Then it stylizes the message according to the option fields and prints it. What’s the most sensible API you can offer for users to configure your function? Observe: // app/src package src // O...