▶ Vídeos Ver todos
Tutorial

Opera Browser Lets You Apply Dark Mode to Web Page

por Blog do KDS  –  30 abr 2026

NEW
Comparação visual: Dual Write (problema com inconsistência)       vs Event Sourcing (solução com fila garantindo consistência)



Seu banco de dados foi atualizado, mas o cache não. Agora seus usuários veem dados antigos. Bem-vindo ao problema do Dual Write.

⏱️ Tempo: 4 minutos | 📊 Dificuldade: Médio

❓ O Que É Dual Write?

Dual Write = escrever em dois lugares ao mesmo tempo.

Exemplo: quando você atualiza um usuário no banco de dados, você também escreve no cache Redis. Parece lógico, certo? Errado.

Pseudocódigo (PERIGOSO):

usuario.nome = "João"
db.update(usuario) // Escreve no banco
cache.set(usuario) // Escreve no cache

❌ E se a linha 2 falhar? Cache tem dado novo, DB tem dado velho!

🐛 Por Que Dual Write É Ruim?

1️⃣ Inconsistência de Dados

Se uma das escritas falha, você fica com dados inconsistentes:

Cenário DB Cache Problema
Escreve DB ✓ Novo Velho ❌ Cache erro
Escreve Cache ✓ Velho Novo ❌ DB erro
Ambas falham Velho Velho ✓ OK (mas erro)

2️⃣ Race Conditions

Duas requisições simultâneas = ordem imprevisível:

Requisição A: Escreve saldo = 100
Requisição B: Escreve saldo = 50

Se A escreve no DB primeiro mas B escreve no cache primeiro:
DB = 50, Cache = 100 (inconsistente!)

3️⃣ Impossível de Corrigir

Não há "rollback" automático. Se o DB foi atualizado e o cache falhou, você nunca vai saber.

✅ A Solução Correta: Event Sourcing / Change Data Capture

Não escreva em dois lugares. Escreva em UM e deixe o resto sincronizar.

Abordagem 1: Event Sourcing

1. Escrever apenas no banco de dados
2. DB gera um "evento" (usuário.atualizado)
3. Sistema de filas (RabbitMQ, Kafka) consome o evento
4. Cache é atualizado de forma assíncrona

✓ Se cache falhar, fila retenta automaticamente
✓ Dados sempre consistentes no DB
✓ Cache é apenas um reflexo (pode ser deletado e recriado)

Pseudocódigo (CORRETO):

usuario.nome = "João"

// Escreve APENAS no DB
db.update(usuario) // ✓ Sucesso ou ❌ Erro

// DB gera evento automaticamente
evento = {tipo: "usuario.atualizado", id: 123}
kafka.publish(evento) // Coloca na fila

// BACKGROUND (consumer):
while (true) {
  evento = kafka.consume()
  usuario = db.get(evento.id)
  cache.set(usuario) // Atualiza cache
}

🆚 Dual Write vs Forma Correta

Aspecto Dual Write ❌ Event Sourcing ✓
Consistência Arriscada Garantida
Rollback Impossível Automático (fila)
Auditoria Manual Integrada (eventos)
Escalabilidade Frágil Robusta

⚡ A ÚNICA Exceção: Transação ACID

Se ambas as operações são no MESMO banco de dados (ex: tabela principal + tabela auditoria), você usa transação ACID. Isso não é "dual write", é uma transação única:

BEGIN TRANSACTION
  UPDATE usuarios SET nome='João'
  INSERT INTO auditoria (evento) VALUES ('atualizado')
COMMIT // Tudo ou nada

✓ Seguro porque é transação ACID no mesmo DB

✅ Checklist: É Dual Write Perigoso?

Escrevo em 2+ bancos de dados diferentes?

Escrevo em DB e Cache/Search/Queue?

Não há transação ACID envolvendo ambos?

A ordem das escritas pode variar?

Se marcou sim em qualquer um: Você está usando Dual Write perigoso. Use Event Sourcing.

🎯 Conclusão

Dual Write é a próxima bomba-relógio do seu código. Parece funcionar até o momento em que não funciona mais.

Regra simples:

✓ Escreva em UM lugar (banco de dados)
✓ Deixe eventos sincronizarem o resto
✓ Cache/Search/Queue são cópias (can be recreated)

Última atualização: 1º de junho de 2026
Tags: Arquitetura, Dual Write, Banco de Dados, Cache, Event Sourcing

Dual Write: Por Que Esse Padrão É Perigoso

Leia mais

Memória Virtual no Windows: Redimensionar ou Desativar

Seu disco está cheio por causa da "memória virtual"?

A memória virtual (swap) é um arquivo no disco que funciona como "RAM extra" quando sua memória RAM fica cheia. Às vezes fica MUITO grande e consome espaço desnecessário.

⏱️ Tempo: 5 minutos | 📊 Dificuldade: Muito Fácil

❓ O Que É Memória Virtual?

Simples: Quando sua RAM fica cheia, Windows cria um arquivo no disco (C:\pagefile.sys) que funciona como memória extra. Isso fica MUITO lento, mas funciona.

Ilustração mostrando como memória virtual funciona:       RAM rápida vs disco lento, com pagefile.sys recebendo       dados quando RAM enche


Problema: Este arquivo pode crescer para 5GB, 10GB, 20GB... e consumir seu disco todo.

📊 Passo 1: Verificar Tamanho Atual

1. Abra "Este Computador"

2. Clique direito em "C:" → Propriedades

3. Note o espaço usado vs disponível

4. Se tem um arquivo "pagefile.sys" GIGANTE = problema

💡 Dica: No explorador, ative "Mostrar arquivos ocultos" para ver pagefile.sys

🔧 Passo 2: Redimensionar (Recomendado)

Melhor opção: Deixar memória virtual, mas menor. Segue abaixo:

1. Tecla Windows + Pause (abre Informações do Sistema)

2. Clique "Configurações avançadas do sistema" (esquerda)

3. Aba "Avançado" → Botão "Desempenho" → "Configurações"

4. Aba "Avançado" → Botão "Alterar..." (Virtual Memory)

5. DESMARQUE "Gerenciar automaticamente"

6. Selecione disco C:

7. Escolha "Tamanho personalizado"

8. Tamanho Inicial = RAM × 1.5 | Tamanho Máximo = RAM × 3

9. "Definir" → OK → Reinicie

Exemplo Prático:

RAM Disponível Tamanho Inicial Tamanho Máximo
8 GB 12 GB (8 × 1.5) 24 GB (8 × 3)
16 GB 24 GB (16 × 1.5) 48 GB (16 × 3)
32 GB 48 GB (32 × 1.5) 96 GB (32 × 3)

⚠️ Passo 3: Desativar (Avançado)

Só se você tem RAM SUFICIENTE (16GB+):

1. Mesmos passos acima (até Virtual Memory)

2. Selecione o disco C:

3. Escolha "Sem ficheiro de paginação"

4. Clique "Definir" → OK → Reinicie

⚠️ Aviso: Se desativar e sua RAM ficar cheia, Windows vai TRAVAR e você pode perder trabalho. Só desative se tem RAM suficiente (16GB+).

✅ Checklist

Verifiquei o tamanho atual de pagefile.sys

Abri "Configurações de Memória Virtual"

Defini valores para minha RAM

Cliquei OK e reiniciei

Confirmei que disco está com mais espaço

✓ Pronto! Memória virtual otimizada. Disco liberado.

Última atualização: 30 de maio de 2026
Tags: Windows, Memória Virtual, Disco, Performance

Memória Virtual no Windows: Redimensionar ou Desativar

Leia mais

Tech + Investimentos: Por Que Todo Programador Deveria Aprender a Investir

⚠️ AVISO IMPORTANTE - DISCLAIMER

Este artigo NÃO é uma recomendação de investimento. O objetivo do KDS Blog é educar sobre estratégias de investimento, análise de ações, mercado financeiro e programação de forma descomplicada e educacional.

As informações aqui apresentadas são baseadas em estudos públicos, históricos de dividendos e métodos conhecidos de valuation. Investimentos em ações envolvem riscos, incluindo perda total do capital investido.

Consulte um profissional certificado pela CVM ou um assessor de investimentos antes de tomar decisões financeiras.

Você sabe quem é Décio Bazin, e o que vocês têm em comum?

Ele usa uma formula matemática, dados e código para tomar decisões financeiras. Enquanto a maioria investe no "palpite", eles usam matemática pura.

E aqui está o segredo: Como programador, você TEM A VANTAGEM. Você já pensa em lógica, dados e algoritmos. Aprender a investir não é um hobby — é usar sua profissão a seu favor.

🎯 Neste artigo: Descobrir por que programadores fazem melhor investidores, entender a fórmula de Bazin, usar a calculadora abaixo, e criar sua primeira valuation.

Teste Agora: Calculadora Bazin Online

Use a calculadora abaixo para descobrir o preço justo de uma ação. Insira dados reais e veja o resultado!

Exemplo prático: Calculadora da calculadora

Por Que Programador é Melhor Investidor?

1️⃣ Você Já Pensa em Dados

Enquanto o investidor comum olha para um gráfico e diz "parece que sobe", você analisa: "qual é o padrão nos dados?"

2️⃣ Você Conhece Algoritmos

A matemática financeira é um algoritmo. A formula do Bazin é um algoritmo. Você já está acostumado a seguir lógica pura.

3️⃣ Você Pode Automatizar

Enquanto outros usam Excel manual, você cria um scraper que coleta dados da B3, calcula valuations e envia alertas.

4️⃣ Você Entende Risco

No código, você sabe: "quanto maior o risco, maior o retorno esperado." É a lógica das ações.

💡 A Diferença: Investidor comum investe com emoção. Programador investe com lógica. Quem ganha?

Quem É Décio Bazin?

Décio Bazin é considerado um dos melhores investidores do Brasil, em seu livro no seu livro faça fortuna com ações que seja tarde, Bazin recomenda: 6% pois observou que universalmente esta seria uma taxa fixa aceita na remuneração de ações. Seu segredo? Usar fórmulas simples e repetir 50 anos.

Filosofia de Bazin:

  • ✅ Investir em empresas com dividendos altos
  • ✅ Usar fórmulas matemáticas (não palpite)
  • ✅ Margem de segurança grande (sempre)
  • ✅ Comprar ações de qualidade com desconto
  • ✅ Reinvestir os lucros (juros compostos)

A Fórmula Bazin (Explicada)

Preço Justo = Dividendo Médio ÷ Taxa Mínima Exigida

Entendendo cada termo:

Termo O Que É Exemplo
DM Dividendo Médio R$ 
Divn  Valor médio que a empresa pagou em dividendos, neste exemplo pegamos os últimos 3 anos 3
Segurança Taxa mínima exigida  6%


🎯 Em Linguagem de Programador: É como calcular se o "retorno" da ação (ROE) é melhor que colocar dinheiro em títulos (SELIC). Se sim, vale a pena comprar (com margem de segurança).

Exemplos Reais: Bazin em Ação

Caso 1: Bradesco (BBAS3)

Dados:( (Div1 + Div2 + Div3) ÷ 3 ) ÷ 0,06

Pj =((2,28 + 2,65 + 1,12) ÷ 3 ) ÷ 0,06

PJ = (6,05 ÷ 3 ) ÷ 0,06 

PJ = (2.0166 ) ÷ 0,06 

PJ=  R$ 33,61

Preço Justo (Bazin): R$ 33,61

Preço Atual: R$ 28,50

Resultado: ✅ COMPRA (15% abaixo de desconto vs preço justo)

Bazin usa 6% como taxa mínima de rentabilidade esperada. Se você quer ganhar mais, use uma taxa maior (7%, 8%). Se aceita ganhar menos, use menor (5%).

Caso 2: Comparar com Tesouro Direto

Pergunta: Vale mais a pena comprar essa ação ou deixar no Tesouro Direto (SELIC)?

💰 Tesouro Direto: 6% ao ano (garantido, recomendação Bazin)

📈 Ação com Dividendo Médio (Método Bazin): Dividendos variáveis + potencial de valorização

⚠️ Mas ação tem risco, então precisa estar com desconto de 20-30%

Como Usar a Calculadora (Passo a Passo)

Passo 1: Conseguir os Dados da Ação

Onde buscar:

  • Onde buscar DIVIDENDOS históricos:
  • 📊 Fundamentus.com.br - Histórico de dividendos (últimos 3 anos)
  • 💹 Status Invest - Proventos e dividendos
  • 🏦 Site da Empresa - Relatórios financeiros
  • 📱 B3.com.br - Arquivo de dividendos

Passo 2: Inserir na Calculadora

1. Insira Dividendo Ano 1 (procure no Fundamentus)

2. Insira Dividendo Ano 2

3. Insira Dividendo Ano 3

4. Defina Taxa Mínima (Bazin recomenda 6%)

5. Clique "CALCULAR PREÇO JUSTO"

Implementação em Java (Para Devs)

Quer criar sua própria calculadora? Aqui está o código Java que você pode usar como base:

public class CalculadoraBazin {
    
    /**
     * Método de Décio Bazin
     * Fórmula: Preço Justo = Dividendo Médio / Taxa Mínima
     */
    public double calcularPrecoJusto(double dividendo1, double dividendo2, 
                                     double dividendo3, double taxaMinima) {
        // Calcular dividendo médio dos 3 anos
        double dividendoMedio = (dividendo1 + dividendo2 + dividendo3) / 3;
        
        // Converter taxa de percentual para decimal
        double taxaDecimal = taxaMinima / 100;
        
        // Fórmula CORRIGIDA: Preço Justo = Dividendo Médio / Taxa Mínima
        return dividendoMedio / taxaDecimal;
    }
    
    /**
     * Método auxiliar com array de dividendos
     */
    public double calcularPrecoJusto(double[] dividendos, double taxaMinima) {
        if (dividendos.length != 3) {
            throw new IllegalArgumentException("Precisam ser exatamente 3 anos de dividendos");
        }
        return calcularPrecoJusto(dividendos[0], dividendos[1], dividendos[2], taxaMinima);
    }
    
    /**
     * Exemplo: BBAS3 (Banco do Brasil)
     */
    public static void main(String[] args) {
        CalculadoraBazin bazin = new CalculadoraBazin();
        
        // Dividendos BBAS3: 2023, 2024, 2025
        double precoJusto = bazin.calcularPrecoJusto(2.28, 2.65, 1.12, 6.0);
        
        System.out.println("=== ANÁLISE BAZIN (CORRIGIDA) ===");
        System.out.println("Dividendos: R$ 2.28 + R$ 2.65 + R$ 1.12");
        System.out.println("Dividendo Médio: R$ " + String.format("%.4f", (2.28 + 2.65 + 1.12)/3));
        System.out.println("Taxa Mínima: 6%");
        System.out.println("Preço Justo: R$ " + String.format("%.2f", precoJusto));
        System.out.println("\nPreço Atual: R$ 28.50");
        System.out.println("Desconto: " + String.format("%.1f%%", ((precoJusto - 28.50) / precoJusto) * 100));
    }
}

✅ Checklist: Antes de Comprar Uma Ação (Bazin)

LPA está crescendo (últimos 3 anos)?

Ação está com desconto vs Preço Justo?

Empresa paga dividendos?

Margem de Segurança ≥ 20%?

Tenho dinheiro guardado (não é empréstimo)?

Planejamento é longo prazo (5+ anos)?

✓ Se marcou tudo: Você está pronto para sua primeira compra Bazin!

Conclusão

Ser programador e investidor é uma combinação poderosa.

Você tem lógica, dados e ferramentas. Bazin te deu a fórmula. Agora é executar:

  1. Aprenda a usar a calculadora (passe por alguns exemplos)
  2. Crie uma versão em Java/Python para seus projetos
  3. Faça sua análise de 3 a  5 ações que você conhece
  4. Compare com o preço atual (Fundamentus)
  5. Comece com uma compra pequena (teste a estratégia)

Você não está investindo em ações. Você está resolvendo um problema matemático. E você já é bom nisso.

Última atualização: 28 de maio de 2026
Autor: KDS Blog - Tech + Investimentos
Tags: Bazin, Valuation, Investimentos, Python, Java, Calculadora

Tech + Investimentos: Por Que Todo Programador Deveria Aprender a Investir

Leia mais

Fastboot no Xiaomi e Redmi — coelho Android em modo manutenção com celular em modo Fastboot. Guia prático do Blog do KDS

Seu Xiaomi/Redmi ficou preso no Fastboot? Ou quer flashear uma ROM nova?

Fastboot é um modo especial que permite controlar seu celular pelo computador. Neste guia você aprenderá tudo de forma rápida e segura.

⏱️ Tempo de leitura: 5 minutos | 📊 Dificuldade: Média

❓ O Que É Fastboot?

Fastboot = "inicialização rápida". É um modo especial do seu celular que permite comunicação direta com o computador SEM inicializar o Android.

Serve para:

  • ✅ Flashear ROM nova (MIUI/HyperOS)
  • ✅ Restaurar sistema travado
  • ✅ Desbloquear bootloader
  • ✅ Salvar dados em brick
  • ✅ Reverter para versão anterior

💡 Resumindo: É a ferramenta que técnicos usam quando o celular "morre" ou precisa de mudanças profundas.

🚀 Como Entrar no Fastboot (3 Passos)

Passo 1: Desligue o celular completamente

Passo 2: Mantenha pressionado: Botão Energia + Diminuir Volume

Passo 3: Aguarde aparecer "FASTBOOT" (texto laranja) ou coelhinho

✓ PRONTO! Você está no Fastboot. Solte os botões.

Como Reconhecer o Fastboot

Versão MIUI Visual
MIUI 13+ Texto FASTBOOT (laranja)
MIUI 12.5 e anterior Coelhinho com gorro (consertando)

⬅️ Como Sair do Fastboot

Se Entrou Acidentalmente

Opção 1 (FÁCIL): Pressione Botão Energia por 7-10 segundos (apaga) → Espere 2s → Pressione Energia novamente (liga)

Se Ficar Preso

Opção 2 (Recovery):

1. Pressione Energia + Aumentar Volume (Recovery)

2. Navegue: Reboot → Reboot to System

3. Confirme com Botão Energia

⚠️ AVISO: Opção 2 apaga TODOS os dados. Só use se Opção 1 não funcionar.

💾 Como Flashear ROM Via Fastboot (5 Passos)

Pré-requisitos: Computador + Cabo USB original + Mi Flash Pro

📥 Passo 1: Baixar Arquivos

• ROM Fastboot (do seu modelo exato) em site oficial

• Extrair em pasta (SEM caracteres especiais, SEM acentos)

• Mi Flash Pro instalado

⚙️ Passo 2: Conectar

• Entrar no Fastboot (Energia + Diminuir Volume)

• Conectar no computador com cabo original

🖥️ Passo 3: Abrir Mi Flash Pro

• Ir aba "Mi Flash"

• Botão "Select" → Escolher pasta da ROM

• Botão "Refresh" (detecta celular)

✅ Passo 4: Escolher Opção

• Save user data: Mantém suas fotos/documentos (recomendado)

• Clean all: Apaga tudo (mais seguro)

▶️ Passo 5: Flashear

• Botão "Flash" e aguardar 5-10 minutos

• Celular reinicia automaticamente

✓ Pronto! ROM instalada. Primeira inicialização pode ser lenta (normal).

🐛 "PC Não Reconhece Celular" - Soluções

Se vir waiting for device fastboot no Mi Flash:

Problema Solução
Cabo danificado Use cabo ORIGINAL. Cabos baratos = erro
Drivers ADB faltando Instale drivers ADB oficiais + reinicie PC
Depuração USB desativada Ative em Configurações → Desenvolvedor
Bootloader bloqueado Desbloqueie bootloader antes

✅ Checklist de Segurança

Bateria do celular acima de 50%

Usando cabo USB ORIGINAL

ROM correta para meu modelo

Drivers ADB instalados no PC

Não desconectar celular durante flash

Bootloader desbloqueado

Depuração USB ativada

✓ Se marcou tudo: Você está pronto para flashear com segurança!

🎯 Conclusão

Fastboot não é complicado, apenas requer atenção ao detalhe.

Próximos passos:

  1. Cumpra o checklist de segurança acima
  2. Baixe a ROM correta para seu modelo
  3. Instale Mi Flash Pro
  4. Siga os 5 passos de flashear
  5. Aguarde reiniciar (5-10 min)

💪 Você consegue! Fastboot é seguro quando feito com cuidado.

Última atualização: 25 de maio de 2026
Autor: KDS Blog
Tags: Xiaomi, Redmi, POCO, Fastboot, Tutorial

Fastboot no Xiaomi/Redmi: O Que É e Como Usar [Guia Prático]

Leia mais

Mais lidos esta semana

Mais Lidos

Ver ranking
4 de 20 posts

✓ Todos os posts foram carregados