A question I often get from people—both from beginners stepping into the world of programming and seasoned developers alike—is about how they can start contributing to open source software projects. In this post, my aim is to provide practical advice that will guide you to become not only an active participant in the open source community but also a significant contributor to it.
[Read More]Manage certificates on NixOS using ACME and Google Domains
Certificate management has significantly simplified over the past decade, though the tools used, DNS provider selected, and the Certificate Authority (CA) chosen may introduce complexities. In this article, I will guide you through the process of setting up ACME on NixOS for a domain hosted on Google Domains, using both Let’s Encrypt and Google’s own CA (called Google Trust Services).
[Read More]Go adds structured logging to its standard library...but should it?
The Go programming language has recently accepted a proposal to add a structured logging package to its standard library. This long-awaited addition is expected to land in a future version of the language, sparking excitement and debate among developers.
[Read More]Building a CI pipeline for a Go CLI application with Dagger
In my previous post I explained the basic steps of building a CI pipeline for a Go library with Dagger. Let’s move onto the next level: Go CLI applications.
[Read More]Building a CI pipeline for a Go library with Dagger
I’ve been playing with Dagger for months now using it in various projects. In this post, I’ll share my experience with using Dagger to build CI pipelines for Go libraries.
[Read More]The Perfect Development Environment 2022
I’m a huge fan of Developer Experience and I continuously chase The Perfect Development Environment every day. Not just for my sake, but to make the development process as painless as possible for my peers. But after pursuing the dream environment for years, I had to realize it’s a moving target: technology evolves every day and development processes have to evolve as well.
[Read More]HiFiBerry Case V2 alternative assembly
Recently, I bought a HiFiBerry DAC2 HD and a compatible steel case.
Although the assembly guide for the case is quite decent, I made a couple of changes and I thought I’d share my version.
[Read More]Decoding custom formats with Viper
A frequently requested feature for Viper is adding more value formats and decoders. For example, parsing character (dot, comma, semicolon, etc) separated strings into slices. What most people don’t know is that Viper can already be extended with custom decoders without adding any more code to the core.
[Read More]Please, build!
Make and I were good friends for years, building software together, and while I value our friendship a lot, it’s time we move on.
[Read More]Functional options on steroids
Functional options is a paradigm in Go for clean and extensible APIs popularized by Dave Cheney and Rob Pike. This post is about the practices that appeared around the pattern since it was first introduced.
[Read More]