A melhor maneira de lembrar de alguma coisa que aprendi é escrever um artigo ou um tutorial. Várias vezes eu procurei alguma coisa no Google e acabei encontrando um texto meu, o que diz muito sobre a minha memória.
Além disso programar computadores é uma paixão antiga para mim. Algo que eu realmente gosto de fazer não importando a linguagem de programação, o sistema operacional é sempre fascinante o que podemos fazer mesmo com os computadores mais modestos.
O clássico /etc/rc.local ainda funciona mesmo depois de 40 anos de obsolescência.
Como configurar e executar um servidor SFTP / WebDAV usando Go (sftpdav). Veja exemplos práticos, dicas de segurança e aproveite as bibliotecas padrão para criar soluções robustas e eficientes.
Criar e gerenciar um contêiner criptografado para proteger senhas, chaves e outros dados confidenciais de forma prática e segura, sem sacrificar desempenho
LQS: uma ferramenta prática para testar e depurar SQL. Permite integrar metadados, scripts Lua e consultas auxiliares para otimizar seu fluxo de trabalho e detectar erros antecipadamente.
Funções Lua para ordenar e remover linhas duplicadas no Neovim.
Como criar um sistema de bookmarks em Neovim
GoScope, ferramentas de linha de comando para explorar projetos Go, localizar funções, variáveis e tipos com eficiência. Aprenda como usá-las para navegar no código de forma interativa e otimizar sua produtividade.
Como executar comandos em servidores remotos sem iniciar sessões completas, mantendo recursos interativos e simplificando a automação com SSH.
Como obter stack traces em Go com runtime.Caller e runtime.CallersFrames. Rastreie erros, personalizar logs e melhorar a depuração do seu código.
Transmissão de dados usando som, dois copos plásticos e um cordão, combinando criatividade, nostalgia e tecnologia.
Como compilar o interpretador Lua de forma estática para evitar problemas com dependências de bibliotecas dinâmicas.
Como usar a função exec.LookPath no Go para verificar se programas estão instalados no sistema e obter seus caminhos completos.
Como usar o algoritmo FNV-1a com pools de hash em Go, reduzindo a pressão sobre o garbage collector e sem comprometer a performance.
Autenticação mútua com mTLS em Go passo a passo. Este guia cobre criação de certificados, configuração de servidor e cliente, e melhores práticas de segurança para proteger suas aplicações.
Autenticação segura em APIs utilizando HMAC (Hash-based Message Authentication Code) em Golang.
Como validar e integrar JSON de forma segura em APIs Go usando json.RawMessage. E como registrar erros de JSON inválido nos logs enquanto mantém o fluxo normal do sistema.
O que é uma fork bomb, como ela funciona com exemplos em bash, C e assembly, e conheça as melhores práticas para prevenir esse tipo de ataque DoS em sistemas modernos.
Como configurar permissões especiais com setuid e setgid para executar programas com privilégios de superusuário
Como aumentar a segurança de programas Golang reduzindo privilégios de execução. Descubra como verificar e alterar usuários e grupos em sistemas UNIX-like com exemplos práticos de código e boas práticas para minimizar os riscos de ataques.
Referências em comentários no código Go para facilitar a navegação.
Como criar efeito plasma no terminal com Golang, exemplo do grupo de estudos de Go
Como criar uma animação de fogos de artifício no terminal usando Go.
Exemplo de TSR (Terminate and Stay Resident) do MS-DOS em C reescrito em Bash para sistemas UNIX-like.
Como subir uma API escrita em Go utilizando proxy reverso com o servidor HTTP Caddy.
Comparação de desempenho entre retornos nomeados e retornos explícitos em Go. Descubra como medir a velocidade com benchmarks e interpretar os resultados.
Escrevendo sobre programação de forma clara e envolvente.
Funções em Lua para ordenar linhas e remover duplicatas. Melhore a organização do seu código e aumente a eficiência no seu fluxo de trabalho de programação.
Aprenda a criar um sistema de bookmarks no Neovim usando Lua para agilizar seu fluxo de trabalho. Este artigo mostra como personalizar o editor para marcar e acessar rapidamente pontos importantes no código.
Agilizar a navegação entre diretórios com um script Bash e fzf para criar um menu interativo dos últimos locais acessados
Diminuir a complexidade cognitiva é importante para agilizar o trabalho e torná-lo mais agradável.
Aprimorando meus artigos para torná-los mais claros e diretos, para uma leitura mais rápida
Como um vírus de macro VBA causou lentidão em um laboratório farmacêutico e a importância de analisar problemas antes de investir em soluções complexas.
Explorando a arte generativa com programação simples em JavaScript, unindo criatividade e código para enriquecer a experiência do site.
Adicionei pequeno código para criar arte generativa em JavaScript e aproveitar as laterais do site que não são usadas quando a tela é muito larga.
Neste texto proponho um exercício interessante, como preservar um pouco do conhecimento da humanidade depois de uma catástrofe de proporções apocalípticas.
Criando minha propria versão do Swatch Internet Time, mas com um toque pessoal
Como distribuir binários de aplicativos para Linux usando curl e scripts bash.
Descobrindo a hierarquia de processos.
Porque estudar assembly é importante e como isso vai te tornar um programador melhor.
Um caso clássico de como um bug se tornou uma feature.
Os motivos pelos quais o meu site é considerado feio por muitos, mas lindo para mim.
Considerações e dicas sobre uso de IA auxiliando no desenvolvimento de software.
Algumas dicas que considero importantes para escrever software resiliente, que dure por anos e seja fácil de manter.
A maioria das linguagens cresce adicionando novos recursos, novas funcionalidades. Go foca em otimizar a base existente com um grande foco na retrocompatibilidade.
Erros quando se converte de ponto flutuante para inteiro são comuns e não é um problema apenas do Go. Este é um exemplo clássico desse problema.
Breve introdução, equipamentos e softwares
Como compartilhar o GPS do celular com a Raspberry Pi
O utilitário tr copia os caracteres vindos de stdin e emite uma saída filtrada conforme os parâmetros fornecidos.
fmt é um formatador de texto simples e rápido. Seu objetivo é formatar arquivos texto ou strings via stdin.
Um exemplo de chat (socket TCP/IP) escrito em Go com goroutines e canais, dessa vez com um pouco de otimização para velocidade.
Iniciando o estudo de assembly com processadores M1/ARM64.
Adiciona tratamento de sinais no exemplo de cliente/servidor socket TCP.
Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes agora enviando e recebendo mensagens de ping/pong para garantir que a conexão esta ativa.
Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes agora usando goroutines e canais.
Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes.
Configurando o grub para mitigations=off.
Como copiar para a área de transferência local sem ambiente gráfico no servidor.
Inserindo imagens e CSS diretamente no HTML para evitar que o navegador faça mais de uma requisição e assim acelerando a página web.
Como estender o comando git adicionando seus próprios parâmetros e novas funcionalidades.
Como usar VirtualBox no modo Headless configurando máquinas virtuais pela linha de comando.
Como Golang cria executáveis estaticos/monolíticos não precisamos de nada instalado no container, nem mesmo a libc, ou seja podemos usar imagem scratch e criar um container realmente pequeno.
Otimizando o consumo de energia elétrica ajustando a frequência da CPU no Linux
Um guia prático com as etapas de configuração que costumo executar quando subo um novo servidor, seja numa máquina na nuvem, uma VM local ou mesmo uma Raspberry Pi.
Dicas do utilitário man e mandoc
Como excluir arquivos quando usar o comando find
Como configurar o tempo padrão para timeout para seu servidor HTTP em Go.
Como criar um controle de sessão em Golang usando Gorilla sessions e mantendo dados em cookies de forma segura usando criptografia AES-256
Como descobrir o ip tanto do cliente como do servidor usando Golang
Diferenças entre slice e array em Golang e algumas dicas de utilização.
Nenhuma linguagem de programação é perfeita e nesse texto tento descrever tudo que pode dar errado usando Golang.
Como encontrar shadow de variáveis em golang usando go vet com um modulo experimental
Montando ambiente de desenvolvimento para programação assembly e primeiro exemplo.
Exemplo de Web Scraping com Golang e Chrome DevTools Protocol
Uma brincadeira de criar um emulador parcial que interpreta algumas intruções do 8086
Algumas coisas da minha experiência trabalhando remoto e dicas para quem quer começar
Por incrível que pareça ainda existem versões comerciais do BASIC sendo desenvolvidas
Um erro difícil de depurar usando interfaces e switch case em Golang
Script para visualizar a cobertura de testes unitários em HTML
Como criar um programa que imprime a si mesmo em Go.
Configurando PostgreSQL para conectar usando SSL via Go
Como usar Unix Domain Socket para comunicação eficiente e segura entre processos, com exemplos práticos em Go e netcat.
Usamos o retorno de erro do json.Unmarshal para gerar uma mensagem de erro mais útil e completa com direito a indicar o erro com uma setinha e tudo.
Como trocar informações entre os middlewares http do seu sistema usando contexto.
Exempos de como criar middleware para seus serviços HTTP mostrando exemplos com a bilioteca padrão e também com a dobradinha Negroni e Gorilla mux.
Como usar goto e labels em Go com exemplos práticos. Como aplicar break e continue de forma segura e clara, seguindo boas práticas de programação.
NATS é um sistema de mensagens escrito em Go, muito rápido e fácil de usar. Usado para conectar sistemas, seja IoT seja aplicações mobile ou onde precisar de grande desempenho na troca de mensagens.
Primeiros passos usando Protocol Buffers com golang
Como configurar chaves ssh para acessar seus servidores de forma mais segura
Tutorial de como ensinar o parser JSON para trabalhar com dados em novos formatos
Dicas de como usar interface em Golang como um contrato para structs
Dicas de como usar VPN no macOS
Dicas de como usar interface vazia e seus riscos
Tutorial mostrando várias formas de manipular JSON usando funções recursivas e structs
Pequenos utulitários para reiniciar e fazer shutdown do MS-DOS via APM usando Borland Turbo C e Assembly
Tutorial de como acessar o Dropbox e fazer upload, download e listar os arquivos
Tutorial rápido de como usar um editor de texto para editar linhas de comando no terminal
Como compilar sem nenhuma dependencia externa seu código Go
Algumas formas que uso para acessar a porta serial
Uma história real de servidores morrendo, informação sendo destruída para programadores de coração forte
Como manipular bits usando Golang
Defer ajuda muito mas também oferece algum risco veja algumas dicas de uso
Como detectar e prevenir data race com Golang
Apenas uma manha de domingo e fizemos o sistema ganhar 95% de performace na leitura dos arquivos do Sped Fiscal
Bricando com asm do 8086 no macOS via DOSBox e compialndo com NASM
Com a ajuda do pacote path/filepath é fácil percorrer diretórios e arquivos.
Como usar o pacote time e canais para executar uma tarefa a cada X tempo, e aproveitamos para brincar um pouco com o terminal.
Plugins em Go: vantagens para carregamento dinâmico de módulos, limitações como suporte restrito a plataformas, dependência do CGO e impossibilidade de descarregar. Inclui exemplos práticos de criação e uso.
Melhor para seu currículo que LinkedIn, muito mais focado que Twitter ou Facebook e uma chance de mostrar o seu código para o mundo e não apenas falar sobre ele :D
Exmplicando a diferença entre assembly, assembler e linguagem de maquina
Uma forma simples de encontrar dispositívos na rede local.
Como verificar se o usuário pressionou crtl+c, se mudou o tamanho da janela, ou se enviou um sinal de usuário.
Criando e aplicando patchs com os comandos diff e patch
Um tutorial bem simples de como usar certificados HTTPS com Go
Servindo tudo com HTTPS e usando um proxy reverso acessar os serviços.
Como gerar strings aleatórias seguras e de alta qualidade usando Go.