Kreiptis pagalbos

Atsakome el. paštu, dažniausiai per dvi dienas.

Google reCAPTCHA tikrina šį pateikimą, kad apsaugotų nuo piktnaudžiavimo; duomenys siunčiami Google. Scenarijus įkeliamas tik atvėrus šią formą.

← Visi įrašai

Du būdai neteisingai suskaičiuoti prieigos žurnalą

Apie turinį ir jo patikrą

Šiame straipsnyje

Savaitė čia atliktų pakeitimų rėmėsi vienos prieigos žurnalo dienos skaičiavimais: milijonas eilučių, šimtas tūkstančių iš jų – mūsų. Norint sužinoti, ar kas nors pasiteisino, tuos pačius skaičiavimus vėliau reikia pakartoti — o antrą kartą rankomis surinkti skaičiai niekada nebūna visai tokie kaip pirmąjį. Kitas robotų sąrašas, kitas datų intervalas, kitas grep.

Todėl skaičiavimas perkeltas į įrankį, kuriame atskaitos reikšmės įrašytos kaip konstantos. Pirmasis paleidimas atliktas su tuo pačiu žurnalu, iš kurio jos gautos. Viskas turėjo sutapti.

Dvi eilutės nesutapo. Abiem atvejais įrankis buvo teisus, o pradinis skaičiavimas – klaidingas.

suskaičiuotaiš tikrųjųsavininko prieigos raktas10savaitinis kanalas0398abu skaičiavimai klydo priešingomis kryptimis

grep skaito visą eilutę

Svarbiausias savaitės atradimas buvo tas, kad savininko prieigos raktas per visą dieną pasirodė vieną kartą. Jis suskaičiuotas pagal šabloną, tikrinusį visas žurnalo eilutes — o žurnalo eilutė turi ne tik užklausą, bet ir nukreipiantį puslapį bei naršyklės identifikavimo eilutę.

Vienintelis atitikmuo buvo &t= paieškos sistemos nukreipiančio puslapio URL viduje. Kažkas atėjo iš mobiliosios paieškos rezultato, kurio adrese atsitiktinai buvo tie du ženklai. Pačiose užklausose raktas pasirodė nulį kartų.

Išvada sustiprėjo – keistas būdas suklysti. Bet tai vis tiek klaida. Pirmiausia iškirpkite užklausos lauką — tai antras kabutėmis apribotas laukas kombinuotoje žurnalo eilutėje — ir ieškokite jame.

else-if grandinė praryja konkretų atvejį

Antrasis skaičiavimas teigė, kad savaitinis kanalas gautas nulį kartų. Klasifikavimas atrodė pagrįstas:

if (url contains "/live/") ... else if (url contains "feed.xml") ...

Šios svetainės kanalų adresai yra /live/<number>/feed.xml. Kiekvienas jų atitiko pirmąją šaką ir niekada nepasiekė antrosios. Tikrasis skaičius buvo 398.

Iš klaidingo skaičiaus padaryta išvada atsitiktinai išliko teisinga: tos 398 užklausos tolygiai pasiskirsčiusios per visus vienuolika kalbų priešdėlių, su trimis bendrinėmis naršyklės eilutėmis, todėl tai kiekvieną vertimą imantis paieškos robotas, o ne prenumeratorius. Niekas nebuvo užsiprenumeravęs. Tačiau „niekas neprenumeravo“ ir „nulis užklausų“ yra skirtingi teiginiai, o antrasis buvo ne kartą cituotas prieš kam nors jį patikrinant.

Patikra, aptinkanti abi klaidas

Paleiskite skaičiavimo įrankį tiksliai tai dienai, iš kurios gautos atskaitos reikšmės. Kiekviena eilutė turi sutapti. Bet koks neatitikimas yra arba įrankio klaida, arba pradinio skaičiavimo klaida, ir kuri iš jų – paaiškėja dar prieš tam tampant svarbu, o ne po to.

Prireikė vieno paleidimo ir maždaug keturių minučių. Abu skaičiai iki tol jau buvo pasirodę raštu, ir nė vieno nebūtų padėjęs aptikti atidesnis kodo skaitymas — tik reikalavimas, kad matavimas pasiteisintų pats.

Reklama