42 Posts

golang

Return to top

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 …

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 …

36 Posts

goreleaser

Return to top

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 …

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 …

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 …

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 …

17 Posts

goreleaser-pro

Return to top

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 …

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 …

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 …

16 Posts

events

Return to top

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

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 …

2º Joinville Software Meetup

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

15 Posts

ci-cd

Return to top

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 …

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

github

Return to top

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 …

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 …

8 Posts

cli

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 …

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 …

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

shell

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 …

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 …

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 …

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 …

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 …

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 …

5 Posts

linux

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 …

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 …

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 …

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

security

Return to top

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 …

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 …

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

hardware

Return to top

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 …

My Setup

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

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 …

3 Posts

ssh

Return to top

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 …

3 Posts

testing

Return to top

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, …

2 Posts

conferences

Return to top

GopherCon Brasil 2018

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

QCon Sao Paulo - 2015: A short overview

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

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

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

neovim

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 …

git-worktree is awesome

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

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

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

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

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

nfpm

Return to top

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 …

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

podcasts

Return to top

GoTime #173 - Releasing with (and without) GoReleaser

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

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

supply-chain-security

Return to top

Reproducible builds with GoReleaser

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

1 Post

tmux

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 …

1 Post

vim

Return to top

git-worktree is awesome

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