Artigos e Tutoriais sobre Programação de Computadores
Olá e bem-vindo a minha casa na internet. Aqui falo um pouco sobre mim e sobre meu trabalho como programador, sobre tecnologia e também escrevi alguns artigos e tutoriais que podem ser úteis para pessoas que como eu adoram esse mundo do bit e do transistor. Trabalhar com computadores, além de uma paixão, também é o que paga as contas aqui em casa desde que me conheço por gente. Espero que goste. :wq
Exceto onde indicado de outra forma, o conteúdo deste site é licenciado sob CC BY 4.0
-
Virus no laboratório
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.
-
Programação como Arte
Explorando a arte generativa com programação simples em JavaScript, unindo criatividade e código para enriquecer a experiência do site.
-
Arte generativa em JavaScript para as laterais 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.
-
Computação pós-apocalíptica
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 o próprio sistema para contar o tempo
Criando minha propria versão do Swatch Internet Time, mas com um toque pessoal
-
Deploy de aplicação usando curl
Como distribuir binários de aplicativos para Linux usando curl e scripts bash.
-
ps - hierarquia de processos
Descobrindo a hierarquia de processos.
-
Estudando Assembly
Porque estudar assembly é importante e como isso vai te tornar um programador melhor.
-
Arquivos ocultos no UNIX
Um caso clássico de como um bug se tornou uma feature.
-
Por que meu site é tão feio?
Os motivos pelos quais o meu site é considerado feio por muitos, mas lindo para mim.
-
Programação assistida por IA
Considerações e dicas sobre uso de IA auxiliando no desenvolvimento de software.
-
Escrevendo software para durar
Algumas dicas que considero importantes para escrever software resiliente, que dure por anos e seja fácil de manter.
-
Go e erros de arredondamento
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.
-
Go e a promessa de retrocompatibilidade
A maioria das linguagens cresce adicionando novos recursos, novas funcionalidades. Go foca em otimizar a base existente com um grande foco na retrocompatibilidade.
-
CPBR14, Wardriving
Breve introdução, equipamentos e softwares
-
GPS do celular na Raspberry Pi
Como compartilhar o GPS do celular com a Raspberry Pi
-
tr - Utilitário para substituição de caracteres
O utilitário tr copia os caracteres vindos de stdin e emite uma saída filtrada conforme os parâmetros fornecidos.
-
fmt - Utilitário simples para formatação de textos
fmt é um formatador de texto simples e rápido. Seu objetivo é formatar arquivos texto ou strings via stdin.
-
Cliente e servidor socket em Golang, um exemplo de chat.
Um exemplo de chat (socket TCP/IP) escrito em Go com goroutines e canais, dessa vez com um pouco de otimização para velocidade.
-
Assembly no macOS M1/ARM64.
Iniciando o estudo de assembly com processadores M1/ARM64.
-
Cliente e servidor socket em Golang com tratamento de sinais.
Adiciona tratamento de sinais no exemplo de cliente/servidor socket TCP.
-
Cliente e servidor socket em Golang com ping e pong.
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.
-
Cliente e servidor socket em Golang com goroutines e canais.
Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes agora usando goroutines e canais.
-
Cliente e servidor socket em Golang.
Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes.
-
Torne seu Linux mais inseguro e ligeiramente mais rápido
Configurando o grub para mitigations=off.
-
Area de transferência remota
Como copiar para a área de transferência local sem ambiente gráfico no servidor.
-
Acelerando o Site
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 git
Como estender o comando git adicionando seus próprios parâmetros e novas funcionalidades.
-
Headless VirtualBox
Como usar VirtualBox no modo Headless configurando máquinas virtuais pela linha de comando.
-
Como diminuir o tamanho do container usando multi-stage builds.
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.
-
auto-cpufreq ajustando dinamicamente a frequência da CPU
Otimizando o consumo de energia elétrica ajustando a frequência da CPU no Linux
-
Primeiros passos na configuração de um novo servidor.
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.
-
O manual do UNIX
Dicas do utilitário man e mandoc
-
Dica do comando find
Como excluir arquivos quando usar o comando find
-
Configurando timeout para requisições HTTP em Golang
Como configurar o tempo padrão para timeout para seu servidor HTTP em Go.
-
Controle de sessão em Golang como Gorilla sessions
Como criar um controle de sessão em Golang usando Gorilla sessions e mantendo dados em cookies de forma segura usando criptografia AES-256
-
Descobrindo ip com Golang
Como descobrir o ip tanto do cliente como do servidor usando Golang
-
Diferenças entre slice e array em Go
Diferenças entre slice e array em Golang e algumas dicas de utilização.
-
Os problemas programando em Golang
Nenhuma linguagem de programação é perfeita e nesse texto tento descrever tudo que pode dar errado usando Golang.
-
Shadow de variáveis em Golang
Como encontrar shadow de variáveis em golang usando go vet com um modulo experimental
-
Primeiros passos com assembly
Montando ambiente de desenvolvimento para programação assembly e primeiro exemplo.
-
Web Scraping com Golang
Exemplo de Web Scraping com Golang e Chrome DevTools Protocol
-
Um pequeno emulador da CPU 8086
Uma brincadeira de criar um emulador parcial que interpreta algumas intruções do 8086
-
Home Office, Minha Experiencia Trabalhando em Casa
Algumas coisas da minha experiência trabalhando remoto e dicas para quem quer começar
-
O BASIC ainda esta vivo e chutando
Por incrível que pareça ainda existem versões comerciais do BASIC sendo desenvolvidas
-
Erro difícil com interfaces e switch case em Go
Um erro difícil de depurar usando interfaces e switch case em Golang
-
Cobertura de testes unitários em Go
Script para visualizar a cobertura de testes unitários em HTML
-
Quine implementado em Golang
Como criar um programa que imprime a si mesmo em Go.
-
PostgreSQL via SSL com Golang
Configurando PostgreSQL para conectar usando SSL via Go
-
Unix Domain Socket com Golang
Como usar Unix Domain Socket com Go
-
Um JSON lint em Golang
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.
-
Trafegando dados entre middleware http usando contexto em Golang
Como trocar informações entre os middlewares http do seu sistema usando contexto.
-
Como fazer HTTP middleware em Golang tanto usando Negroni como usando a biblioteca padrão
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.
-
Usando goto e label em Go
goto é um recurso injustiçado e hoje vamos mostrar como usar goto no em Golang.
-
Um sistema de mensageria extremamente rápido com NATS e Golang
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.
-
Protocol Buffers
Primeiros passos usando Protocol Buffers com golang
-
ssh - Usando chaves de acesso
Como configurar chaves ssh para acessar seus servidores de forma mais segura
-
JSON, criando seu próprio Marshal e Unmarshal
Tutorial de como ensinar o parser JSON para trabalhar com dados em novos formatos
-
interface como um contrato
Dicas de como usar interface em Golang como um contrato para structs
-
Usando VPN no macOS
Dicas de como usar VPN no macOS
-
Interface vazia
Dicas de como usar interface vazia e seus riscos
-
JSON Dicas e Truques
Tutorial mostrando várias formas de manipular JSON usando funções recursivas e structs
-
MS-DOS, APM com C e Assembly
Pequenos utulitários para reiniciar e fazer shutdown do MS-DOS via APM usando Borland Turbo C e Assembly
-
Acessando Dropbox com Golang
Tutorial de como acessar o Dropbox e fazer upload, download e listar os arquivos
-
Editar linhas de comando no terminal
Tutorial rápido de como usar um editor de texto para editar linhas de comando no terminal
-
Compilação Estática Com Golang
Como compilar sem nenhuma dependencia externa seu código Go
-
Acessando a porta serial
Algumas formas que uso para acessar a porta serial
-
Um conto de terror para programadores
Uma história real de servidores morrendo, informação sendo destruída para programadores de coração forte
-
Golang brincando com bits
Como manipular bits usando Golang
-
Dicas de Golang defer
Defer ajuda muito mas também oferece algum risco veja algumas dicas de uso
-
Golang previnindo data race
Como detectar e prevenir data race com Golang
-
Golang carregando arquivos Sped Fiscal 95% mais rápido
Apenas uma manha de domingo e fizemos o sistema ganhar 95% de performace na leitura dos arquivos do Sped Fiscal
-
Assembly 16Bits no macOS com NASM e DOSBox
Bricando com asm do 8086 no macOS via DOSBox e compialndo com NASM
-
Golang percorrendo a árvore de diretórios
Com a ajuda do pacote path/filepath é fácil percorrer diretórios e arquivos.
-
go usando time e canais
Como usar o pacote time e canais para executar uma tarefa a cada X tempo, e aproveitamos para brincar um pouco com o terminal.
-
Golang plugins
Como criar e usar plugins em Go
-
GitHub a rede social do programador
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
-
Assembly, assembler e linguagem de maquina
Exmplicando a diferença entre assembly, assembler e linguagem de maquina
-
Zero Configuration Networking
Uma forma simples de encontrar dispositívos na rede local.
-
Tratando sinais com Go
Como verificar se o usuário pressionou crtl+c
-
Usando diff e patch
Criando e aplicando patchs com os comandos diff e patch
-
HTTPS com Golang no Linux
Um tutorial bem simples de como usar certificados HTTPS com Go
-
Redirect para HTTPS e proxy reverso
Servindo tudo com HTTPS e usando um proxy reverso acessar os serviços.
-
String aleatória segura em Golang usando crypto/rand
Gerando strings aleatórias com Golang