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”

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”

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 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”

Trait no PHP – Onde e quando usar

Em março de 2012 Foi lançado o PHP 5.4 e com ele veio um recurso chamado trait.
Agora, em 2019, isso não é novo, mas eu vejo esse recurso sendo muito pouco usado e até pouco tempo não tinha muita ideia de como usá-lo, então resolvi escrever esse artigo para demonstrar o uso que faço desse bom recurso.

Continue lendo “Trait no PHP – Onde e quando usar”

HTTPie – Protocolo HTTP na linha de comando sem complicação

Interface gráfica é legal, complementos que ajudam a interagir com o protocolo HTTP por baixo dos panos direto do navegador são muito bons.
Mas eu prefiro a linha de comando, escrevo o que quero e espero obter o que quero também, simples e fácil, na hora, numa interface que nunca muda.

Até ontem usava o cURL quando queria interagir com HTTP na linha de comando,
mas quase sempre com uma colinha com as opções do lado; Depois de 3 dias sem usar não sabia mais as opções dele. 🙂

Aí achei este post que fala sobre o HTTPie, uma ferramenta para linha de comando escrita em Python que se propõe a deixar a interação com o HTTP o mais humano possível.
O programa não tem muitas opções, mas por meio de uns poucos “operadores” é possível fazer tudo o que se deseja.

Continue lendo “HTTPie – Protocolo HTTP na linha de comando sem complicação”