Lebkowski.info ,,Winning popularity contests since `85''

maciej lebkowski Z zamiłowania tworzę strony internetowe. Moje teksty mają na celu opisanie niektórych fragmentów internetu, którego ta strona jest częścią. Konserwatywny, pewny siebie, niekonwencjonalny - to wady czy zalety? Sprawdź! maciej łebkowski

poprzednia notka
a... politycznie?
następna notka
Notes - bardzo prosty CMS
Adresy
niezmienny adres
komentarze

Strona domowa od nowa

13 lipca 2005

Wstęp

Kilka godzin kodowania i kolejny raz przekonałem się, że nie ma dróg na skróty, prostszych rozwiązań czy wygodnych metod. Wszystko trzeba solidnie zakodować.


Treść notki

Już nie pamiętam czemu chciałem przebudować stronę domową. Pradowpodobnie dlatego, że była "ciężka". :-) Musiałem ją trochę przerobić, żeby nadawała się do zbliżającego się wielkimi krokami portfolio. Przy okazji trafiłem na, jaki mi się na początku wydawało, świetny sposób pobierania hierarchicznych danych z bazy MySQL (via). No to do roboty.

Zaczęło się strasznie wolno. Stworzenie nowego wirtualnego hosta, skopiowanie szablonów, ustawianie konfiguracji i dopiero mogłem zacząć coś kodować. Przerabianie starego kodu wcale mi się nie uśmiechało, ale głupio było z kolei wynajdować drugi raz koło, więc zabrałem się za tą pół-przeróbkę.
Do tej pory dane zczytywałem z pliku tekstowego. Swoją drogą mechanizm zczytywania rekurencyjnych danych z tej mojej tekstowej bazy zajął mi dobre 12 godzin ciągłego kodowania, bo uparłem się, że ma wszystko robić w jednej pętli. ;-) Tak, za wybryki trzeba płacić.
Pierwszy problem powstał przy próbie wyświetlenia danych. Niestety, baza była pusta. Trochę się miotałem z tym wszystkim, ale zaraz zrobiłem stronę główną i mapę serwisu (tak, to było osiągnięcie!), na których treścią było nieśmiertelne lorem ipsum. Jako że ręczna edycja bazy nie wchodziła w grę (to już nie plik tekstowy w końcu) uznałem, że bez CMSa ani rusz. Powstał szybciutko, taki fikuśny, z różnymi strzałkami i przełacznikami do zmiany opcji i tak dalej. Na szczęście na tym etapie moim największym zmartwieniem było to, jak ustawić elementy formy na stronie. ;-) Można zobaczyć zrzut ekranu.

Jak już sobie naklikałem jakąś bzdurną (ale hierarchiczną!) treść to mogłem zająć się mapą. Ta oczywiście była bardziej oporna. No bo, pobieranie danych jednym zapytaniem może i jest fajne, ale nikt nie pomyślał o tym, że ciężko jest z takiej struktury stworzyć drzewo. W moim boju nie byłem nawet blisko rozwiązania. Wielokrotnie myślałem, że jest to coś podobnego do mojej poprzedniej mapy serwisu, ale jak tylko próbowałem zastosować to, co wcześniej zakodowałem, parser wpadał w nieskończoną pętlę lub robił coś równie śmiesznego.
Po długiej walce i wyniku nieskończoność do zera dla mojego przeciwnika, którym tego dnia były nie tylko strony, nie tylko serwer, ale też same hierarchiczne dane i ich ułożenie w bazie, skorzystałem z gotowego rozwiązania (którego notabene nie rozumiałem) zamieszczonego razem z  artykułem - sprawcą całego zła.

Kilka chwil później chciałem się uderzyć czymś cięzkim w głowę. Nadpisałem sobie plik ze  skryptem mapy serwisu jakimś innym. Na szczęście zanim doszło do rękoczynów spróbowałem odtworzyć kod. Tu z pomocą przyszła mi moja pamięć, która okazała się nieoceniona, gdyż zrobiłem reprodukcję z dokładnością do dwóch literówek.

Niestety, moje tarzanie się po podłodze (czytaj: burza mózgu) miało się dopiero zacząć. Otóż, uknułem sobie przechytry plan wyświetlania menu dla danej podstrony (być może nie jest jasnym to, iż nieszczęsnymi danymi są właśnie kolejne podstrony lub mówiąc prościej: struktura witryny). Zakładał on eliminacje z drzewa wszystkich wpisów o poziomie większym niż jeden. Nie interesowały mnie żadne podmenu, stąd zdecydowałem się na takie cięcie gałęzi. I o ile wychodować moje hierarchiczne drzewko nie było trudno, to okaleczenie go kosztowało mnie trochę nerwów. I kiedy już radosny jak skowronek chciałem uruchomić skrypt okazało się, że działa to dla podstron, ale nie dla linków, które są do bazy wstawiane w nieco inny sposób. Nie raz i  nie dwa razy miałem jeszcze przekląć minutę, w której zainteresowałem się artykułem!
Jednak chodzenie jak głupi po domu, tarzanie sie po nowym dywanie, picie Muszynianki w  nieprzyzwoitych ilościach i wypiekanie się na (pięknym dzisiaj) słoneczku wpłynęło na tyle dobrze na moje procesy myślowe, że nie dalej jak po trzech godzinach ślęczenia nad kodem, w którym tworzyłem niesłychane gęstwiny instrukcji warunkowych - cel został osiągnięty!

Niestety w/w aktywności musiały mieć również pewną dawkę negatywnego wpływu, gdyż nie uchroniłem się przed postępkiem bardzo nieracjonalnym. Otóż patrząc na to, co właśnie stworzyłem uznałem, że jest nieładne i po prostu upchnę te wredne linki do innej bazy, nie bawiąc się w ograniczanie zapytań (które na mojej bazie trwają tak długo, że pewnie i gdybym ich robił 20 razy więcej, to spowolnienia nie dałoby się zauważyć). Tak oto zostałem bez linków, za to w bojowym nastroju, aby kodować dalej.

Kolejna z moich dróg na skróty to obsługiwanie wszystkich zapytań przez jeden plik. Nie znając jednak lepszego sposóbu, podłączyłem sobie plik, który uruchamia się, gdy jakiejś strony nie ma na serwerze. I działało to bez zarzutu najmniejszego, jednak zapomniałem, że to rozwiązanie pozbawia mnie jakichkolwiek danych z tablic $_POST oraz $_GET. Tak więc dane wysyłane przez normalnych webmasterów przez adres, ja musiałem sprytnie ukryć przed nazwą podstrony. Mówiąc prościej, moje adresy rosną w stronę lewą (http://example.com/zmienna2/zmienna1/plik) miast w prawą (http://example.com/plik/raz/dwa). Ciekawa mi wyszła hybrydka, nie powiem.

I kiedy już wszystko miało być dobrze, spokojnie przepisywałem sobie dane ze starej bazy do nowej, zachciało mi się napisać oświadczenie o dostępności. Ten deserek, przy pisaniu którego wspomagałem się stronami Marka Pilgrima, Dave`a Shea oraz bliżej mi nie znanego Riddle wyszedł mi całkiem nieźle i uważam go za kolejny etap w moim tworzeniu stron www.

Nie na skróty! Powoli, do celu, bez kręcenia. Mniej stresu. Ufff...

Komentarze

Masz coś ciekawego do dodania? Skontaktuj się ze mną prywatnie. Zerknij na metody kontaktu.

Strefa III Rzeczpospolitej – NIE dla Kaczystanu!