Może ktoś pamięta, ponad rok temu zacząłem prace nad grą internetową typu MMORPG pod tytułem Pulsar Online. Po dość długiej przerwie wróciłem do tematu. Niestety, gdy tylko zobaczyłem ukończone fragmenty kodu stwierdziłem, że coś tu nie halo i przez ponad 3 tygodnie w czasie wolnym przepisywałem to, co niby już działało. Teraz też działa, ale lepiej. Trochę ruszenia mózgownicą, kilka przydatnych klas w PHP (z dwóch jestem szczególnie dumny: klasa cache w danych sesji i klasa trochę upodobniająca MySQL do bazy obiektowej z automatyczną synchronizacją cache i bazy) i to co działało, działa dalej, tyle, że lepiej, szybciej i wygodniej się to oprogramowuje.
Anyway, powstały też nowe rzeczy:
- mapa systemu
- nawigacja i wyszukiwanie najkrótszej drogi do celu
- podstawowe operacje na wyposażeniu i uzbrojeniu
- inne drobne sprawy
Obecnie siedzÄ™ nad obsÅ‚ugÄ… NPC. Drugi dzieÅ„ mÄ™czÄ™ skrypt tworzÄ…cy NPC na podstawie szablonów. Jeszcze kilka dni i choćby ta drobnostka bÄ™dzie dziaÅ‚ać…
Sprawa do tej pory przeszła niezauważona (od wczoraj od godziny 13) więc chyba czas ją naświetlić. Wczoraj Allegro.pl uruchomiło mobilną wersję swojego serwisu: mAllegro. Jak na razie mAllegro nie jest reklamowane, tylko użytkownicy korzystający z przeglądarek mobilnych są automatycznie przekierowywani na mAllegro.
mAllegro jest uproszczoną wersją Allegro.pl, pozwalającą na przeglądanie i wyszukiwanie aukcji, kupowanie i zarządzanie aukcjami obserwowanymi. Nie pozwala na wystawianie aukcji i komentarzy. Jest przystosowane do wszystkich urządzeń mobilnych wyposażonych w przeglądarki zgodne z XHTML. Aby nie narażać użytkowników telefonów komórkowych/smartfonów/palmtopów na długi czas załadowania strony i wysokie koszty połączeń, zawartość strony jest maksymalnie uproszczona, obrazki są przeskalowywane, a interface przystosowany do nawigacji z klawiatury numerycznej.
Dlaczego o tym piszę i czemu tyle o tym wiem? Sprawa jest prosta: maczałem w tym swoje palce, a dokładniej, byłem jedym z programistów tworzących mAllegro. Krytyki nie przyjmuję, zakres funkcjonalny był dokładnie określony ze strony Allegro.pl, ja go tylko zrealizowałem. Oczywiście nie byłem sam i pochwały (bo tylko to przyjmujemy) należą się całemu zespołowi programistycznemu (to do Ciebie, Grzesiek)! Muszę przyznać, jestem z tego dumny jak cholera!
Jeśli ktoś chce zobaczyć mAllegro na zwykłej przeglądarce, zapraszam na mobile.allegro.pl.
CoÅ› mnie dziÅ› naszÅ‚o na wypróbowanie nowej przeglÄ…darki: Apple Safari. ZainstalowaÅ‚em, poklikaÅ‚em, pobawiÅ‚em siÄ™ i… I z jedenej strony mi siÄ™ podoba ze wzglÄ™du na “inny” UI, wiadomo, Mac. A z drugiej strony, jestem głęboko rozczarowany z kilku prostych powodów:
- Safari jest powolne. Dużo wolniejsze od Firefox 3, Firefox 2, czy nawet IE7. A to znaczy, że Apple kÅ‚amie piszÄ…c: “Safari is the fastest web browser on any platform”. Blah… OK, co do IE7 to nie mogÄ™ siÄ™ zdecydować, ale od FF3 jest wolniejsze z całą pewnoÅ›ciÄ…
- Co za cholerny designer wymyÅ›liÅ‚ przeglÄ…darkÄ™ w której nie da siÄ™ wyłączyć wygÅ‚adzania czcionek?! Można tylko zmieniać “intensywność”. Wyłączyć już siÄ™ nie da, a przynajmniej nie znalazÅ‚em. Szczerze? Ta opcja, a wÅ‚aÅ›ciwie jej brak, dyskwalifikuje Safari w moich oczach.
- Ma problemy z właściwą obsługą JS. Osobiście znalazłem stronę, w której onclick na obrazku powodował wyzwolenie onclick na divie położonym 100px wyżej i 50px w prawo od obrazka w który kliknęliśmy.
- Po dłuższym używaniu stwierdzam jednak, że UI Safari jest bez sensu pod Windows. Może to ma więcej sensu z Mac OS, ale z Windowsem zdecydowanie nie idzie w parze.
PodsumowujÄ…c: jak ktoÅ› chce spróbować, to proszÄ™ bardzo, ale osobiÅ›cie odradzam. A szefowi projektu Safari w Apple proponujÄ™ zastanowienie siÄ™ nad sensem wypuszczania tej przeglÄ…darki dla Windows. To na dÅ‚uższÄ… metÄ™ nie ma sensu….
Mogłoby się wydawać, że nie ma nic prostszego niż pisanie stron WWW. Tak, są edytory WYSIWYG, PHP jest prosty i tak dalej. Sama przyjemność. Ostatnio uświadomiłem sobie, że programista WWW ma najtrudniej ze wszystkich programistów. Nie wystarczy znać jeden język, czy technologię, trzeba użerać się ze standardami, a właściwie ich niespełnianiem przez przeglądarki, nie można całego kodu debugować w jednym miejscu. Ale po kolei:
Programista WWW:
- musi znać:
- co najmniej jeden język server-side, na przykład PHP
- co najmniej jeden język client-side, choć w sumie można poprzestać na JavaScript
- HTML ze wszystkimi jego zawiłościami jak DOM i tak dalej
- CSS
- SQL aby móc coś z bazy danych wyciągnąć lub włożyć
- podstawy projektowania interfejsów
- różnice w interpretacji standardów przez przeglądarki
- powinien znać:
- technologie łączące serwer i klienta lub poszczególne moduły, takie jak:
- co najmniej dwa debugery i profilery: jeden dla serwera drugi dla klienta
- musi orientować się w:
- obsłudze baz danych aby móc bazę utworzyć
- najnowszych rozwiÄ…zania w tej dynamicznej dziedzinie
- konfiguracji serwera WWW
- konfiguracji serwera baz danych
- musi użerać się z:
- bełkotem marketingowym typu Web2.0
- tym cholernym IE
- tym nieszczęsnym FF
- tą dziwaczną Operą której nikt nie używa
- małym wyborem jeśli chodzi o dojrzałe narzędzia programistyczne
- że nie może debugować całej aplikacji w jednym miejscu, bo część się dzieje po stronie serwera, a część klienta, i nie są to te same języki
- standardy sobie, a przeglÄ…darki sobie
- musi zdawać sobie sprawę, że:
- jego dzieło mogą zobaczyć miliony
- zawsze znajdÄ… siÄ™ malkontenci
- za pół roku wyjdzie nowa wersja przeglądarki i jego strona może nie działać
- zawsze znajdzie się przeglądarka na której coś nie działa jak powinno
Nie jest to pełna lista. To tylko te rzeczy jakie przyszły mi przed chwilą do głowy
Szczerze? Mamy przesrane….
Tak naprawdÄ™ “zaokrÄ…glone rogi” sÄ… tylko pretekstem do tego posta. Ale zacznijmy od poczÄ…tku. W zeszÅ‚ym tygodniu coÅ› mi siÄ™ ubzduraÅ‚o, aby pewnÄ… aplikacjÄ™ internetowÄ… nad która pracujÄ™ ponad 2 lata troszkÄ™ odmÅ‚odzić i zrobić trendy. Innymi sÅ‚owy dodać zaokrÄ…glone rogi. Wiadomo, produkt sprzedajÄ… hasÅ‚a typu “Web 2.0″ i inne tego typu marketingowe bzdury. PoczytaÅ‚em, pobraÅ‚em bibliotekÄ™ JS Nifty i zabraÅ‚em siÄ™ do roboty. Chwila błądzenia i proszÄ™, div siÄ™ Å›licznie zaokrÄ…gliÅ‚… Super można by powiedzieć. ChwilÄ™ później zaokrÄ…gliÅ‚ siÄ™ kolejny div i tak dalej. PopatrzaÅ‚em na to z dystansu, policzyÅ‚em ile czasu zajęłoby przerobienie caÅ‚ej aplikacji i przywróciÅ‚em poprzedniÄ… wersjÄ™ z CVS. Może kiedyÅ› wrócÄ™ do tego pomysÅ‚u, ale jeszcze nie teraz: za dużo “bierzÄ…czki” i za maÅ‚o czasu.
Przechodzimy do sedna. Jeśli ktoś się nie interesował tym jak powstają zaokrąglone rogi na stronach WWW, to wyjaśniam: szkół jest kilka:
- z obrazkami
- z rÄ™cznym dodawaniem elementów przed i po zaokrÄ…glanym elementem, które to elementy majÄ… innÄ… szerokość i “udajÄ…” zaokrÄ…glenie
- JavaScript automatycznie renderujący dodatkowe elementy po załadowaniu strony
- niestandardowe wpisy w CSS które działają tylko w wybranych przeglądarkach
- i pewnie coś innego też by się znalazło
Anyway… Tyle sposobów, a każdy mniej elegancki od poprzedniego. Pikanterii sprawie dodaje fakt, że sprawÄ™ zaokrÄ…glonych rogów rozwiÄ…zuje CSS3. Ok, rozumiem, nie ma jeszcze wersji finalnej CSS3. Ale…. ZaÅ‚ożenia CSS3 to który rok? 2001? Przez te cholera jasna 7 lat przeglÄ…darki mogÅ‚yby siÄ™ dorobić obsÅ‚ugi zaokrÄ…glonych rogów!! Skoro caÅ‚ość może zaÅ‚atwić kilka kilobajtów JavaScript, to jaki to problem przenieść to do silnika przeglÄ…darki…. szkoda słów i tylko żal zadek Å›ciska….
JakoÅ› tak siÄ™ potoczyÅ‚o moje życie, że skoÅ„czyÅ‚em jako programista webowski. Ok, nie jest tak źle jak siÄ™ może wydawać. Mam to szczęście, nie klepiÄ™ stron internetowych (no dobra, czasami klepnÄ™ jakiÅ› engine, ale tylko czasami, grafiki już nie ruszam) a “portale korporacyjne”, “aplikacje intranetowe” i inne takie. Czyli w zasadzie rzeczy które robiÄ… coÅ› konkretnego i w jakiÅ› tam sposób komuÅ› pomagajÄ… w prowadzeniu biznesu. W sumie, to ostatnio nawet już coraz mniej programujÄ™, mam od tego zespół, a coraz wiÄ™cej czasu pochÅ‚ania mi pisanie dokumentacji i zarzÄ…dzanie zespoÅ‚em.
Wracając do tematu. Już jakiś czas temu znalazłem gdzieś taki o to diagram:

I im dÅ‚użej na niego patrzÄ™, tym bardziej dochodzÄ™ do wniosku, że osoba która go stworzyÅ‚a starÅ‚a zÄ™by na tworzeniu stron WWW. Czysta prawda. W tym caÅ‚ym biznesie zwiÄ…zanych w programowaniem WWW wiÄ™cej czasu jest marnowane na gÅ‚upoty i nieprzestrzeganie standardów W3C przez programistów przeglÄ…darek niż na cokolwiek innego. Szczególnie tyczy siÄ™ to IE. I pomyÅ›leć, że ma wejść IE8 z 3 enginami renderujÄ…cymi. Już siÄ™ bojÄ™….