lsof Desmistificado: Revelando os Arquivos Abertos de um Processo

2025-06-06

Este trecho de código usa o comando `lsof -p $(echo $$)` para listar todos os arquivos abertos do processo zsh atual. A saída revela detalhes como ID do processo, usuário, tipo de descritor de arquivo, dispositivo, tamanho e caminho, fornecendo uma imagem clara das interações do processo com o sistema de arquivos. Isso é inestimável para entender o comportamento do processo e depurar vazamentos de manipulação de arquivos.

Leia mais
Desenvolvimento descritores de arquivo

Autenticação baseada em cookies no Axum: De extratores para middleware

2025-06-05

Este artigo explora duas abordagens para implementar autenticação de usuário baseada em cookies no framework Rust Axum. Inicialmente, o autor demonstra o uso de um extrator personalizado, `CookieJwt`, para recuperar tokens JWT de solicitações, renderizando condicionalmente um botão 'Perfil' ou 'Login' com base na validade do JWT. No entanto, essa abordagem se mostra menos limpa e escalável para cenários de autenticação complexos. O artigo então refatora a solução usando middleware Axum, fornecendo uma abordagem mais limpa, reutilizável e flexível para lidar com a lógica de autenticação. Este middleware valida eficientemente JWTs, gerencia tokens de atualização e lida com vários tipos de solicitação, resultando em um sistema de autenticação de usuário mais robusto e adaptável. O autor detalha a implementação do middleware, destacando suas vantagens em relação à abordagem baseada em extrator.

Leia mais
Desenvolvimento

Por que você deve abandonar os construtores de consultas e abraçar o SQL puro

2025-01-25

Este artigo defende a escrita de consultas de banco de dados diretamente em SQL em vez de depender de construtores de consultas. Por meio de vários exemplos, o autor demonstra como os recursos do SQL (como `IS NULL`, `COALESCE`, `ARRAY_REMOVE`, `STRING_TO_ARRAY`) manipulam elegantemente parâmetros opcionais, matrizes, paginação e atualizações em lote, reduzindo a lógica complexa do Rust. Essa abordagem simplifica o código, melhora a legibilidade e a capacidade de teste e permite testes e depuração mais fáceis do banco de dados. O autor argumenta que o SQL puro geralmente é mais limpo e eficiente do que padrões complexos de construtor.

Leia mais
Desenvolvimento Consultas de banco de dados