2

Essa é a história da relação de a gente não banir o nmap porque criminoso usa ele e o maior evento de slop da história do open source.

#FATO: Em outubro de 2020, o Hacktoberfest quase quebrou o open source.

A regra era: "quatro pull requests em projetos open source e você ganha uma camiseta".

O resultado, pelos números do recap oficial da própria DigitalOcean:

34.595 pull requests não aceitos por nenhum mantenedor
9.598 marcados explicitamente como spam ou inválidos
172.599 enviados para repositórios fora do evento
17.260 para repositórios que a própria DigitalOcean excluiu

Mantenedores relataram "PRs completamente inúteis, tipo adicionar um ponto e vírgula no README só para completar o #Hacktoberfest".

Um deles descreveu o evento como "um ataque de negação de serviço distribuído, patrocinado por uma empresa, contra a comunidade open source".

No meio do evento a DigitalOcean mudou a regra para opt-in: repositório só contava se o mantenedor pedisse.

Guarde a data: 2020.

Nenhum modelo de linguagem envolvido. Nenhuma IA.

Duzentos mil pull requests de lixo, gerados por seres humanos, motivados por uma camiseta.

Esse é o maior evento de slop da história do open source, e ele é 100% humano.

O que slop é, de verdade

Slop não é "todo texto gerado por IA".

Slop é uma propriedade do trabalho:

  • afirmação que não dá para verificar
  • enchimento — volume sem conteúdo checável
  • baixa densidade de informação por parágrafo
  • confiança performada no lugar de evidência
  • e, o pior de todos, custo transferido: quem escreve gasta pouco, quem lê gasta muito

Repare que nada nessa lista diz algo sobre quem escreveu ou qual ferramenta/linguagem foi utilizada.

Slop é sobre o que está no texto, o conteúdo, a diff, não sobre qual ferramenta foi utilizada.

Por isso todas as línguas já tinham um ditado para isso muito antes de existir computador.

Em português a gente tem dois, e são bons: "não julgue um livro pela capa" e "o hábito não faz o monge".

O segundo é medieval, vinha em latim, habitus non facit monachum, e é literalmente sobre isso: a roupa não prova o conteúdo. Shakespeare escreveu a mesma ideia como "nem tudo que reluz é ouro". O Evangelho de Mateus resolveu no critério: pelos seus frutos os conhecereis.

Séculos de gente avisando que cobertura não é conteúdo. E a nossa geração conseguiu inventar a única heurística que julga exatamente a capa.

Uma história curta do slop, sem IA nenhuma

Antes de 2022 o slop já tinha genealogia longa:

  • Content farms e SEO spam: artigos escritos para ranquear, não para informar. A Demand Media chegou a produzir milhares de artigos por dia; o Google gastou uma década criando o Panda e sucessores para conter
  • Paper mills acadêmicos: artigos gerados ou comprados para inflar currículo. O SCIgen — um gerador de papers aleatórios do MIT — teve trabalhos aceitos em conferências. Em 2005
  • "Me too" em issue tracker: o comentário que só custa a quem lê
  • Copy-paste de Stack Overflow em produção, sem entender a resposta
  • Documentação corporativa de quarenta páginas que não responde uma pergunta
  • Cargo cult: código copiado de tutorial que funciona por acidente
  • E o Hacktoberfest 2020, que é o caso limite porque teve métrica, incentivo e escala

Nenhum desses precisou de IA.

Todos têm a mesma assinatura: o custo foi jogado para o lado do leitor.

Então o que a IA mudou de fato

Uma coisa só, e ela é séria: a taxa.

Slop humano tem um freio natural, ele dá trabalho.

Escrever quarenta páginas ruins ainda custa dias. O modelo de linguagem tirou esse freio.

Agora dá para produzir volume plausível em segundos, e plausível é pior que ruim: ruim você descarta em dez segundos, plausível você precisa ler para descobrir.

E é aí que a heurística da capa aparece, e precisamso ser justos com ela: julgar pela capa é a triagem racional quando a fila é infinita.

A atenção de mantenedor é o recurso mais escasso do open source.

Se chegam dez contribuições e três têm cheiro de máquina, descartar as três pelo cheiro é barato e acerta na maioria.

Não é preconceito, é orçamento.

O problema é que heurística de triagem erra em silêncio, e erra justamente no caso que mais importa: a contribuição que veio pronta, medida, reproduzível e com "sabor tipo errado".

A comunidade já resolveu esse problema uma vez

E resolveu bem. Aconteceu com a palavra hacker.

"Hacker" nasceu no MIT significando quem entende um sistema fundo o suficiente para fazê-lo fazer coisas que ninguém previu. Nos anos 80 a imprensa sequestrou o termo e transformou em "criminoso digital".

Por uns bons anos, dizer "eu sou hacker" numa entrevista de emprego era confissão.

Repare no que a comunidade não fez:

  • não baniu a palavra
  • não baniu a habilidade
  • não baniu as ferramentas
  • ninguém proibiu o nmap porque criminoso usa nmap
  • ninguém proibiu engenharia reversa porque pirata usa engenharia reversa

O que a comunidade fez foi criar uma linha clara de conduta e parar de julgar pelo eixo da ferramenta: black hat, white hat, grey hat.

E a definição de white hat nunca teve nada a ver com qual ferramenta você usa. Tem a ver com:

  • autorização — você tinha permissão de mexer nisso?
  • divulgação — você conta o que fez e como?
  • reprodutibilidade — o outro lado consegue confirmar?
  • responsabilidade — o relatório vai para quem pode consertar, antes de ir para a plateia?

Duas pessoas rodam exatamente o mesmo scanner na mesma rede.

Uma é crime, a outra é profissão. A ferramenta é idêntica; o que separa é a conduta.

Agora troque "scanner" por "modelo de linguagem" ou "agente de IA" e leia de novo.

O white hat da era da IA

Se o paralelo vale, e, sinceramente, eu acho que vale, então a pergunta útil não é pura e simplesmente: "isso foi escrito com IA?".
É a mesma lista de sempre:

  • Dá para verificar? Tem link para documento primário, comando que eu possa rodar, número que eu possa conferir?
  • Foi medido onde importa? Rodou em máquina real, com resultado anotado, ou é plausibilidade de texto?
  • A afirmação é específica o suficiente para estar errada? Slop é vago de propósito, porque vago não pode ser refutado.
  • Quem assina responde? Numa review, a pessoa aparece, entende o próprio patch, defende ou corrige?
  • O método está aberto? Não como penitência — como cortesia com quem vai revisar.

Isso é exatamente o que a gente já cobra de pentester. Não inventei nada.

E tem o outro lado da lâmina, que é a parte que me obriga: IA não lava nada.

Se eu assino, aguenta o mesmo teste. Contribuição assistida que não é verificável não vira boa porque eu declarei a assistência e fiz o disclaimer vira slop com nota de rodapé.

A declaração não é um passe; é o contrário, é assumir o ônus.

O caso Zig: uma porta fechada, e o bug que ninguém tinha nomeado

A política de contribuição do Zig (2026) não aceita nenhum conteúdo gerado, editado, ou sequer depurado com assistência de IA.

A avaliação pública da liderança é que contribuição assistida por IA é "invariably garbage", em tradução literal: "invariavelmente lixo".

Eu compilo um projeto hiper-modular grande: ~1.800 módulos nomeados, ~2.300 arquivos analisados como uma unidade de compilação só. O Zig 0.16.0 oficial nunca compilou isso.

Depois de 2+ horas, todas as vezes, morria com um SIGSEGV silencioso — binário de release stripped, então a falha não dizia nem onde tinha sido.

Diagnosticado em parceria com IA, com reprodução controlada sete vezes em dois builds independentes com o mesmo final de backtrace: o InternPool do frontend usa um sentinela u32 0xFFFFFFFF ("none") que, num caminho de exaustão, é dereferenciado como índice vivo numa tabela de elementos de 8 bytes. O endereço da falha decompõe exatamente como base + 0xFFFFFFFF * 8. Duas issues upstream parecidas foram reproduzidas localmente e descartadas por um discriminador, ou seja, não era nenhuma delas.

Não era "seu projeto é grande demais".

Era um estouro de espaço de índices que o compilador não nomeava.

O resultado, medido: antes, nunca terminava. Depois, o mesmo workload compila em 46 minutos, seis builds completos consecutivos, zero OOM.

A falha silenciosa virou panic nomeado com o remédio impresso. E o harness do próprio fork registra 22 linhas verdes e 2 vermelhas, e pronto, as duas vermelhas são flags que já vêm desligadas por padrão porque regrediram ~6,5%, e o README diz isso em voz alta, junto com o que ainda não foi medido.

Agora a parte que interessa para este ensaio: eu não pdue oferecer nada disso ao upstream.

A porta está fechada por política declarada, e política de projeto é do projeto. Respeitei.

Virou um fork MIT, com LICENSE e README originais preservados, cadeia de crédito humano+IA num PROVENANCE.md, e um CONTRIBUTING-AI.md explicando o rito de quem quiser contribuir assim ali. (O post completo, se quiser os detalhes técnicos.)

Não conto isso como "eles estavam errados e eu certo".

Conto porque é a diferença exata entre os dois eixos.

A política deles julgou a ferramenta, e o efeito colateral foi que um bug real do compilador deles continuou sem nome. Eu julguei a conduta, afianl, porta fechada se respeita, e o trabalho existe do lado de fora, verificável por quem quiser.

O outro lado da mesma semana

O experimento controlado que eu não pedi para ter

Este mês eu vivi os dois lados na mesma semana, com o mesmo trabalho.

Passei semanas fazendo engenharia reversa de por que TVs 3D da era 2011 não atviam 3D com arquivos mkv que têm a marcação 3D.

A resposta é que o hardware lê só um sinal dentro do próprio stream H.264 e ignora a tag do container mkv, e é a única que os rips carregam. Fiz o diagnóstico, medi em máquina real, escrevi o patch. Tudo, é claro, com parceiros de IA, dirigindo e verificando no hardware.

Em um projeto, olharam o código. Revisaram o patch, aceitaram o diagnóstico, notificaram sobre o uso de IA, mas mergearam em 81 minutos. Só o tempo do CI rodar.

Em outro, a discussão saiu do código antes de chegar nele e foi para a autoria do texto. A contribuição mais checável do thread era a assistida por IA, contendo comandos de reprodução, tabela de nove arquivos antes/depois, contagem medida em arquivo real.

E a entrada menos checável do thread inteiro foi postado por um humano anti-IA, um meme idiota de 529×95 pixels dizendo "texto demais, desculpa, mas não me importo".

Zero conteúdo técnico. Nada para conferir. Pura preguiça, na minha humilde opnião, com tanta ferramenta moderna por aí a um custo acessível pelo resultado que entrega.

Mesma pessoa, mesma semana, mesma assistência, mesmo patch.

Um projeto julgou o artefato. O outro julgou a capa.

Não estou contando isso com mágoa, o segundo projeto voltou ao código depois, fez perguntas técnicas boas, e eu respondi uma por uma.

Conto porque é o experimento mais limpo que eu poderia ter: a variável que mudou não foi a qualidade do trabalho.

De onde vem o slop de IA, na real

Aqui está a parte que eu acho que a gente não fala o suficiente.

Os modelos foram treinados em texto humano. O enchimento que eles produzem, eles aprenderam. A confiança falsa, o parágrafo que não diz nada, o relatório de bug de quarenta linhas sem um passo de reprodução, isso tudo é nosso.

A máquina não inventou o estilo; ela é um espelho muito rápido.

Slop de IA é slop humano repetido.

Mais rápido, mais barato, em mais lugares, mas não é uma espécie nova. É a nossa, escalada.

O que me deixa moderadamente otimista é a consequência disso: se slop sempre foi o mesmo problema, então as defesas que já funcionavam continuam funcionando.

Passo de reprodução. Número medido. Afirmação específica. Fonte primária. Nada disso é novo, e nada disso pergunta quem escreveu.

Para onde isso vai

Meu humilde palpite, e é só um palpite:

O equilíbrio não vai ser "IA banida".

Vai ser a régua de evidência subindo por contribuição.

Repositórios vão pedir, cada vez mais explicitamente, o que os bons já pediam: como reproduzir, o que foi medido, em qual máquina, qual afirmação exatamente você está fazendo.

E isso é bom até para o problema velho.

A régua que filtra slop de IA filtra o "me too", o PR de ponto e vírgula, o relatório sem passo de reprodução. Não existe régua que filtre slop de IA e deixe passar slop humano — porque é a mesma coisa medida no mesmo eixo.

A cura para revisão cara não é julgar mais cego. É livro mais barato de abrir: post mais curto, comando que roda, resultado medido, afirmação que dá para refutar.

E se você está do lado de quem contribui com assistência de IA: a régua vale para você primeiro. Entregue um livro que valha a pena abrir, e a capa para de importar.

Uma palavra sobre chamar coisa de lixo

Eu moro na Cidade Estrutural, no DF, a comunidade que cresceu ao lado do que foi, até fechar em 2018, um dos maiores lixões a céu aberto do planeta, só perdendo para Jakarta.

Quem trabalhou ali, os catadores, sustentou família achando valor no que todo mundo jogou fora. E é bom lembrar por que essa função existe: cidade sem quem recolhe e separa adoece. Fede rápido, e fede muito.

Quando um projeto declara uma categoria inteira de contribuição como "invariavelmente lixo" e tranca a porta, ele está fazendo uma coisa que toda cidade aprende do jeito difícil que não funciona: confundir o monte com o que tem dentro do monte. Tem lixo no monte, claro, a maior parte é.

Mas quem pega, separa e acha o que presta não está abaixo da cidade. É o que mantém a cidade de pé.

Eu não digo isso como metáfora de LinkedIn.

Digo do lugar onde eu moro, olhando para onde o lixão era.

E é exatamente a mesma operação que a gente está discutindo neste post inteiro: separar. Slop de substância, capa de conteúdo, ferramenta de conduta. Quem se recusa a separar não está sendo rigoroso, está terceirizando o trabalho de triagem para "não olhar".

"Tenha fé, porque até no lixão nasce flor." — Mano Brown, Racionais MC's

E repara no verbo, que é o ponto: ele não diz que a flor cresce lá. Diz que nasce — no único lugar onde nada deveria nascer.

Talk is cheap. Show me the code. — essa é de 2000, e não era sobre IA...

Carregando publicação patrocinada...
2

seu post tem algumas boas ideias, mas sofre dos mesmos problemas de "slop" que você critica. Não é uma questão de ter sido gerado com auxilio de IA, mas, o estilo (insuportavelmente) prolixo.

se tirar toda a gordura e o melodrama, dava pra dizer exatamente a mesma coisa com muito mais estilo e concisão, como qualquer humano descente escreveria.

por isso que o meme do "muito texto, nem li" acertou em cheio. Falta pra IA a maior e mais nobre das qualidades de um bom programador.

a preguiça.

o programador preguiçoso jamais escreve uma linha a mais do que o estritamente necessário.

a IA é o oposto exato.

o seu PR "sem preguiça", mesmo que funcione e resolva um bug real do compilador, é com certeza muito pior do que o PR que um programador preguiçoso eventualmente vai fazer.

0

Você tem razão em uma coisa, e eu concedo de cara: o texto é longo demais. Eu corto, sempre corto, e ainda assim sai longo.

Mas tem duas críticas misturadas aí, e só uma delas se sustenta. Uma é sobre estilo de prosa. Essa é justa.

A outra é sobre o artefato: que um programador preguiçoso faria um PR "com certeza muito pior" que o meu. Essa não dá pra verificar, porque esse PR não existe.

E, sinceramente, é exatamente isso que eu chamo de julgar pela capa: comparar o que foi feito com um ideal imaginário que ninguém escreveu.

O que dá pra verificar é o que a preguiça produziu de fato, no rastreador do mpv:

  • #1045, "auto-detecting 3D input format", fechada anos atrás, sem correção
  • #15225, aberta desde 30/10/2024. Vinte e três meses. O autor leu o código-fonte sozinho, propôs um desenho, e ninguém implementou
  • #17632, aberta desde março, com um mantenedor escrevendo que não sabe distinguir half de full SBS
  • #18380, aberta, zero respostas

Dois anos de programadores preguiçosos entregaram nada. O bug continuou lá, e quem tem TV 3D continuou vendo filme achatado e tendo que ativar o 3D na mão, quando a TV é plenamente capaz de fazer isso.

Sobre o "muito texto, nem li": ele acertou o alvo errado.
A única afirmação técnica anexada àquele comentário, a de que meu patch duplicava o STEREOMODE_STEREO3D_MAPPING, é a única afirmação completamente falsa e verdadeiramente slop da thread inteira, não acrescenta nada.

Quem não leu foi quem errou.
E o mesmo trabalho, julgado só pelo código, foi aceito pelo HandBrake em 81 minutos.

O r0lZ, que mantém o BD3D2MK3D há vinte anos, saiu da aposentadoria e respondeu duas vezes, com engenharia.

Sobre preguiça: eu medi o que foi feito.
São 80.797 palavras de documentação, cerca de 3.300 linhas de código contra um navegador de 2011 sem documentação, e cada comportamento descoberto por sonda, com e no aparelho ligado na minha frente.

À mão, isso é coisa de dois a três meses em tempo integral, sem contar becos sem saída.

A preguiça que você descreve não escreveria isso em tempo nenhum.
Ela escreveria zero, que foi exatamente o placar dos últimos dois anos.

Preguiça boa é a que evita trabalho repetido.

A que evita o trabalho inteiro tem outro nome...

-1
1

hahaha, boa.

só não é um contra-argumento.
o que eu colei não precisa ser lido, precisa ser rodado.
são quatro comandos de ffmpeg e um de ffprobe, dez segundos, na sua máquina.
roda e dá diferente do que eu escrevi? aí eu perdi, de verdade.
"não li" não muda um número que você mesmo pode reproduzir.
e, sinceramente, eu já concordei que meu texto é longo.
a diferença é que dá pra encurtar a prosa sem apagar a medição.
o meme apaga as duas de uma vez.

no fundo é esse o assunto do post: o "nem li" é humano, veio muito antes da IA, e vai continuar depois dela.

valeu por ilustrar. =)