Młoda i stara logika

Zastanawiałem się, co też na świecie może być unikalnego. Wyszło mi z rozmyślań, że unikalna jest każda chwila, a ujmując to szerzej, unikalny jest każdy punkt w czterowymiarowej czasoprzestrzeni

Zastanawiałem się, co też na świecie może być unikalnego. Wyszło mi z rozmyślań, że unikalna jest każda chwila, a ujmując to szerzej, unikalny jest każdy punkt w czterowymiarowej czasoprzestrzeni.

Co do reszty innych atrybutów, które zwykliśmy uznawać za niepowtarzalne, można dyskutować. Chociaż uważa się, że takie walory prezentują sobą cechy biometryczne każdego człowieka, to jednak nie polegałbym na tym stwierdzeniu jak na Zawiszy. Dopóki nie ma matematycznego dowodu na taką niepowtarzalność, to statystycznie i zupełnie intuicyjnie rzecz biorąc, może okazać się, że po świecie chodzą jednak dwa osobniki o tych samych wzorcach DNA lub kształcie linii papilarnych, a jedynie nie zaistniała sytuacja, która spowodowałaby wykrycie tego typu zbieżności.

Zresztą matematycznie prowadzone dowody unikalności także nie zawsze są stuprocentowo pewne, czego najlepszym przykładem jest wykrycie dwuznaczności w algorytmach mieszających MD5 i SHA, o czym szerzej pisał w swoim czasie Computerworld. Problem unikalności ciąży nie tylko na tak fundamentalnych sprawach, jak algorytmy kryptograficzne. Często objawia się z dużą mocą w zupełnie trywialnych zastosowaniach informatycznych. Każdemu projektantowi baz danych znana jest doskonale sprawa wyznaczania unikalnego klucza w tabeli. Nie zawsze informacje przechowywane w układzie tabelarycznym łatwo poddają się takim klasyfikacjom, z różnych, często obiektywnych względów. Niemniej, jeśli już coś zadeklaruje się w tabeli jako wartość unikalną, jej niepowtarzalności z całą surowością strzeże mechanizm bazy danych.

Gorzej dzieje się natomiast, gdy do identyfikacji obiektów w bazie danych wykorzystuje się pewnego rodzaju dychotomię, raz posiłkując się identyfikatorami z definicji unikalnymi, aby obok tego odwoływać się poprzez związki, które wcale nie są niepowtarzalne.

Ostatnio byłem zmuszony poprawiać po "młodym, zdolnym" takiego właśnie "gniota". Logika bazy danych była tak zaprogramowana, że - porównując to do systemu bankowego (chociaż nie dotyczyło to tej kategorii zastosowań) - u pewnych klientów pojawiały się na koncie nienależące do nich transakcje, zaś u ich właścicieli nie było po nich śladu. Omawiane dwuznaczności zachodziły oczywiście w sytuacjach szczególnych, wynikających z koincydencji pewnych wyjątków, co nie zostało wychwycone w czasie testów przedwdrożeniowych. Cóż, logika systemu nie była stuprocentowo pewna - nie przewidziano w niej tego typu zdarzeń. Mnie zaś, staremu, przyszło analizować i korygować błędy logicznej niedojrzałości młodego autora.

Przy tej okazji ponownie uzmysłowiłem sobie, że nie ma prostej zależności pomiędzy młodym wiekiem a lepszą sprawnością umysłową, któremu to stwierdzeniu już nieraz starałem się dawać wyraz na niniejszych łamach. Młodzi ludzie lepiej chwytają nowinki technologiczne i łatwiej przystosowują się do zmian w tej mierze, niemniej poprawność myślowa nie wynika tylko z wprawy warsztatowej. Umiejętne posługiwanie się "pulpitem informatycznym", czyli zestawem narzędzi zainstalowanych na komputerze, nie jest tożsame z logiczną poprawnością skutków tego uskuteczniania.


TOP 200