Urgent.News

What's breaking now, across thousands of outlets.

Tech

O bug que corrige sozinho o arquivo, mas não o e-mail que ele gera

Um sistema meu estava mandando e-mail em português com acentuação errada. Não era acento faltando, era acento trocado : "operação" virava "operação" em alguns lugares e simplesmente sumia em outros. O arquivo CSV de onde os dados vinham parecia correto quando eu abria ele. O bug só aparecia na saída final. A causa não era o arquivo. Era a leitura dele. O sintoma O script lia um CSV com…

Um sistema em português estava enviando e-mails com acentuação errada, onde alguns caracteres eram trocados ou se perdiam. O arquivo CSV que fornecia os dados parecia correto quando aberto, mas o bug só aparecia na saída final. O problema não estava no arquivo, mas na leitura dele. O script lido um CSV com encoding=latin1 e escrevia de volta com encoding=latin1, o que funcionava sem erro ou exceção por meses.

O arquivo era na verdade UTF-8, o que nunca causava problema ao ser lido como Latin-1, pois cada caractere acentuado em UTF-8 ocupa dois bytes e Latin-1 cobre a faixa 0x80-0xFF, então cada um desses bytes virou um caractere Latin-1 errado, mas válido. O bug só se tornou visível quando o texto mal lido era exibido em um lugar que decodificava como UTF-8, como um prompt de LLM ou um e-mail.

A causa foi diagnosticada ao decodificar o arquivo inteiro como UTF-8, provando que o arquivo era correto e os scripts que lido ele erroneamente. A solução foi trocar encoding=latin1 por encoding=utf-8 em cada ponto que abria o arquivo específico. A lição aprendida é que um bug estável de round-trip pode esconder um problema, por isso é importante testar a hipótese de que o dado está correto e a leitura está errada antes de assumir que o dado está corrompido.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

O dicionário que corrige acento errado sozinho

Um script meu corrige acentuação automática em português usando um dicionário de mais de noventa mil palavras. Ele existe justamente para consertar texto gerado por IA, que às vezes esquece acento.

  • Script uses 90,000-word Portuguese dictionary to correct AI-generated text
  • Dictionary struggles with proper names like "Pele" and "teve"
  • Ambiguous words like "e" and "esta" require human review before publishing

A versão de API que vence sem avisar

Um script meu que publicava conteúdo via API do LinkedIn parou de funcionar do nada. Nenhuma linha mudou. O erro voltou assim: { "status" : 426 , "code" : "NONEXISTENT_VERSION" , "message"…

  • LinkedIn API versioning by date has deactivated the used version.
  • API REST requires LinkedIn-Version header in YYYYMM format.
  • Updating header value to latest version resolves the issue.

Nginx Load Balancing with DNS-Based Service Discovery on Incus

Nginx Load Balancing with DNS-Based Service Discovery on Incus Hari ini saya buat satu practical lab untuk memahami Nginx Load Balancing , DNS-based Service Discovery , dan operational logging dalam…

  • Implement Nginx Load Balancing with DNS-Based Service Discovery on Incus
  • Use dnsmasq as DNS server, Nginx LB resolves hostnames via DNS
  • Adding web03 easy, no Nginx config change needed

More from Sunday 30 August →