Quick tip: Implementing an in-memory cache in Go

In almost all web applications that I build, I end up needing to persist some data – either for a short period of time (such as caching the result of an expensive database query), or for the lifetime of the running application until it is restarted. When your application...

Alternate Futures for “Web Components”

It seems like Web Components are always just on the cusp of finally catching on. They’re like the year of Linux on the desktop for frontend nerds. I keep reading the latest articles about Web Components as they bubble up on my social media feeds, just hoping that there is somet...

In Go, constant variables are not used for optimization

The best of the Go newsletter in 2023

#​489 — December 19, 2023 Unsub  |  Web Version Go Weekly The Best of the Go Newsletter in 2023 Welcome to the final issue of 2023! We'll be back on Tuesday, January 9, but before that, we want to take a look back at the most popular...

Partially emulating #ifdef in Go with build tags and consts

Finding unreachable functions with deadcode

deadcode is a new command to help identify functions that cannot be called.

Python and PHP are Go's newest friends

#​488 — December 12, 2023 Unsub  |  Web Version 🎄 We're prepping our annual roundup issue for next week, just before we take our Christmas break, so keep an eye out for it next Tuesday :-)__Your editor, Peter Cooper Go Weekly...

Sign in with GitHub in Go

It's common to see web applications that let you log in through third-party services. "Sign in with Google" is particularly popular; on developer-oriented websites, "Sign in with GitHub" also pops up quite a bit. In this post, I want to briefly explore OAuth -...

Go Changes

The way Go changes, and how to improve it with telemetry.

Not a real developer

In the second part of my tell-all memoir, we find out why I was constitutionally unsuited to employment in a structured environment, or indeed any environment.