środa, 4 sierpnia 2010
Jaki framework PHP i dlaczego Zend
środa, 23 czerwca 2010
Rozwiązywanie problemów z WebGL
Przede wszystkim aby wykorzystać w pełni możliwości HTML5, czyli m. in. tag <canvas> potrzebujesz przeglądarki, która posiada implementacje WebGL. Jeżeli jeszcze takiej nie masz, lub nie jesteś tego pewny zobacz ten artykuł. Jeśli jednak twoja przeglądarka na 100% posiada implementacje WebGL, a mimo wszystko strony z tą technologią nie chcą się uruchomić, to powinieneś przejrzeć poniższe wskazówki:
Dla użytkowników Mac'ów: Jeżeli WebGL nie chce Ci działać - przykro mi. Nie posiadam żadnych użytecznych rozwiązań problemów jak uruchomić WebGL na Mac'ach, ponieważ nikt nie żalił się na jakieś problemy tego typu, nikt nie zapytał mnie o to i nigdy nie widziałem takich post’ów na forum. Mogę zatem tylko przypuszczać, że wszystko działa podobnie jak na OS X - więc w sumie cały ten akapit jest nie istotny.
Dla użytkowników systemów Windows i Linux: Najczęstszą przyczyną problemów z WebGL (oczywiście oprócz omijania kroków tego poradnika ;-) jest problem ze sterownikiem graficznym. Wszystkie obecne implementacje WebGL w przeglądarkach opierają się na OpenGL (w przyszłości prawdopodobnie się to zmieni), a zatem problem z OpenGL => problem z WebGL. WebGL do poprawnego działania potrzebuje OpenGL w wersji przynajmniej 2.0.
Jeżeli masz grafikę Intela, a WebGL idzie w zaparte i nie chce ruszyć, proszę zostaw komentarz pod tym artykułem a ja postaram się pomóc.
Jeżeli masz grafikę ATI lub Nvidia, pierwszą rzeczą którą powinieneś sprawdzić jest wersja OpenGL zainstalowana na twoim komputerze. Jeżeli masz Windows’a możesz sprawdzić to prosto za pomocą narzędzia GLview. W systemie Linux, należy uruchomić glinfo i znaleźć linię "OpenGl version string". Jeżeli numer wersji jest mniejszy niż 2.0 musisz zaktualizować sterownik graficzny. Najlepiej zrobić to na stronie internetowej producenta, lub skorzystać z Windows Update lub menedżera pakietów w Twojej dystrybucji Linux'a
Jeżeli nawet po zaktualizowaniu sterowników masz ten problem prawdopodobnie Twoja karta graficzna nie wspiera OpenGL (przynajmniej w Twoim systemie). Prywatnie zapytam: Czy będziesz ją trzymał tak długo, aż muzeum techniki zapłaci Ci za nią krocie? Wszystkie nowoczesne karty radzą sobie z tym. Zachęcam zatem do wymiany sprzętu, bo pewnie nowe zakładki w Twojej przeglądarce uruchamiają się z taką prędkością, że aż światło ulega zagięciu (to sarkazm ;-). Jeżeli jednak i to odpada spróbuj skorzystać z renderowania po stronie przeglądarki. Tutaj masz instrukcje dla Windows’a i dla Linux’a.
Powyższy tekst jest luźnym tłumaczeniem angielskojęzycznego kursu WebGL napisanego przez Thomas'a Giles'a, dokonanym z uwagami przez Daniela Miedzika (w3center.pl), za zgodą autora. Oryginał kursu możecie znaleźć na http://learningwebgl.com. Zachęcam do komentowania.
sobota, 19 czerwca 2010
Kurs webGL - wstęp
Cykl 15 lekcji jest luźnym tłumaczeniem z ewentualnymi uwagami tekstu Gilsa. Oryginał można znaleźć tutaj .
Na początku zajmiemy się krótkim opisem przeglądarek, następnie stworzymy statyczny trójkąt i kwadrat (2D), dodamy kolory i gradienty, wprowadzimy je w ruch, stworzymy bryły (3D), nałożymy na nie tekstury, dodamy obsługę klawiatury (up, down, left, right, page up, page down), dodamy cienie i światła, przezroczystość, zajmiemy się wydajnością tworzonych animacji, zaczniemy poruszać kamerą względem obiektów, poruszać obiekty myszą, posmakujemy zaawansowanej obsługi świateł i jej wpływu na wydajność aplikacji, załadujemy obiekty formatu JSON i wiele wiele innych ciekawych rzeczy.
W Polsce bardzo mało mówi się o zastosowaniu webGL. Na pewno po części jest to spowodowane brakiem implementacji tego rozwiązania w standardowych przeglądarkach. Na szczęście - do czasu. Już teraz w wersjach "nocnych" można cieszyć się technologią webGL - a to oznacza, że niedługo przyjdzie "dzień" ;-) Jak skonfigurować swoją przeglądarkę aby korzystała z pełni swoich możliwości? O tym w lekcji nr 0 - już niebawem.
piątek, 18 czerwca 2010
Renderowanie dokumentów w IE, czyli jak używać X-UA-Compatible
Przez dłuższy czas projektowane widoki w FF i IE8 wyglądały identycznie. Po jakimś czasie jednak wszystko się posypało. Z minuty na minutę. Nie mogłem dojść do żadnego logicznego wniosku - "Why? Please stand up guy! Stund up?!" Strona po rozsypaniu wyglądała identycznie jak w IE7. Po kilku minutach wykonałem update projektu do aktualnej wersji repozytorium. Sprawdziłem logi. Okazało się, że współpracownik dodał do META tagów definicję X-UA-Compatible.
Czym ona jest? A pamiętacie dlaczego na początku każdego dokumentu HTML, XML, xHTML itd. na początku dodawaliście to:
<doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">Powyższy kod definiuje typ dokumentu np. xHTML. W praktyce jest on często wykorzystywany do wskazania dla przeglądarki Internet Explorer, w jaki sposób ma odczytywać wszelkie tagi i style. Gdy przestawialiśmy się z IE5 na 6 wersje, następnie 7, od roku na 8 za każdym razem twórcy Internet Explorera zbliżali się powolnymi krokami do standardów określanych przez w3c. Niestety ich upartość (której ze względów finansowych wcale się nie dziwie) pozwalała na wsteczną kompatybilność.
Wracając do X-UA-Compatible. Ten Meta tag był ustawiony na emulowanie strony jako IE7 (EmulateIE7) - stąd zepsuty wygląd. Wtedy pozostały 2 wyjścia - albo usunę ten tag, albo ustawie go w sposób prawidłowy. Niestety polskie dokumentacje nie rozpisały się nad tym zbyt wiele. W Internecie można było znaleźć informacje tylko o stworzeniu takiej opcji, o jej dostępności w IE8 i o tym co wpisać jako wartość by włączyć emulacje jako IE7. Tylko po co mi wiedzieć jak popierać brudy Microsoftu? Na szczęście po kilku minutach szukania i na oficjalnym blogu Internet Explorer'a znalazłem potrzebną informacje. Tam znajdziecie całkowity opis możliwości. Ja skupię się na jedynych słusznych wyborach ;-)
W artykule z 16 czerwca 2010 o intrygującym tytule "IE’s Compatibility Features for Site Developers" można napotkać się na informacje o tym jak wymuszać kompatybilność nawet z 9 wersją IE. Żeby to uczynić wystarczy, wpisać:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">lub
<meta http-equiv="X-UA-Compatible" content="IE=9">Podobnie, jeżeli Twoja strona ma być kompatybilna z IE8 wystarczy w miejsce "9" wpisać "8". Proste? Tylko po co to robić? Ktoś mądry wpadł na pomysł, aby narzucić renderowanie strony zawsze w najnowszej dostępnej wersji. Aby takie rozwiązanie wdrożyć do swojej strony wpiszcie:
<meta http-equiv="X-UA-Compatible" content="IE=edge">Do tego ostatniego rozwiązania wszystkich zachęcam. Tak długo dopóki projektanci Internet Explorera będą szli w kierunku akceptacji standardów w3c - tak też długo ta opcja będzie najlepszą z możliwych.
Jeżeli uważasz, że kilka bitów kodu zaśmieci Twój kod, pomyśl o jeszcze jednej przewadze takiego rozwiązania. Twój klient, nie kliknie przypadkiem na włączenie trybu (nie)zgodności z wcześniejszymi przeglądarkami. Nie zadzwoni któregoś pięknego słonecznego popołudnia z twierdzeniem, że mu lub jego klientom strona się popsuła. Im klient mniej się denerwuje - tym lepiej dla Ciebie... Po uzupełnieniu X-UA-Compatible zniknie poniższy przycisk:
Aha... pamiętajcie jeszcze, że ustawienie X-UA-Compatible ignoruje Doctype dokumentu. Warto to uwzględnić, żeby przypadkiem nie stworzyć przeczącemu sobie kodu.
Preludium
World wide web, potocznie nazywana siecią www istnieje już ładnych parę lat (przez parę lat obeznany czytelnik - do którego kierowana jest strona - powinien rozumieć koniec lat 80-tych XX wieku). Na początku powoli rozwijająca się sieć, której zalążek sięga historii brytyjskiego inżyniera i naukowca sir Tima Berners-Lee, przerosła się w ogromną strukturę będącą podstawą kolejnego stulecia. Każda z kolejnych norm i wszelkiego rodzaju standardów prędzej czy później przeżywały już kilkakrotne odsyłanie do lamusa. Nikt z początku chyba nawet nie wyobrażał sobie zasięgu korzyści jaki przyniesie Internet.
Wraz z upływem czasu, ta tkana przez ludzi “sieć” zaczęła przybierać na rozmiarach do tego stopnia, że niezbędne okazało się stworzenie wyszukiwarek internetowych. Google - światowy lider w tej dziedzinie - za swoją misję uznał skatalogowanie światowych zasobów informacji i uczynienie ich powszechnie dostępnymi i użytecznymi
Pewnie gdyby nie ludzie, którzy znaleźli w tym sposób na łatwy zarobek, wszystko układało by się pięknie. Niestety… choć miało być dobrze - wyszło jak zawsze… Pozycjonowanie stron (często siłowe) zbombardowało bazy naszego “ojca” Larrego Paga. Dziś co raz to trudniej znaleźć proste odpowiedzi na wszelkiego rodzaju pytania. Kiedy zrozumieją to wszyscy użytkownicy Internetu? Na to pytanie nie jestem w stanie odpowiedzieć.
Wiem jednak, że dobre produkty trzeba promować. W obowiązku osób tworzących największą sieć połączeń elektronicznych jest stosowanie się do najnowszych standardów. Na pewno zauważyłeś powiązania w nazwie strony na której teraz jesteś z organizacją w3c - World Wide Web Consortium. Nie ukończone do tej pory wskazówki interpretowania przez przeglądarki internetowe, zostały już w znaczącej mierze wykorzystane. To dobry znak, zachęcający by nie czekać z wdrożeniem standardów zanim pojawią się ich ostateczne wersje.
HTML5, CSS3, biblioteki JS - nazwy te związane z kodem po stronie klienta nie są nam już obce. Jak jednak zastosować je w praktyce? Dlaczego w ogóle to robić? PHP, .NET - również serwerowe technologie idą wciąż do przodu. Co raz to słyszymy o nowej wersji znanego frameworka itd.
Blog, którego właśnie czytasz jako swój główny priorytet uznaje traktowanie o standardach internetowych i ich praktycznym zastosowaniu.
Ścieg tych patetycznych bzdur wypisanych prawie o 2 w nocy będzie musiał niestety stanowić preludium do bloga w3center. Kolejne posty - już niebawem. Zapraszam.