/images/avatar.webp

Elói Carneiro

Tailscale: uma VPN ágil para conectar máquinas e acelerar o trabalho

Interligar máquinas de uma rede doméstica, um notebook e um servidor remoto normalmente envolve endereços IP, encaminhamento de portas, firewall e alguma forma de autenticação. Quando a necessidade é apenas acessar os equipamentos com segurança, montar essa estrutura manualmente pode consumir mais tempo do que o problema realmente exige.

O Tailscale simplifica esse trabalho ao criar uma rede privada baseada em WireGuard. Depois que os dispositivos entram na mesma tailnet, consigo acessá-los por nomes e endereços privados, sem precisar expor cada serviço diretamente na internet. Essa agilidade ajuda tanto no desenvolvimento quanto na operação de aplicações em servidores próprios.

Ruff: lint e formatação para escrever Python com mais consistência

Em um projeto Python, parte do tempo é consumida por problemas que não estão na ideia principal da aplicação. Imports que sobraram, variáveis que nunca são usadas, condições difíceis de entender e diferenças de formatação aparecem aos poucos e tornam a revisão mais cansativa.

O Ruff reúne lint e formatação em uma ferramenta rápida. Ele analisa o código sem executá-lo, aponta problemas que podem esconder bugs e aplica um padrão visual consistente. Quando habilito as regras adequadas, também consigo antecipar alguns padrões de código que representam risco de segurança.

Firefox: privacidade, segurança e as extensões que uso

O navegador é uma das aplicações que mais observa a nossa rotina. Ele acompanha os sites acessados, recebe cookies, executa código de terceiros e se tornou a porta de entrada para boa parte dos serviços que usamos todos os dias. Por isso, não escolho um navegador apenas pela velocidade ou pela quantidade de recursos.

No meu computador, o Firefox é a base para navegar com mais controle sobre esse ambiente. Ele já oferece proteções importantes, e as extensões que mantenho instaladas resolvem problemas específicos sem transformar o navegador em uma coleção difícil de manter. Nesta configuração estão o Container proxy, o Firefox Multi-Account Containers, o Privacy Badger, o TWP - Translate Web Pages e o uBlock Origin.

Tailwind CSS: criando interfaces com mais liberdade visual

Quando comecei a criar interfaces para aplicações web, o Bootstrap ajudou bastante. Ele oferece componentes prontos, uma grade conhecida e estilos que permitem colocar um sistema ou formulário no ar rapidamente.

Com o tempo, porém, também senti falta de mais liberdade para criar interfaces com uma identidade visual própria. Muitas telas acabavam seguindo o mesmo padrão de botões, cards e espaçamentos. Foi nesse ponto que o Tailwind CSS passou a chamar minha atenção.

VS Code: extensões, temas e perfis para trabalhar com menos peso

Um editor pode começar leve e terminar carregado de extensões para todas as linguagens, frameworks e tipos de projeto que já passaram pela máquina. O problema aparece quando cada janela tenta ativar tudo ao mesmo tempo: a inicialização fica mais lenta, os processos usam mais memória e encontrar a ferramenta certa se torna mais difícil.

O Visual Studio Code oferece recursos para evitar esse acúmulo. Além das extensões, posso escolher temas, atalhos e configurações, mas o recurso que mais ajuda a organizar o ambiente são os perfis. Cada perfil pode manter seu próprio conjunto de extensões e configurações, deixando o editor mais adequado para a tarefa atual.

HTMX no Django: Ajax com menos JavaScript

Em muitos projetos Django, a maior parte da aplicação já está resolvida pelo servidor: o Django recebe a requisição, executa a regra de negócio e devolve HTML renderizado. Mesmo assim, algumas telas precisam atualizar uma parte da página sem recarregar tudo.

Tradicionalmente, eu resolveria isso escrevendo JavaScript para capturar eventos, montar uma requisição Ajax, interpretar a resposta e alterar o DOM. Funciona, mas pode gerar bastante código para uma interação simples.

Flatpak: aplicativos isolados para uma instalação Linux mais simples

Durante muito tempo, instalar um programa no Linux significava procurar o pacote correto para a distribuição, resolver dependências e acompanhar o que seria alterado no sistema. Na maioria das vezes isso funciona bem, mas algumas instalações acabam envolvendo muitos pacotes e podem deixar conflitos difíceis de entender.

Hoje prefiro manter uma instalação Linux mais reduzida e simplificada. Quando preciso de um aplicativo, uma das primeiras opções que considero é instalá-lo por Flatpak. A ferramenta não resolve todos os problemas de software, mas torna a instalação de muitos aplicativos mais previsível e diminui a quantidade de componentes que preciso adicionar diretamente à base da distribuição.

ThinkPad: robustez e manutenção para um notebook de trabalho

Um notebook de trabalho não precisa ser apenas fino ou ter a configuração mais nova. Ele precisa continuar confortável, confiável e possível de manter depois de alguns anos de uso. É por isso que os ThinkPads permanecem interessantes para quem passa muitas horas digitando, administrando sistemas ou desenvolvendo software.

Não considero todos os modelos iguais. As gerações mudam, componentes podem ser soldados e a construção varia entre as linhas. Ainda assim, existe uma filosofia recorrente: priorizar teclado, estrutura, ergonomia, conectividade e manutenção em vez de transformar tudo em uma peça descartável.

Obsidian: meu segundo cérebro para organizar ideias e estudos

Com o tempo, acumulei muitas informações que não queria perder: anotações de estudo, ideias para projetos, comandos que precisei consultar novamente e registros de coisas que aprendi trabalhando. O problema não era apenas guardar esses dados, mas conseguir encontrá-los quando precisasse.

Foi nesse contexto que o Obsidian passou a fazer parte da minha rotina. Eu uso o programa para organizar minhas informações e meus estudos em arquivos que posso consultar e conectar de diferentes maneiras. Para mim, ele funciona como um segundo cérebro: não substitui meu raciocínio, mas evita que eu precise guardar tudo na memória.

Snapper: snapshots e recuperação controlada no Linux

Atualizações são necessárias, mas nem sempre produzem o resultado esperado. Um pacote pode mudar uma configuração, uma dependência pode alterar o comportamento de um serviço ou uma atualização do sistema pode revelar um problema apenas depois da reinicialização.

É nesse momento que o Snapper se torna uma ferramenta muito útil. Ele administra snapshots, especialmente em sistemas de arquivos Btrfs, e cria uma forma organizada de acompanhar estados do sistema antes e depois de mudanças.