Kontaktirajte podršku

Odgovaramo e-poštom, obično u roku od dva dana.

Radi zaštite od zloupotrebe, Google reCAPTCHA proverava ovo slanje. Pritom se podaci prenose Googleu. Skripta se učitava tek kada otvorite ovaj formular.

← Sve objave

Šta brisanje brojača zapravo dotiče

O sadržaju i njegovoj proveri

U ovom članku

Brisanje brojača ovde prazni 33 tabele. Juče je praznilo 25.

Osam koje je propustilo nastale su sve dan ranije, između 11:10 pre podne i 15:10 posle podne.

33 tabele sadrže nešto o brojaču 8 od njih se nije praznilo — sve su nastale dan ranije tih osam je zajedno sadržalo 4.840 redova danas dodato na abecedno mesto, ne na kraj 25 redova bez vlasnika pronađeno u drugim tabelama i uklonjeno

Kako funkcioniše brisanje

Vlasnik može da obriše svoj brojač. Za to su potrebni POST zahtev, vlasnikov token i ručno ukucan broj brojača, jer nema vraćanja. Ništa se ne odlaže na stranu: kopija u senci bila bi suprotno od onoga što je traženo, a linkovi za izvoz nalaze se iznad dugmeta za svakoga ko želi kopiju.

Zatim se spisak tabela prazni u jednoj transakciji, glavna tabela poslednja, a u arhivu se upisuje nadgrobna oznaka, kako broj nikada ne bi mogao da bude dodeljen nekom drugom. Ako bilo koji deo ne uspe, sve se poništava. Bolje da ništa nije obrisano nego da je obrisano upola.

Iznad tog spiska, u datoteci, stoji ovaj komentar:

„Svaka tabela koja nešto zna o ovom brojaču. Kao spisak, a ne rasuto po kodu: sve što ovde nedostaje ostaje iza kao red bez vlasnika, a niko to ne primeti.“

Komentar je opisao prazninu dan pre nego što se pojavila

Juče se pojavilo šest novih tabela za novu funkciju — vreme na stranici, dubina skrolovanja, izlazne stranice — zajedno sa još dve. Između 11:10 i 15:10.

Spisak za brisanje izmenjen je istog dana da bi se dodala jedna druga nova tabela. Osam ih je stiglo posle toga, a spisak se više nije pomerio. Tako je tokom jednog popodneva brisanje brojača iza sebe ostavljalo 4.840 redova podataka o ponašanju, raspoređenih u osam tabela. Praznina je otkrivena sledećeg dana i zatvorena; ono što je razotkrila jeste da je spisku trebalo nešto drugo osim pamćenja da bi ostao potpun.

Ovo nije priča o nepažnji. Neko je napisao spisak, tačno razumeo zašto je to spisak, zapisao šta se dešava kad zaostane i istog dana ga ažurirao za jednu tabelu. I ipak je zaostao, jer je usklađivanje dve stvari pukim pamćenjem nešto što ljudi pouzdano rade sve do popodneva kada ne rade.

Popravka i druga popravka

Osam imena sada je na spisku. Umetnuta su na svoja abecedna mesta umesto da budu dodata na kraj, jer sortiran spisak čini prazninu vidljivom, a spisak u koji se samo dodaje na kraj ne čini.

To je mala popravka. Ona koja je važna jeste skripta koja pita bazu podataka koje tabele nose broj brojača, čita spisak iz izvorne datoteke umesto da ga ponavlja i poredi ih. Ko god dodaje tabelu, pokreće je jednom. Ne može se zaboraviti kao spisak, jer ništa ne čuva — odgovor svaki put izvodi iz šeme.

Već pri prvom pokretanju pronašla je nešto drugo: 25 redova u osam daljih tabela čiji se broj brojača ne nalazi ni u tabeli aktivnih brojača ni u arhivi. To nisu obrisani brojači — oni ostavljaju nadgrobnu oznaku. To su brojevi koji ne pripadaju ničemu, uglavnom očigledni probni brojevi iz vremena pre provere arhive. Upisani su u datoteku izvan korena veb sajta, a zatim uklonjeni.

Na šta se ovo uopštava

Svaki spisak koji mora da bude usklađen sa nečim drugim s vremenom će se razići, a praznina će biti nevidljiva, jer spisak kome nedostaje stavka izgleda potpuno isto kao potpun spisak.

Odbrana nije disciplina. To je izvođenje jedne strane iz druge i provera da li se slažu — i to u trenutku kada neko dodaje novu stvar, a ne u trenutku kada se neko zapita.

Komentar iznad spiska bio je u pravu u svemu osim u jednoj reči. Pisalo je da niko ne primećuje. Neko jeste, dan kasnije, jer je tragao skriptom, a ne pamćenjem.

Oglas