Index of /pt-br/pub/
| Name | Last modified | Size | Description |
|---|---|---|---|
| ../ | - | - | |
| kutta-no-navegador.md | 2026-08-28 14:05 | 4.4K | O Kutta agora roda numa aba, compilado para WebAssembly a partir do mesmo código do desktop. O solver custa 6,1 ms por passo no wasm contra 2,3 ms nativo, e foi isso que decidiu o ritmo da simulação. |
| kutta.md | 2026-08-28 14:05 | 4.4K | Kutta é um pequeno túnel de vento 2D escrito em Go com Ebitengine: escoa um fluxo Lattice-Boltzmann por um aerofólio que você desenha, corta em asa e flap, e anima. Intuição visual qualitativa, não CFD validado. |
| glaze.md | 2026-08-28 14:05 | 6.0K | Como o Glaze deixou de embutir uma lib C++ e passou a chamar a WebView do sistema operacional direto, em Go puro, usando purego para manter cgo e dependências nativas fora do binário. |
| singleflight.md | 2026-08-28 14:05 | 5.6K | singleflight não é cache. Ele só evita que chamadas simultâneas para a mesma chave executem o mesmo trabalho caro várias vezes. Depois que a chamada termina, a entrada é removida. |
| text_chunker.md | 2026-08-28 14:05 | 3.9K | Um text chunker com sobreposição em Go usando o pacote iter da stdlib, sem cortar palavras no meio. |
| cofre-cifrado-em-go.md | 2026-08-28 14:05 | 2.8K | Juntando senha no terminal, criptografia at rest e snapshot do SQLite num cofre que vive na RAM e existe no disco apenas como um blob cifrado. |
| sqlite-na-ram-serialize-deserialize.md | 2026-08-28 14:05 | 2.2K | Rodando o SQLite inteiro na memória e tirando um snapshot dos bytes do próprio banco com serialize/deserialize, no driver modernc.org/sqlite. |
| criptografia-at-rest-com-a-stdlib-go.md | 2026-08-28 14:05 | 3.1K | Cifrando dados at rest só com a biblioteca padrão do Go: PBKDF2 para derivar a chave da senha e AES-256-GCM para cifrar e autenticar. |
| capturando-senhas-no-terminal-go.md | 2026-08-28 14:05 | 1.3K | Lendo senhas no terminal em Go sem eco e com confirmação no primeiro uso, usando golang.org/x/term. |
| neko.md | 2026-08-28 14:05 | 5.6K | Uma reimplementação em Go do velho Neko: janela transparente, sprites clássicos, som e um gato que corre atrás do cursor pela tela. |
| trigger-no-sqlite.md | 2026-08-28 14:05 | 1.0K | triggers no SQLite para automatizar ações como atualizar timestamps |
| get-from-map.md | 2026-08-28 14:05 | 2.4K | Função recursiva em Go para acessar valores em mapas aninhados |
| etc-rc-local.md | 2026-08-28 14:05 | 2.7K | O clássico /etc/rc.local ainda funciona mesmo depois de 40 anos de obsolescência. |
| serve-webdav-with-go.md | 2026-08-28 14:05 | 5.1K | 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. |
| protegendo-credenciais-e-configuracoes-com-conteiner-criptografado.md | 2026-08-28 14:05 | 4.0K | 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-prtica-para-testar-sql.md | 2026-08-28 14:05 | 3.3K | 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. |
| nvim-sort.md | 2026-08-28 14:05 | 2.1K | Funções Lua para ordenar e remover linhas duplicadas no Neovim. |
| nvim-bookmarks.md | 2026-08-28 14:05 | 4.4K | Como criar um sistema de bookmarks em Neovim |
| goscope-explorando-e-navegando-em-projetos-go.md | 2026-08-28 14:05 | 3.9K | 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. |
| executando-comandos-remotos-de-forma-interativa-com-ssh.md | 2026-08-28 14:05 | 2.3K | Como executar comandos em servidores remotos sem iniciar sessões completas, mantendo recursos interativos e simplificando a automação com SSH. |
| tracebacks-em-go.md | 2026-08-28 14:05 | 3.9K | 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. |
| transmissao-de-dados-usando-som-via-telefone-de-copos.md | 2026-08-28 14:05 | 3.9K | Transmissão de dados usando som, dois copos plásticos e um cordão, combinando criatividade, nostalgia e tecnologia. |
| compilacao-estatica-da-lingagem-lua.md | 2026-08-28 14:05 | 1.9K | Como compilar o interpretador Lua de forma estática para evitar problemas com dependências de bibliotecas dinâmicas. |
| encontrando-os-paths-de-executaveis-usando-go.md | 2026-08-28 14:05 | 1.6K | Como usar a função exec.LookPath no Go para verificar se programas estão instalados no sistema e obter seus caminhos completos. |
| checksum-com-golang.md | 2026-08-28 14:05 | 2.0K | 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. |
| mtls-implementando-autenticacao-mutua.md | 2026-08-28 14:05 | 7.8K | 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. |
| hmac-assinatura-de-mensagens-segura-em-go.md | 2026-08-28 14:05 | 2.5K | Autenticação segura em APIs utilizando HMAC (Hash-based Message Authentication Code) em Golang. |
| validacao-e-integracao-segura-de-json-em-apis-go.md | 2026-08-28 14:05 | 4.0K | 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. |
| forkbomb-do-codigo-a-defesa.md | 2026-08-28 14:05 | 6.5K | 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. |
| manipulando-setuid-e-setgid.md | 2026-08-28 14:05 | 2.0K | Como configurar permissões especiais com setuid e setgid para executar programas com privilégios de superusuário |
| reducao-de-privilegios-com-golang.md | 2026-08-28 14:05 | 2.8K | 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. |
| referencias-nos-comentarios-com-golang.md | 2026-08-28 14:05 | 1.8K | Referências em comentários no código Go para facilitar a navegação. |
| efeito-plasma-no-terminal-com-golang.md | 2026-08-28 14:05 | 2.9K | Como criar efeito plasma no terminal com Golang, exemplo do grupo de estudos de Go |
| feliz-2025-com-fogos-de-artificio-no-terminal-com-golang.md | 2026-08-28 14:05 | 5.0K | Como criar uma animação de fogos de artifício no terminal usando Go. |
| reescrevendo-velho-tsr-usando-bash.md | 2026-08-28 14:05 | 5.9K | Exemplo de TSR (Terminate and Stay Resident) do MS-DOS em C reescrito em Bash para sistemas UNIX-like. |
| subindo-api-via-proxy-reverso-caddy-go.md | 2026-08-28 14:05 | 4.4K | Como subir uma API escrita em Go utilizando proxy reverso com o servidor HTTP Caddy. |
| benchmark-retornos-nomeados-vs-explicitos-go.md | 2026-08-28 14:05 | 2.0K | 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-programacao-de-computadores.md | 2026-08-28 14:05 | 2.4K | Escrevendo sobre programação de forma clara e envolvente. |
| personalizando_neovim_ordenacao_e_remocao_de_linhas_duplicadas_com_lua.md | 2026-08-28 14:05 | 2.6K | 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. |
| criando-sistema-de-bookmarks-no-neovim-com-lua.md | 2026-08-28 14:05 | 4.6K | 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. |
| script-rapido-navegacao-diretorios-fzf.md | 2026-08-28 14:05 | 2.9K | Agilizar a navegação entre diretórios com um script Bash e fzf para criar um menu interativo dos últimos locais acessados |
| diminuindo-a-complexidade-cognitiva-na-programacao.md | 2026-08-28 14:05 | 6.3K | Diminuir a complexidade cognitiva é importante para agilizar o trabalho e torná-lo mais agradável. |
| reestruturando-artigos-para-clareza-e-concisao.md | 2026-08-28 14:05 | 1.2K | Aprimorando meus artigos para torná-los mais claros e diretos, para uma leitura mais rápida |
| virus-no-laboratorio.md | 2024-10-25 22:43 | 4.3K | 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. |
| arte-generativa-em-javascript-segunda-parte.md | 2024-09-29 16:24 | 4.1K | 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.md | 2026-08-28 14:05 | 4.8K | 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. |
| computacao-pos-apocaliptica.md | 2026-08-28 14:05 | 3.9K | 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. |
| internet-time.md | 2024-07-10 02:41 | 6.3K | Criando minha propria versão do Swatch Internet Time, mas com um toque pessoal |
| deploy_de_aplicacoes_usando_curl.md | 2026-08-28 14:05 | 4.5K | Como distribuir binários de aplicativos para Linux usando curl e scripts bash. |
| hierarquia-de-processos.md | 2026-08-28 14:05 | 1.6K | Descobrindo a hierarquia de processos. |
| estudando-assembly.md | 2026-08-28 14:05 | 6.9K | Porque estudar assembly é importante e como isso vai te tornar um programador melhor. |
| arquivos-ocultos-no-unix.md | 2026-08-28 14:05 | 1.9K | Um caso clássico de como um bug se tornou uma feature. |
| por-que-meu-site-eh-tao-feio.md | 2026-08-28 14:05 | 4.7K | Os motivos pelos quais o meu site é considerado feio por muitos, mas lindo para mim. |
| programacao-assistida-por-ia.md | 2026-08-28 14:05 | 7.8K | Considerações e dicas sobre uso de IA auxiliando no desenvolvimento de software. |
| escrevendo-software-para-durar.md | 2026-08-28 14:05 | 14.5K | Algumas dicas que considero importantes para escrever software resiliente, que dure por anos e seja fácil de manter. |
| golang-erro-de-arredondamento.md | 2026-08-28 14:05 | 2.4K | 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. |
| golang-retrocompatibilidade.md | 2026-08-28 14:05 | 4.0K | A maioria das linguagens cresce adicionando novos recursos, novas funcionalidades. Go foca em otimizar a base existente com um grande foco na retrocompatibilidade. |
| cpbr14.md | 2024-07-01 23:56 | 483 | Breve introdução, equipamentos e softwares |
| gps-celular-na-raspberry-pi.md | 2022-09-08 02:30 | 2.4K | Como compartilhar o GPS do celular com a Raspberry Pi |
| tr-substituindo-caracteres.md | 2026-08-28 14:05 | 2.3K | O utilitário tr copia os caracteres vindos de stdin e emite uma saída filtrada conforme os parâmetros fornecidos. |
| fmt-formatando-texto.md | 2022-08-27 04:20 | 1.8K | fmt é um formatador de texto simples e rápido. Seu objetivo é formatar arquivos texto ou strings via stdin. |
| golang-cliente-servidor-socket-chat.md | 2026-08-28 14:05 | 3.7K | 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-m1.md | 2022-08-17 01:36 | 3.3K | Iniciando o estudo de assembly com processadores M1/ARM64. |
| golang-cliente-servidor-socket-signals.md | 2026-08-28 14:05 | 2.2K | Adiciona tratamento de sinais no exemplo de cliente/servidor socket TCP. |
| golang-cliente-servidor-socket-ping-pong.md | 2026-08-28 14:05 | 4.3K | 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. |
| golang-cliente-servidor-socket-com-canais-e-goroutines.md | 2026-08-28 14:05 | 4.7K | Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes agora usando goroutines e canais. |
| golang-cliente-servidor-socket.md | 2026-08-28 14:05 | 4.9K | Um exemplo de cliente e servidor socket escrito em Go com conexões persistentes. |
| linux-mais-rapido-menos-seguro.md | 2022-09-09 01:37 | 2.3K | Configurando o grub para mitigations=off. |
| area-de-transferencia-remota.md | 2026-08-28 14:05 | 5.2K | Como copiar para a área de transferência local sem ambiente gráfico no servidor. |
| acelerando-o-site.md | 2022-07-16 19:53 | 3.6K | 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. |
| git-como-estender.md | 2021-10-26 22:09 | 1.4K | Como estender o comando git adicionando seus próprios parâmetros e novas funcionalidades. |
| headless-virtualbox.md | 2021-10-04 15:27 | 5.1K | Como usar VirtualBox no modo Headless configurando máquinas virtuais pela linha de comando. |
| docker-multi-stage-build.md | 2021-06-17 21:48 | 2.0K | 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.md | 2022-09-09 01:37 | 1.2K | Otimizando o consumo de energia elétrica ajustando a frequência da CPU no Linux |
| configurando-novo-servidor.md | 2022-02-12 11:19 | 6.6K | 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.md | 2026-08-28 14:05 | 2.3K | Dicas do utilitário man e mandoc |
| dica-do-comando-find.md | 2022-09-09 01:37 | 1.4K | Como excluir arquivos quando usar o comando find |
| go-http-timeout.md | 2020-10-04 12:50 | 1.4K | Como configurar o tempo padrão para timeout para seu servidor HTTP em Go. |
| go-controle-de-sessao.md | 2020-10-04 12:27 | 6.6K | 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.md | 2020-05-23 10:57 | 3.1K | Como descobrir o ip tanto do cliente como do servidor usando Golang |
| diferencas-entre-slices-e-arrays-golang.md | 2022-09-09 01:37 | 6.7K | Diferenças entre slice e array em Golang e algumas dicas de utilização. |
| problemas-programando-em-golang.md | 2026-08-28 14:05 | 13.9K | Nenhuma linguagem de programação é perfeita e nesse texto tento descrever tudo que pode dar errado usando Golang. |
| golang-shadow-variaveis.md | 2022-09-09 01:37 | 3.6K | Como encontrar shadow de variáveis em golang usando go vet com um modulo experimental |
| primeiros-passos-com-assembly.md | 2026-08-28 14:05 | 6.5K | Montando ambiente de desenvolvimento para programação assembly e primeiro exemplo. |
| web-scraping-com-golang.md | 2020-02-22 20:43 | 4.0K | Exemplo de Web Scraping com Golang e Chrome DevTools Protocol |
| assembly-emulador-8086.md | 2022-09-09 01:37 | 13.9K | Uma brincadeira de criar um emulador parcial que interpreta algumas intruções do 8086 |
| home-office.md | 2022-01-30 09:48 | 12.3K | Algumas coisas da minha experiência trabalhando remoto e dicas para quem quer começar |
| basic-ainda-esta-vivo.md | 2026-08-28 14:05 | 3.1K | Por incrível que pareça ainda existem versões comerciais do BASIC sendo desenvolvidas |
| erro-na-ordem-do-switch.md | 2020-02-22 19:00 | 2.5K | Um erro difícil de depurar usando interfaces e switch case em Golang |
| cobertura-de-testes.md | 2022-09-09 01:37 | 3.6K | Script para visualizar a cobertura de testes unitários em HTML |
| quine-em-golang.md | 2026-08-28 14:05 | 2.4K | Como criar um programa que imprime a si mesmo em Go. |
| postgresql-ssl-golang.md | 2022-09-09 01:37 | 8.5K | Configurando PostgreSQL para conectar usando SSL via Go |
| unix-domain-socket-golang.md | 2026-08-28 14:05 | 4.0K | Como usar Unix Domain Socket para comunicação eficiente e segura entre processos, com exemplos práticos em Go e netcat. |
| json-lint-golang.md | 2020-02-22 20:52 | 3.3K | 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. |
| middleware-em-golang.md | 2020-02-22 20:52 | 5.0K | Como trocar informações entre os middlewares http do seu sistema usando contexto. |
| middleware-usando-negroni.md | 2020-02-22 20:52 | 4.6K | 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. |
| goto-label-em-golang.md | 2026-08-28 14:05 | 3.8K | 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. |
| mensageria-com-nats-e-golang.md | 2020-02-22 20:52 | 1.8K | 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. |
| protobuf-com-golang.md | 2026-08-28 14:05 | 8.2K | Primeiros passos usando Protocol Buffers com golang |
| ssh-usando-chave.md | 2026-08-28 14:05 | 2.6K | Como configurar chaves ssh para acessar seus servidores de forma mais segura |
| json-parser.md | 2020-02-22 20:52 | 3.7K | Tutorial de como ensinar o parser JSON para trabalhar com dados em novos formatos |
| interface-contrato.md | 2026-08-28 14:05 | 3.6K | Dicas de como usar interface em Golang como um contrato para structs |
| proton-vpm.md | 2026-08-28 14:05 | 5.5K | Dicas de como usar VPN no macOS |
| interface-vazia.md | 2022-09-09 01:43 | 6.0K | Dicas de como usar interface vazia e seus riscos |
| json-golang.md | 2020-02-22 20:52 | 8.3K | Tutorial mostrando várias formas de manipular JSON usando funções recursivas e structs |
| apm-msdos-assembly.md | 2026-08-28 14:05 | 5.8K | Pequenos utulitários para reiniciar e fazer shutdown do MS-DOS via APM usando Borland Turbo C e Assembly |
| dropbox-com-golang.md | 2021-06-10 00:19 | 3.4K | Tutorial de como acessar o Dropbox e fazer upload, download e listar os arquivos |
| comandos-longos-no-terminal.md | 2022-09-09 01:37 | 2.0K | Tutorial rápido de como usar um editor de texto para editar linhas de comando no terminal |
| compilacao-estatica-com-golang.md | 2022-09-09 01:37 | 2.4K | Como compilar sem nenhuma dependencia externa seu código Go |
| formas-que-uso-para-acessar-porta-serial.md | 2022-09-09 01:37 | 3.6K | Algumas formas que uso para acessar a porta serial |
| um-conto-de-terror-para-programadores.md | 2026-08-28 14:05 | 2.2K | Uma história real de servidores morrendo, informação sendo destruída para programadores de coração forte |
| go-brincando-com-bits.md | 2026-08-28 14:05 | 3.3K | Como manipular bits usando Golang |
| dicas-de-go-defer.md | 2026-08-28 14:05 | 3.2K | Defer ajuda muito mas também oferece algum risco veja algumas dicas de uso |
| go-previnindo-data-race.md | 2022-09-09 01:37 | 2.7K | Como detectar e prevenir data race com Golang |
| go-carregando-arquivos-sped-fiscal-super-rapido.md | 2020-01-07 15:39 | 4.3K | Apenas uma manha de domingo e fizemos o sistema ganhar 95% de performace na leitura dos arquivos do Sped Fiscal |
| assembly-16bits-nasm-dosbox.md | 2022-09-09 01:37 | 3.3K | Bricando com asm do 8086 no macOS via DOSBox e compialndo com NASM |
| go-percorrendo-diretorios-com-filepath-walk.md | 2026-08-28 14:05 | 1.8K | Com a ajuda do pacote path/filepath é fácil percorrer diretórios e arquivos. |
| go-usando-time-e-canais.md | 2020-01-07 15:39 | 1.7K | Como usar o pacote time e canais para executar uma tarefa a cada X tempo, e aproveitamos para brincar um pouco com o terminal. |
| go-plugins.md | 2026-08-28 14:05 | 2.5K | 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. |
| github-rede-social-do-programador.md | 2020-01-05 19:09 | 3.7K | 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.md | 2026-08-28 14:05 | 2.7K | Exmplicando a diferença entre assembly, assembler e linguagem de maquina |
| zero-configuration-network-no-debian.md | 2026-08-28 14:05 | 1.5K | Uma forma simples de encontrar dispositívos na rede local. |
| tratando-sinais-com-go.md | 2026-08-28 14:05 | 2.9K | Como verificar se o usuário pressionou crtl+c, se mudou o tamanho da janela, ou se enviou um sinal de usuário. |
| usando-diff-e-patch.md | 2026-08-28 14:05 | 2.1K | Criando e aplicando patchs com os comandos diff e patch |
| https-com-golang.md | 2022-09-09 01:37 | 5.5K | Um tutorial bem simples de como usar certificados HTTPS com Go |
| redirect-to-https.md | 2021-06-10 10:13 | 4.7K | Servindo tudo com HTTPS e usando um proxy reverso acessar os serviços. |
| go-strings-aleatorias.md | 2026-08-28 14:05 | 4.1K | Como gerar strings aleatórias seguras e de alta qualidade usando Go. |
| index.xml | - | - | RSS feed |
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.