Convolutions, Polynomials and Flipped Kernels

This is a post about multiplying polynomials, convolution sums and the connection between them. Multiplying polynomials Suppose we want to multiply one polynomial by another: \[(3x^3+x^2+2x+1)\cdot(2x^2+6)\] This is basic middle-school math - we start by cross-multiplying: \[6x^...

Taking more control over your Cobra CLI documentation

Prompted by some discussions I've had recently around documenting Cobra CLIs, I realised that in November 2023 I wrote a library, cobra-doc-template and somehow I ended up not writing a blog post about it (how?? 😅) - so here it is! Inbuilt to Cobra is functionality to generate...

Go Cryptography Security Audit

Go's cryptography libraries underwent an audit by Trail of Bits.

JSON - The Fine Print: Part 3 - Zero vs Missing Values

Introduction In part 1 we took a higher level view on serialization in general and JSON in specific. In part 2 we looked at emitting JSON. In part 3, we’ll look at an issue you might encounter when consuming JSON, Zero vs NULL field values. To clarify the definition of NULL...

Improving the experience of browsing Renovate debug logs

Renovate's debug logs I spend a lot of my time working through Renovate's debug logs. This may be through Running Renovate in a number of places, such as at work (Elastic), or during my work on dependency-management-data, of which the best data can be collected through renovate-g...

For your eyes only

Durable software not only handles errors, it presents them to users in a helpful and meaningful way. Let’s put the finishing touches to our line-counting program by completing the user interface.

Watermill: from a hobby project to 8k stars on GitHub

Quick takeaways Solve real problems first - successful open source projects start by addressing actual needs, not by looking for problems to fit a solution Keep breaking changes minimal - Watermill stayed on v1 for 6 years with no breaking changes in the core library, building t...

Using awk to check your script's configuration file

Ian Lance Taylor takes a break from Go

#​554 — May 14, 2025 Unsub  |  Web Version 🖊️ I'm going to Google I/O next week, so Go Weekly will be taking a break and will return on May 28. If you happen to be at I/O too, say hi if you see an Englishman rambling on about newsletters. I'm intr...

Scheduling In Go : Part III - Concurrency

Although originally written in 2018, the following concepts remain essential for developers working with concurrency. This blogpost focuses on concurrency, distinguishing it from parallelism by defining it as “out of order” execution. It emphasizes the importance of u...