Como modificar mensagens de commit no git

Escrever mensagens de commit é uma arte.
Em alguns lugares você deve escrever em inglês, outros deve seguir algum padrão no estilo conventional commits, etc.

Mas não importa qual o estilo que você commita, alguma hora você vai querer mudar a mensagem.
Seja por um erro ortográfico, porquê você escreveu português ao invés de inglês, enfim.
Abaixo mostro alguns jeitos de mudar a mensagem de commit do git.

Continue lendo “Como modificar mensagens de commit no git”

MailHog – Testando o envio de emails localmente

Uma das tarefas mais recorrentes é enviar emails de status de transação, esqueceu a senha, etc.
Mas às vezes é chato termos que configurar nosso próprio email em nosso ambiente local, principalmente se estivermos falando de GMail, que é uma chatice para configurar quando se trata de SMTP.

Nesse post rápido e rasteiro mostro como usar o MailHog, um servidor SMTP simples que permite testarmos o envio de email localmente, apenas apontando nossa aplicação para ele e conferindo o resultado numa interface web bem prática.

Continue lendo “MailHog – Testando o envio de emails localmente”

Removendo segredos commitados no Git com BFG Repo-Cleaner

Se você ainda não fez, tenho certeza que um dia fará.
Seja por preguiça, desinformação ou acidente, todo dev já commitou a senha do banco de dados no repositório.

Até que uma hora descobre que isso não é uma boa prática, chega a hora de migrar os segredos para um cofre mas eles ainda estão lá, commitados.
É só fazer checkout para um commit específico, que é possível ter acesso a eles. Se não tiverem sido mudados, é só fazer a festa.

Tive de me livrar de segredos commitados a um tempo atrás e usei o BFG Repo-Cleaner, e vou mostrar nesse post como limpei o repositório com essa ferramentinha simples e eficiente.

Continue lendo “Removendo segredos commitados no Git com BFG Repo-Cleaner”

Enviando mensagens SMS agendadas com AWS EventBridge, Pinpoint e Lambda usando Serverless Framework

Você pegou um trampo freela onde seu cliente pediu que o sistema enviasse para ele via SMS um mini relatório todos os dias as 18 horas.

Esse mini relatório pode ser número de visualizações numa landing page, o total de vendas em cartão de crédito, cartão de débito, dinheiro e vale refeição, ou a cotação do dólar.

Nesse texto mostro como você pode implementar isso super rápido usando alguns serviços da AWS e o Serverless Framework, entregando para ele a funcionalidade pronta em algumas horas.

Continue lendo “Enviando mensagens SMS agendadas com AWS EventBridge, Pinpoint e Lambda usando Serverless Framework”

O que é HTTP Content-Security-Policy e como utilizar no PHP

Content-Security-Policy (CSP, para os íntimos) é um cabeçalho HTTP que podemos usar para fornecer ao navegador uma lista branca de recursos que nossa aplicação usará.
Entenda-se como recurso imagens, Javascript, CSS, fontes, frames, conexões websocket, actions de formulário, etc.

Nesse texto falo um pouco sobre esse cabeçalho (que tem várias particularidades) e mostro como implementar no PHP de forma fácil.

Continue lendo “O que é HTTP Content-Security-Policy e como utilizar no PHP”

vagrant-disksize – Plugin para aumentar o tamanho do disco de máquinas Vagrant + Virtualbox

Dica rápida para apresentar o plugin vagrant-disksize, um plugin para aumentar o tamanho do disco em máquinas Vagrant que utilizam o Virtualbox como provider.

Instalando:

vagrant plugin install vagrant-disksize

Agora, em seu Vagrantfile, basta indicar o tamanho do disco:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  config.disksize.size = "30GB"
  # ...
end

Você pode especificar o tamanho em bytes ou especificar a unidade (KB, MB, GB ou TB).

Nota 1: Não tem como diminuir o tamanho do disco; somente aumentar.

Nota 2: O plugin altera somente o primeiro disco. Mas nos casos que eu precisei dele isso não foi um problema.

Bom, é isso. Se tiver alguma outra forma, plugin que tenha mais funções ou funcione com outros providers, indica aí nos comentários!
Se esse plugin for útil para você assim como foi pra mim, conta aí também.

Como resetar a senha de root do servidor MySQL

Vamos rapidinho para não perder tempo. Você deve ter acesso root ao seu sistema:

Parar o serviço do MySQL:

# systemctl stop mysql

Iniciar o servidor do MySQL sem checagem de permissões:

# mysqld --skip-grant-tables &
# mysql

No prompt do MySQL: mudar a senha (substituindo ‘new-password’ na query pela senha que você deseja):

mysql> UPDATE mysql.user SET Password = PASSWORD('NEW-PASSWORD') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

Parar essa instância do servidor e iniciar no modo normal:

# mysqladmin -u root -p shutdown
# systemctl start mysql

Feito! Fica o recado: É melhor esquecer e ter que resetar a senha de root do que achá-la nos arquivos de alguma aplicação. 🙂

Terraform e DigitalOcean: Infra as code nunca foi tão simples!

Terraform é uma ferramenta multiplataforma para construir, modificar e versionar uma infraestrutura com segurança.
Com ele você escreve um código, numa linguagem declarativa e de fácil compreensão tudo o que você precisa em sua infra.
A ferramenta suporta vários provedores como AWS, DigitalOcean, Google Cloud e etc.
Dependendo do provedor que você usar é possível definir desde as configurações mais low-level (rede, firewall) até as mais high-level (banco de dados, load balancer e etc).

Ao descrever sua infra como código você elimina a necessidade de configurar tudo na mão e documentar toda essa configuração, pois a documentação é o código que você escreve.
Para saber o que será feito, basta rodar “terraform plan”. Para aplicar, “terraform apply” é o caminho.
Isso sem falar sobre as vantagens de ter esse código versionado, e ainda automatizar a atualização da infra num processo de deploy.

Eu estou começando a brincar com Terraform agora, e nesse artigo vamos criar uma infra básica, com duas maquininhas e um load balancer para distribuir a carga entre elas.
Para testar se essa coisa funciona, vamos pedir para o Terraform provisionar essas máquinas com o Apache.

Continue lendo “Terraform e DigitalOcean: Infra as code nunca foi tão simples!”

Usando o instalador automático do PostgreSQL autonomamente no Windows

Eu já precisei instalar o PostgreSQL no Windows, e o instalador não é nada acessível com o leitor de telas.
Daí pra instalar, eu baixava o zip, desempacotava e rodava o initdb, tinha que instalar o serviço na mão, etc e tal.
Se usarmos o instalador ele já resolve todas essas tretas.
Nesse pequeno post vou mostrar como usar o instalador pela linha de comando, sem depender da acessibilidade (ou falta dela) para usá-lo.

Continue lendo “Usando o instalador automático do PostgreSQL autonomamente no Windows”

Usando a biblioteca Respect Validation no Laravel

Por padrão, o Laravel vem com vários validadores. Mas sempre tem aquela aplicação que precisa de uma validação específica, seja CPF, CEP, cartão de crédito e etc.
Nesse pequeno texto vou mostrar como adicionar regras poderosas ao validador do Laravel, usando a biblioteca Respect Validation, a biblioteca de validação mais foda já criada para o PHP.

Continue lendo “Usando a biblioteca Respect Validation no Laravel”