Introduction In episode 10, Bill dove into the technical implementation of his genesis record and defined a custom Go type representing the record. While doing so, he provided an in-depth look at the reasoning behind the fields he included.. After declaring this type, Bill wrote...
Distinguishing between specific error values and types is easy in Go,
thanks to the (relatively) new errors.Is and errors.As functions. Let’s
talk about what they do, when and how to use them, and how to know which
one is appropriate.
Another month, another release!
In fact, the last release of the year.
This one in particular marks the 6 years anniversary of GoReleaser, and is
packed with new features and improvements.
GoReleaser Santa
Let’s see what’s new:
Highlights
GoReleaser P...
Introduction I made it my mission in 2022 to learn everything I could about blockchain and as the year ends, I feel like I accomplished my goal. Love it, hate it, or don’t want to know nothing about it, I think it’s important to push your opinions aside and understand how thi...
As mentioned in Using Renovate to manage updates to golangci-lint versions, Renovate is great for managing your dependency updates.
By using the custom regex manager, we can craft the following Renovate configuration:
{
"$schema": "https://docs.renovatebot.com/renova...
Introduction In episode 8, Bill wanted to build a blockchain in Go and began to lay the groundwork for the project. Go is a good choice because its standard library has the necessary network and cryptographical functionality required to build a blockchain. Unlike the previous seg...
Not long ago, when I was building melt, I learned something
interesting: if you restore a private key from its seed, and marshal it back to
the OpenSSH Private Key format, you’ll always get a different block in the
middle.
Why?
That lead to an investigation of how the priva...