up home page bottom

bottom

Firefox 3RC1: wrażenia

Na próbę zainstalowałem najnowszą wersję Firefox’a, czyli Firefox 3.0RC1.

Firefox 3

Tak w ramach poznawania przyszłego wroga w dziedzinie web development. Wiele nie oczekiwałem, trochę więcej dostałem. Ale po kolei:

  • Uruchamia się wyraźnie szybciej od poprzednika. Nie jest to może wielki skok, ale zauważalny
  • Znacznie lepiej radzi sobie z zarządzaniem pamięcią, co było wielką bolączką FF2, dla którego 200MB pamięci rzeczywistej i drugie tyle wirtualnej było czymś zupełnie normalnym. Firefox 3 zadowala się połową tej wartości. Wielki plus.
  • Lekkie odświeżenie wyglądu. Brak rewolucji i bardzo dobrze.
  • W pasku adresu pojawia się teraz sympatyczna gwiazdka: jeśli jest złota, dana strona znajduje się już w zakładkach. Bardzo dobre rozwiązanie, wiele razy zdarzyło mi się dodawać tą samą stronę do zakładek po kilka razy
  • Dla stron szyfrowanych, nazwa certyfikatu pojawia się przy pasku adresu
  • Zabrakło zielonej strzałki przejścia do strony/przeładowanie strony przy pasku adresu. Jakoś się do niej przyzwyczaiłem…
  • Rozwijana lista historii przeglądanych stron z paska adresu zawiera teraz ikony i każdy adres składa się z 2 linii: tytułu i adresu. Co do tej opcji mam ambiwalentne uczucia: wygląda ładnie, ciekawe jak będzie z funkcjonalnością
  • Podobno FF3 jest szybszy od poprzednika… Możliwe… Wydaje się być szybciej, ale nie wykluczam siły autosugestii.
  • W dalszym ciągu nie przechodzi testu ACID3. Osobiście mnie to nie rusza…
  • Nie działa większość rozszerzeń. Na szczęście, w sieci można znaleźć bety działające z FF3 większości z nich (szukałem i znalazłem: Mouse Gestures, FireFTP, Firebug). Więc nie jest tak tragicznie.

I to chyba tyle jeśli chodzi o pierwsze spojrzenie na Firefox 3. Mi się podoba. Szczególnie z powodu lepszego zarządzania pamięcią.

Programistą WWW być…

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:
      • AJAX
      • XML
      • SOAP
      • XSLT
    • 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….

Męczarnie zaokrąglonych rogów

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….

Klasy, obiekty, PHP i ja

Tak się złożyło, że od prawie trzech lat jestem głównym programistą webowej części dość dużej aplikacji biznesowej silnie kastomizowanej pod klientów. Do lutego byłem też jedynym programistą webowym tej aplikacji. No i wiadomo jak to jest, gdy programista jest jeden, a pracy pełno i zwykle na wczoraj: kod ma powstać i działać! Może być bałaganiarski, brzydki. Grunt, że działa. No i kod działa.

Od lutego jest już nas dwóch i pół pracujących nad tą aplikacją: Grzegorz, Wojtek Praktykant i Ja. Pojawiły się dni bez nawału pracy, można więc trochę popracować nad kodem. I starym i nowym. I jakoś zeszło na programowanie obiektowe (większość kodu napisana strukturalnie, wiem, nie bić!). Z programowaniem obiektowym miałem styczność na studiach. Niestety tam nikt nie był na tyle dobrym nauczycielem, aby pokazać, że obiektowo może być lepiej niż strukturalnie (a strukturalnie programuję pół mojego życia i na studia poszedłem mają wyrobione nawyki w tej dziedzinie). No i pisałem strukturalnie. W zeszłym tygodniu coś mnie jednak tknęło, aby przypomnieć sobie obiektówkę. I był to strzał w dziesiątkę. Przez 4 dni opracowałem klasy bazowe dla kilku funkcji aplikacji i teraz dziwię się, czemu wcześniej nie pisałem obiektowo. To co przedtem powstawało w kilka dni teraz można zrobić w kilka godzin. Przykład: rejestr KP i KW. Funkcjonalnie to samo, tyle, że na odwrót. Raz plus, raz minus. KP powstały ze dwa lata temu, KW trzeba było dorobić teraz. W jeden dzień przerobiłem KP na klasy i nagle się okazało, że KW robi się w 15 minut. Wystarczy nadpisać kilka właściwości klasy bazowej i jedną metodę. Może odkrywam Amerykę, ale jak dla mnie rewelacja! Coś czuję, że więcej już nie będę pisał strukturalnie. Za dużo czasu można w tym stracić i za dużo bałaganu w kodzie wygenerować!

Męczarnie web development

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:

breakdown.png

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ę….