Seu Mouse é um Banco de Dados: Fluxos de Dados Assíncronos e Rx

2025-04-10

Este artigo explora o uso do Rx (Reactive Extensions) para lidar com fluxos de dados assíncronos. O autor argumenta que aplicativos web e móveis modernos dependem muito de fluxos de dados assíncronos e em tempo real, e o Rx fornece uma maneira elegante de coordenar e orquestrar esses fluxos. Comparando tecnologias de banco de dados tradicionais com o Rx, o artigo explica como o Rx trata computações assíncronas como cidadãos de primeira classe e usa uma API fluente para composição e transformação eficientes de fluxos de dados. Finalmente, o autor demonstra o poder do Rx com um exemplo simples de autocompletar Ajax e menciona brevemente a relação do Rx com Monads.

Leia mais
Desenvolvimento

50 anos de segurança da cadeia de suprimentos de software de código aberto: De Multics ao ataque xz

2025-04-07

Este artigo explora os desafios da segurança da cadeia de suprimentos de software de código aberto nas últimas cinco décadas. De potenciais backdoors identificados em uma avaliação de segurança do Multics de 1974 ao ataque de backdoor da biblioteca de compressão xz de 2024, o problema persiste. Russ Cox, desenvolvedor central da linguagem de programação Go, utiliza sua experiência pessoal e exemplos do setor para discutir as definições de ataques e vulnerabilidades da cadeia de suprimentos de software, a complexidade das cadeias de suprimentos de software e métodos para fortalecer as defesas. Isso inclui autenticação de software, compilações reprodutíveis, descoberta e correção rápidas de vulnerabilidades e estratégias de prevenção de vulnerabilidades. O artigo destaca a falta de financiamento para software de código aberto, deixando os projetos vulneráveis a atores maliciosos, ilustrado pelo ataque xz. Por fim, o autor apela para um aumento de financiamento e melhores práticas de segurança em código aberto para enfrentar as ameaças em evolução.

Leia mais
Tecnologia Vulnerabilidades

Práticas de Correção de Sistemas na AWS: Aproveitando Métodos Formais e Semi-Formais

2025-04-01

A Amazon Web Services (AWS) busca fornecer serviços confiáveis ​​nos quais os clientes podem confiar completamente. Isso exige a manutenção dos mais altos padrões de segurança, durabilidade, integridade e disponibilidade — com a correção de sistemas servindo como a pedra angular para alcançar essas prioridades. Inicialmente, a AWS utilizou a linguagem TLA+ para modelar sistemas críticos, identificando e eliminando bugs sutis precocemente. Com o crescimento, a AWS introduziu a linguagem de programação P, mais amigável para desenvolvedores, para modelar e analisar sistemas distribuídos, crucial para migrações como a da Amazon S3 para forte consistência. Métodos leves, como testes baseados em propriedades, simulação determinística e fuzzing, também são amplamente utilizados. A AWS também lançou o FIS (Fault Injection Service) para aumentar a resiliência. Para limites de segurança críticos, a AWS utiliza provas formais, como no desenvolvimento de Cedar e Firecracker. Essa abordagem garante confiabilidade e otimização de desempenho, reduzindo custos.

Leia mais