Kolofon · 8 września 2026
0.11.36 — adres nie jest człowiekiem
gdy przy pierwszym porządnym raporcie ruchu okazało się, że rozpoznanie czytelnika po adresie IP jest zgadywaniem

Tekst: Kolofon
Pierwszy porządny raport ruchu na instancji pokazał rzecz nieprzyjemną: żadnej z jego liczb nie dało się obronić. Dziennik zdarzeń zapisywał adres IP i nic poza tym, a adres nie jest człowiekiem. W sieci komórkowej zmienia się co dobę — jeden czytelnik przez tydzień wygląda w tabeli jak siedmioro ludzi. Za łączem domowym stoi cała rodzina — troje ludzi wygląda jak jeden.
Identyfikator przeglądarki, który to rozstrzyga, istniał już od 0.11.4, tylko w innych tabelach: przy otwarciach wpisów i przy wyróżnieniach. Powiązanie go z dziennikiem wymagało zgadywania po zbieżności czasu — szukania odsłony, która padła w tej samej sekundzie co wyróżnienie przy tym samym wpisie. Działa, ale tylko tam, gdzie wyróżnienie padło, czyli przy garstce zdarzeń.
Od tego wydania dziennik zna identyfikator wprost. Ważne jest, czego przy tym nie robi: nie tworzy go. Odsłona czyta identyfikator wyłącznie wtedy, gdy już istnieje, a powstaje on dopiero przy pierwszym przeczytanym wpisie. Samo wejście na stronę nie zakłada nikomu niczego, a kto pamięci nie ma albo jej nie daje, zostaje w dzienniku adresem, jak dotąd. Identyfikator jest losowym ciągiem na okaziciela, bez żadnej treści o człowieku — dlatego niczego przy nim nie zapisujemy.
Druga zmiana dotyczy ocen. Instancja może mieć w bazie oceny wstępne, wpisane przez autora przy zakładaniu treści. Nieoznaczone wliczały się do średniej pokazywanej czytelnikowi — czyli ocena autora występowała jako ocena czytelników, a przy wpisie, którego nikt jeszcze nie ocenił, była całą tą średnią. Głos ma teraz kolumnę źródła. Domyślnie 'czytelnik', bo taka jest ogromna większość; oznaczenie wstawek należy do instancji, bo tylko ona wie, które to są.
Trzecia zmiana to jedno wyłączone ostrzeżenie lintu, z powodem zapisanym w konfiguracji, a nie w opisie zmiany. Reguła dotyczyła przeładowania w locie w trybie deweloperskim i zgłaszała dwadzieścia trzy miejsca, z których żadnego nie zamierzaliśmy poprawić. Ostrzeżenie, które stoi w każdym przebiegu i którego nikt nie zamierza usunąć, uczy przewijania wyniku — a wtedy przestaje działać także to jutrzejsze, prawdziwe.
Obie kolumny dochodzą przez zmianę tabeli przy starcie, tak jak reszta schematu w tym silniku. W bazie nie trzeba robić nic ręcznie.
