70 Posts

golang

Return to top

Announcing GoReleaser v2.1

Winter is here (in the South America)! Let’s see whats new! Highlights new: before …

A pragmatic guide to Go module updates

I thought I would share some quick bits about how to do go.mod version bumps.

Announcing GoReleaser v2

The new major version of GoReleaser is here!

Announcing GoReleaser v1.26 - The last v1, probably

Happy mother’s day! This will be probably the last minor v1 release of GoReleaser. V2 …

GoTime #311 - Ship software, not code

I was live with Natalie to discuss how GOOS and GOARCH spark joy. Go Time 311: Ship software, …

Announcing GoReleaser v1.25 - Easter Edition

Happy Easter! The second release of 2024 is here! It’s the result of 2 months of work by …

Announcing GoReleaser v1.24 - the first of 2024

Happy new year! The first release of 2024 is here! Highlights security: goreleaser would log …

Announcing GoReleaser v1.23 — the last of 2023

The yearly Christmas edition, and the last release of 2023. This release contains mostly small …

Announcing GoReleaser v1.22 — steady improvement

Another boring release, with mostly bug fixes and quality-of-life improvements. Highlights …

Integrating Alarm Systems with Homekit

This post documents my journey implementing a Homekit integration for my Intelbras AMT8000 …

Announcing GoReleaser v1.21 — mostly bug fixes

A boring release, mostly bug fixes. Boring is good. Highlights You can now sort tags by semver …

Announcing GoReleaser v1.20 — a quality-of-life release

A little over 100 commits in small-ish quality-of-life improvements.

Wishlist Endpoint Discovery

Learn how to use the recently-added Tailscale, DNS, and Zeroconf endpoint discovery in …

Announcing GoReleaser v1.19 — the big release

Almost 200 commits adding Nix, Winget, and much more…

Writing Bubble Tea Tests

Learn how to use x/exp/teatest to write tests for your Bubble Tea apps.

Announcing GoReleaser v1.18 — the maintainers month release

May is the maintainers month, so I would first like to thank all the maintainers out there for …

Announcing GoReleaser v1.17 — the late Easter release

The Easter release is here!

Announcing GoReleaser v1.16 — the late February release

The February release got a little late… better later than even later, I guess! 😄 …

Announcing GoReleaser v1.15 — the first of 2023

Keeping our pace of 1 minor a month, this is the January 2023 release. GoReleaser’s Ko …

Announcing GoReleaser v1.14 — the Christmas release

Another month, another release! In fact, the last release of the year. This one in particular …

Announcing GoReleaser v1.13 — the November release

Another month, another release! Like the previous 2 releases, this is a beefy one: over 100 …

GoReleaser v1 — one year later

We launched GoReleaser v1 exactly 1 year ago today! onefetch First, I wanted to wholeheartedly …

GoReleaser Split and Merge

Since v1.12.0-pro, GoReleaser can split and merge its release process. This means that you can …

Announcing GoReleaser v1.12 — the more-than-a-hundred commits release

The previous release had ~100 commits, and this one has 149 since previous feature release! …

Creating a tag and releasing from a GitHub Action, with GoReleaser

Most people run GoReleaser by creating a tag locally, pushing it, and letting their CI takes …

Announcing GoReleaser v1.11 — the hundred commits release

This release took a while, for all the good reasons: a ton of new features and bug fixes for …

Enabling Nightly releases using GoReleaser Pro

GoReleaser Pro v1.11+ added support to keeping a nightly release. That means that, whenever you …

Shipping completions for Go CLIs using GoReleaser and Cobra

Everyone likes command line completions, so much that some even install extra tools just to …

Announcing GoReleaser v1.10 — the summer release

Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new …

Announcing GoReleaser v1.9 — the 10k stars release

This release contains several minor improvements and a couple of new features! Let’s have …

Using SSH Certificates with Go’s SSH Client

A couple of weeks ago I was working on adding SSH Certificate Authentication support to Wish, …

Announcing GoReleaser v1.8 — the GOAMD64 release

This release’s biggest feature is the GOAMD64 support. Highlights support GOAMD64(#3016) …

Announcing GoReleaser v1.7 — The Go 1.18 release

The title would have been more creative if it was GoReleaser 1.18 as well… maybe… …

Announcing GoReleaser v1.6 — the boring release

GoReleaser 1.6 is out! Another “boring” release with some miscellaneous …

Announcing GoReleaser v1.5 — the misc improvements release

GoReleaser 1.5 is out, with a handful of miscellaneous improvements. Highlights Better manpages …

Announcing GoReleaser v1.4 — the AUR release

GoReleaser can now create and publish Arch Linux PKGBUILD files to Arch User Repositories! …

Announcing GoReleaser 1.3 — the first of 2022

We just launched GoReleaser v1.3, the first release of 2022! Highlights Announce to any HTTP …

Announcing GoReleaser v1.2 — Santa/5 year anniversary edition

GoReleaser v1.2 is out — likely be the last feature release of 2021. It also marks the first 5 …

Changelog grouping with GoReleaser v1.1

In the v1.1 release, GoReleaser introduced a new feature called “changelog groups”. …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

Using the new prebuilt builder on GoReleaser

You can now import pre-built binaries into GoReleaser! This feature was made with mainly two …

Signing releases with cosign and GoReleaser

In GoReleaser v0.176.0 (both OSS and Pro), we released the ability to sign Docker images - with …

Supply chain integrity with GoReleaser using Go mod proxy

Since the infamous SolarWinds attack, supply chain integrity is something a lot of people are …

Sri Lanka Golang meetup

A hands on talk on how to create and setup a project with GoReleaser.

Using GoReleaser includes feature

GoReleaser Pro was released about a month ago, and with it, the ability to include GoReleaser …

Announcing GoReleaser Pro

After more than 4 years working on GoReleaser, I’m launching a Pro version! Why? I think …

GoTime #173 - Releasing with (and without) GoReleaser

I was live with Mat, Natalie & Johnny and we talked a bit about releases, with and without …

GoReleaser: 4 years releasing software

Last year, I made a blog post about GoReleaser turning 3 years old. I kind of like it, so this …

Multi-platform Docker images with GoReleaser and GitHub Actions

GoReleaser v0.148.0 is out, and with it, the ability to release multi-platform Docker images, …

Publishing libraries with GoReleaser

What if I told you you can now automate the release of your libraries as well? I think some of …

GoReleaser: 3 years later

GoReleaser’s journey begins in December 21, 2016: the day I made its very first commit. …

Faster Docker builds using go modules

Quick tip to improve the docker build speed using go modules. Normally, I would do something …

GoReleaser Docker support

The next GoReleaser version will have a more flexible Docker configuration format. In this post …

Golang: cache things using interfaces

Caching things can be hard to do and hard to test. In this post I’ll demonstrate a …

Keeping json files formatted

I’m working in a project that uses Chef, so it has a lot of JSON files. I like everything …

GoReleaser: build and push Snapcraft packages from TravisCI

GoReleaser was able to build Snapcraft packages for a long time, but it wasn’t able to …

GopherCon Brasil 2018

A quick review of my second ever GopherCon - the first one as a speaker, and my experience …

GopherCon Brasil

My first ever talk at a GopherCon. I shared my experiences coding GoReleaser, more or less …

GoReleaser: lessons learned so far

I’ve started GoReleaser almost 2 years ago. This is a summary of (some) things I’ve …

GoReleaser: 1k repositories and beyond

When first announced GoReleaser roughly 1 year ago, on January 2017, I never thought it would …

2º Joinville Go Meetup

It was the Go 1.10 Release party - my talk was about what changed in Go 1.10.

Creating debs and rpms with Go

I’ve been working on GoReleaser for more than a year now, and one of the things that was …

1º Changelog Meetup

I showed how to build and release binaries in Go, including cross-compiling, Docker images, …

Writing CLI applications with Golang

Last few months I’ve been using Go to write quite a lot of tools. In this post I intent …

Fast and easy Go binaries delivery

I have some apps written in Go, which I deliver as binaries for each platform using GitHub …

Setting up a Go build with Glide on CircleCI

I’ve lost a considerable amount of time trying to bind those things together, so I …

Parse environment variables to structs in Go

In Go, it’s dead simple to get the value from an environment variable: …

Small Go Apps Containers

Or: how to ship your app in a <20Mb container. Well, as you may know, there is a good amount …

Cross-compiling Go

go build generates a binary for the platform you run it in. So, if I build antibody in a Linux …

I wrote Antigen in Go: Antibody

Learning Go was in my TODO list for a while, and finally I did something about it. This post …

61 Posts

goreleaser

Return to top

Announcing GoReleaser v2.1

Winter is here (in the South America)! Let’s see whats new! Highlights new: before …

Announcing GoReleaser v2

The new major version of GoReleaser is here!

Updating Snapcraft secrets

If you, like me, release your projects to the Snap Store using GoReleaser, you might need to …

Announcing GoReleaser v1.26 - The last v1, probably

Happy mother’s day! This will be probably the last minor v1 release of GoReleaser. V2 …

GoTime #311 - Ship software, not code

I was live with Natalie to discuss how GOOS and GOARCH spark joy. Go Time 311: Ship software, …

Announcing GoReleaser v1.25 - Easter Edition

Happy Easter! The second release of 2024 is here! It’s the result of 2 months of work by …

Announcing GoReleaser v1.24 - the first of 2024

Happy new year! The first release of 2024 is here! Highlights security: goreleaser would log …

Announcing GoReleaser v1.23 — the last of 2023

The yearly Christmas edition, and the last release of 2023. This release contains mostly small …

Announcing GoReleaser v1.22 — steady improvement

Another boring release, with mostly bug fixes and quality-of-life improvements. Highlights …

Announcing GoReleaser v1.21 — mostly bug fixes

A boring release, mostly bug fixes. Boring is good. Highlights You can now sort tags by semver …

Announcing GoReleaser v1.20 — a quality-of-life release

A little over 100 commits in small-ish quality-of-life improvements.

Announcing GoReleaser v1.19 — the big release

Almost 200 commits adding Nix, Winget, and much more…

Announcing GoReleaser v1.18 — the maintainers month release

May is the maintainers month, so I would first like to thank all the maintainers out there for …

Announcing GoReleaser v1.17 — the late Easter release

The Easter release is here!

Announcing GoReleaser v1.16 — the late February release

The February release got a little late… better later than even later, I guess! 😄 …

Announcing GoReleaser v1.15 — the first of 2023

Keeping our pace of 1 minor a month, this is the January 2023 release. GoReleaser’s Ko …

Announcing GoReleaser v1.14 — the Christmas release

Another month, another release! In fact, the last release of the year. This one in particular …

Announcing GoReleaser v1.13 — the November release

Another month, another release! Like the previous 2 releases, this is a beefy one: over 100 …

GoReleaser v1 — one year later

We launched GoReleaser v1 exactly 1 year ago today! onefetch First, I wanted to wholeheartedly …

GoReleaser Split and Merge

Since v1.12.0-pro, GoReleaser can split and merge its release process. This means that you can …

Announcing GoReleaser v1.12 — the more-than-a-hundred commits release

The previous release had ~100 commits, and this one has 149 since previous feature release! …

Creating a tag and releasing from a GitHub Action, with GoReleaser

Most people run GoReleaser by creating a tag locally, pushing it, and letting their CI takes …

Announcing GoReleaser v1.11 — the hundred commits release

This release took a while, for all the good reasons: a ton of new features and bug fixes for …

Enabling Nightly releases using GoReleaser Pro

GoReleaser Pro v1.11+ added support to keeping a nightly release. That means that, whenever you …

Shipping completions for Go CLIs using GoReleaser and Cobra

Everyone likes command line completions, so much that some even install extra tools just to …

Announcing GoReleaser v1.10 — the summer release

Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new …

Announcing GoReleaser v1.9 — the 10k stars release

This release contains several minor improvements and a couple of new features! Let’s have …

Reproducible builds with GoReleaser

GoReleaser can help you, to some extent, to have reproducible builds. Reproducible Builds What …

Announcing GoReleaser v1.8 — the GOAMD64 release

This release’s biggest feature is the GOAMD64 support. Highlights support GOAMD64(#3016) …

Announcing GoReleaser v1.7 — The Go 1.18 release

The title would have been more creative if it was GoReleaser 1.18 as well… maybe… …

Announcing GoReleaser v1.6 — the boring release

GoReleaser 1.6 is out! Another “boring” release with some miscellaneous …

Announcing GoReleaser v1.5 — the misc improvements release

GoReleaser 1.5 is out, with a handful of miscellaneous improvements. Highlights Better manpages …

Announcing GoReleaser v1.4 — the AUR release

GoReleaser can now create and publish Arch Linux PKGBUILD files to Arch User Repositories! …

Announcing GoReleaser 1.3 — the first of 2022

We just launched GoReleaser v1.3, the first release of 2022! Highlights Announce to any HTTP …

Announcing GoReleaser v1.2 — Santa/5 year anniversary edition

GoReleaser v1.2 is out — likely be the last feature release of 2021. It also marks the first 5 …

Changelog grouping with GoReleaser v1.1

In the v1.1 release, GoReleaser introduced a new feature called “changelog groups”. …

Testing Linux packages on GitHub Actions

One issue we had from time to time on GoReleaser was related to its Linux packages. We had a …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

Using the new prebuilt builder on GoReleaser

You can now import pre-built binaries into GoReleaser! This feature was made with mainly two …

Signing releases with cosign and GoReleaser

In GoReleaser v0.176.0 (both OSS and Pro), we released the ability to sign Docker images - with …

Supply chain integrity with GoReleaser using Go mod proxy

Since the infamous SolarWinds attack, supply chain integrity is something a lot of people are …

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub …

Using GoReleaser includes feature

GoReleaser Pro was released about a month ago, and with it, the ability to include GoReleaser …

Announcing GoReleaser Pro

After more than 4 years working on GoReleaser, I’m launching a Pro version! Why? I think …

GoTime #173 - Releasing with (and without) GoReleaser

I was live with Mat, Natalie & Johnny and we talked a bit about releases, with and without …

GoReleaser: 4 years releasing software

Last year, I made a blog post about GoReleaser turning 3 years old. I kind of like it, so this …

Multi-platform Docker images with GoReleaser and GitHub Actions

GoReleaser v0.148.0 is out, and with it, the ability to release multi-platform Docker images, …

Show me your code: how buildkit can help integrating GoReleaser with multi-arch Docker manifests

A discussion with Tibor and Geanluca about Docker buildkit and GoReleaser.

Publishing libraries with GoReleaser

What if I told you you can now automate the release of your libraries as well? I think some of …

GoReleaser: 3 years later

GoReleaser’s journey begins in December 21, 2016: the day I made its very first commit. …

1º Open Source Joinville Meetup

Shared some tips about managing medium-sized OpenSource projects. The slides are in Portuguese.

GoReleaser Docker support

The next GoReleaser version will have a more flexible Docker configuration format. In this post …

GoReleaser: build and push Snapcraft packages from TravisCI

GoReleaser was able to build Snapcraft packages for a long time, but it wasn’t able to …

Hacktoberfest Joinville

I shared some of my experiences coding GoReleaser, this time, more about community and less …

GopherCon Brasil

My first ever talk at a GopherCon. I shared my experiences coding GoReleaser, more or less …

GoReleaser: lessons learned so far

I’ve started GoReleaser almost 2 years ago. This is a summary of (some) things I’ve …

GoReleaser: 1k repositories and beyond

When first announced GoReleaser roughly 1 year ago, on January 2017, I never thought it would …

2º Joinville Go Meetup

It was the Go 1.10 Release party - my talk was about what changed in Go 1.10.

Creating debs and rpms with Go

I’ve been working on GoReleaser for more than a year now, and one of the things that was …

1º Changelog Meetup

I showed how to build and release binaries in Go, including cross-compiling, Docker images, …

Fast and easy Go binaries delivery

I have some apps written in Go, which I deliver as binaries for each platform using GitHub …

37 Posts

goreleaser-pro

Return to top

Announcing GoReleaser v2.1

Winter is here (in the South America)! Let’s see whats new! Highlights new: before …

Announcing GoReleaser v2

The new major version of GoReleaser is here!

Announcing GoReleaser v1.26 - The last v1, probably

Happy mother’s day! This will be probably the last minor v1 release of GoReleaser. V2 …

Announcing GoReleaser v1.25 - Easter Edition

Happy Easter! The second release of 2024 is here! It’s the result of 2 months of work by …

Announcing GoReleaser v1.24 - the first of 2024

Happy new year! The first release of 2024 is here! Highlights security: goreleaser would log …

Announcing GoReleaser v1.23 — the last of 2023

The yearly Christmas edition, and the last release of 2023. This release contains mostly small …

Announcing GoReleaser v1.22 — steady improvement

Another boring release, with mostly bug fixes and quality-of-life improvements. Highlights …

Announcing GoReleaser v1.21 — mostly bug fixes

A boring release, mostly bug fixes. Boring is good. Highlights You can now sort tags by semver …

Announcing GoReleaser v1.20 — a quality-of-life release

A little over 100 commits in small-ish quality-of-life improvements.

Announcing GoReleaser v1.19 — the big release

Almost 200 commits adding Nix, Winget, and much more…

Announcing GoReleaser v1.18 — the maintainers month release

May is the maintainers month, so I would first like to thank all the maintainers out there for …

Announcing GoReleaser v1.17 — the late Easter release

The Easter release is here!

Announcing GoReleaser v1.16 — the late February release

The February release got a little late… better later than even later, I guess! 😄 …

Announcing GoReleaser v1.15 — the first of 2023

Keeping our pace of 1 minor a month, this is the January 2023 release. GoReleaser’s Ko …

Announcing GoReleaser v1.14 — the Christmas release

Another month, another release! In fact, the last release of the year. This one in particular …

Announcing GoReleaser v1.13 — the November release

Another month, another release! Like the previous 2 releases, this is a beefy one: over 100 …

GoReleaser v1 — one year later

We launched GoReleaser v1 exactly 1 year ago today! onefetch First, I wanted to wholeheartedly …

Announcing GoReleaser v1.12 — the more-than-a-hundred commits release

The previous release had ~100 commits, and this one has 149 since previous feature release! …

Announcing GoReleaser v1.11 — the hundred commits release

This release took a while, for all the good reasons: a ton of new features and bug fixes for …

Enabling Nightly releases using GoReleaser Pro

GoReleaser Pro v1.11+ added support to keeping a nightly release. That means that, whenever you …

Announcing GoReleaser v1.10 — the summer release

Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new …

Announcing GoReleaser v1.9 — the 10k stars release

This release contains several minor improvements and a couple of new features! Let’s have …

Reproducible builds with GoReleaser

GoReleaser can help you, to some extent, to have reproducible builds. Reproducible Builds What …

Announcing GoReleaser v1.8 — the GOAMD64 release

This release’s biggest feature is the GOAMD64 support. Highlights support GOAMD64(#3016) …

Announcing GoReleaser v1.7 — The Go 1.18 release

The title would have been more creative if it was GoReleaser 1.18 as well… maybe… …

Announcing GoReleaser v1.6 — the boring release

GoReleaser 1.6 is out! Another “boring” release with some miscellaneous …

Announcing GoReleaser v1.5 — the misc improvements release

GoReleaser 1.5 is out, with a handful of miscellaneous improvements. Highlights Better manpages …

Announcing GoReleaser v1.4 — the AUR release

GoReleaser can now create and publish Arch Linux PKGBUILD files to Arch User Repositories! …

Announcing GoReleaser 1.3 — the first of 2022

We just launched GoReleaser v1.3, the first release of 2022! Highlights Announce to any HTTP …

Announcing GoReleaser v1.2 — Santa/5 year anniversary edition

GoReleaser v1.2 is out — likely be the last feature release of 2021. It also marks the first 5 …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

Using the new prebuilt builder on GoReleaser

You can now import pre-built binaries into GoReleaser! This feature was made with mainly two …

Signing releases with cosign and GoReleaser

In GoReleaser v0.176.0 (both OSS and Pro), we released the ability to sign Docker images - with …

Supply chain integrity with GoReleaser using Go mod proxy

Since the infamous SolarWinds attack, supply chain integrity is something a lot of people are …

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub …

Using GoReleaser includes feature

GoReleaser Pro was released about a month ago, and with it, the ability to include GoReleaser …

Announcing GoReleaser Pro

After more than 4 years working on GoReleaser, I’m launching a Pro version! Why? I think …

28 Posts

announcement

Return to top

Announcing GoReleaser v2.1

Winter is here (in the South America)! Let’s see whats new! Highlights new: before …

Announcing GoReleaser v2

The new major version of GoReleaser is here!

Announcing GoReleaser v1.26 - The last v1, probably

Happy mother’s day! This will be probably the last minor v1 release of GoReleaser. V2 …

Announcing GoReleaser v1.25 - Easter Edition

Happy Easter! The second release of 2024 is here! It’s the result of 2 months of work by …

Announcing GoReleaser v1.24 - the first of 2024

Happy new year! The first release of 2024 is here! Highlights security: goreleaser would log …

Announcing GoReleaser v1.23 — the last of 2023

The yearly Christmas edition, and the last release of 2023. This release contains mostly small …

Announcing GoReleaser v1.22 — steady improvement

Another boring release, with mostly bug fixes and quality-of-life improvements. Highlights …

Announcing GoReleaser v1.21 — mostly bug fixes

A boring release, mostly bug fixes. Boring is good. Highlights You can now sort tags by semver …

Announcing GoReleaser v1.20 — a quality-of-life release

A little over 100 commits in small-ish quality-of-life improvements.

Announcing GoReleaser v1.19 — the big release

Almost 200 commits adding Nix, Winget, and much more…

Announcing GoReleaser v1.18 — the maintainers month release

May is the maintainers month, so I would first like to thank all the maintainers out there for …

Announcing GoReleaser v1.17 — the late Easter release

The Easter release is here!

Announcing GoReleaser v1.16 — the late February release

The February release got a little late… better later than even later, I guess! 😄 …

Announcing GoReleaser v1.15 — the first of 2023

Keeping our pace of 1 minor a month, this is the January 2023 release. GoReleaser’s Ko …

Announcing GoReleaser v1.14 — the Christmas release

Another month, another release! In fact, the last release of the year. This one in particular …

Announcing GoReleaser v1.13 — the November release

Another month, another release! Like the previous 2 releases, this is a beefy one: over 100 …

Announcing GoReleaser v1.12 — the more-than-a-hundred commits release

The previous release had ~100 commits, and this one has 149 since previous feature release! …

Announcing GoReleaser v1.11 — the hundred commits release

This release took a while, for all the good reasons: a ton of new features and bug fixes for …

Announcing GoReleaser v1.10 — the summer release

Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new …

Announcing GoReleaser v1.9 — the 10k stars release

This release contains several minor improvements and a couple of new features! Let’s have …

Announcing GoReleaser v1.8 — the GOAMD64 release

This release’s biggest feature is the GOAMD64 support. Highlights support GOAMD64(#3016) …

Announcing GoReleaser v1.7 — The Go 1.18 release

The title would have been more creative if it was GoReleaser 1.18 as well… maybe… …

Announcing GoReleaser v1.6 — the boring release

GoReleaser 1.6 is out! Another “boring” release with some miscellaneous …

Announcing GoReleaser v1.5 — the misc improvements release

GoReleaser 1.5 is out, with a handful of miscellaneous improvements. Highlights Better manpages …

Announcing GoReleaser v1.4 — the AUR release

GoReleaser can now create and publish Arch Linux PKGBUILD files to Arch User Repositories! …

Announcing GoReleaser 1.3 — the first of 2022

We just launched GoReleaser v1.3, the first release of 2022! Highlights Announce to any HTTP …

Announcing GoReleaser v1.2 — Santa/5 year anniversary edition

GoReleaser v1.2 is out — likely be the last feature release of 2021. It also marks the first 5 …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

22 Posts

event

Return to top

GoTime #311 - Ship software, not code

I was live with Natalie to discuss how GOOS and GOARCH spark joy. Go Time 311: Ship software, …

Getting love for your open source project, aka, marketing?!

Twitter Spaces with some OSS developers: @caarlos0 @charmcli @jzmusings @meowgorithm …

Expanding GitHub Sponsors globally - GitHub Universe

GitHub Sponsors expanded to over 30 new regions this year, Abigail Cabunoc Mayes chat with …

Sustainability in Open Source - Github and Charm

Talking about improving sustainability of open source with some incredible open source …

The Maintainers of OSS @ Equinix

A conversation about maintaining OSS and other software-related topics.

Open Source Brasil Maintainers Event @ GitHub

A conversation about maintaining OSS — in Portuguese.

@TwitterDev x @Charmcli: Developer Tools discovery session

Twitter Spaces with Twitter and Charm folks, discussing favorite developer tools. This Space …

Hacktoberfest Brasil Golang Meetup

A hands-on talk on how to create and set up a project with GoReleaser. In Portuguese.

Schwarz Golang Montly Meetup

A hands-on talk on how to create and set up a project with GoReleaser.

Sri Lanka Golang meetup

A hands on talk on how to create and setup a project with GoReleaser.

GoTime #173 - Releasing with (and without) GoReleaser

I was live with Mat, Natalie & Johnny and we talked a bit about releases, with and without …

Show me your code: how buildkit can help integrating GoReleaser with multi-arch Docker manifests

A discussion with Tibor and Geanluca about Docker buildkit and GoReleaser.

1º Open Source Joinville Meetup

Shared some tips about managing medium-sized OpenSource projects. The slides are in Portuguese.

Hacktoberfest Joinville

I shared some of my experiences coding GoReleaser, this time, more about community and less …

GopherCon Brasil 2018

A quick review of my second ever GopherCon - the first one as a speaker, and my experience …

GopherCon Brasil

My first ever talk at a GopherCon. I shared my experiences coding GoReleaser, more or less …

2º Joinville Go Meetup

It was the Go 1.10 Release party - my talk was about what changed in Go 1.10.

1º Joinville SRE Meetup

I spoke about how we migrate our monitoring infrastructure to Prometheus & Friends, what we …

1º Changelog Meetup

I showed how to build and release binaries in Go, including cross-compiling, Docker images, …

2º #connect(dev)

I gave a little intro on Docker and talked about when to use it or not. No slides or video …

QCon Sao Paulo - 2015: A short overview

So, this week I attended to QCon-SP. The conference was great (congratulations everyone 🍻), …

2º Joinville Software Meetup

I encouraged people to start using git, showing some of its features.

22 Posts

java

Return to top

Measuring production code coverage with JaCoCo

Microservices is the new fancy way of doing applications. Yet, most companies still have big …

Distributed Locking with Redis

At ContaAzul, we have several old pieces of code that are still running in production. We are …

Dealing with Maven dependency hell

Every now and then an active java-based project enters in a “dependency hell” …

Avoid static imports

There are a lot of Java API’s and Frameworks which rely in static methods and the sort. …

Using Mockito's InjectMocks

FYI: Like the previous post, this is a really quick tip. Let’s imagine we have two …

Don't use junit.framework

Every once in a while I see somewhere a wrong import to the old, deprecated junit.framework …

Using JUnit Rules to simplify your tests

Have you ever wrote JUnit tests extending a class that does some before and after work, so you …

Exponential Backoff with Java 8

Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of …

Install JDK on OSX Yosemite

For some reason, Oracle blocked the installers to run only on a fixed OSX version range with a …

Java 8

Earlier this year, the new version of the Java Programming Language was released. Finally, it …

Find the slowest tests of a Java project

I found that it’s pretty hard to have a project with high test coverage and fast …

PullRequest Coverage Blammer Maven Plugin

At the company I work Pull Requests are part of our culture. When someone opens a Pull Request, …

Twitter drops Ruby - The Bullshit

This post is about the Twitter change from Ruby to Java, some years ago, fact that, sadly, is …

JPA2 with Guice

Some time ago, I posted here about a simple project that I’ve done in my post-graduation …

Things that make me dislike Java

So, I just compiled a little list of things that, I believe, make me dislike Java everyday a …

GWT Bootstrap 2.0.4.0 released

For those wo don’t know, GWT-Bootstrap wants to port the Twitter Bootstrap widgets to GWT …

Quick intro to Google Guava

According to the project site on GitHub, The Guava project contains several of Google’s …

Guice Junit test-runner

Yesterday, I wrote a small article talking about Guice and JUnit, so, this time, I’ll …

Guice and JUnit

First of all: Do you use Guice as Depency Injection Container in your Apps? If not, why? Well, …

Theming GWT-Bootstrap

First of all, if you haven’t done it yet, read Getting started with GWT-Bootstrap. Create …

Getting started with GWT-Bootstrap

GWT-Bootstrap is a project that aims to provide all the Twitter Bootstrap styles and widgets to …

Modular Persistence

Hi everybody! One of the classes of my post-graduate was the Java Persistence API (JPA). The …

18 Posts

ci-cd

Return to top

GoReleaser Split and Merge

Since v1.12.0-pro, GoReleaser can split and merge its release process. This means that you can …

Creating a tag and releasing from a GitHub Action, with GoReleaser

Most people run GoReleaser by creating a tag locally, pushing it, and letting their CI takes …

Enabling Nightly releases using GoReleaser Pro

GoReleaser Pro v1.11+ added support to keeping a nightly release. That means that, whenever you …

Testing Linux packages on GitHub Actions

One issue we had from time to time on GoReleaser was related to its Linux packages. We had a …

Using the new prebuilt builder on GoReleaser

You can now import pre-built binaries into GoReleaser! This feature was made with mainly two …

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub …

Multi-platform Docker images with GoReleaser and GitHub Actions

GoReleaser v0.148.0 is out, and with it, the ability to release multi-platform Docker images, …

Publishing libraries with GoReleaser

What if I told you you can now automate the release of your libraries as well? I think some of …

GoReleaser: 3 years later

GoReleaser’s journey begins in December 21, 2016: the day I made its very first commit. …

Git: check if a folder changed

Often I need to “do X only if files on some folder changed” or whatever. I always …

GoReleaser Docker support

The next GoReleaser version will have a more flexible Docker configuration format. In this post …

Using Goss to validate Packer builds

Ever wanted to validate your Packer image with Goss? Well, you can! I was looking into ways to …

GoReleaser: build and push Snapcraft packages from TravisCI

GoReleaser was able to build Snapcraft packages for a long time, but it wasn’t able to …

GoReleaser: lessons learned so far

I’ve started GoReleaser almost 2 years ago. This is a summary of (some) things I’ve …

GoReleaser: 1k repositories and beyond

When first announced GoReleaser roughly 1 year ago, on January 2017, I never thought it would …

Creating debs and rpms with Go

I’ve been working on GoReleaser for more than a year now, and one of the things that was …

From Travis Enterprise to BuildKite in 50 repositories

At ContaAzul, we use the CI infrastructure a lot. We open several pull requests in several …

Fast and easy Go binaries delivery

I have some apps written in Go, which I deliver as binaries for each platform using GitHub …

16 Posts

github

Return to top

GoReleaser v1 — one year later

We launched GoReleaser v1 exactly 1 year ago today! onefetch First, I wanted to wholeheartedly …

GoReleaser Split and Merge

Since v1.12.0-pro, GoReleaser can split and merge its release process. This means that you can …

Expanding GitHub Sponsors globally - GitHub Universe

GitHub Sponsors expanded to over 30 new regions this year, Abigail Cabunoc Mayes chat with …

Sustainability in Open Source - Github and Charm

Talking about improving sustainability of open source with some incredible open source …

Creating a tag and releasing from a GitHub Action, with GoReleaser

Most people run GoReleaser by creating a tag locally, pushing it, and letting their CI takes …

Enabling Nightly releases using GoReleaser Pro

GoReleaser Pro v1.11+ added support to keeping a nightly release. That means that, whenever you …

Testing Linux packages on GitHub Actions

One issue we had from time to time on GoReleaser was related to its Linux packages. We had a …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub …

Multi-platform Docker images with GoReleaser and GitHub Actions

GoReleaser v0.148.0 is out, and with it, the ability to release multi-platform Docker images, …

Monitoring GitHub releases with Prometheus

I have written some exporters to observe things on GitHub. This is how and why. We will talk …

Cleanup old GitHub Forks

I like to keep my GitHub clean. I delete forks I’m not using anymore, move old abandoned …

A Repository Graveyard

This past weekend I decided I need to clean up my GitHub profile. In this post I’ll write …

Charting Repository Stars

I always wanted to know how stargazers of my repos increased over time. I didn’t found a …

Watchub

Watchub is a service that notifies you of people who followed/unfollowed you and …

Continuous Delivery with GitHub, CircleCI, Docker and AWS Elastic Beanstalk

This is just a quick overview of how I did it in antibody’s homepage. Antibody&#39;s …

13 Posts

docker

Return to top

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub …

GoReleaser: 4 years releasing software

Last year, I made a blog post about GoReleaser turning 3 years old. I kind of like it, so this …

Multi-platform Docker images with GoReleaser and GitHub Actions

GoReleaser v0.148.0 is out, and with it, the ability to release multi-platform Docker images, …

Making Python respect Docker memory limits

If you run Python inside containers, chances are you have seen Linux’s OOMKiller working …

Show me your code: how buildkit can help integrating GoReleaser with multi-arch Docker manifests

A discussion with Tibor and Geanluca about Docker buildkit and GoReleaser.

Faster Docker builds using go modules

Quick tip to improve the docker build speed using go modules. Normally, I would do something …

GoReleaser Docker support

The next GoReleaser version will have a more flexible Docker configuration format. In this post …

Continuous Delivery with GitHub, CircleCI, Docker and AWS Elastic Beanstalk

This is just a quick overview of how I did it in antibody’s homepage. Antibody&#39;s …

2º #connect(dev)

I gave a little intro on Docker and talked about when to use it or not. No slides or video …

Small Go Apps Containers

Or: how to ship your app in a <20Mb container. Well, as you may know, there is a good amount …

Running a Selenium Grid with docker-compose

At ContaAzul, we had 31 Windows machines powering our Selenium tests - one running the grid and …

Docker: The very basics

Or “what the hell is this Docker thing?” Intro According to their website, Docker …

Docker Protips™

Like my old post on git, this is somewhat a collection of useful Docker …

10 Posts

ruby-on-rails

Return to top

Integrating Minitest with Shippable

I know, everyone uses Travis. I have nothing against it. But in case you want to test and/or …

Elections, in Ruby

Updated with second round script in Oct 26, 2014. Well, last sunday (Oct 5) was the brazilian …

This site is now powered by Turbolinks

I think that turbolinks is great: it mades it easy to add AJAX PushState to your Rails …

Fixing Rubygems Certificates

Today, once again, my environment start throwing that SSL cert error. I followed the basics of …

Twitter drops Ruby - The Bullshit

This post is about the Twitter change from Ruby to Java, some years ago, fact that, sadly, is …

Ruby: Nil

Following my previous posts with basic Javascript aspects, like context and variable hoisting, …

Gemify your assets

Rails 3.1 introduced the asset pipeline, which make it easy to include versioned external …

Turbolinks animated page transitions

Since I’ve seen the new Basecamp, I fall in love with it. It’s fast, had sleek …

Rails AJAXSpin

A couple of days ago I wrote about how to build a simple and non intrusive AJAX status with …

Simple RoR AJAX Status

tl;dr A simple tutorial explaining how to made a simple coffeescript that can automagically …

9 Posts

cli

Return to top

Shipping completions for Go CLIs using GoReleaser and Cobra

Everyone likes command line completions, so much that some even install extra tools just to …

My tmux workflow

I wanted to share a quick thing that made my life easier on tmux lately, but before we dig into …

Keeping json files formatted

I’m working in a project that uses Chef, so it has a lot of JSON files. I like everything …

Cleanup old GitHub Forks

I like to keep my GitHub clean. I delete forks I’m not using anymore, move old abandoned …

Writing CLI applications with Golang

Last few months I’ve been using Go to write quite a lot of tools. In this post I intent …

Introducing JVM - The Java Version Manager

Last years it becomes more and more common to work in different projects running on different …

Dump a PostgreSQL table as insert statements

FYI: Like the previous post, this is a really quick tip. This week I’m working closely to …

Find non-ASCII chars

FYI: This is a really quick tip. Sometimes things break because of random characters, like '. …

Lint your shell scripts

I will start this by quoting the bashstyle’s readme: Bash is like the JavaScript of …

9 Posts

shell

Return to top

Shipping completions for Go CLIs using GoReleaser and Cobra

Everyone likes command line completions, so much that some even install extra tools just to …

My tmux workflow

I wanted to share a quick thing that made my life easier on tmux lately, but before we dig into …

Why I migrated to the Fish Shell

Back in June, I started porting my dotfiles from ZSH to Fish. Here’s why. Initial …

Speeding up my ZSH load time

This is the story on how I speed up my terminal load time. Some time ago I shared my dotfiles …

I wrote Antigen in Go: Antibody

Learning Go was in my TODO list for a while, and finally I did something about it. This post …

Introducing JVM - The Java Version Manager

Last years it becomes more and more common to work in different projects running on different …

Dump a PostgreSQL table as insert statements

FYI: Like the previous post, this is a really quick tip. This week I’m working closely to …

Find non-ASCII chars

FYI: This is a really quick tip. Sometimes things break because of random characters, like '. …

Lint your shell scripts

I will start this by quoting the bashstyle’s readme: Bash is like the JavaScript of …

8 Posts

kubernetes

Return to top

Making Python respect Docker memory limits

If you run Python inside containers, chances are you have seen Linux’s OOMKiller working …

Kubernetes pod shutdown lifecycle

I always forget the details about Kubernetes pod shutdown lifecycle is something when I need …

Leader Election inside Kubernetes

Ever needed a simple leader election mechanism on something that will run on a Kubernetes …

Kubernetes Jobs: shut down sidecar when main container finishes

Kubernetes Pod lifecycle does not cover everything just yet. I’m working on an app that …

Easy private Helm repositories

Can we have a private Helm repository using GCS as backend? Yes we can! The easier way to …

GKE using Traefik as the ingress controller

I recently fall into a trap using Traefik as the ingress controller in one cluster. I decided …

GKE in production

I’ve been working with DigitalOcean, Heroku and AWS for some years now. Recently, I …

70% cheaper Kubernetes cluster on AWS

We are running Kubernetes on both sandbox and production for some months now. Our production …

8 Posts

meetup

Return to top

Sri Lanka Golang meetup

A hands on talk on how to create and setup a project with GoReleaser.

1º Open Source Joinville Meetup

Shared some tips about managing medium-sized OpenSource projects. The slides are in Portuguese.

Hacktoberfest Joinville

I shared some of my experiences coding GoReleaser, this time, more about community and less …

2º Joinville Go Meetup

It was the Go 1.10 Release party - my talk was about what changed in Go 1.10.

1º Joinville SRE Meetup

I spoke about how we migrate our monitoring infrastructure to Prometheus & Friends, what we …

1º Changelog Meetup

I showed how to build and release binaries in Go, including cross-compiling, Docker images, …

2º #connect(dev)

I gave a little intro on Docker and talked about when to use it or not. No slides or video …

2º Joinville Software Meetup

I encouraged people to start using git, showing some of its features.

8 Posts

ssh

Return to top

Wishlist Endpoint Discovery

Learn how to use the recently-added Tailscale, DNS, and Zeroconf endpoint discovery in …

Using open, pbcopy and pbpaste over SSH

Having your favorite commands available over SSH can be very convenient. I think I talked about …

My workflow, part 1

I keep getting asked how my setup works, how I use tmux and nvim over ssh… all that good stuff. …

Marshaling SSH Private Keys - Why there's always a different block?

Not long ago, when I was building melt, I learned something interesting: if you restore a …

Issuing and using SSH Certificates

SSH certificates allow system administrators to SSH into machines without having to manage …

SSH Tips and Tricks

Since I joined Charm, I’ve been working and learning more about SSH, and I thought I …

Using SSH Certificates with Go’s SSH Client

A couple of weeks ago I was working on adding SSH Certificate Authentication support to Wish, …

Forwarding Discord's RPC socket over SSH

I’m doing 99% of my coding in a “big” machine instead of my laptop. I do that …

7 Posts

blog

Return to top

Moving to Hugo

After some time, I finally decided to move my blog from Jekyll to Hugo. That was probably the …

Improving Jekyll build time

I’ve been using Jekyll on my blog since 2012. It is great! But, lately, its slow build …

Jekyll: Reading time without plugins

Estimated reading time of a post is a feature that became popular, I believe, with Medium. …

OpenSourcing my blog again

Once upon a time, my blog was OpenSource. People liked it and forked it tons of times, but they …

Jekyll with Sass

I followed @mdo recent article “Using Sass with Jekyll”, and wanted to point out …

UP v2

So, this is the all-new UP version. It is more based on my own blog in some way, which is a …

UP: A Jekyll theme

After a while using Jekyll Bootstrap, I just realized that it was so much bloated. Then, few …

6 Posts

linux

Return to top

GoReleaser v1 — one year later

We launched GoReleaser v1 exactly 1 year ago today! onefetch First, I wanted to wholeheartedly …

My tmux workflow

I wanted to share a quick thing that made my life easier on tmux lately, but before we dig into …

Testing Linux packages on GitHub Actions

One issue we had from time to time on GoReleaser was related to its Linux packages. We had a …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

Creating debs and rpms with Go

I’ve been working on GoReleaser for more than a year now, and one of the things that was …

Riding a MS Network with Linux

I work in a company that have an enterily MS-based network, which means, all that domain login …

6 Posts

security

Return to top

GoReleaser v1 — one year later

We launched GoReleaser v1 exactly 1 year ago today! onefetch First, I wanted to wholeheartedly …

Issuing and using SSH Certificates

SSH certificates allow system administrators to SSH into machines without having to manage …

Announcing GoReleaser v1.2 — Santa/5 year anniversary edition

GoReleaser v1.2 is out — likely be the last feature release of 2021. It also marks the first 5 …

Announcing GoReleaser v1 — the first v1 release

Hello everyone! I’ve been holding on the “v1” release for, checks notes, …

Signing releases with cosign and GoReleaser

In GoReleaser v0.176.0 (both OSS and Pro), we released the ability to sign Docker images - with …

Supply chain integrity with GoReleaser using Go mod proxy

Since the infamous SolarWinds attack, supply chain integrity is something a lot of people are …

5 Posts

git

Return to top

git-worktree is awesome

I’m still mad I haven’t found this out before. Imagine you’re working on …

Git: check if a folder changed

Often I need to “do X only if files on some folder changed” or whatever. I always …

2º Joinville Software Meetup

I encouraged people to start using git, showing some of its features.

Git Protips™

Git has a lot of features, and I bet that 90% of who use it (including me) doesn’t know …

Configuring a git server with gitolite

Setup You will need: git git-daemon-run ssh gitolite Install everything: $ apt-get install git …

5 Posts

hardware

Return to top

Starlink: installation, first impressions, and running it through UniFi

This weekend’s side quest: installing Starlink as my second internet provider. …

My workflow, part 1

I keep getting asked how my setup works, how I use tmux and nvim over ssh… all that good stuff. …

Joining the split keyboards club: a Moonlander story

This post will describe my experience with a couple of firsts: first mechanical keyboard first …

MacBook Pro 14 - a quick review

I got a MacBook Pro 14" with an Apple M1 Pro SoC, 16GB of memory and 500GB of disk a …

/uses

Sometimes people ask me what my setup looks like for remote work. I decided to try to keep a …

5 Posts

jekyll

Return to top

Improving Jekyll build time

I’ve been using Jekyll on my blog since 2012. It is great! But, lately, its slow build …

Jekyll: Reading time without plugins

Estimated reading time of a post is a feature that became popular, I believe, with Medium. …

Jekyll with Sass

I followed @mdo recent article “Using Sass with Jekyll”, and wanted to point out …

UP v2

So, this is the all-new UP version. It is more based on my own blog in some way, which is a …

UP: A Jekyll theme

After a while using Jekyll Bootstrap, I just realized that it was so much bloated. Then, few …

4 Posts

neovim

Return to top

A brief and incomplete history of modal text editors

In this post I’m going to talk about some old text editors you probably never heard of, …

My workflow, part 1

I keep getting asked how my setup works, how I use tmux and nvim over ssh… all that good stuff. …

Forwarding Discord's RPC socket over SSH

I’m doing 99% of my coding in a “big” machine instead of my laptop. I do that …

git-worktree is awesome

I’m still mad I haven’t found this out before. Imagine you’re working on …

4 Posts

productivity

Return to top

My tmux workflow

I wanted to share a quick thing that made my life easier on tmux lately, but before we dig into …

Speeding up my ZSH load time

This is the story on how I speed up my terminal load time. Some time ago I shared my dotfiles …

I wrote Antigen in Go: Antibody

Learning Go was in my TODO list for a while, and finally I did something about it. This post …

Dotfiles Are Meant to Be Forked

My desktop Well, it has been a while since I replaced my old (but gold) bash by the great zsh. …

4 Posts

prometheus

Return to top

Incrementally measuring my internet speed with Prometheus

I live in Brazil, and, if you’re not familiar, internet usually sucks here. I’m one …

Monitoring GitHub releases with Prometheus

I have written some exporters to observe things on GitHub. This is how and why. We will talk …

Prometheus authentication with oauth2_proxy

I wanted to set up a prometheus machine for me to monitor random stuff, but I was always …

1º Joinville SRE Meetup

I spoke about how we migrate our monitoring infrastructure to Prometheus & Friends, what we …

4 Posts

software-engineering

Return to top

GoReleaser: lessons learned so far

I’ve started GoReleaser almost 2 years ago. This is a summary of (some) things I’ve …

On being an effective developer

Over the years I read several articles on how to be effective, and how the 10x engineer thing …

Flag-oriented Programming

booleans, am I right? What a wonderful piece of technology! They help us solve so many …

What is good code?

I’ve been wanting to write this for a long time, just to clarify my thoughts on the …

4 Posts

testing

Return to top

Writing Bubble Tea Tests

Learn how to use x/exp/teatest to write tests for your Bubble Tea apps.

Running a Selenium Grid with docker-compose

At ContaAzul, we had 31 Windows machines powering our Selenium tests - one running the grid and …

Guice Junit test-runner

Yesterday, I wrote a small article talking about Guice and JUnit, so, this time, I’ll …

Guice and JUnit

First of all: Do you use Guice as Depency Injection Container in your Apps? If not, why? Well, …

3 Posts

charm

Return to top

Wishlist Endpoint Discovery

Learn how to use the recently-added Tailscale, DNS, and Zeroconf endpoint discovery in …

Writing Bubble Tea Tests

Learn how to use x/exp/teatest to write tests for your Bubble Tea apps.

Sustainability in Open Source - Github and Charm

Talking about improving sustainability of open source with some incredible open source …

3 Posts

gwt

Return to top

GWT Bootstrap 2.0.4.0 released

For those wo don’t know, GWT-Bootstrap wants to port the Twitter Bootstrap widgets to GWT …

Theming GWT-Bootstrap

First of all, if you haven’t done it yet, read Getting started with GWT-Bootstrap. Create …

Getting started with GWT-Bootstrap

GWT-Bootstrap is a project that aims to provide all the Twitter Bootstrap styles and widgets to …

3 Posts

javascript

Return to top

Javascript Variable Hoisting

This is article is the second of a series of n articles, where n could be any given number …

Javascript Context

People make a lot of confusion about Javascript context mechanism. I don’t think …

Unobtrusive JS

One of the principles of Unobtrusive JS is the “separation of functionality (the …

3 Posts

macos

Return to top

macOS Command Line Tools

Today, again, I forgot the command to install Command Line Tools and had to search for it. This …

4K display on MacOS: the saga

I recently got a 4K display, and it didn’t work as I expected on my MacBook Pro. This is …

Install JDK on OSX Yosemite

For some reason, Oracle blocked the installers to run only on a fixed OSX version range with a …

2 Posts

google-cloud

Return to top

GKE using Traefik as the ingress controller

I recently fall into a trap using Traefik as the ingress controller in one cluster. I decided …

GKE in production

I’ve been working with DigitalOcean, Heroku and AWS for some years now. Recently, I …

2 Posts

home-automation

Return to top

Automating my hard-to-automate garage doors

This is how I automated my garage doors without using a BTN interface. Arriving home is always …

Integrating Alarm Systems with Homekit

This post documents my journey implementing a Homekit integration for my Intelbras AMT8000 …

2 Posts

homekit

Return to top

Automating my hard-to-automate garage doors

This is how I automated my garage doors without using a BTN interface. Arriving home is always …

Integrating Alarm Systems with Homekit

This post documents my journey implementing a Homekit integration for my Intelbras AMT8000 …

2 Posts

life

Return to top

./charm.sh

$ glow charm.md Everyone who knows me knows that I love CLI tools. I have my own opinionated …

I'm Joining TOTVS Labs

Everything in life eventually comes to an end, including life itself. This is not that kind of …

2 Posts

monitoring

Return to top

Monitoring GitHub releases with Prometheus

I have written some exporters to observe things on GitHub. This is how and why. We will talk …

Fixing Alerts

As a DevOps/SRE, I spent a reasonable amount of time dealing with metrics and alerts. Usually, …

2 Posts

nats

Return to top

High availability with nats-streaming-server (fault-tolerance)

I wanted to set up a fault tolerant nats-streaming-server, but couldn’t find a …

High availability with nats-streaming-server (clustering)

I wanted to set up a high available nats-streaming-server cluster, but couldn’t find a …

2 Posts

nfpm

Return to top

Shipping completions for Go CLIs using GoReleaser and Cobra

Everyone likes command line completions, so much that some even install extra tools just to …

Testing Linux packages on GitHub Actions

One issue we had from time to time on GoReleaser was related to its Linux packages. We had a …

2 Posts

podcasts

Return to top

GoTime #311 - Ship software, not code

I was live with Natalie to discuss how GOOS and GOARCH spark joy. Go Time 311: Ship software, …

GoTime #173 - Releasing with (and without) GoReleaser

I was live with Mat, Natalie & Johnny and we talked a bit about releases, with and without …

2 Posts

snapcraft

Return to top

Updating Snapcraft secrets

If you, like me, release your projects to the Snap Store using GoReleaser, you might need to …

GoReleaser: build and push Snapcraft packages from TravisCI

GoReleaser was able to build Snapcraft packages for a long time, but it wasn’t able to …

2 Posts

tmux

Return to top

My workflow, part 1

I keep getting asked how my setup works, how I use tmux and nvim over ssh… all that good stuff. …

My tmux workflow

I wanted to share a quick thing that made my life easier on tmux lately, but before we dig into …

2 Posts

tui

Return to top

Wishlist Endpoint Discovery

Learn how to use the recently-added Tailscale, DNS, and Zeroconf endpoint discovery in …

Writing Bubble Tea Tests

Learn how to use x/exp/teatest to write tests for your Bubble Tea apps.

2 Posts

vim

Return to top

A brief and incomplete history of modal text editors

In this post I’m going to talk about some old text editors you probably never heard of, …

git-worktree is awesome

I’m still mad I haven’t found this out before. Imagine you’re working on …

1 Post

alarm

Return to top

Integrating Alarm Systems with Homekit

This post documents my journey implementing a Homekit integration for my Intelbras AMT8000 …

1 Post

amazon-web-services

Return to top

70% cheaper Kubernetes cluster on AWS

We are running Kubernetes on both sandbox and production for some months now. Our production …

1 Post

bubbletea

Return to top

Writing Bubble Tea Tests

Learn how to use x/exp/teatest to write tests for your Bubble Tea apps.

1 Post

c

Return to top

Marshaling SSH Private Keys - Why there's always a different block?

Not long ago, when I was building melt, I learned something interesting: if you restore a …

1 Post

couchbase

Return to top

Couchbase: rolling upgrade from 4.5.x to 5.1.x

I have an old Couchbase 4.5.x cluster, and I though it would be nice to upgrade it. This are my …

1 Post

discord

Return to top

Forwarding Discord's RPC socket over SSH

I’m doing 99% of my coding in a “big” machine instead of my laptop. I do that …

1 Post

elasticsearch

Return to top

Upgrading ElasticSearch 2 to 5: S3 snapshot/restore strategy

Migrating an ElasticSearch cluster from version 2 to 5 can be challenging, even more if it is a …

1 Post

electrical-engineering

Return to top

Automating my hard-to-automate garage doors

This is how I automated my garage doors without using a BTN interface. Arriving home is always …

1 Post

erlang

Return to top

Seven Languages in Seven Weeks: Erlang

So, I just bought “Seven Languages in Seven Weeks”. I’ve read the Ruby …

1 Post

esp8266

Return to top

Automating my hard-to-automate garage doors

This is how I automated my garage doors without using a BTN interface. Arriving home is always …

1 Post

github-universe

Return to top

Expanding GitHub Sponsors globally - GitHub Universe

GitHub Sponsors expanded to over 30 new regions this year, Abigail Cabunoc Mayes chat with …

1 Post

go

Return to top

Marshaling SSH Private Keys - Why there's always a different block?

Not long ago, when I was building melt, I learned something interesting: if you restore a …

1 Post

gophercon

Return to top

GopherCon Brasil

My first ever talk at a GopherCon. I shared my experiences coding GoReleaser, more or less …

1 Post

grafana

Return to top

Incrementally measuring my internet speed with Prometheus

I live in Brazil, and, if you’re not familiar, internet usually sucks here. I’m one …

1 Post

helm

Return to top

Easy private Helm repositories

Can we have a private Helm repository using GCS as backend? Yes we can! The easier way to …

1 Post

hugo

Return to top

Moving to Hugo

After some time, I finally decided to move my blog from Jekyll to Hugo. That was probably the …

1 Post

json

Return to top

Keeping json files formatted

I’m working in a project that uses Chef, so it has a lot of JSON files. I like everything …

1 Post

music

Return to top

🎧 Replay: 2022

This is a different kind of post: I’m sharing some music I enjoyed this year! If …

1 Post

network

Return to top

Starlink: installation, first impressions, and running it through UniFi

This weekend’s side quest: installing Starlink as my second internet provider. …

1 Post

packer

Return to top

Using Goss to validate Packer builds

Ever wanted to validate your Packer image with Goss? Well, you can! I was looking into ways to …

1 Post

podman

Return to top

Multi-platform Docker images with GoReleaser, Podman and GitHub Actions

A few months ago, I published a post on Multi-platform Docker images with GoReleaser and GitHub …

1 Post

python

Return to top

Making Python respect Docker memory limits

If you run Python inside containers, chances are you have seen Linux’s OOMKiller working …

1 Post

raspberry

Return to top

Incrementally measuring my internet speed with Prometheus

I live in Brazil, and, if you’re not familiar, internet usually sucks here. I’m one …

1 Post

remote-work

Return to top

One month working remote

It has been one month since I started working fully remote, and I think I learned some things I …

1 Post

semantic-versioning

Return to top

Changelog grouping with GoReleaser v1.1

In the v1.1 release, GoReleaser introduced a new feature called “changelog groups”. …

1 Post

sre

Return to top

1º Joinville SRE Meetup

I spoke about how we migrate our monitoring infrastructure to Prometheus & Friends, what we …

1 Post
Return to top

Starlink: installation, first impressions, and running it through UniFi

This weekend’s side quest: installing Starlink as my second internet provider. …

1 Post

supply-chain-security

Return to top

Reproducible builds with GoReleaser

GoReleaser can help you, to some extent, to have reproducible builds. Reproducible Builds What …

1 Post

unifi

Return to top

Starlink: installation, first impressions, and running it through UniFi

This weekend’s side quest: installing Starlink as my second internet provider. …

1 Post

workflow

Return to top

My workflow, part 1

I keep getting asked how my setup works, how I use tmux and nvim over ssh… all that good stuff. …