Kontakt z pomocą

Odpowiadamy e-mailem, zwykle w ciągu dwóch dni.

Google reCAPTCHA sprawdza to zgłoszenie pod kątem nadużyć; dane trafiają do Google. Skrypt ładuje się dopiero po otwarciu formularza.

← Wszystkie wpisy

Czego naprawdę dotyka usunięcie licznika

Usunięcie licznika opróżnia tu 33 tabele. Wczoraj opróżniało 25.

Tych osiem, które pominęło, powstało dzień wcześniej, między 11:10 przed południem a 15:10 po południu.

33 tabele wiedzą coś o liczniku 8 z nich nie było opróżnianych — wszystkie powstały dzień wcześniej w tych ośmiu leżało razem 4840 wierszy dopisane dziś, na alfabetycznym miejscu, nie na końcu 25 osieroconych wierszy znalezionych w innych tabelach i usuniętych

Jak działa usuwanie

Właściciel może usunąć swój licznik. Potrzeba do tego POST-a, tokenu właściciela i przepisanego ręcznie numeru licznika, bo cofnąć się nie da. Nic nie jest odkładane na bok: kopia w cieniu byłaby przeciwieństwem tego, o co poproszono, a odnośniki eksportu stoją nad przyciskiem dla każdego, kto jej chce.

Potem lista tabel jest opróżniana w jednej transakcji, tabela główna na końcu, a do archiwum trafia nagrobek, żeby numer nigdy nie mógł trafić do kogoś innego. Jeśli jakaś część zawiedzie, całość się wycofuje. Nic nieusunięte jest lepsze niż usunięte w połowie.

Nad tą listą stoi w pliku:

„Każda tabela, która wie coś o tym liczniku. Jako lista, a nie rozrzucone po kodzie: czego tu brakuje, zostaje jako osierocony wiersz, i nikt tego nie zauważa."

Opisała własny przypadek dzień naprzód

Wczoraj pojawiło się sześć nowych tabel dla nowej funkcji — czas na stronie, głębokość przewijania, strony wyjścia — oraz dwie inne. Między 11:10 a 15:10.

Lista usuwania była tego samego dnia ruszana, żeby dopisać inną nową tabelę. Tych osiem przyszło po tym, a lista już się nie poruszyła. Od wczorajszego popołudnia usunięcie zostawiało więc 4840 wierszy danych o zachowaniu, rozrzuconych po ośmiu tabelach, należących do ludzi, którzy prosili o zapomnienie.

To nie jest opowieść o niedbalstwie. Ktoś napisał tę listę, dokładnie zrozumiał, dlaczego jest listą, zapisał, co się dzieje, gdy zostaje w tyle — i tego właśnie dnia dopisał do niej jedną tabelę. A i tak została w tyle, bo trzymanie dwóch rzeczy w rytmie przez pamiętanie o tym to coś, co ludzie robią niezawodnie aż do popołudnia, w którym tego nie robią.

Naprawa, i ta druga naprawa

Osiem nazw jest teraz na liście. Wstawiono je na ich alfabetyczne miejsca, a nie dopisano na końcu, bo lista posortowana pokazuje lukę, a lista dopisywana nie.

To ta mała naprawa. Ta, o którą chodzi, to skrypt, który pyta bazę, które tabele niosą numer licznika, czyta listę z pliku źródłowego zamiast ją powtarzać, i porównuje jedno z drugim. Kto zakłada tabelę, puszcza go raz. Nie da się go zapomnieć tak, jak zapomina się listy, bo on niczego nie przechowuje — wyprowadza odpowiedź ze schematu za każdym razem.

Przy pierwszym uruchomieniu znalazł jeszcze coś: 25 wierszy w ośmiu kolejnych tabelach, których numer licznika nie stoi ani w tabeli działającej, ani w archiwum. Nie usunięte liczniki — te zostawiają nagrobek. Numery nienależące do niczego, w większości oczywiste numery testowe sprzed czasu sprawdzania archiwum. Zapisano je do pliku poza katalogiem sieciowym, a potem usunięto.

Do czego to się uogólnia

Każda lista, którą trzeba trzymać w rytmie z czymś innym, kiedyś z tego rytmu wypadnie, a luka będzie niewidoczna, bo lista, której brakuje wpisu, wygląda dokładnie jak lista kompletna.

Obroną nie jest dyscyplina. Jest nią wyprowadzanie jednej strony z drugiej i sprawdzanie, czy się zgadzają — i puszczanie tego sprawdzenia w chwili, gdy ktoś dokłada rzecz, a nie w chwili, gdy ktoś się zastanawia.

Komentarz nad listą miał rację we wszystkim prócz jednego słowa. Powiedział, że nikt tego nie zauważa. Ktoś zauważył, dzień później, bo poszedł sprawdzić skryptem, a nie pamięcią.

Reklama