Orso Labs

Default values in JSON with Golang
How to handle JSON fields with a default value different from the Go zero value (example: a bool with default value true), avoiding the inconveniences of pointers.
Handling errors only once and logging them with full context in Golang
Handling error only once means that we log them at the place of handling, not at the place of occurrence. But how do we do this while providing to the structured log the full context of key/value pairs that is available only at the place of occurrence?
Keeping Packer and Terraform images versioned, synchronized and DRY
A cloud agnostic approach to control which version of a Packer image is used in Terraform, allowing independent development by team members and git-based rollbacks.
Building Go code, with and without Go modules, with Concourse
Before the introduction of Go Modules with Go 1.11, building Go code required to follow the peculiar directory structure of GOPATH. We show how to build Go code, wether it already supports go.mod or not, with Concourse.
Temporary override of Concourse pipeline parameters
Sometimes we would like to override some parameters of a Concourse pipeline on a reversible/temporary manner, that is, without committing the changes to a git repository.
Thinking in terms of features vs thinking in terms of use cases
When we forget about the use case and rush to an implementation we miss an opportunity for a better solution.
Bootstrapping Concourse pipelines
How to bootstrap pipelines with Concourse, some custom logic and the Concourse pipeline resource.
Refactoring Clojure (1)
Refactoring some Clojure code that implements an order-1 word-level Markov text generator.
#best practices  #bootstrap  #cicd  #clojure  #conan  #concourse  #dependency tracking  #devops  #error handling  #give back  #go  #go-modules  #golang  #HackerGarten  #idiomatic  #image versioning  #infrastructure as code  #json  #lessons learned  #markov-chain  #open source  #packer  #pipelines  #refactoring  #scaleway  #software engineering  #structured logging  #terraform  #think!  #use case  #workflow