Failing to draw lines between 'script' and 'program'
In my post Managing your Go tool versions with go.mod and a tools.go I talked about how to track tool dependencies in a tools.go to more easily run your tools without a make setup step or similar. However in the performance section I noted that there can be a slight performance h...
If you're using golang-migrate to perform your database migrations, you may wonder how to check what the current state of your migrations is. I recently found myself doing the same, but finding an absence of anything explicitly documenting this, so thought I'd write it as a form...
Principles I've found useful for designing good Python library APIs, including structure, naming, error handling, and type annotations.
Let’s continue our exploration of fuzz testing in Go with a look at how to write a fuzz target for a (nearly) realistic function. This time we’ll try to detect a common kind of bug involving a confusion between runes and bytes.
Let’s continue our exploration of fuzz testing in Go with a look at how to write a fuzz target for a (nearly) realistic function. This time we’ll try to detect a common kind of bug involving a confusion between runes and bytes.
Envoy is a configurable proxy that serves a prominent role in modern cloud-native projects; for example, it's used in many k8s deployments to provide inter-service communication (through Istio). In this post, I'd like to describe Envoy's extension mechanism as a case study of usi...
For a couple of the Ruby on Rails applications I work on at work, we use Sorbet for type checking. Late last year we were integrating a JSON Schema based Lambda with the Rails application, so needed to create models to interact with it. I started hacking on a command-line tool to...