Páginas

quarta-feira, fevereiro 25, 2026

ChartDB: diagramas de banco (ERD) em segundos

ChartDB: diagramas de banco (ERD) em segundos — online ou self-hosted com Docker 🚀

A dica de hoje é uma ferramenta que costuma economizar horas quando você precisa entender, documentar ou evoluir um esquema de banco: ChartDB.

O que é o ChartDB?

O ChartDB é um editor web open-source para diagramas de esquema de banco (ERD/relacionamentos). A ideia é simples e poderosa: você importa o schema (muitas vezes com uma única query “inteligente”), visualiza as tabelas/relacionamentos, ajusta o diagrama e exporta quando precisar.

Opção 1: testar online (zero instalação) 🌐

Quer só validar a ferramenta rapidinho? Vai no site e testa no navegador: https://www.chartdb.io. É ótimo para:

  • entender um banco legado antes de mexer nele;
  • gerar um diagrama pra documentação;
  • explicar o modelo pro time (ou pro “eu do futuro” 😄).

Opção 2: rodar na sua infraestrutura (self-hosted) com Docker 🐳

Se você trabalha com dados sensíveis, rede restrita, ou simplesmente quer controle total, dá pra subir o ChartDB localmente com Docker em poucos segundos.

🚦 “Quero rodar AGORA” (sem IA)

Para as funcionalidades sem IA, você não precisa de API key. Basta subir o container e acessar no navegador:

docker run -p 8080:80 ghcr.io/chartdb/chartdb:latest

Depois abra: http://localhost:8080

🤖 “Quero IA também” (opcional)

O ChartDB tem recursos com IA (por exemplo, assistente/geração/ajuda em exportações). Para isso, você configura uma chave (ou um endpoint/modelo custom, dependendo do seu setup). Um jeito bem direto é via variável de ambiente:

docker run -e OPENAI_API_KEY=YOUR_OPEN_AI_KEY -p 8080:80 ghcr.io/chartdb/chartdb:latest
Dica de sala de aula: se você só quer diagramar/importar/exportar sem recursos de IA, não coloque a chave. Assim você evita dependências desnecessárias e mantém o setup mais “seco” e previsível.

🕵️ Extra: desabilitar analytics (se você preferir)

Se a sua política interna pede o mínimo de telemetria possível, existe opção de desabilitar analytics via env:

docker run -e DISABLE_ANALYTICS=true -p 8080:80 ghcr.io/chartdb/chartdb:latest

Quando eu usaria isso na vida real?

  • Onboarding de dev/analista novo: “tá aqui o mapa do banco”.
  • Refactor com segurança: enxergar dependências antes de renomear/migrar tabelas.
  • Documentação viva: diagrama + export gerando base pro seu ADR/README.
  • Discussões de arquitetura: o time fala melhor olhando o desenho do que só lendo DDL.

Fechando (e a lição de casa 😄)

Se você nunca testou uma ferramenta de ERD “rápida”, faz assim:

  1. abre o ChartDB online e brinca 10 minutos;
  2. depois sobe com Docker local pra ver como fica no seu ambiente;
  3. por fim, decide se vale habilitar IA (só quando fizer sentido).


Referências: chartdb.io · github.com/chartdb/chartdb

domingo, fevereiro 22, 2026

📊 Prompt para Análise e Reverse-Engineering de Dashboard



Se você usa IA no Cursor (ou qualquer editor com copilots) para criar interfaces, já deve ter percebido um problema clássico: a IA até descreve a tela… mas mistura explicação com estrutura, perde consistência e vira um “texto bonito” difícil de implementar.

Para criar os exemplos de interfaces você pode usar o Google Stitch - Design with AI.

A solução é simples e poderosa: escrever um prompt que força uma análise de UI/UX como um handoff real de designer → dev, com saída em JSONC (estrutura previsível, fácil de evoluir e versionar).


🎯 O objetivo

  • “Reverse-engineering” do dashboard a partir de um screenshot
  • Descrever layout, componentes, hierarquia e interação
  • Cobrir light mode e dark mode
  • Definir responsividade com breakpoints padrão do Tailwind
  • Extrair paletas e design tokens sem exagerar nos detalhes
  • Gerar um brief final para implementação (sem entrar em “stack”)

✅ Resultado: você ganha um “contrato de UI” que pode ser iterado, comparado no Git, reaproveitado como base de design system e usado para gerar componentes com muito menos retrabalho.

🧠 Por que JSONC é melhor do que só Markdown?

Markdown é ótimo para explicar, mas ruim para estruturar. Quando o objetivo é construir UI com precisão, você quer uma saída que seja:

  • Previsível (sempre no mesmo formato)
  • Parsável (dá pra transformar em config, schema, DSL, etc.)
  • Iterável (diferenças aparecem claramente em diff no Git)

O ideal é o formato híbrido: Markdown para instruções + JSONC como saída + um prompt final em bloco de código.


🧩 O prompt (no Gist)

Eu deixei o prompt completo pronto para copiar e colar no Cursor. Basta acessar o Gist pelo link abaixo:

🔗 Abrir o prompt no GitHub Gist

💡 Dica: no Cursor, cole o prompt e peça: “analise esta imagem e gere a saída em JSONC”. Depois, reaproveite os tokens para criar uma base de design system.

🚀 Como usar (fluxo recomendado)

  1. Anexe o screenshot do dashboard para a IA
  2. Rode o prompt e gere o JSONC
  3. Revise tokens/paletas e normalize nomes (primary/secondary/grays)
  4. Use o “prompt final para dev” (gerado pela IA) para guiar a implementação
  5. Itere: peça alterações específicas e compare mudanças no diff

✨ Bônus: evoluindo para uma DSL de UI

Se você criar muitos dashboards parecidos, vale considerar uma DSL de UI (uma linguagem declarativa para descrever telas). O JSONC que esse prompt produz já pode ser o primeiro passo: um contrato estruturado que vira “config de tela” e pode alimentar um renderizador, um builder visual ou templates padronizados.


sexta-feira, fevereiro 06, 2026

Como Resolver o Erro de Certificado SSL no Git


Se você trabalha em redes corporativas e tentou rodar um pip install ou git clone, provavelmente encontrou este erro frustrante:

O Problema

fatal: unable to access '...': schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325)

Por que isso acontece?

Esse erro ocorre porque o Git (usando o SChannel do Windows) tenta validar o certificado SSL do servidor GitLab interno. Em intranets, é comum o uso de certificados autoassinados ou emitidos por uma CA (Autoridade Certificadora) interna que não está na lista de "raízes confiáveis" do seu sistema operacional.

Como o Windows não consegue garantir que o servidor é quem diz ser, ele bloqueia a conexão para te proteger.

Como Resolver

Solução 1: Variável de Ambiente (Recomendado para uso pontual)

A forma mais rápida no PowerShell, sem precisar alterar configurações globais do Git:

$env:GIT_SSL_NO_VERIFY=$true
pip install git+https://gitlab.intranet.br

Solução 2: Configuração Global do Git

Para não precisar digitar o comando acima toda vez:

git config --global http.sslVerify false

Solução 3: Mudar o Backend de Segurança

Às vezes, forçar o Git a usar o OpenSSL resolve problemas de integração com o Windows:

git config --global http.sslBackend openssl

Dica de Segurança: Embora desativar o SSL facilite o trabalho interno, lembre-se de reativá-lo ao trabalhar com repositórios públicos na internet para garantir sua segurança.

terça-feira, fevereiro 03, 2026

GitLab: Merge do main no seu branch

🔀✅ Fazer Merge do main no seu branch (sem reescrever histórico)

Se alguém acabou de fazer merge no main no GitLab e você está trabalhando em outro branch, o caminho mais simples e seguro é: trazer o main atualizado para dentro do seu branch usando merge.

✅ Por que essa opção é “mais simples”?
  • 📌 Não reescreve histórico (nada de --force)
  • 🤝 Melhor para trabalho em equipe
  • 🧯 Menor risco de confusão e perdas

🧭 Quando usar o merge do main no seu branch?

  • 🚧 Você ainda está desenvolvendo e quer evitar conflitos grandes depois
  • 🧪 Você quer garantir que seu branch funciona com o main mais recente
  • 📦 Você vai abrir/atualizar um Merge Request no GitLab

🛠️ Passo a passo (comandos Git)

1) Verifique seu estado atual 🧩
git status
⚠️ Se tiver alterações não commitadas:
  • ✅ Recomendado: faça commit (mesmo WIP)
  • 🧳 Alternativa: use stash
git add .
git commit -m "WIP: salvando trabalho"
git stash -u
2) Atualize o main local ⬇️
git fetch origin
git checkout main
git pull origin main
3) Volte para seu branch e faça merge do main 🔀
git checkout feature/seu-branch
git merge main
4) Resolva conflitos (se aparecerem) 🧯

Se o Git parar e indicar conflitos:

  1. 🔎 Abra os arquivos marcados como conflito
  2. ✍️ Escolha o conteúdo correto e remova os marcadores <<<<<<< / ======= / >>>>>>>
  3. ✅ Marque como resolvido e finalize
git add .
git commit -m "Merge main no meu branch"
5) Envie seu branch atualizado para o GitLab 🚀
git push
💡 Dica esperta: depois do merge, rode seus testes/local server antes do MR:
python manage.py test
# ou seu comando de testes/lint

✅ Vantagens vs ⚠️ Desvantagens

📌 Comparativo rápido

✅ Vantagens

  • 🧾 Histórico preservado (sem reescrever commits)
  • 🤝 Menos risco em equipe
  • 🚫 Não precisa push --force

⚠️ Desvantagens

  • 🌀 Pode criar commits de merge extras
  • 📚 Histórico pode ficar menos “linear”

🧷 FAQ rápido

❓ “Eu preciso fazer isso sempre?”
Não sempre — mas é recomendado antes de abrir/atualizar MR ou quando o main mudou bastante.

❓ “E se eu não quiser mexer agora?”
Você pode continuar no seu branch, mas o ideal é integrar o main cedo para evitar conflitos maiores depois.

✅ TL;DR (roteiro rápido)
git fetch origin
git checkout maingit pull origin main
git checkout feature/seu-branchgit merge main
git push

✍️ Post prático para equipes: Merge do main no branch sem reescrever histórico (ideal quando você não quer usar rebase/force push).