Võtke ühendust toega

Vastame e-postiga, tavaliselt kahe päeva jooksul.

Väärkasutuse vältimiseks kontrollib seda saadetist Google reCAPTCHA. Seejuures edastatakse andmeid Googlele. Skript laaditakse alles selle vormi avamisel.

← Kõik postitused

Põrkemäär vajab ühte bitti, mitte jälgijat

Sisust ja selle ülevaatamisest

Selles artiklis

Kuni 28. augustini ei näidanud see sait põrkemäära ja teabeleht ütles, et see on tahtlik: see nõuaks mitme lehevaatamise vältel jälgitavat seanssi ja see nõuaks nõusolekuriba.

Esimene pool oli tõsi. Teine pool lakkas tõesti olemast hetkel, kui hakkasime väljumislehti salvestama, ja keegi ei uuendanud lauset.

neli külastust ja mida kumbki allikas nende kohta ütleb üleminekutabel bitt üks leht mitte midagi 0 sama leht kaks korda mitte midagi 0 kaks lehte, 40 sekundi vahega üks üleminek 1 kaks lehte, 35 minuti vahega mitte midagi 1 neljas külastus ei ole põrge ja ainult üks kahest allikast teab seda

Miks seda ei saanud lihtsalt arvutada

On lehelt lehele üleminekute tabel. See näeb välja nagu kõik, mida põrkemäär vajab: külastus, mis läheb ühelt lehelt teisele, ei ole põrge, seega loe üleminekuteta külastused.

See ei tööta ja põhjus on salvestuskoodi kolmes reas. Üleminek jäetakse välja, kui kaks lehte on samad, kui nende vahel on möödunud üle kolmekümne minuti ja pärast kolmesadat uut paari ühe loenduri kohta ühe päeva jooksul. Iga reegel on õige selle jaoks, milleks tabel on – näidata, milline leht viib millisele –, ja iga reegel teeb päris teise lehe nähtamatuks.

Samal ajal kestab külastus selle loendamise eesmärgil tund: nii kaua püsib rida elavas tabelis. Seega kasutaks lugeja ühte külastuse määratlust ja nimetaja teist. Arv poleks olnud veidi vale, see oleks olnud ankurdamata.

Mida andmed tegelikult ütlesid

27. ja 28. augustil oli 8 669 külastust ja 2 817 üleminekut, ehk keskmiselt 1,32 lehte külastuse kohta. 572 loendurist 99 salvestas üldse ülemineku.

See ei ole lüliti väljas – teesalvestus on vaikimisi sees ja kõigil 166 453 loenduril on see lubatud. Need saidid on tõesti ühelehelised: profiililehed, ühelehelised saidid, pildigalerii kellegi teise platvormil. Enamiku nende põrkemäär näitab ligi sada protsenti ja see on õige.

Üks bitt ja mitte mingit uut kogumist

Külastusel on juba tunniks rida. Nüüd kannab see veel üht asja: kas see külastus nägi kunagi teist, erinevat lehte. Väärtus pannakse paika lauses, mis niikuinii käivitub, ilma lisapäringuta:

ON DUPLICATE KEY UPDATE mehr = mehr | (url <> VALUES(url)),
                        last_seen = UNIX_TIMESTAMP(), url = VALUES(url)

Nende omistuste järjekord on kogu trikk. Andmebaas hindab neid vasakult paremale, nii et url hoiab võrdluse käivitumisel veel eelmist aadressi. Pange url esimeseks ja rida võrdleb uut aadressi iseendaga, bitt jääb igaveseks nulliks ja põrkemäär näitab kõigile sada protsenti. See on viga, mis näeb välja täpselt nagu usutav tulemus, mistõttu tasus seda enne usaldamist ühekordsel real tõestada.

Kui tund on möödas, loeb öine puhastus aeguvad read kokku – mitu külastust, mitu neist mitmelehelist –, kirjutab ühe rea loenduri ja päeva kohta ning kustutab read. Bitt elab tunni. Ei mingit küpsist ega midagi, mis seda üle elaks.

Mida üldistada

Huvitav küsimus ei olnud kunagi, kuidas seanssi jälgida. See oli, milline asi, mida me juba üles kirjutame, juhtub vastama küsimusele, ja kas vastus on ankurdatud sama määratlusega kui küsimus.

Kaks allikat, mis mõlemad näevad välja nagu külastuste mõõtjad, üks kolmekümne- ja teine kuuekümneminutilise reegliga, annavad suhte, mis on arv ja ei tähenda midagi. Ühe biti lisamine reale, mis juba olemas on, on lihtsam kui hiljem selgitada, miks määr on selline, nagu on.

Reklaam