Duas formas de contar mal o próprio registo
Sobre o conteúdo e a sua revisão
Neste artigo
Uma semana de alterações aqui assentou em contagens tiradas de um dia do registo de acessos: um milhão de linhas, cem mil delas nossas. Para saber se alguma coisa funcionou, essas mesmas contagens têm de ser feitas outra vez mais tarde — e contagens montadas à mão uma segunda vez nunca são bem as da primeira. Outra lista de robôs, outro intervalo de datas, outro grep.
A contagem mudou-se então para uma ferramenta com a base escrita lá dentro como constante. A primeira execução foi contra o próprio registo de onde a base tinha saído. Tudo tinha de dar igual.
Duas linhas não deram. Das duas vezes a ferramenta tinha razão e a contagem original estava errada.
o grep lê a linha inteira
A conclusão principal da semana era que o testemunho do proprietário tinha aparecido uma vez num dia inteiro. Foi contado com um padrão aplicado a linhas inteiras do registo — e uma linha de registo contém o pedido, mas também a proveniência e o identificador do navegador.
Essa única correspondência era um &t= dentro do URL de proveniência de um motor de busca. Alguém chegou a partir de um resultado de pesquisa móvel cujo endereço continha por acaso esses dois caracteres. Nos pedidos propriamente ditos, o testemunho apareceu zero vezes.
A conclusão ficou mais forte, o que é uma forma estranha de se estar errado. Continua errada. Recorte primeiro o campo do pedido — é o segundo campo entre aspas de uma linha de registo combinado — e procure lá dentro.
Uma cadeia else-if engole o caso específico
A segunda contagem dizia que o canal semanal tinha sido descarregado zero vezes. A classificação parecia razoável:
if (o endereço contém "/live/") ... else if (o endereço contém "feed.xml") ...
Os endereços do canal neste sítio são /live/<número>/feed.xml. Cada um deles correspondia ao primeiro ramo e nunca chegava ao segundo. O número verdadeiro era 398.
A conclusão tirada do número errado sobreviveu por acaso: esses 398 pedidos distribuem-se por igual pelos onze prefixos de língua sob três identificadores de navegador genéricos, e isso é um rastreador a levar cada tradução, não um subscritor. Ninguém tinha subscrito. Mas «ninguém subscreveu» e «zero pedidos» são afirmações diferentes, e a segunda foi citada várias vezes antes de alguém a verificar.
A verificação que apanha as duas
A ferramenta de contagem corre contra exatamente o dia de onde vem a base de referência. Cada linha tem de dar igual. O que não der é ou um defeito da ferramenta ou um defeito da contagem original, e assim fica-se a saber qual dos dois antes que isso importe, em vez de depois.
Levou uma execução e uns quatro minutos. Ambos os números já tinham aparecido por escrito por essa altura, e nenhum teria sido apanhado por ler o código com mais atenção — só por obrigar a medição a responder por si mesma.