czwartek, 31 maja 2007

Google Gears

Tak jak wspomniałem bardzo ważną cechą aplikacji Rich Internet Application jest możliwość pracy w trybie offline. Do tej pory Flash Player oferował możliwość zapisywania danych w trybie offline jako Shared Object (100KB), Firefox 2 miał własny mechanizm typu DOM Storage (przechowując dane do wielkości 5 MB) natomiast IE posiadał mechanizm o nazwie persistence user data (userData behavior do 1 MB). To co widać było kontynuacja tego co miały do zaoferowania "ciasteczka", Dalszy rozwój zależy od tego jak zaimplementuje się w przeglądarkach HTML 5 a szczególnie część 4.1.1 (sessionStorage i globalStorage). Ale programiści okazali się szybsi i już myślą o implementacji baz danych w przeglądarkach tak żeby webdeveloperzy po stronie przeglądarek używali baz danych. Silverlight 1.1 już miał propozycję aby programiści zaczęli stosować System.IO.IsolatedStorage i System.Linq. Ta propozycja polega na przeniesieniu programowania SQL do obsługo dokumentów XML. W pewnym sensie to jest odpowiedz na E4X w Flash Playerze 9. W tej sytuacji Google postanowiło przejąć inicjatywę i w współpracy z Adobe, Mozilla, i Operą zaproponowało rozwijanie wspólnego rozszerzenia dla przeglądarek umożliwiającego programowanie aplikacji offline tworząc wspólne API oparte na SQLite. Jest to projekt "Google Gears". Opracowano już wtyczkę dla przeglądarek IE i Firefox pod Windows Linuksa oraz MacOS. Adobe dołączy tą funkcjonalność do Adobe Apollo i WebKit. Natomiast Opera prawdopodobnie zaimplementuje to w przeglądarce w wersji 10

Czym jest to API Google Gears? Umożliwia ono przechowywanie lokalnie danych zasobów w relacyjnej bazie danych, dzięki której aplikacje mogą synchronizować dane z internetem. Aplikacje internetowe mogą wtedy pracować offline. Moduł bazy danych pozwala na przechowywanie danych w relacyjnej bazie danych. Dużą korzyścią wtedy będzie pełnotekstowe przeszukiwanie danych tekstowej zawartości w bazie danych. Architektura z warstwą danych po stronie przeglądarki pozwala na różną synchronizację danych z internetem pozwalając na zmniejszenie ruchu w internecie, gdyż dane będą synchronizowane gdy będzie taka potrzeba. Za to jest odpowiedzialny moduł WorkerPool. On wykonuje w tle skrypty JS niezależnie od skryptów obsługujących GUI. Twórcami tej technologii są kod źródłowybloga także forum dyskusyjne.

Aplikacja Google, która już wykorzystuje to rozszerzenie to Google Reader. Pewnym rozwiązaniem nad którym pracuje Google dzięki wykorzystaniu Google Gears będzie Google Mashup Editor. Najciekawsze "demo" przedstawiające możliwości współpracy Google Gears z Adobe Flex 2 zostało napisane przez Christophe Coenraets (zawiera też kod źródłowy).
Zastanawiam się na ile to rozwiązanie spowoduje tworzenie nowych aplikacji AJAX, a próbą zdefiniowania czym jest Rich Internet Application. Przypuszczam że powstanie określenie "Web 2.0+" oznaczające aplikacje internetowe, które będą działać w trybie offline. Pozostają do rozwiązania kwestie związane z obsługą synchronizacji danych pomiędzy stanem offline a online. Ciekawe może być wykorzystanie "wielowątkowości" w tego typu aplikacjach internetowych.

wtorek, 22 maja 2007

Rich Internet Application Books

Od pewnego czasu zauważam, że popularność technologii zależy też od ilości książek. Adobe wraz z wydawnictwem O'Reilly wprowadziło serię wydawniczą zwaną Adobe Developer Library. Przy autorach będę dawał linka do ich bloga jeżeli takiego mają; Link w tytule prowadzi do Amazon.com.

Obecnie 4 książki są warte polecania:

Jakov Fain, Victor Rasputnis, Anatole Tartakovsky - Rich Internet Applications with Adobe Flex & Java. Secrets of the Masters jest wydana przez SYS-CON Publications (edycja zawiera m.im DVD). Strona książki z której można pobrać kod źródłowy. a także zawartość 4 rozdziału w PDF o programowaniu w ActionScripcie 3. Jedna z najciekawszych książek jakich widziałem. 3 ludzi z Farata Systems dla programistów dużych firm stosujących rozwiązania internetowe oparte na napisało 15 rozdziałów na dość wysokim poziomie edytorskim. Książka jest bardziej ukierunkowana na wykorzystanie technologii JAVA po stronie serwera, więc bardziej nadaje sie dla programistów JEE. Książka koncentruje sie na wykorzystaniu Flex Data Services, wykorzystaniu i rozbudowie kontrolek Flexa, pracy z dużymi aplikacjami dzięki wykorzystaniu RSL czy modułów, zaawansowane programowanie kontrolki DataGrid do obsługi tabel przestawnych (można to zobaczyć online)

Rich Tretola, Simon Barber, Renaun Erickson - Professional Flex 2 wydane przez wydawnictwo Wrox zawiera 720 stron. Na blogu Richa Tretoli można ściągnąć dokładny spis treści. Na stronie książki u wydawcy można ściągnąć kody źródłowe do tych rozdziałów.
Jest to książka którą mogę polecić każdemu kto chce poznać Flex 2 na tyle żeby mógł dobrze wykorzystać możliwości jakie są w Flex 2. Omawia MXML, budowanie interfejsu użytkownika, dostosowywanie interfejsu użytkownika (czcionki, style CSS, kursory), zastosowanie takich cech jak drag and drop, obsługa historii, dostępność, Sporo miejsca jest poświecono tworzeniu wykresów (Flex Charting). Przedstawia wykorzystanie zaawansowanych interfejsów komunikacji między aplikacjami (RPC, Flex Messaging, Data Managament). Pokazuje jak tworzyć własne komponenty, wykorzystywać w nich walidatory, efekty, przejścia. Czwarta cześć książki omawia omawia programowanie w ActionScript 3 (typy danych, XML, E4X, tablice, oraz wyrażenia regularne). Piąta część omawia proces tworzenia, debugowania i wdrażania aplikacji flexowych. Szósta cześć jest najciekawsza bo omawia frameworka Cairngorm wykorzystanie Flex-Ajax Bridge, biblioteki AS3. Wspomina też o integracji Flex 2 z ColdFusion. Ostatnia część książki omawia wykorzystanie multimedialnych technik takich jak obsługa dźwięku czy video. W Polsce można tą pozycję zamówić w Empiku za 140.49 zł

Chafic Kazoun, Joey Lott - Programming Flex 2 The comprehensive guide to creating rich media applications with Adobe Flex. Książka wydana przez O`Reilly jako pozycja z serii Adobe Developer Library w kwietniu 2007 roku Książka ma 502 stron. Na stronie książki można pobrać 4 rozdział w PDF, który jest wprowadzeniem do programowania w ActionScript 3. a także kody źródłowe. W Polsce można tą książkę zamówić w Empiku za 202,99 zł.

Charles Freedman - Yahoo! Maps Mashups. Książka wydana w lutym 2007 roku przez wydawnictwo Willey i ma 353 strony. Książka napisana przez jednego ze współtwórców Yahoo! Maps. Yahoo! Maps to serwis geolokalizacyjny z mapami geograficznymi online. Wspominam o tym serwisie dlatego, że został on najpierw stworzony w technologii Flex 1.5, a potem w Flex 2. W tej książce 6 ostatnich rozdziałów jest poświęcone tworzeniu aplikacji RIA przy pomocy Flex 2 (przy pomocy starszej wersji API, niż obecna). Na stronie tej książki jest kod źródłowy i tekst pierwszego rozdziału w PDF tej książki.

Dla programistów ActionScriptu 3 polecam następujące pozycje:

Joey Lott, Darron Schall, Keith Peters - ActionScript 3.0 Cookbook Solutions for Flash Platform and Flex Application Developers. Książka wydana w październiku 2006 roku przez wydawnictwo O'Reilly jako pierwsza książka z serii Adobe Developer Library. Książka ma 586 stron zawiera ponad 300 przepisów w 24 rozdziałach Można też pobrać kody źródłowe do tej książki. W Empiku można kupić za 145.99zł

Joey Lott, Danny Patterson - Advanced ActionScript 3 with Design Patterns. Książka wydana przez Adobe Press w listopadzie 2006 roku ma 302 strony.

Dla designerów i dla początkujących polecam następujące książki:

Jeff Tapper, Matt Boles, James Talbot, Ben Elmore, Mike Labriola. - Adobe Flex 2: Training from the Source. Książka wydana przez Adobe Press w październiku 2006 roku ma 624 strony. Zawiera CD z kodem źródłowym. Strona domowa książki zawiera erratę. W Polsce można ją kupić w Empiku za 163,99 zł. Polecam tą książkę początkującym to jest takim którzy nie mieli wcześniej do czynienia z programowaniem w ActionScript czyli designerom.

Lorenz Armin, Schöppe Gunther, Consbruch Felix, Sonnenberg Frank, Knapp Daniel - Developing SAP Applications with Adobe Flex
Jest to książka wydana w Niemczech w kwietniu 2007. Zawiera 289 stron. Wydawcą jest Galileo Press GmbH. W Empiku kosztuje ona 279.99zł. Na stronie poświęconej tej książce można ściągnąć przykładowy rozdział wraz z kodem źródłowym


Wydawnictwo specjalizujące sie w książkach o Flashu Friend of friends ma kilka książek o tym.

Charles E Brown - The Essential Guide to Flex 2 with ActionScript 3.0. Książka wydana w lutym 2007 roku przez friends of ED ma 520 stron. Na stronie książki można pobrać 7 rozdział w PDF o states oraz kody źródłowe W Empiku jest jeszcze niedostępna.

Keith Peters - Foundation Actionscript 3.0 Animation: Making Things Move!. Książka wydana w kwietniu 2007 roku przez friends of ED ma 568 stron. Na stronie książki można pobrać 8 rozdział (35 stron w pdf) omawiający easing i sprining oraz pobrać kody źródłowe do tej książki.Omawia takie zagadnienia jak wykrywanie kolizji, obracanie w różnych układach współrzędnych, elementy fizyki na przykładzie kul bilardowych, stosowanie grawitacji oraz kinematyki do wizualizacji ruchu postaci. Przedstawia też zagadnienia z podstaw grafiki trójwymiarowej - modelowania prostych brył i ich oświetlenia.

Zapowiedzi wydawnicze od Friend of friends :

Peter Elst, Sas Jacobs, Todd Yard - Object-Oriented ActionScript 3.0. Książka ma być wydana w lipcu 2007 roku i ma mieć ok 500 stron

Marco Casario - Flex 2 Solutions: Essential Techniques for Flex Developers będzie wydana w sierpniu 2007 roku. Planowana objętość książki to 450 stron. Na stronie książki podano, że ta pozycja będzie zawierać ponad 100 przykładów omawiających jak mierzenie wykorzystanie pamięci, tworzenie wygaszaczy ekranu, wykorzystania ColdFusion Extensions for FlexBuilder. Tworzenia interfejsu aplikacji we Flex 2 z kodem po stronie serwera w PHP, Java, Rails czy ColdFusion ze szczególnym zastosowaniem Flash Remoting dzięki talkim bibliotekom jak Flex Data Services, Java Remote Object i AMFPHP.

R Blank, Chris Charlton, Omar Gonzales, Hasan Otuome - AdvancED Flex 2 Application Development: Building Rich Media X. Będzie wydana we wrześniu 2007 roku Planowana objętość książki to 500 stron. Na stronie omawiającej tą pozycję można przeczytać że będzie o tworzeniu panelu administracyjnego wykorzystującego PHP i MySQL, o wykorzystaniu efektów wideo przy wykorzystaniu kodeków On2, przykłady jak tworzyć w Adobe Flex 2 takie aplikacje jak wiki, blog, kalendarz wydarzeń, będzie też omawiać tworzenie wizualizatora dźwięków. W Empiku już ją wyceniono na 140,49 zł

Sas Jacobs - Foundation Flex 2 for Developers: Data-Driven Applications with PHP, ASP.NET, ColdFusion, and FDS. Będzie wydana w październiku 2007 roku i ma zawierać ok 450 stron. Książka koncentruje się głównie programowaniu po stronie serwera m.in paneli administracyjnych w takich technologiach jak PHP, ASP.NET, ColdFusion, czy Flex Data Services. Strona książki z której będzie można pobrać przykładowy rozdział czy kody źródłowe.

Greg Goralski, LordAlex Leon - Foundation Flex 2 for Designers. Ksiażka będzie wydana w październiku 2007 roku. i będzie zawierać okolo 350 stron.

Zapowiedzi z serii Adobe Developer Library wydawnictwa O'Reilly:

William Sanders, Chandima Cumaranatunge - ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques. Książka będzie wydana w czerwcu 2007 roku i mieć 328 stron. Ta pozycja jest przedstawieniem wzorców projektowych z perspektywy programistów ActionScriptu 3. Wspomina o podstawach obiektowego programowania, wyjaśnia takie cechy jak abstrakcję, dziedziczenie i polimorfizm. Pokazuje korzyści z stosowania wzorców projektowych: tworzenia (takich fabryki czy singletony), strukturalne (dekorator, adapter, kompozytora) oraz zachowania (polecania, obserwatora, stratega, stanów).

Colin Moock - Essential ActionScript 3.0. Jedna z największych książek o ActionScript 3.0 (prawie 1000 stron) będzie wydana w lipcu 2007 roku. Obecnie można wykupić dostęp do wersji online i śledzić postępy nad edycją zanim ja wydrukują.

Rich Shupe Learning ActionScript 3.0: The Non-Programmer's Guide to ActionScript 3 ma zawierać 352 stron i być wydaną przez O'Reilly w listopadzie 2007 roku.

Matt Voerman, Simon Reid - Flex X User Interface Design & Development: Creating User-Friendly Rich Internet Applications. Książka będzie wydana w lutym 2008 roku i ma zawierać 352 strony. Można ja już zamawiać w Empiku

Chafic Kazoun, Joey Lott - Flex X Cookbook: The Adobe Developer Library Guide for Rich Internet Application Developers
Autorzy powyższej książki nie spoczęli na laurach i rozpoczęli prace nad kolejna wersja książki zatytułowanej Flex X Cookbook. Ma być w wydana w lutym 2008 roku. Adobe utworzyło serwis Flex 2 Cookbook gdzie każdy może wrzucać przykłady, które mogą być opublikowane w tej książce. Ciekawe jest to że Empik w Polsce już przewidział popularność takiej książki.

Zapowiedzi ze strony wydawnictwa Willey.

R. Braunstein - ActionScript 3 Bible Wydawnictwo Willey zamierza wydać 800 stronicową książkę we wrześniu 2007 roku.

Książki dotyczące Adobe Apollo

Mike Chambers, Rob Dixon, Jeff Swartz - Apollo for Adobe Flex Developers Pocket Guide. Książka wydana przez O'Reilly będąca wprowadzeniem do technologii Adobe Apollo i została napisana przez twórców tej technologii jest też dostępna w wersji online

Charles Freedman, Keith Peters, Clint Modien, Ben Lucyk , Ryan Manning - Professional Apollo. Wydawnictwo Willey planuje ją wydać w październiku 2007 roku.

Książki o innych technologiach RIA

Laurence Moroney - Programming Web.Next (Pro - Developer) ma zawierać 640 stron i być wydaną przez Microsoft Press we wrześniu 2007 roku. Książka głownie będzie się koncentrować na możliwościach jakie daje Dynamic Language Runtime w Microsoft Silverlight i w ASP.NET.

Chris Coremans - AJAX and Flash Development with OpenLaszlo: A Tutorial. Książka wydana w sierpniu 2006 roku przez wydawnictwo BrainySoftware. Ma 350 stron. Na stronie tej książki można ściągnąć 4 pierwsze rozdziały i jak kody źródłowe. Przykład tej książki pokazuje jak szybko wiedza się zdezaktualizuje, bo opisuje wersję OpenLaszlo 3.0 a obecnie dostępna jest już wersja OpenLaszlo 4.0 .

L. McColl-Sylvester - Professional haXe and Neko. Książka zawierająca około 450 stron będzie wydana we wrześniu 2007 roku przez wydawnictwo Willey. HaXe to nowy język programowania utworzony aby umożliwić programowanie po stronie serwera i jak tworzenie Rich Internet Application. Neko to silnik wykonawczy, który umożliwia uruchamianie aplikacji HaXe na Windowsie, Macu czy Linuksie. Dużą korzyścią z HaXe jest tworzenie aplikacji Flashowych czy Ajaxowych współpracujących z XML i innymi formatami danych. Książka ma też zawierać kompendium tego języka.

Podsumowanie

Wyliczyłem książki poświęcone technologiom RIA opisujące programowanie we Flex 2 i ActionScript 3. Niektórzy pisarze mają talent do pisania książek. Niedługo dojdą do tego książki poświęcone Flash CS3. Ilość zapowiedzi wydawniczych jest bardzo duża (brałem uwagę tylko angielskojęzyczne, a pewnie pojawią się książki pisane w językach narodowych). Tak wiec podsumowując napisano i wydano już 11 książek, a 12 jest już w trakcie pisania bądź drukowania. Według Amazon.com i jak O'Reilly są to obecnie jedne z popularniejszych książek informatycznych.

Jakie książki o ActionScripcie 3 i Flex 2 Helion czy inne polskie wydawnictwa wydadzą w najbliższym czasie? Którą chcielibyście żeby wydano? A może napiszemy wspólnie książkę?

czwartek, 17 maja 2007

Trace() i debugowanie.

Programistom Flex 2 SDK czasami przeszkadza brak wizualnej reprezentacji komunikatów typu trace(); Otóż trzeba najpierw wyinstalować FlashPlayera 9 i zainstalować wersję Debug Flash Playera. Potem sprawdzić czy ma się plik C:\Documents and Settings\username\mm.cfg, jeśli go nie ma, to należy go utworzyć z następującą treścią

TraceOutPutFileName=C:\Documents and Settings\username\Dane aplikacji\Macromedia\Flash Player\Logs\flashlog.txt
ErrorReportingEnable=1
TraceOutputFileEnable=1
MaxWarnings=50

Sprawdzamy czy mamy plik gdzie trzymamy logi FlashPlayera. Jak go nie mamy to go tworzymy jako pusty plik tekstowy. Następnie instalujemy wtyczkę FlashTracer do Firefoxa.
Po zainstalowaniu klikamy w menu Narzędzia u FF i wybieramy "FlashTracer Alt+A" i pojawi się panel z boku. Wybieramy 'Options' i sprawdzamy czy ścieżka do logów jest poprawna.
Jeśli nie to poprawiamy na ścieżkę podaną w pliku mm.cfg.

Jaki jest z tego "morał"? Że, należy oczyścić pliki SWF z komend trace(); jak opublikuje się na stronie. Zbyt dużo informacji zostawiają programiści w kodzie co może okazać się niebezpieczne ze względów bezpieczeństwa. Może się zdarzyć że są tam hasła lub adresy URL wrażliwe na działania hackingu.

środa, 16 maja 2007

Resin z PHP5 alternatywą dla LiveCycle?

Programiści lubią tak bardzo zaskakiwać że czasami jestem bardzo zdziwiony. Pomyślałem skoro Adobe rozwija Flex Module for Apache i IIS oraz LiveCycle Data Services to zastanawiałem się jak można kompilatora Flex 2 odpalać z poziomu PHP. Okazało się że nie jest to takie proste. (przynajmniej zainstalowałem Flex Module for Apache musiałem generować pliki MXML z takim zakończeniem .mxml za pomocą PHP). Myślałem o wykorzystaniu rozszerzeń Javy w PHP (ale brak dokładnych informacji o wykorzystaniu tego powodowało że doszedłem że to chyba nie najlepsze rozwiązanie). Może tak pisać w PHP i generować do bajtkodu Javy? To chyba zbyt szalony pomysł podobny jak w przypadku Phalangera.NET (czyli jest to dobre dla ludzi robiących karierę naukową) Chyba lepszym rozwiązaniem byłoby napisanie interpretera PHP jako część serwera JEE. I znalazłem taki serwer Resin. Interpreter PHP w Javie nazywa się Quercus. Można w nim uruchomić większość aplikacji PHP5. To co zawiera ten serwer kompletnie mnie zaskoczyło. To "perełka" masz dostęp do tego co ma PHP i możesz w PHP wykorzystać servlety takie jak JMS, EJB, SOA frameworks, Hibernate i Spring. Dla takiego serwera jak Resin pewnie dałoby się podpiąć Flex SDK i Granite Data Services, a także ActiveMQ. JOTM, czy Red 5 i programować z poziomu PHP 5. W Resinie jest wbudowana obsługa Groovy (ukłon w stronę programistów takich języków jak Python czy Ruby). Co sądzicie czy Resin i Quercus staną się popularnymi rozwiązaniami?

niedziela, 13 maja 2007

Widgets, gadgets and Adobe Apollo

Adobe Apollo wpisuje się w krąg aplikacji które zamierzają być pośrednikami pomiędzy internetem (przeglądarkami internetowymi) a aplikacjami komputerowymi. Istnieje pewien problem terminologiczny jak je nazwać. Gadżety (ang. gadgets) to terminologia forsowana przez Microsoft czy Google, a widżety (ang.widgets) to słownictwo używane przez Yahoo czy Operę. Była propozycja, żeby je nazywać wihajstrami. Cecha tych technologi jest to, że twórcy do tworzenia tego mogą korzystać ze znanych technologii takich jak XML, HTML, CSS, czy skrypty w JS. Drugą ich cechą jest to że wymagają odpowiedniego silnika wykonawczego (albo wykorzystują istniejące silniki przeglądarek internetowych) aby można było to wykonać. Niekiedy te silniki wyróżniają się tym że urozmaicają obszar roboczy tj pulpit użytkownika, albo przeglądarkę internetową (dodając różnego rodzaju funkcjonalności poprzez wtyczki).

Cala popularność tego rozpoczęła się od tego, że programiści zaczęli pisać wtyczki do Mozilii a potem do Firefoxa. Informacje o tworzeniu rozszerzeń należy rozpocząć od zapoznania się z mechanizmami obsługującymi w przeglądarce XPCOM, albo o wiele łatwiej jest pisać w oparciu o XUL i XBL. Warto przeglądać takie blogi jak Burning Chrome. Istnieje silnik wykonawczy XULRunner, który pozwala na tworzenie wtyczek uruchamianych tak jakby to była aplikacja desktopowa (nie wymaga zależności od przeglądarki Mozilla czy Firefox) Na blogu Ryana można przeczytać krótki kurs tworzenia aplikacji pod ten silnik Interesująca jest lista aplikacji tworzonych przy pomocy tego silnika. Najbardziej mnie zaskoczyła obecność Joosta czy Democracy Playera. Świadczy to o tym, że przy pomocy XULRunnera można robić całkiem dobre aplikacje RIA.

Google oferuje tworzenie gadżetów dla Desktop Gadgets. Dokumentację i przykładowe aplikacje są zawarte w SDK. Programuje się przy pomocy JS CSS i HTML, co sprawia, że tworzenie dodatków do tej aplikacji jest proste co świadczy rosnąca ilość tych dodatków. Warto śledzić grupę dyskusyjną dla programistów rozwijających ten program.

Microsoft forsuje rozwiązanie zwane Microsoft Gadgets dla Sidebar Microsoft Vista. O tworzeniu gadżetów dla tego sidebara można poczytać na MSDN a także przejrzeć jego API. Galerię można przejrzeć na tej stronie. To jest ograniczone tylko do Microsoft Vista. Ale znaleźli się programiści którzy napisali odpowiednie rozwiązanie pod Windows XP . Można pobrać i przejrzeć istniejące gadżety, a informacje o tworzeniu można poczytać na forum.

Opera też zaproponowała swoja technologię Widgets. Są to programiki, które wymagają uruchomionej przeglądarki internetowej Opery. Sporo informacji można przeczytać na stronie dla użytkowników Opery. O tworzeniu widzetów pod Operę można poczytać tu Katalog widzetów można przejrzeć na tej stronie. Informacje techniczne o Opera Wigets (specyfikacje, biblioteki) można przejrzeć na stronie dla programistów. Więcej informacji można uzyskać dzięki dostępowi do Opera SDK. Faktem jest to Opera zaczyna dominować jako przeglądarka internetowa instalowana w najnowszych modelach komórek. oraz palmtopów czy handheldów. Można się spodziewać jak producenci będą dołączać do urządzeń mobilnych nowe wersje przeglądarek opartych na Opera 9 SDK for devices wtedy widżety staną się UI dla aplikacji uruchamianych w tych urządzeniach.

Yahoo w 2005 roku przejęło firmę tworzącą silnik zwany Konfabulator i zmieniło jego nazwę na Yahoo Widgets. Od marca 2007 jest dostępna nowa wersja Yahoo Widgets 4. Co nowego w niej? Obsługa SQLite, nowe możliwości graficzne (niskopoziomowy canvas), dodawanie menu, obsługa AJAX, zmiana rozmiarów animacji, XML można obsługiwać za pomocą DOM i jak XPath, obsługa warstw (z-order), obsługę kompresji i dekompresji zip. Sporo informacji o tym można przeczytać w dokumentacji dla programistów. Warto ściągnąć Konfabulator SDK aby zapoznać sie z możliwościami i nauczyć sie tworzyć takie dodatki. W razie problemów można szukać pomocy na forum. Pomimo że jest dostępne dla Windowsa i jak Maca to posiada też API umożliwiające korzystanie tylko z technologii danego systemu operacyjnego. W przypadku Windowsa jest to obsługa kontrolek Active X. Z tego powodu można też wykorzystać maksymalnie możliwości systemu operacyjnego do tworzenia własnych programików używając JavaScriptu. Yahoo pisze, że społeczność już napisała ponad 4000 widzetów. Najpopularniejsze widzety prezentuje ta lista.

W fazie eksperymentalnej można wyróżnić 2 technologie: Boxely firmy AOL i Sidewinder z x-port.net.

Boxely to aplikacja aspirująca do tworzenia RIA z bogatym UI tworzona między innymi przez Joe Hewitta. Boxely powstało jako niezadowolenie wobec tego, jak obsługiwany jest XUL. Na bazie Boxely stworzono komunikator AIM 6.1. Obecnie jest dostępna wersja OCP Preview 2 0.9.10.2 Oto zrzuty ekranu przykładowych aplikacji Boxely. Zawiera zbiór efektów graficznych, pozwala na szybkie tworzenie aplikacji dzięki skryptom JS, ma wsparcie dla lokalizacji (internacjonalizacji) i spełnia standardy dostępności. Otwarte API pozwala programistom na pisanie rozszerzeń do Boxely. Do Boxely dołączono obsługę kontrolek Active X co pozwala na wykorzystanie między innymi przeglądarki IE czy Flasha Playera w tych aplikacjach RIA. Aby lepiej poznać możliwości Boxely warto przejrzeć dokumentację online. Są już dostępne artykuły Kurta Cagle o tym czym jest ta technologia "Thinking Inside the Boxely", a także o tym jak tworzyć taką aplikację na przykładzie przeglądarki czcionek "The Font of Wisdom: A Basic Boxely App, Part 1" i "The Font of Wisdom: A Basic Boxely App, Part 2". Corey Lucier napisał listę cech jakie powinna zrealizować aplikacja Boxely w przyszłości. Jest to bardzo interesujący tekst pokazujący w jaki kierunku mogą rozwijać się technologie RIA.

Mark Birbeck stworzył aplikację Sidewinder. Obecnie jest do ściągnięcia wersja 2.1. Jest to przykład próby stworzenia prototypowej przegladarki łaczącej prawie wszystkie standardy (XForm, XPointer, XPath, SVG i MathML) opierajac się na mechanizmach kontrolek Active X (FormsPlayer, Adobe SVG Viewer, MathPlayer, Gecko ActiveX) Twórca dodał możliwość pracy w trzech trybach (wewnątrz przeglądarki Internet Explorer, osadzona wewnątrz programu, jako samodzielny program). Można obejrzeć zrzuty ekranu pokazujące działanie tej aplikacji
Można przeczytać dokumentację o programowaniu Sidewindera.

Refleksja z tych rozwiązań jest taka, że maja one duży potencjał marketingowy. Nie jest on dobrze wykorzystywany przez reklamę. Powodem jest to, że trudno jest zrobić coś co przyciągnęłoby użytkowników do pobierania tych aplikacji. Niektórym technologiom idzie to dobrze. Przykładem jest Google Desktop (ok 1000 gadżetów) jest ukierunkowany dla ludzi ceniących porządek, natomiast Yahoo Widgets ma większą popularność (4000 widżetów) i możliwości graficzne (oraz programistyczne). Microsoft ma do zaoferowania (ok 800 gadżetów). Atutem Opery może być jej interoperacyjność. Widżety Opery będzie można uruchamiać na prawie każdym urządzeniu pod odpowiednim systemem operacyjnym nawet na urządzeniach przenośnych. Problem Microsoftu jest taki, że ogranicza sie do Visty. Z perspektywy czasu może okazać że tworzenie gadżetów i widżetów stanie się częścią stron internetowych. Staja sie one częścią trendu zwanego Rich Internet Application. Moim zdaniem aplikacjom Adobe Apollo jest bliżej do widzetów Opery i aplikacji XULRunnera. Ale myślę, że większą popularność może zyskać dzięki temu że programiści i designerzy będą masowo tworzyć aplikacje jakie są w tych gadżetach/widżetach szczególnie zawierające proste aplikacje typu powiadamiacze, prezentacja pogody czy czytniki RSS oraz proste gry komputerowe typu pasjanse, tetris czy saper.

wtorek, 8 maja 2007

JavaFX

Sun doszedł do wniosku że programiści preferują języki skryptowe nad językami kompilowanymi. Na konferencji JavaOne przedstawił swoją propozycję technologii RIA: JavaFX. To ma być język skryptowy używany do tworzenia aplikacji RIA uruchamianych z poziomu Java Web Start. Warto ściagnąć sobie binaria i dokumentację do JavaFX. Można przeczytać jak tworzyć tego rodzaju aplikacje. Składnia języka JavaFX jest bardziej zbliżona języków typu Smaltalk czy Lisp niż MXML oraz XAML. Można obejrzeć dema:
JavaFX Script JavaFXPad Demo
JavaFX Script Studiomoto Demo
JavaFX Script Tesla Demo
W praktyce to polega na tym że można uruchomić klasę net.java.javafx.FXShell podajac nazwę pliku .fx Ale tak naprawdę na silnik składają się pliki Filters.jar javafxrt.jar i swing-layout.jar razem to jest ponad 2 MB. Właśnie to uzależnienie od Swinga powoduje że wszędzie będzie się wyświetlać tak samo ale to nie jest dobre GUI z wyglądu (lepsze byłoby oparcie na SWT moim zdaniem).
Jakie wrażenie? Jakoś nie chce mi sie wierzyć żeby aplikacje Java Start Web były konkurencyjne i atrakcyjne wobec tego co ma do zaoferowania Silverlight i Adobe Apollo. Żyjemy w epoce multimediów więc technologie J2ME są bardziej multimedialne niż aplety Swinga z JavaFX. Myślę że przeniesienie JavaFX do J2ME spowoduje że stanie się bardziej atrakcyjniejsza z tego powodu że łatwiej będzie programować UI w komórkach. Wniosek: JavaFX jest dobre jako ewolucja midletów i konkurencja dla FlashLite.

poniedziałek, 7 maja 2007

Polskie projekty

Warto wspomnieć o projektach RIA tworzonych przez Polaków. Łukasz Błachowicz pracuje nad biblioteką asql umożliwiającą dostęp do bazy danych MySQL. Kod biblioteki jest do ściągnięcia z tej strony. Jacek Kłosiński pracuje nad projektem do obsługi "mapy myśli" wykorzystując Caringorma. Maciej Maliborski zrobił projekt implementujący obsługę FTP. Warto przejrzeć jego kod aplikacji Apollo z tej strony. Sebastan Zarzycki w celu poznania możliwości jakie dają technologie RIA powadzi projekt Weeki. Rafał Szemraj pracuje nad polskim odpowiednikiem Google Map czyli Zumi.pl

czwartek, 3 maja 2007

Dynamic Runtime Language

Microsoft postanowił znowu zaskoczyć w temacie Rich Internet Application. Od dawna wiadomo było, że platforma .NET nie współpracowała najlepiej z przeglądarkami internetowymi. Technologie typu "ClickOnce" przypominały za bardzo Java Start Web. Mało kto lubi uruchamiać przeglądarkę, żeby ściągać, instalować oraz uruchamiać programy. W dobie aplikacji internetowych ludzie oczekują że ich aplikacje będą obsługiwane przez przeglądarkę, że nie będą musieli ściągać i instalować oprogramowania. Google pokazało, że to jest możliwe. Adobe wyszło z założenia że wystarczy jeden format danych (SWF) i jeden odtwarzacz w przeglądarce (Flash Player) , żeby można było zaproponować programistom tworzenie aplikacji internetowych w przeglądarce. Następnie postanowiono dać możliwość tworzenia aplikacji komputerowych tak żeby wykorzystać możliwości jakie daje programowanie aplikacji internetowych. To jest Adobe Apollo. Microsoft zrozumiał że czas programowania w takich językach jak VB.NET czy C# aplikacji internetowych kończy się. Platforma .NET nie nadaje się do tworzenia klienckich aplikacji internetowych uruchamianych w przeglądarce (nikt nie robi plików .xbap). Trzeba było napisać plugin (wtyczkę), który pozwoli programistom .NET wykorzystać swoich możliwości w pisaniu aplikacji internetowych uruchamianych w przeglądarkach. Co to oznacza? Że plugin musi zawierać zmodyfikowany CLR który będzie nadawał się do obsługi skompilowanych zarządzalnych bibliotek DLL wykonywujących kod w przeglądarce internetowej. Ten zmodyfikowany CLR otrzymał nazwę Dynamic Runtime Language i został zaimplementowany w Silverlight 1.1 Koncepcja napisania czegoś takiego wyszła ze strony programistów IronPythona i innych języków dynamicznych (Jima Hugunina i Johna Lama oraz Tomasa Matouseka) . Obecnie kod źródłowy DRL znajduje sie w kodzie źródłowym IronPythona 2.0. Warto przeczytać wywiad z tymi programistami, aby zrozumieć czym jest ten "błysk".

SilverLight 1.1 może w przyszłości stać się głównym silnikiem renderującym dla nowej przeglądarki internetowej Microsoftu. Co zawiera nowego dla programistów? Przedsmak tego co będzie w .NET3.5.

  • Wsparcie dla kodu zarządzanego .NET
  • Wsparcie dla języków dynamicznych takich jak Managed JScript and Python
  • Nowy interfejs kontrolek użytkownika bazujących na WPF
  • Wbudowana obsługa wysokopoziomowych protokołów sieciowych takich jak REST, RSS, JSON, POX
  • Komunikacja ze strona internetowa na której jest kontrolka Silverlight poprzez DOM i AJAX
  • Zawiera kompletny zestaw klas bazowych znany z .NET
  • Wsparcie dla LINQ
Tych możliwości jest tak dużo, (wystarczy przejrzeć kody źródłowe aplikacji dla Silverlight) że można powiedzieć, że technologiom Adobe faktycznie przybył poważny konkurent. Tym poważniejszy, że nie zmusza programistów .NET do uczenia sie czegoś nowego jakim jest ActionScript 3. Myślę, że teraz przydałby się dla nich jakiś generator plików SWF współpracujący z technologiami .NET. Prawdopodobnie w najbliższym czasie DLR może zostać dodane do Mono ( i czekać jak programiści Microsoftu i Novella zrobią Silverlighta dla Linuxa)

Aby jeszcze bardziej zainteresować programistów swoja technologią Microsoft zaproponował im hosting (4GB) na multimedialne aplikacje internetowe wykorzystujące Silverlight.

Także jest też ciekawe jak będą programiści wybierać pisanie nowych silników dla języków skryptowych w oparciu o Tamarin czy w oparciu o Dynamic Runtime Language do swoich aplikacji. Obydwa oferują JIT i jak Garbage Collection. Coś mi to przypomina sytuację w której programiści języków dynamicznych mogą generować kod pośredni (zarządzalny) w Pythonie (Jython czy IronPython) bądź w Rubym (JRuby czy IronRuby). Czy będziemy mogli generować pliki SWF w Pythonie czy w Rubym? Albo co ciekawsze napisać interpreter składni Pythona czy Rubiego w AS3 tak jak zrobiono to z Lispem i Smaltalkiem. Czy w tym kierunku będą sie rozwijać aplikacje internetowe? Czy Flashowi i jego filmom .flv grozi faktyczna konkurencja ze strony Sileverlighta i jego plików wideo ?