Postagens

Mostrando postagens de 2023

Postagem em destaque

Assinando arquivos PDF com certificado digital em Go

Imagem
Desenvolver uma solução para assinar PDFs com certificado digital (PFX) em Go se mostrou um desafio considerável, apesar do escopo inicial parecer simples. Após a conclusão, a implementação aparenta ser direta (são apenas 180 linhas), mas o processo exigiu várias iterações e entendimento detalhado sobre as limitações das ferramentas e bibliotecas disponíveis. A primeira abordagem consistiu em tentar, de forma monolítica, ler o PDF, aplicar o carimbo visual e assinar digitalmente em uma única etapa. No entanto, surgiram diversos entraves — em especial, a perda da assinatura digital após a inserção do carimbo, e erros decorrentes da manipulação do documento. Adicionalmente, muitas soluções baseadas em IA indicavam bibliotecas pagas ou APIs externas, ou ainda métodos inexistentes nas bibliotecas, tornando a busca por alternativas viáveis um processo repetitivo e pouco produtivo. O fluxo mais robusto — e funcional — consolidou-se apenas após dividir o processo em etapas claras, conforme ob...

A incrível velocidade do Go

Imagem
Um dos motivos que gosto do Go (a linguagem de programação, não o jogo), é que ele é extremamente rápido. E não estou falando de utilizar goroutines pois aí é covardia. Estamos migrando um sistema de Coldfusion para Go e PHP e uma das rotinas insere um registro no banco de dados no início e outra no fim do processo. Pense como se fosse um log, mas um log específico para essa rotina. Dessa forma: 2023-05-18 17:45:03. 687     ... [processaImagem] Incorporando imagem 2023-05-18 17:45:03. 688     ... [processaImagem] Imagem incorporada Entre o inicio e o final do processamento levou 1ms. Até aí, tudo bem, se não fosse o fato dessa tabela ter o campo timestamp como parte da chave primária. Se reparar, o tempo é definido em milissegundos. Com o Coldfusion esse processo dura cerca de 20ms. Simplesmente migrando para Go, o tempo caiu muito, para menos de 1ms e assim, começou a dar erro de chave duplicada. A solução? Depende, sempre depende. No nosso contexto, a ma...

ABS (Arquitetura do Bom Senso): A Importância do Bom Senso na Arquitetura de Software

Durante as últimas semanas acompanhei algumas discussões sobre arquitetura de software e clean code. Por isso resolvi escrever esse artigo. A arquitetura de software é fundamental no desenvolvimento de sistemas de alta qualidade e desempenho. É responsável por definir a estrutura e organização do código-fonte, as interações entre os diferentes componentes e as diretrizes para garantir a escalabilidade, manutenibilidade e extensibilidade do sistema. No entanto, além de técnicas e padrões estabelecidos, existe um fator crucial que muitas vezes é negligenciado: o bom senso. Neste artigo, exploraremos a importância do bom senso na arquitetura de software, apresentando a ideia da ABS (Arquitetura do Bom Senso) e como ela pode impactar positivamente os projetos de desenvolvimento. O que é a ABS (Arquitetura do Bom Senso)? A ABS (Arquitetura do Bom Senso) é uma abordagem que destaca a importância de aplicar o bom senso durante o processo de arquitetura de software. Ela reconhece que as melhor...

Atual Momento da IA: ChatGPT

A inteligência artificial é um tema que vem ganhando cada vez mais espaço na nossa sociedade e tem a capacidade de mudar a forma como vivemos e trabalhamos. Atualmente, estamos testemunhando um marco na evolução da IA, com modelos como o ChatGPT liderando o caminho. O ChatGPT é um modelo de linguagem de ponta desenvolvido pela OpenAI. Ele foi treinado em milhões de páginas da web e possui uma incrível capacidade de compreender e gerar texto natural. Isso significa que ele pode responder a perguntas, escrever textos e até mesmo criar conversas com humanos, sem que eles percebam a diferença. O sucesso do ChatGPT é resultado de anos de pesquisa e desenvolvimento, e ele está mudando a forma como vemos a inteligência artificial. Antes, modelos de IA eram incapazes de compreender o significado por trás das palavras e apenas respondiam com base em padrões previamente programados. Agora, com o ChatGPT, a IA tem a capacidade de aprender e evoluir ao longo do tempo, tornando-se cada vez mais hu...

Dica rápida: .gitignore não "funciona"

Caso você tenha um arquivo que já estava versionado, e você agora quer removê-lo do versionamento, é necessário limpar o cache local do repositório. Para isso basta executar: git rm -r --cached <path_e_nome_arquivo>