Urodziłem się ...
Nie, to by było za długo ...
Około roku 1986 komputery typu PC pojawiły się u nas w większej
ilości. Najlepsze z nich miały kartę grafiki EGA. Potem pojawiła się
karta VGA, w której można było zaprogramować generator znaków i w ten
sposób mieć na ekranie polskie litery.
Mój kolega chwalił się najlepszą kartą firmy "Synklaps". Dopiero
po pewnym czasie dotarło do mnie, że mówi on o karcie "Tseng Labs".
A potem wraz z kartą dostałem do ręki najlepszą dokumentację do
programowania tej karty. Zacząłem eksperymentować i umiałem już
z Turbo Paskala zaprogramować na niej polskie litery. W swojej
pysze postanowiłem pochwalić się tą wiedzą na łamach czasopisma
"PC Kurier" w dziale "Dla praktyków".
Sądzę, że wielu programistów amatorów (i być może zawodowców)
skorzystało z opublikowanego listingu
w swoich programach. (PC Kurier nr 24/92)
Po pewnym czasie napisał do mnie pan Adam Dzierżanowski z prośbą
o pozwolenie wykorzystania mojego modułu w swoim programie, który
będzie dołączony do Słownika do rozwiązywania krzyżówek.
Zgodziłem się pod warunkiem, że gdzieś tam w dalszej części czołówki
umieści informację skąd się wzięły polskie litery w jego programie,
i że przyśle mi wynik końcowy tzn. program i książkę.
Po pewnym czasie dostałem przesyłkę tzn. gotowy program i książkę.
Dyskietka do książki gdzieś się zapodziała, ale książka dumnie stoi
na półce z dedykacją Autora. Pan Adam pozwolił mi także skorzystać
z zasobów słówek do mojego programu.
Program rzeczywiście ułatwiał znajdywanie haseł, ale żeby go uruchomić
trzeba było za każdym razem zajrzeć do książki i stamtąd wpisać
jakieś słowo - za każdym razem inne - dość uciążliwe - prawda?
Więc w swoim hakerskim zapędzie znalazłem w programie odwołanie
do generatora liczb losowych i go wyłączyłem. Teraz program przy
starcie pytał zawsze o to samo słowo :) Bodajże rok później na
giełdzie komputerowej znalazłem następną zhakowaną wersję tego
programu, która już o nic nie pytała.
Hakerski zapęd mnie nie opuścił i w wolnej chwili postanowiłem
przeanalizować budowę samego słownika. Trochę mi to zajęło, ale
doszedłem jaka jest metoda grupowania wyrazów i kompresji całości.
Ponieważ wygląd programu oryginalnego niezbyt mi się podobał
(napisany w TP7) więc postanowiłem napisać własną wersję. Jak się
okazało moja wersja działała dużo szybciej, co się okazywało
szczególnie na wolniejszych komputerach np. z zegarem 4.77 MHz
(tak, tak były takie maszynki) oraz była wygodniejsza w użyciu
(czyż nie każdy autora tak twierdzi :). Moja wersja była niestety
niedokończona - nie miała możliwości wydruku oraz nie sortowała
alfabetycznie znalezionych wyrazów. Z tego powodu nigdy nie ukazała
się na rynku i nie zagroziła Imperium Billa Gatesa :-)
Ach, jakże wiele dzieł z powodu skromności autora nie wzbogaciło
naszej cywilizacji.
Krótko mówiąc programik przetrwał w letargu kilka lat. Dopiero
zainteresowanie autora internetem, studiowanie języka HTML i JavaScript
zaowocowało przeniesieniem programu
Wieże Hanoi
z Basica na JavaScript. Niechęć do niedopracowanych nowości firmy z Redmond
spowodowało, że autor nadal używa starych Windows 3.11 (pisane w 2002r),
jest odporny na wirusy
oraz od dawna używał Opery do surfowania po Internecie. W starych
wersjach Opera miała dość słaby interpreter JavaScript i autor
musiał korzystać tylko z podstawowych możliwości tego języka.
Miało to taki pozytywny skutek, że napisane programy, po lekkim
doszlifowaniu, "chodziły" praktycznie w każdej wersji przeglądarki
obsługującej JavaScript - nawet WebTV.
dopisek w 2019r.: program działa także na smartfonie i przenoszenie
krążków odbywa się przez dotyk i ruch palcem.
Dobry algorytm, dobra grafika i intuicyjna obsługa spowodowała,
że program "Towers of Hanoi" znajduje się na czołowym miejscu
zestawień
dotyczących tej
logicznej układanki.
Ale wróćmy do naszych krzyżówek. Autor założył sobie serwer
Linuxowy i może robić na nim co chce. Ma do dyspozycji kilkanaście
języków programowania. Oczywiście program można napisać w Javie
(po stronie odbiorcy), ale oznaczałoby to konieczność transmitowania
całego słownika do komputera użytkownika - 400 KB - raczej odpada.
Można by program napisać w Perlu - ale autor jakoś się nie przemógł
by się tego pożytecznego języka nauczyć. Wzrastająca popularność
języka PHP i plotki o jego łatwości podsunęło autorowi myśl
przetłumaczenia programu do rozwiązywania krzyżówek właśnie na ten
język. Zakup książki "PHP3 Internetowe aplikacje bazodanowe" okazał
się niezbyt dobrą inwestycją (sporo braków w opisie podstaw języka),
ale przełamało pierwsze lody. Kawałek po kawałku przerobiło się
źródło w paskalu na PHP. Duże fragmenty (obsługa ekranu i skrolowania)
się uprościły. Procedur do wydruku nie trzeba było wogóle robić.
Sortowanie polskich wyrazów okazało się pewnym problemem. Czytanie
polskiej listy dyskusyjnej użytkowników PHP prawie nic nie dało.
Jak zwykle na polskiej liście jest kilku mądrali, którzy
potrafią tylko napisać RTFM, tyle, że dłużej i mniej kulturalnie.
Ale po namyśle okazało się, że sposób kodowania słownika ułatwia
późniejsze sortowania. Zamiast dekodowania, wyszukania i sortowania
należy zrobić wyszukanie, sortowanie i dekodowanie. Zwykłemu czytelnikowi
to nic nie mówi, ale programiście owszem.
W trakcie używania Słownika okazało się, że nie ma w nim sporo
wyrazów; np. logo, łodzianin czy łodzianka, warszawiak itd. nie mówiąc
o braku nazwy zespołu "Ich Troje" :-)
Tak więc następną zmianą było napisanie procedur do dopisywania
nowych wyrazów do słownika - oczywiście przez Internet.
Po miesiącu do bazy haseł dopisano kilkaset pozycji.
W czasie gdy program zaczął prawidłowo pracować dowiedziałem się,
że w Onecie uruchomiono podobny słownik firmy TIP. To firma, która
zrobiła pierwszy słownik do korekty ortografii dla Worda dla Windows
Z ciekawości zacząłem porównywać wyniki wyszukiwania i stwierdziłem,
że oba słowniki znacznie się różnią zasobem haseł - w obu są oczywiście braki.
W słowniku TIP brak jest nazw własnych, nazw geograficznych itp.
W zamian dużo jest form żeńskich nazw zawodów (bohemistka chełmianka
chlewiarka cywilistka czołgistka doliniarka), są liczne zdrobnienia
(amboneczka goloneczka idioteczka).
Jako ciekawostkę mogę podać że jest tabakiera ale brak tabakierki.
Jest bardzo dużo nazw czynności (przekimanie przekopanie przekuwanie
przykrzenie przykucanie przykuwanie przekazanie).
Z powodu tych różnic postanowiłem uzupełnić swój program o sprawdzanie
w słowniku TiP. Hasła znalezione w słowniku TIP ukazują się na ekranie
w osobnej ramce. Odpytywanie słownika TIP ma tę wadę, że spowalnia
działanie mojego programu o kilka sekund (zależy od pory dnia i stanu
łącz internetowych). Teraz się zastanawiam czy by nie sprawdzać TIP
gdy będzie wybrana w wyszukiwarce odpowiednia opcja. Istotne jest czy
dotychczasowa szybkość działania wyszukiwarki jest akceptowalna.
Serwerowi to zajmuje drobne ułamki sekund, ale druciki TPSA są dość
zapchane i w dalekiej Polsce łączny czas oczekiwania na odpowiedź
może być znaczny.
W roku 2005 'zaabsorbowałem' do swojego słownika zawartość kilku
słowników tematycznych znalezionych w polskim internecie. Poza tym
stwierdziłem, że można program trochę przyspieszyć przez rezygnację
z zakodowanego oryginalnego słownika - dekodowanie zabiera trochę
czasu, a słownik dodatkowy stał się na tyle duży, że warto go podzielić
na osobne pliki zawierające słowa o tej samej długości. Połączenie
zdekodowanego oryginalnego słownika z dodatkowym słownikiem i podział
na wiele plików skróciło wyszukiwanie o ok. 50%. Sam program też się
oczywiście skrócił.
Następnym etapem, o którym myślę to wprowadzenie opisów haseł przy
ich wprowadzaniu. Może to trochę zabezpieczyć przed wpisywaniem bzdur
lub haseł z błędami ortograficznymi - wersja 1.7 już to uwzględnia.
Gdyby wszystkie hasła miały opisy tak jak w niektórych leksykonach
krzyżówkowych, to można by dobudować logikę do wyszukiwania hasła po
znaczeniu. Ale to sporo roboty :-(
na tym historia się urywa - co dalej będzie - niewiadomo
Jesień 2007 - w planach absorbcja Słownika Alternatywnego - na nim oparty
jest słownik ortograficzny użyty w Mozilli. W starszej wersji były tam
"alternatywne" pisownie wielu trudnych od strony ortograficznej wyrazów.
W nowszym wydaniu z jesieni 2007 pozbyto się chyba większości błędów
ortograficznych, ale brak tam także wielu wyrazów, które podobno są
zakazane w grach słownych np. ZOMO. Żeby nie straszyć dzieci, czy co?
Zima 2007/2008 - na prośbę osób z Ameryki, które nie mają polskiej
klawiatury dorobiłem do formularza guziki do wprowadzania
polskich liter. Na początku była tylko możliwość wstawiania litery na
końcu już wpisanego ciągu znaków - bardzo proste w Javascrypcie, acz niezbyt
uniwersalne. Więc zapuściłem żurawia do internetu i znalazłem funkcję do
wstawiania znaku w miejscu kursora - jest dość krótka i piękna - sam bym jej
nie napisał, bo różnie działa dla Internet Explorera i dla Firefoksa/Mozilli.
Boję się sprawdzać w Operze :)
Zima 2008 - dołożyłem jeszcze jedną opcje wyszukiwania w innym słowniku
Marcina Szajdy Adiasz.
Zasób słów chyba pochodzi ze słownika scrablowego bo zawiera różne formy
gramatyczne słów. Aby internauta szybko zauważył czym się różni zbiór
odpowiedzi słownika Adiasza od mojego zbioru hasła inne niż z mojego
zaznaczane są na czerwono.
Marzec 2008 - zmieniłem sposób zapisu logów programu. Poprzednio się
dopisywały do tego samego pliku, który po kilku miesiącach dochodził do kilku
megabajtów. Teraz logi są zapisywane tylko dla danego dnia tygodnia i po
tygodniu kasowane. W związku z tym można było dodać (kwiecień 2008) proste
wykresy aktywności krzyżówkowiczów w ciągu dnia - patrz strona
pk-stat2.
Gwałtowny skok użycia Słownika o godz 8.00 oraz znacząco większe używanie
w poniedziałek i mniejsze używanie w soboty i w niedziele wskazuje ile osób
rozwiązuje krzyżówki w pracy :-).
Po południu widać kiedy krzyżówkowicze jadą do domu i wieczorem kiedy jest
nudny film.
Średnie używanie 12 haseł na jednego wizytującego wskazuje, że klientami
Słownika są mniej zaawansowani krzyżówkowicze.
Wrzesień 2008 - Napisałem wersję, którą nazwałem “Samopomoc Krzyżówkowicza”,
a potem kilka wersji podobnych.
Są one połączeniem czatu internetowego ze Słownikiem.
W skrócie pozwala na wpisywanie znanych liter, znaczenia hasła i oczekiwanie
na pomoc innych bardziej bystrych krzyżówkowiczów.
Wiele razy sam Słownik nie może znaleźć hasła gdyż krzyżówkowicz pomylił
wpisywane literki z innych krzyżujących się haseł i praktycznie bez
znalezienia własnych błędów nie ma szans na zgadnięcie hasła. I tu przydaje
się pomoc kogoś innego kto tę samą krzyżówkę rozwiązał i może naprostować
pomylone drogi biedaka. Zresztą mogą pomóc osoby mające głębszą wiedzę w
jakiejś bardzo specjalistycznej dziedzinie.
Ostatecznie są cztery wersje pk20d,
pk21e, pk21f,
pk21g, dwie ostatnie są rodzajem Forum i są
odczepione od Słownika.
Marzec 2009 - dołożyłem wykres uśrednionych aktywności w ciągu tygodnia
— patrz pk-stat2.
Obserwacje aktywności wskazują, że przed świętami zmniejsza się liczba
odwiedzin - kobiety mają dużo roboty w domu. W wigilię o godzinie 17
jest minimum odwiedzin. W pierwszy dzień świąt jest nadzwyczaj duży ruch.
2010 - obserwacje aktywności tygodniowej wskazywały, że najwięcej
odwiedzających Słownik jest w czwartek. Ale po pewnym czasie tendencja się
zmieniła i maksimum wypada we wtorek. Jak się domyślamy wtedy pojawia się
w kioskach pewne czasopismo krzyżówkowe.
2012 - maksimum odwiedzin przesunęło się z wtorku na poniedziałek.
Podobno chodzi o Przekrój.
2009 grudzień - wprowadziłem system rejestracji użytkowników Słownika i Forum.
Zasadniczym celem było skrócenie logów - zamiast długiego adresu zapisują się
dane jakie chce internauta, które go odróżniają od innych np. ksywa, numer
kodu, NIP, wiek albo cokolwiek innego. Dane są zapisywane na jego komputerze
za pomocą ciasteczka (cookie).
Zarejestrowani mają większe uprawnienia i w korzystaniu mogą zobaczyć więcej
haseł pasujących do podanej maski. Poprzednio Słownik pokazywał wszystkim
maksymalnie 35 podpowiedzi. Po rejestracji jest rozróżnianie -
niezerejestrowani dostają tylko 10 podpowiedzi, a zarejestrowani 50.
2010 lipiec - zmieniłem system rejestracji na bardziej złośliwy.
W ogóle niezarejestrowani dostają 10 podpowiedzi pasujących do maski,
zarejestrowani tylko ksywą dostają 25 podpowiedzi, a zarejestrowani
którzy podali dokładniejsze dane dostają do 63 podpowiedzi. Te dokladniejsze
dane to seria numeru dowodu osobistego (trzy literki np. AKN) i data wydania.
Zbieram te dane do mojego małego projektu weryfikacji danych internetowych.
Ponieważ nie pozwala to na identyfikację konkretnej osoby to nie
narusza to ustawy o ochronie danych osobowych i RODO.
Są pewne problemy:
System rejestracji opiera się na ciasteczkach zapisywanych w komputerze
wizytującej osoby. Jeżeli ciasteczka się usunie to przy kolejnej wizycie
Słownik nie wie, że dana osoba się rejestrowała.
Dane rejestracyjne są zapisywane na serwerze w celach archiwalnych, ale nie są
weryfikowane przy kolejnej wizycie bo wymagałoby to przy każdej wizycie pytania
o hasło. Metoda owszem bezpieczna, ale wymaga od internauty dodatkowej czynności.
Zamiast tego wybrałem żeby hasło zapisywało się w ciasteczku w komputerze osoby
wizytującej. Ma to swoje dobre i złe strony. Dobra jest taka, że nie trzeba
się wielokrotnie rejestrować. Chyba, że ciasteczko zniknie.
A teraz problem dlaczego ciasteczka znikają?
- Jeżeli zmienimy komputer lub system operacyjny albo przeglądarkę to
ciasteczka same się nie pojawią w nowym komputerze.
- Jeżeli w przeglądarce jest włączony 'tryb prywatny' to ciasteczka się
nie zapisują i nie mogą być odczytane. Internauta traktowany jest jako osoba
niezarejestrowana ze wszystkimi ograniczeniami.
- Także programy 'antywirusowe' usuwają ciasteczka. Po takim 'czyszczeniu'
internauta traci rejestrację.
- Kasowanie ciasteczek może robić przeglądarka jeżeli się w niej ustawi
odpowiednią opcję.
Np. osobie bardzo zależy żeby nie było śladu po odwiedzinach na jakimś szczególnym
miejscu np. strona z brzydkimi rzeczami.
Także jeżeli w przeglądarce jest wyłączony Javascript, to też ciasteczka
mogą się nie zapisywać.
Grudzień 2012
W dniu 2012-12-25 17:02, rogal pisze:
> Witam
> chciałem dowiedzieć się w jakim celu jest stworzonych tyle
> wersji słownika. oraz forum. Ja się gubię w tym i nie wiem
> gdzie man sięgać. Która wersja ma najwiecej rekordów.
> Może lepiej zrobić jedną o bardzo dużej bazie rekordów i
> repozytorium aby nie uciekały napisane hasła jeżeli kilka
> osób wpisze dużo haseł
Liczba wersji ma kilka powodów.
- zwykły słownik jest oczywisty - mamy litery - szukamy słowa,
- wersja dla emigrantów, którzy nie mają polskiej klawiatury
i nie mogą wprowadzać polskich liter - korzysta z tej samej
bazy haseł/słów,
- wersja pośrednia między Forum wymiany definicji a Słownikiem.
Wprowadza się opis hasła i znane litery a Słownik podpowiada.
Jednocześnie opis i maska wprowadzana jest na listę widoczną
po prawej. Tam inna osoba może wpisać rozwiązanie.
Czasami niemożność domyślenia się hasła wynika z błędnie
rozwiązanych innych haseł w krzyżówce. "Samopomoc" stara się
głowami i rękami innych wyprowadzić biedaka z błędu.
Zgodnie z tą zasadą działąją wersje pk20d.php i pk21e.php,
- wersja oderwana od Słownika opiera się tylko na samopomocy.
Są dwie wersje działające tak samo, ale o różnym "targecie".
Wersja pk21f.php jest dla jolek i podobnych, a wersja
pk20g.php jest dla bardzo trudnych haseł np. geograficznych
lub z bardzo specjalistycznych dziedzin. Pomagać mogą userzy
o głowach jak encyklopedia.
Przyczyna dublowania Samopomocy jest taka, że gdyby wszyscy userzy
wpadli na tę samą listę - a czasami jest jednocześnie kilkadziesiąt
osób - to sobie wzajemnie przeszkadzają wpisując w tym samym momencie
swoje rozwiązania. Program nie potrafi rozstrzygnąć, które jest
słuszne, a które błędne. Najnowsze poprawki starały się zlikwidować
błąd zjadania już wpisanych rozwiązań, gdy jedna osoba poprawiała
hasło w 1-szej linii, a inna np. w 5-tej linii.
Kolejny problem to jeśli jakaś osoba zamiast pomyśleć i sprawdzić
w "Słowniku" od razu wali hasło na "Samopomocy" i robi to kilka
razy oraz kilka innych osób robi to samo, to nawet przy długości
listy 40 wierszy z listy spadają zapytania o hasła bez rozwiązania.
Ostatnio dopracowuję wersję, która połączy trzy metody pomocy.
"Słownik", "Samopomoc", "Szukanie w archiwum".
W tej wersji http://zylla.wipos.p.lodz.pl/pk/pk20beta.php
(od czerwca 2018 adres strony sie zmienił na http://romek.info/)
umieszczenie opisu i liter na liście samopomocy wymaga dwóch kroków.
W pierwszym kroku maska jest wysyłana do Słownika i pokazuje się lista
możliwych rozwiązań. Jednocześnie sprawdzane jest archiwum "Samopomocy"
zawierające opisy i rozwiązania z mniej więcej ostatniego tygodnia.
Jeżeli user nie zobaczy właściwego rozwiązania to dopiero decyduje
o wysłaniu swojego zapytania na listę. To spowoduje, mam nadzieję,
mniejsze obciążenie serwera powtarzającymi się pytaniami od osób,
które się wzięły za krzyżówkę z "Przekroju" w czwartek, a nie jak
większość w poniedziałek. Jeżeli skutek będzie tak widoczny jak
się spodziewam to "Archiwum" będzie obejmowało więcej niż tydzień.
dopisek 2019r. Archiwum obejmuje zapytania z około 2 miesięcy
pozdrawiam i proszę o następne pytania.
Np. "czy można zrobić wersję wygodną do używania na tablecie?"
--
Romek
Czerwiec 2018
PS. Z różnych względów (np. RODO oraz obniżenie wieku emerytalnego)
strona z zylla.wipos.p.lodz.pl została przeniesiona z serwera
Wydziału Inżynierii Procesowej i Ochroy Środowiska Politechniki Łódzkiej.
Za długoletni hosting władzom wydziału niniejszym serdecznie dziękuję.
Nowym adresem jest http://romek.info/pk/
To jest na płatnym serwerze w firmie LH.pl.
Niewielkie datki na utrzymanie konta na serwerze mile widziane.
Do wszystkich krytyków i pomocników
- Staram się na bieżąco śledzić błędy w Słowniku i je na bieżąco poprawiać.
- Całe szczęście mamy mało hooliganów i nie trzeba tego robić zbyt często.
- Słownik będzie taki jacy będą 'userzy'.
- Uwagi na temat poprawy funkcjonalności Słownika zawsze mile widziane.
- Ograniczenia co do maksymalnej liczby pokazywanych haseł będą niewzruszone.
- Jak ktoś mnie trochę nauczy jak napisać Słownik na komórki, iPady, iFony itp. Androny :)
to wypuszczę wersję uniezależnioną od sieci.
|