up home page bottom

bottom

category archive listing Kategoria: Zawodowo

Zdjęcie z komentarzem

Powiem szczerze, odkąd mam w pracy dodatkowy monitor do notebooka, nie wyobrażam sobie pracy programisty z jednym monitorem. Jeden monitor = mało efektywna praca. Dwa monitory są OK, choć czasami się zastanawiam, czy nie przydałby się trzeci….

Apple Safari

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

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ć!

Wordpress 2.5 i Gallery2

Zachciało mi się zmian. Wygląd bloga to jedno, upgrade engine to inna para kaloszy. Wordpress 2.5 jest dostępny od dwóch tygodni, postanowiłem zrobić upgrade od wersji 2.3. Wszystko pięknie ładnie, jest backup plików, nowe pliki wgrane, odpalona procedura aktualizacji bazy danych. Działa. Nie do końca. Plugin WPG2 integrujący Gallery2 z Wordpressem nie działa do końca z WP 2.5. Aby było ciekawiej, dla części wstawionych obrazków z Gallery2 zdjęcia się pojawiają, dla części nie.

Postanowiłem przywrócić wersję 2.3 engine. Niestety, o ile pliki udało mi się przywrócić, to zmian w bazie danych już nie. Zabrakło tabeli albo dwóch. I jestem skazany w Wordpress 2.5. Część niedociągnięć pluginu naprawiłem sam (regexp rulez! a PHP jest prostym językiem). Przynajmniej zdjęcia się wyświetlają. Szybkie dodawanie zdjęć do postów już nie. Trudno, dam radę.

A tak ogólnie, żałuję, że zrobiłem ten upgrade. WP 2.5 nie wnosi nic nowego, interface użytkownika niby miał być lepszy, ale chyba nie wyszło. Stary interface był lepiej pomyślany, było mniej przewijania i całość miała więcej sensu. Więc jeśli ktoś myśli o zmianie, to raczej nie polecam…

Kod źródłowy Windows Vista

vista.gif

I oj…. ten żart nie jest bardzo oderwany od rzeczywistości….