Duas maneiras de contar mal o seu próprio registo
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
Corra a sua ferramenta de contagem contra exatamente o dia de onde vem a sua base. Cada linha tem de dar igual. O que não der é ou um defeito da ferramenta ou um defeito da contagem original, e fica a saber qual dos dois antes que isso importe, em vez de depois.
Levou uma execução e uns quatro minutos. Ambos aqueles números tinham por essa altura sido repetidos várias vezes por escrito, 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.