Index of /pub/
| Name | Last modified | Size | Description |
|---|---|---|---|
| ../ | - | - | |
| kutta-no-navegador.md | 2026-08-28 14:05 | 4.3K | Kutta now runs in a browser tab, compiled to WebAssembly from the same source as the desktop build. A solver step costs 6.1 ms under wasm against 2.3 ms native, and that number decided the simulation rate. |
| kutta.md | 2026-08-28 14:05 | 4.2K | Kutta is a small 2D wind tunnel written in Go with Ebitengine: it streams a Lattice-Boltzmann flow past an airfoil you can draw, cut into a wing and flap, and animate. Qualitative visual intuition, not validated CFD. |
| glaze.md | 2026-08-28 14:05 | 6.2K | How Glaze stopped embedding a C++ library and started calling the operating system's WebView directly, in pure Go, using purego to keep cgo and native dependencies out of the binary. |
| singleflight.md | 2026-08-28 14:05 | 5.6K | singleflight is not a cache. It just keeps simultaneous calls for the same key from doing the same expensive work several times. Once the call finishes, the entry is removed. |
| text_chunker.md | 2026-08-28 14:05 | 3.9K | An overlapping text chunker in Go using the stdlib iter package, without cutting words in half. |
| cofre-cifrado-em-go.md | 2026-08-28 14:05 | 2.8K | Combining terminal password input, encryption at rest, and a SQLite snapshot into a vault that lives in RAM and exists on disk only as an encrypted blob. |
| sqlite-na-ram-serialize-deserialize.md | 2026-08-28 14:05 | 2.2K | Running SQLite entirely in memory and taking a snapshot of the database bytes with serialize/deserialize, using the modernc.org/sqlite driver. |
| criptografia-at-rest-com-a-stdlib-go.md | 2026-08-28 14:05 | 3.2K | Encrypting data at rest with nothing but Go's standard library: PBKDF2 to derive the key from the password and AES-256-GCM to encrypt and authenticate. |
| capturando-senhas-no-terminal-go.md | 2026-08-28 14:05 | 1.3K | Reading passwords in the terminal in Go without echo and with confirmation on first use, using golang.org/x/term. |
| neko.md | 2026-08-28 14:05 | 5.3K | A Go reimplementation of the classic Neko: transparent window, original sprites, sound, and a cat that chases the cursor across the screen. |
| trigger-no-sqlite.md | 2026-08-28 14:05 | 1007 | SQLite triggers to automate actions like updating timestamps |
| get-from-map.md | 2026-08-28 14:05 | 2.3K | Recursive Go function to access values in nested maps |
| etc-rc-local.md | 2026-08-28 14:05 | 2.5K | The classic /etc/rc.local still works even after 40 years of obsolescence. |
| serve-webdav-with-go.md | 2026-08-28 14:05 | 4.7K | How to configure and run an SFTP/WebDAV server using Go (sftpdav). Check out practical examples, security tips, and how to leverage standard libraries for building robust and efficient solutions. |
| protegendo-credenciais-e-configuracoes-com-conteiner-criptografado.md | 2026-08-28 14:05 | 3.9K | Create and manage an encrypted container to securely protect passwords, keys, and other sensitive data in a practical way without sacrificing performance |
| lqs-uma-ferramenta-prtica-para-testar-sql.md | 2026-08-28 14:05 | 3.1K | LQS: a practical tool for testing and debugging SQL. It allows integrating metadata, Lua scripts, and auxiliary queries to optimize your workflow and detect errors early. |
| nvim-sort.md | 2026-08-28 14:05 | 2.0K | Lua functions for sorting and removing duplicate lines in Neovim. |
| nvim-bookmarks.md | 2026-08-28 14:05 | 4.2K | How to create a bookmark system in Neovim |
| goscope-explorando-e-navegando-em-projetos-go.md | 2026-08-28 14:05 | 3.7K | GoScope, command-line tools to explore Go projects and efficiently locate functions, variables, and types. Learn how to use them to navigate code interactively and boost your productivity. |
| executando-comandos-remotos-de-forma-interativa-com-ssh.md | 2026-08-28 14:05 | 2.1K | How to run commands on remote servers without starting full sessions, keeping interactive features and simplifying automation with SSH. |
| tracebacks-em-go.md | 2026-08-28 14:05 | 3.6K | How to get stack traces in Go with runtime.Caller and runtime.CallersFrames. Trace errors, customize logs, and improve your code's debugging. |
| transmissao-de-dados-usando-som-via-telefone-de-copos.md | 2026-08-28 14:05 | 3.6K | Transmitting data with sound, two plastic cups, and a string, combining creativity, nostalgia, and technology. |
| compilacao-estatica-da-lingagem-lua.md | 2026-08-28 14:05 | 1.7K | How to statically compile the Lua interpreter to avoid problems with dynamic library dependencies. |
| encontrando-os-paths-de-executaveis-usando-go.md | 2026-08-28 14:05 | 1.5K | How to use Go's exec.LookPath function to check whether programs are installed on the system and get their full paths. |
| checksum-com-golang.md | 2026-08-28 14:05 | 1.9K | How to use the FNV-1a algorithm with hash pools in Go, reducing garbage collector pressure without compromising performance. |
| mtls-implementando-autenticacao-mutua.md | 2026-08-28 14:05 | 7.5K | Mutual authentication with mTLS in Go, step by step. This guide covers certificate creation, server and client configuration, and security best practices to protect your applications. |
| hmac-assinatura-de-mensagens-segura-em-go.md | 2026-08-28 14:05 | 2.4K | Secure API authentication using HMAC (Hash-based Message Authentication Code) in Golang. |
| validacao-e-integracao-segura-de-json-em-apis-go.md | 2026-08-28 14:05 | 3.9K | How to safely validate and integrate JSON in Go APIs using json.RawMessage. And how to log invalid JSON errors while keeping the system's normal flow running. |
| forkbomb-do-codigo-a-defesa.md | 2026-08-28 14:05 | 6.1K | What a fork bomb is, how it works with examples in bash, C, and assembly, and the best practices to prevent this kind of DoS attack on modern systems. |
| manipulando-setuid-e-setgid.md | 2026-08-28 14:05 | 1.9K | How to configure special permissions with setuid and setgid to run programs with superuser privileges |
| reducao-de-privilegios-com-golang.md | 2026-08-28 14:05 | 2.5K | How to improve the security of Go programs by dropping execution privileges. Learn how to check and change users and groups on UNIX-like systems, with practical code examples and good practices to minimize attack risks. |
| referencias-nos-comentarios-com-golang.md | 2026-08-28 14:05 | 1.7K | References in Go code comments to make navigation easier. |
| efeito-plasma-no-terminal-com-golang.md | 2026-08-28 14:05 | 2.8K | How to create a plasma effect in the terminal with Golang, an example from the Go study group |
| feliz-2025-com-fogos-de-artificio-no-terminal-com-golang.md | 2026-08-28 14:05 | 4.8K | How to create a fireworks animation in the terminal using Go. |
| reescrevendo-velho-tsr-usando-bash.md | 2026-08-28 14:05 | 5.5K | An MS-DOS TSR (Terminate and Stay Resident) example written in C, rewritten in Bash for UNIX-like systems. |
| subindo-api-via-proxy-reverso-caddy-go.md | 2026-08-28 14:05 | 4.1K | How to deploy an API written in Go behind a reverse proxy with the Caddy HTTP server. |
| benchmark-retornos-nomeados-vs-explicitos-go.md | 2026-08-28 14:05 | 1.9K | Performance comparison between named and explicit returns in Go. Learn how to measure speed with benchmarks and interpret the results. |
| escrevendo-sobre-programacao-de-computadores.md | 2026-08-28 14:05 | 2.3K | Writing about programming in a clear and engaging way. |
| personalizando_neovim_ordenacao_e_remocao_de_linhas_duplicadas_com_lua.md | 2026-08-28 14:05 | 2.5K | Lua functions for sorting lines and removing duplicates. Improve how your code is organized and make your programming workflow more efficient. |
| criando-sistema-de-bookmarks-no-neovim-com-lua.md | 2026-08-28 14:05 | 4.4K | Learn how to build a bookmark system in Neovim using Lua to speed up your workflow. This article shows how to customize the editor to mark and quickly jump back to important spots in your code. |
| script-rapido-navegacao-diretorios-fzf.md | 2026-08-28 14:05 | 2.8K | Speed up directory navigation with a Bash script and fzf that builds an interactive menu of recently visited locations |
| diminuindo-a-complexidade-cognitiva-na-programacao.md | 2026-08-28 14:05 | 5.9K | Reducing cognitive complexity matters because it speeds up your work and makes it more enjoyable. |
| reestruturando-artigos-para-clareza-e-concisao.md | 2026-08-28 14:05 | 1.1K | Improving my articles to make them clearer and more direct, for a faster read |
| virus-no-laboratorio.md | 2024-10-25 22:43 | 4.0K | How a VBA macro virus slowed down a pharmaceutical lab, and why it pays to analyze a problem before investing in complex solutions. |
| arte-generativa-em-javascript-segunda-parte.md | 2024-09-29 16:24 | 3.8K | Exploring generative art with simple JavaScript programming, bringing creativity and code together to enrich the site experience. |
| arte-generativa-em-javascript.md | 2026-08-28 14:05 | 4.6K | I added a bit of JavaScript to create generative art and make use of the side margins of the site that go unused when the screen is very wide. |
| computacao-pos-apocaliptica.md | 2026-08-28 14:05 | 3.7K | In this text I propose an interesting exercise: how to preserve some of humanity's knowledge after a catastrophe of apocalyptic proportions. |
| internet-time.md | 2024-07-10 02:41 | 6.1K | Creating my own version of Swatch Internet Time, but with a personal twist |
| deploy_de_aplicacoes_usando_curl.md | 2026-08-28 14:05 | 4.1K | How to distribute Linux application binaries using curl and bash scripts. |
| hierarquia-de-processos.md | 2026-08-28 14:05 | 1.6K | Discovering the process hierarchy. |
| estudando-assembly.md | 2026-08-28 14:05 | 6.3K | Why studying assembly matters and how it will make you a better programmer. |
| arquivos-ocultos-no-unix.md | 2026-08-28 14:05 | 1.7K | A classic case of how a bug became a feature. |
| por-que-meu-site-eh-tao-feio.md | 2026-08-28 14:05 | 4.5K | The reasons why my site is considered ugly by many, but beautiful to me. |
| programacao-assistida-por-ia.md | 2026-08-28 14:05 | 7.3K | Thoughts and tips on using AI to help with software development. |
| escrevendo-software-para-durar.md | 2026-08-28 14:05 | 13.6K | A few tips I consider important for writing resilient software that lasts for years and is easy to maintain. |
| golang-retrocompatibilidade.md | 2026-08-28 14:05 | 3.7K | Most languages grow by adding new features and new capabilities. Go focuses on optimizing its existing foundation with a strong emphasis on backward compatibility. |
| golang-erro-de-arredondamento.md | 2026-08-28 14:05 | 2.3K | Errors when converting from floating point to integer are common, and this isn't a problem specific to Go. This is a classic example of that problem. |
| cpbr14.md | 2024-07-01 23:56 | 476 | A brief introduction, equipment, and software |
| gps-celular-na-raspberry-pi.md | 2022-09-08 02:30 | 2.3K | How to share your phone's GPS with the Raspberry Pi |
| tr-substituindo-caracteres.md | 2026-08-28 14:05 | 2.1K | The tr utility copies characters coming from stdin and emits filtered output according to the parameters you provide. |
| fmt-formatando-texto.md | 2022-08-27 04:20 | 1.7K | fmt is a simple, fast text formatter. Its purpose is to format text files or strings received via stdin. |
| golang-cliente-servidor-socket-chat.md | 2026-08-28 14:05 | 3.6K | A chat example (TCP/IP socket) written in Go with goroutines and channels, this time with a bit of optimization for speed. |
| assembly-m1.md | 2022-08-17 01:36 | 3.2K | Getting started with assembly on M1/ARM64 processors. |
| golang-cliente-servidor-socket-signals.md | 2026-08-28 14:05 | 2.1K | Adds signal handling to the TCP socket client/server example. |
| golang-cliente-servidor-socket-ping-pong.md | 2026-08-28 14:05 | 4.2K | An example of a socket client and server written in Go with persistent connections, now sending and receiving ping/pong messages to make sure the connection is alive. |
| golang-cliente-servidor-socket-com-canais-e-goroutines.md | 2026-08-28 14:05 | 4.6K | An example of a socket client and server written in Go with persistent connections, now using goroutines and channels. |
| golang-cliente-servidor-socket.md | 2026-08-28 14:05 | 4.8K | An example of a socket client and server written in Go with persistent connections. |
| linux-mais-rapido-menos-seguro.md | 2022-09-09 01:37 | 2.1K | Setting up grub for mitigations=off. |
| area-de-transferencia-remota.md | 2026-08-28 14:05 | 4.9K | How to copy to the local clipboard from a headless server with no graphical environment. |
| acelerando-o-site.md | 2022-07-16 19:53 | 3.5K | Embedding images and CSS directly into the HTML to avoid extra browser requests and speed up the web page. |
| git-como-estender.md | 2021-10-26 22:09 | 1.3K | How to extend the git command by adding your own parameters and new features. |
| headless-virtualbox.md | 2021-10-04 15:27 | 5.0K | How to use VirtualBox in headless mode, configuring virtual machines from the command line. |
| docker-multi-stage-build.md | 2021-06-17 21:48 | 1.9K | Because Golang produces static, self-contained executables, we don't need anything installed in the container, not even libc. That means we can use a scratch image and build a truly tiny container. |
| auto-cpufreq.md | 2022-09-09 01:37 | 1.1K | Optimizing power consumption by adjusting CPU frequency on Linux |
| configurando-novo-servidor.md | 2022-02-12 11:19 | 6.1K | A practical guide to the setup steps I usually run when I bring up a new server, whether it's a cloud machine, a local VM, or even a Raspberry Pi. |
| o-manual-do-unix.md | 2026-08-28 14:05 | 2.1K | Tips on the man and mandoc utilities |
| dica-do-comando-find.md | 2022-09-09 01:37 | 1.3K | How to exclude files when using the find command |
| go-http-timeout.md | 2020-10-04 12:50 | 1.3K | How to configure default timeouts for your HTTP server in Go. |
| go-controle-de-sessao.md | 2020-10-04 12:27 | 5.9K | How to build session control in Golang using Gorilla sessions, keeping data in cookies securely with AES-256 encryption |
| descobrindo-ip-com-golang.md | 2020-05-23 10:57 | 3.0K | How to find the client's and server's IP using Golang |
| diferencas-entre-slices-e-arrays-golang.md | 2022-09-09 01:37 | 6.4K | Differences between slice and array in Go, and a few usage tips. |
| problemas-programando-em-golang.md | 2026-08-28 14:05 | 13.4K | No programming language is perfect, and in this text I try to describe everything that can go wrong using Golang. |
| golang-shadow-variaveis.md | 2022-09-09 01:37 | 3.4K | How to find variable shadowing in Golang using go vet with an experimental module |
| primeiros-passos-com-assembly.md | 2026-08-28 14:05 | 6.1K | Setting up a development environment for assembly programming, plus a first example. |
| web-scraping-com-golang.md | 2020-02-22 20:43 | 3.9K | Web scraping example with Golang and the Chrome DevTools Protocol |
| assembly-emulador-8086.md | 2022-09-09 01:37 | 13.6K | Messing around with a partial emulator that interprets a few 8086 instructions |
| home-office.md | 2022-01-30 09:48 | 11.0K | Some notes from my experience working remotely and tips for anyone getting started |
| basic-ainda-esta-vivo.md | 2026-08-28 14:05 | 3.0K | Believe it or not, commercial BASIC versions are still being developed |
| erro-na-ordem-do-switch.md | 2020-02-22 19:00 | 2.4K | A hard-to-debug bug involving interfaces and switch cases in Golang |
| cobertura-de-testes.md | 2022-09-09 01:37 | 3.1K | A script for viewing unit test coverage as HTML |
| quine-em-golang.md | 2026-08-28 14:05 | 2.3K | How to write a program that prints itself in Go. |
| postgresql-ssl-golang.md | 2022-09-09 01:37 | 8.4K | Configuring PostgreSQL to accept SSL connections from Go |
| unix-domain-socket-golang.md | 2026-08-28 14:05 | 3.9K | How to use Unix Domain Sockets for efficient and secure inter-process communication, with practical examples in Go and netcat. |
| json-lint-golang.md | 2020-02-22 20:52 | 3.2K | We use the error returned by json.Unmarshal to build a more useful and complete error message, pointing at the exact spot with an arrow and everything. |
| middleware-em-golang.md | 2020-02-22 20:52 | 4.9K | How to share information between the HTTP middleware in your system using context. |
| middleware-usando-negroni.md | 2020-02-22 20:52 | 4.5K | Examples of how to build middleware for your HTTP services, using the standard library and also the classic Negroni plus Gorilla mux combination. |
| goto-label-em-golang.md | 2026-08-28 14:05 | 3.7K | How to use goto and labels in Go with practical examples. How to apply break and continue safely and clearly, following good programming practices. |
| mensageria-com-nats-e-golang.md | 2020-02-22 20:52 | 1.7K | NATS is a messaging system written in Go, very fast and easy to use. It connects systems, whether IoT, mobile applications, or anywhere you need high performance when exchanging messages. |
| protobuf-com-golang.md | 2026-08-28 14:05 | 7.9K | First steps using Protocol Buffers with Go |
| ssh-usando-chave.md | 2026-08-28 14:05 | 2.5K | How to set up SSH keys to access your servers more securely |
| json-parser.md | 2020-02-22 20:52 | 3.5K | How to teach the JSON parser to work with data in new formats |
| interface-contrato.md | 2026-08-28 14:05 | 3.4K | Tips on using interfaces in Go as a contract for structs |
| proton-vpm.md | 2026-08-28 14:05 | 5.1K | Tips on how to use a VPN on macOS |
| interface-vazia.md | 2022-09-09 01:43 | 5.7K | Tips on how to use the empty interface and the risks that come with it |
| json-golang.md | 2020-02-22 20:52 | 7.9K | Tutorial showing several ways to handle JSON using recursive functions and structs |
| apm-msdos-assembly.md | 2026-08-28 14:05 | 5.6K | Small utilities to reboot and shut down MS-DOS via APM using Borland Turbo C and Assembly |
| dropbox-com-golang.md | 2021-06-10 00:19 | 3.2K | A tutorial on how to access Dropbox and upload, download, and list files |
| comandos-longos-no-terminal.md | 2022-09-09 01:37 | 1.8K | A quick tutorial on using a text editor to edit command lines in the terminal |
| compilacao-estatica-com-golang.md | 2022-09-09 01:37 | 2.1K | How to compile your Go code without any external dependencies |
| formas-que-uso-para-acessar-porta-serial.md | 2022-09-09 01:37 | 3.4K | Some of the ways I use to access the serial port |
| um-conto-de-terror-para-programadores.md | 2026-08-28 14:05 | 2.1K | A true story of dying servers and destroyed information, for programmers with strong hearts |
| go-brincando-com-bits.md | 2026-08-28 14:05 | 3.2K | How to manipulate bits using Golang |
| dicas-de-go-defer.md | 2026-08-28 14:05 | 3.1K | Defer helps a lot, but it also carries some risk. Here are a few usage tips |
| assembly-assembler-e-linguagem-de-maquina.md | 2026-08-28 14:05 | 2.5K | Explaining the difference between assembly, assembler, and machine language |
| index.xml | - | - | RSS feed |
The best way for me to remember something I learned is to write an article or a tutorial about it. More than once I searched for something on Google and found a text of my own, which says a lot about my memory.