czwartek, 30 listopada 2006

Chumby - zabawka dla dzieci z Flash Player pod Linuksem?

Zauważyłem na stronie Adobe link do Chumby. Pomyślałem że mamy coś fajnego z Flash Lite. Otóż do takiego urządzenia przygotowano wersję Flash Lite działająca pod Linuksem. W czym mnie to urządzenie zaskoczyło? Brakiem klawiatury i myszki. To jak można grać w takie gierki pod Chumby? Za pomocą ekranu dotykowego. Największe zaskoczenie to obsługa w ActionScript panelu dotykowego za pomocą metod ASNative().
Więcej informacji można dowiedzieć się o tym na stronach Wiki Chumby.

Przyjmie się taka zabawka na rynku? Co zrobić żeby Chumby stało się modne?

wtorek, 28 listopada 2006

Flexible - Edytor GUI Flex

Ostatnio jednym z ciekawszych projektów dla mnie jest Flexible - edytor GUI napisany w Action Script 3 przez Johna Grdena. Jest to projekt na etapie wstępnym (wersja alpha) zamieszczony w repozytorium projektów RIAforge. Aplikacja mi nie działa, ale uważam że zawiera interesujący kod źródłowy. Pierwsze to zdziwienie że zawiera już wersję pod Adobe Apollo, chociaż ta wersja chyba jeszcze nie ma możliwości odpalenia (bo runtime Adobe Apollo jest dostępne tylko w wąskim gronie). Druga korzyść to wykorzystanie przez autora biblioteki XRAY to logowania podczas działania kodu. To jest coś bardziej użyteczniejsze niż tradycyjne trace().
Po trzecie już pobieżna lektura pozwala na wychwycenie ciekawych fragmentów kodu
na przykład import flash.utils.getQualifiedClassName czy mx.core.DragSource do obsługi akcji przeciągnij i upuść. Myślę, że zanim przejdę do głębszej analizy kodu to warto zapoznać się z obsługą zdarzeń w Action Script 3.

piątek, 24 listopada 2006

Flash Lite

Zastanawiam się czy da się programować we Flashu na urządzenia mobilne. Mam na myśli rozwój technologii moblinych w kierunku RIA. Jest to bardzo szeroka działka pod względem programistycznym i technologicznym. Obecnie najszybciej rozwijającą platformą jest Symbian. Potem dominuje w segmencie PDA Windows Mobile (tez występuje pod nazwą PocketPC). Potem już tylko "egzotyczne" platformy takie jak BlackBerry czy BREW czy Palm, czy Montavista Linux.

Programowanie na tych platformach jest poważnym wyzwaniem, wymaga poznawania specyficznych niuansów programowania w C++. Firma Sun postanowiła pomóc w tworzeniu programowania pozwalając pisać w J2ME jednolity kod który miał w zamierzeniu zostać uruchomiony na każdej platformie. Wraz z szybkim rozwojem możliwości komórek i urządzeń mobilnych sprawiało że platforma J2ME zaczęła rozrastać się w nowe funkcjonalności co sprawiło duże utrudnienie dla początkujących programistów. Trzeba teraz znać MIDP 1.0 (JSR-36), MIDP 2.0 (JSR-118), MIDP 3.0 (JSR-271) Wirelss Messaging 1.0 (JSR-120), Wireless Messaging 2.0 (JSR-205), Mobile Media (JSR-135), Mobile 3D (JSR-184), Mobile SVG-T (JSR-226), Mobile Bluetooth (JSR-82), Mobile PIM (JSR-75), Mobile SIM (JSR-177). Jedna z branż informatycznych, która ostatnio jest bardzo znana masowemu odbiorcy są gry na komórki. Obecnie przy dużej różnorodności modeli komórek programiści muszą sporo czasu spędzać sprawdzaniu jak dana aplikacja gra będzie chodzić w danym modelu komórki.

Brak konkurencji ze strony innych technologii sprawia że rynek gier na urządzenia przenośne jest zdominowany przez programistów J2ME. Firma Macromedia początkowo uznała, że nie ma szans na rywalizację ze swoim Flashem na rynku komórek, wiec najpierw weszła na segment PDA dostarczajac Flash Playera na PocketPC W grudniu 2001 wypuszczona FlashPlayera 5 na PDA Casio (Pocket PC), potem dzięki współpracy z Mictosoftem dostarczno Flash Playera do iTV. Interactive TV to mało znana działka Microsofu polegajaca na dostarczaniu rozwiązań do telewizji. W marcu 2002 Macromedia zaczęła współpracować z Nokią czego już w czerwcu 2002 roku wypuszczono Flash Player 5 dla Nokia 9200 Communicator Series. W kwietniu 2002 wypuszczono Flash Player 5 na platformę Pocket PC 2002. W listopadzie 2002 roku dzięki współpracy z Sony wprowadzono Flash Playera na PDA z platforma Palm. W lutym 2003 roku zawarła umowę z japońskim operatorem telekomunikacyjnym o dostarczenie Flash Lite 1.0 Player dla plaformy i-mode. W marcu 2003 wypuszczona została wersja Flash Playera 6 na Pocket PC.

W czerwcu 2004 Macromedia zaprezentowała już gotową wersję profilu Flash Lite 1.1 (który tez otrzymał wsparcie dla standardu SVG-T). Odtąd każdy producent urządzeń przenośnych czy operator zawierał umowę licencyjną na na kod do Flash Playera wspierający profil Flash Lite 1.1. KDDI, Bellwave, T-Mobile, Samsung, Nokia, LG, BenQ Mobile zawarły takie umowy. W październiku 2004 roku wprowadzono Flash Playera na platformę BREW. W styczniu 2006 wprowadzono nowy profil Flash Lite 2.0

Powyższy opis wskazuje na jak wielu platformach działa Flash.

Dla programistów i grafików Adobe przygotowało odpowiednie paczki zawierajace odpowiednią dokumentację i przykłady pozwalające przygotować zawartość pod określoną platformę.

Dla profilu Flash Lite 1.1 i Flash Lite 2.0 przygotowano referencyjne kody i dokumentację.

sobota, 18 listopada 2006

Ruby on Rails i Flex 2

Zaintrygowało mnie czy można tworzyć aplikacje RIA przy pomocy frameworka Ruby on Rails.

Ruby i jak PHP mają szansę stawać językami programowania które będą masowo stosowane w tworzeniu aplikacji RIA, czego raczej nie powiedziałbym w przypadku .NET (gdyby Castle MonoRails był szerzej znany) jak technologii JAVA (wobec małej popularności i wykorzystania OpenLaszlo i Red5).

Na stronach Developer Center Adobe znalazłem artykuł Derka Wischusena Integrating Flex 2 and Ruby on Rails Zaleca on wykorzystanie Ruby on Rails do zrobienia prostej aplikacji śledzenia błędów, gdzie interfejs użytkownika jest napisany w MXML i skompilowany we Flex 2. Cały artykuł pokazuje jak zrobić obsługę kodu XML realizującą zadania tworzenia dodawania modyfikowania i usuwania danych o błędach.

Derek Wischusen od sierpnia 2006 prowadzi bloga o możliwościach współpracy Flex 2 z Ruby on Rails. Napisał już 3 aplikacje Image Conwerter (konweter plików graficznych w oparciu o bibliotekę RMagic) i Flex FTP (przykład aplikacji pokazujacej jak można wysyłać ang.upload pliki z poziomu Flash Player) oraz Flex CSS Editor Styles Creator (to jest aplikacja Adobe zmodyfikowana o to że plik CSS zostaje wysłany do użytkownika).

Stuart Eccles w kwietniu i maju 2006 napisał dwuczęściowy kurs o wykorzystaniu Flex 2 z Ruby on Rails, który stał się bardzo popularny. Pierwsza część dotyczyła podstawowej funkcjonalności aplikacji która miała wyświetlać spis książek. Natomiast druga część dotyczyła rozszerzenia funkcjonalności o dodawanie komentarzy do danych książek. Pewnie teraz przydałby się videocast z tym prawda?

Jeden z pracowników firmy Adobe Christophe Coenraets w kwietniu 2006 napisał tutorial jak wykorzystać aplikację Flexstore na Ruby on Rails. Pokazał on jak obsłużyć frontend aplikacji RIA i prosty panel administracyjny do takiej aplikacji.

Alastair Dawson z Vixiom Axioms prowadzi bloga od lipca i napisał dwuczęściowy kurs w sierpniu o wykorzystaniu Flash Remoting w WebORB for Ruby on Rails. Pokazuje to jak można wykorzystać binarny format AMF do wymiany danych. W pierwszej częsci kursu aplikacja RIA, którą zrobi to aplikacja do obsługi list mp3. Dużą zaletą jest to że kod jest dobrze napisany i skomentowany. Druga część kursu przedstawia jak można wysyłać dane AMF za pomocą Flash Playera na przykładzie aplikacji "do zrobienia".

Mike Potter i Derek Wischusen przy udziale Marka Pillera stworzyli paczkę Ruby on Rails RIA SDK zawierajacą przykładowe kody aplikacji np: FlexPaint czy Flex Directory Explorer. Warto też przeglądac forum dyskusyjne poświęcone temu produktowi.

Midnight Coders' to firma dostarczająca wysokiej klasy rozwiązania Flash Remoting dla takich platform jak Java, .NET, PHP i oczywiście Ruby. Dostarczyła ona rozwiązanie WebORB for Ruby on Rails pozwalające programistom RoR wykorzystać potencjał AMF3 w aplikacjach serwerowych. Najpierw trzeba zapoznać sie z jego możliwościami i instalacją i szczególnie przeczytać artykuł o wywoływaniu zdalnych obiektów. Następnie warto śledzić forum dyskusyjne poswięcone wykorzystaniu tego w praktyce. Główny twórca tego rozwiązania Mark Piller prowadzi bloga, gdzie informuje o rozwoju tej technologii

Peter Amstrong pisze ksiazkę o integracji Ruby on Rails z Flex2. Jego praca jest dostępna za $20. (może kiedyś to kupię). Ale największą zaletą są kody żródłowe do tej ksiażki i jak fragmenty tej ksiazki. Fragmenty tej ksiązki świetnie opisują cały proces instalacji i stworzenia aplikacji typu "witaj świecie".

Na koniec warto też dodać, że serwis Web Developer's and Designer's Journal sponsorowany przez Adobe ostatnio też zamieścił artykuł o intergracji Ruby on Rails z Flex 2 za pośrednictwem WebORB

Ściągnij sobie Adobe Flash Player 9.0.28

14 listopada 2006 Adobe wypuściło nową wersję Adobe Flash Player 9 z wydaniem r28. To można ściągnąć stąd link do wpisu zawierającego różne wersje kontrolek czy wtyczek Flash Player 9 . Do tej wersji dodano obsługę pełnego ekranu. Tracy Stampfli napisała też artykuł wprowadzający w obsługę trybu pełnoekranowego.

Zastanawiam się, gdzie znajdę listę opisującą poszczególne wydań wtyczek Flash Player. Poszukałem sobie i znalazłem takie coś "Archived Flash Players available for testing purposes". Ale ja potrzebuję informacji o tym jakie są wersje poszczególnych wydań wtyczek Flash Player, znalazłem informacje o wersjach wypuszczonych (natomiast bez wyliczenia wersji testowych) Flash Playera 9, Flash Playera 8, Flash Player 7, Flash Player 6. Wcześniejsze chyba już nie mają opisów technicznych. Do testowania tych różnych wersji wtyczek Flash Player pewnie przyda się wtyczka Flash Switcher extension for Firefox. Informacje o instalowaniu pod Windows Vistą umieściłem w odrębnym poście. Aktualna wersja kontrolki czy wtyczki Flash Player jest do ściągnięcia po prawej stronie.

niedziela, 12 listopada 2006

Flex 2 i PHP

Zamierzam prowadzić nowy blog o integracji technologii PHP z Flex 2. Decyzję podjałem, po tym że tamten serwis daje mi wystarczającą jakość abym mógł na nim hostingować projekty i przykłady PHP , MySQL i jak Flex.

Zmieniam też politykę publikacji. Do tego bloga będe pisał o tym co słychać w różnych technologiach internetowych i nie tylko. Zamierzam też zwrócić uwagę na takie technologie jak J2ME czy Flash Lite. Natomiast tamten blog będzie ściśle niszowy.

I od dziś występuję jako Michał Małaj.

środa, 8 listopada 2006

Tamarin - nowy prezent od Adobe

Adobe przekazało kod źródłowy silnika wirtualnej maszyny dla ActionScript3 (AVM2) społeczności programistów z Mozilla.org Oznacza to że kolejna wersja silnika JavaScript - SpiderMonkey - będzie obsługiwana przez maszynę wirtualną i będzie bardziej zgodna ze standardem ECMAScript Edition 4 (rozumianą jako JavaScript2).

Przyniesie to znaczny wzrost wydajności skryptów, szczególnie w aplikacjach AJAX-owych.
Programiści będą mogli kompilować skrypty do postaci bajtkodu, który może być mniejszy niż odpowiedniki pisane w pliku tekstowym i szybciej wykonywany.
Moje przypuszczenia co do rozwoju kodowania w XHTML mogą być takie że będziemy dołączać kod skompilowany albo wersję tekstową do skompilowania podczas ładowania strony i kod JavaScript dla starszych przeglądarek.

<script type="application/javascript2" src="http://www.example.com/skrypt.jsc">

Oczywiście, że wolałbym taki kod zgodny z XHTML2.0

<object src="http://www.example.com/skrypt.jsc" srctype="application/javascript2">
<em>tutaj podać kod dla przeglądarek obecnej generacji </em>
</object>

Szkoda, że Microsoft nie wpadł na pomysł zintegrowania .NET z przeglądarka Internet Explorer tak, aby można było uruchamiać bajtkod .NET do stron internetowych.

wtorek, 7 listopada 2006

Mashup - programowanie map geograficznych na stronach internetowych

Pewnego razu zacząłem zastanawiać w która stronę będą rozwijać się serwisy internetowe, jaki będzie najbardziej wyróżniający się element stron internetowych w najbliższym czasie. Zrobiłem pewne rozeznanie po stronach internetowych Web2.0. Dla mnie Web 2.0 oznacza nie tyle że wykorzystuje się AJAX, tylko że dany serwis internetowy posiada własny interfejs programistyczny, który pozwala innym serwisom internetowym korzystać z jego zasobów. Ze strony internetowej o mashupach można dowiedzieć się, że najbardziej popularne staje się korzystanie z serwisów internetowych które korzystają z map i usług geolokalizacyjnych.

Głównymi dostawcami usług map internetowych dla stron internetowych są Google Maps, Yahoo Maps, oraz Microsoft Virtual Earth.

Dostarczają oni mapy drogowe, zdjęcia lotnicze i satelitarne dla każdego zakątka Ziemi. Można z nich korzystać do celów niekomercyjnych i z pewnymi ograniczeniami co do ilości żądań przypisanych do danego serwera.

Mapy Google cechuje niezwykła dokładność map drogowych dla krajów Unii Europejskiej. Łatwość utworzenia prostej mapy na własną stronę internetową sprawiło, że Google Map stało się świetnym narzędziem do tworzenia mashupów. Mashup to serwis internetowy, który reprezentuje informacje z innego serwisu udostępniając je we własnej formie.

Cechy poszczególnych usług.

Google Map ma ciekawe rozwiązanie, które pozwala na aż 19-krotne powiększenie map drogowych i w zależności od terenu dostarcza odpowiednie zdjęcia satelitarne. Zawiera też sposób mieszany (ang. hybrid) tj na mapie satelitarnej umieszczane są teksty, aby użytkownik mapy wiedział co ogląda na zdjęciach satelitarnych. Programistycznie z poziomu JavaScriptu na mapach Google można umiejscawiać markery, opisy w dymkach, rysować linie. Obecnie Google Map dostarcza API w wersji 2, jako bibliotekę AJAX i jako usługę REST (wywoływanie żądań z poziomu HTTP). Dla zainteresowanych polecam zapoznanie się z przewodnikiem po możliwościach Google Maps i z wiki dla programistów. Warto też spróbować wykorzystać komponent dla Flasha zaprojektowany do wyświetlania map we Flashu. Aby zamieszczać mapy Google na stronach trzeba posiadać klucza API. Ten do klucz można wygenerować za darmo podając domenę na której będą wyświetlane te mapy.

Ostatnio sporo pojawia sie interesujacych ksiązek na temat programowania mashup-ów. Scott Davis napisał dla wydawnictwa The Pragmatic Programmers' ksiażkę Google Maps API: Adding Where to Your Application (ostatnio ona była aktualizowana do API v.2 - kody do przestudiowania). Trójka programistów Michael Purvis, Jeffrey Sambells, Cameron Turner napisało dla wydawnictwa Apress ksiażkę Beginning Google Maps Applications with PHP and Ajax: From Novice to Professional. Ta ksiazka ma swoj serwis gdzie zamieszczono kody źródłowe i 2 rozdziały jeden o interakcji a drugi o geokodowaniu.
Martin C Brown napisał dla wydawnictwa ExtermeTech ksiażkę Hacking GoogleMaps and GoogleEarth Jest to ksiązka która głownie opisuje Google Maps API v.1 Na stronie poswięconej tej ksiązce można zobaczyć przykłady i jak pobrać kod źródłowy.
Szefowie zespołu pracującego nad Google Map Jens i Lars Rasmussen pomogli napisać Schuyler Erle i Rich Gibson ksiażkę Google Maps Hacks: Tips & Tools for Geographic Searching and Remixing dla wydawnictwa O`Reilly. Zaletą tej pozycji jest to że dokładnie omawia możliwosći Google Map API v 1 w 70 przykładach. Na tej stronie podano 5 przykładów

W Polsce na razie znane mi są dwa mashupy wykorzystujące Google Map API. Wrocek.pl to serwis który ma na celu wykorzystanie map Google do prezentacji danych o Wrocławiu.
Miejsce.info to serwis który pozwala utworzyć komuś mapę i zamieścić ją na stronie WWW nie wymagajać od uzytkownika wiedzy programistycznej.

Yahoo Map jest bardziej popularne w Ameryce z racji tego że dostarcza szeroki wybór technologii do obsługi ich map. Ich wersje są dostępne jako AJAX albo jako w wersji Flash czy jako sterowanie z JavaScript zawartością we Flashu. Obecnie większość przykładów jest w wersji ActionScript 2. Sporo informacji o wykorzystaniu Yahoo Map można znaleźć w tym artykule.
Wadą Yahoo Map jest to że nie przedstawia dokładnej mapy dla Polski.
Można obejrzeć przykłady aplikacji wykorzystujących Yahoo Map.

Microsoft Virtual Earth jest odpowiedzią na Google Map. Microsoft dodał możliwość oglądania z "lotu ptaka" miast amerykańskich. To polega na tym że można używać Virtual Earth do oglądania obiektów pod kątem 45 stopni. Programowanie w Virtual Earth jest najłatwiejsze do zrealizowania przy wykorzystaniu AJAX. Wymaga ściągnięcia Virtual Earth SDK Beta 4 albo Virtual Earth SDK Beta 3.2 . Gdy ogląda to się w IE to instaluje się kontrolka ActiveX Virtual Earth3D która zapewnia podobną funkcjonalność co Google Earth (szkoda ze tylko instaluje się na angielskojęzycznych OS - trzeba w panelu sterowania ustawić opcje regionalne na Stany Zjednoczone) tylko że dla stron internetowych. Virtual Earth korzysta z infrastruktury MapPoint 2006. Aby wykorzystać to w aplikacjach Flash, trzeba otrzymać darmowy klucz API dla programistów i znać obsługę Web Services za pomocą ActionScriptu.