sobota, 28 kwietnia 2007

Viewpoint Media Player

Od pewnego czasu widzę jak programiści ActionScriptu3 pasjonują się możliwościami biblioteki Papervision3d. Mnie się wydaje, że animacje zrobione we Flashu i zastosowane w grafice trójwymiarowej na stronach internetowych już było kiedyś wykorzystywane. Mam na myśli technologię Viewpoint Platform. Adobe miało kiedyś przyjemność zastosować tą technologię przy tworzeniu Adobe Atmospehre. Wspominam o tej wtyczce Viewpoint Media Player ze względu że to była chyba jedyna "konkurencyjna" przeglądarka wykorzystująca pliki SWF (tylko do wersji 4). Ale jeszcze przed Flash Playerem wykorzystało kodeki video firmy On2. Przewaga rozwiązania video w tej technologii nad rozwiązaniem we Flash Playerze jest taka że można przesyłać pliki wideo w sposób ciągły nie wymagając serwera strumieniowego. Na czym polega "sekret"? Na podzieleniu filmu na wiele małych plików odpowiednich do wielkości transferu. Viewpoint Media Player ma możliwość pełnoekranowego i transparentnego wyświetlania zawartości od przeglądarki internetowej HyperView. Do innych zalet tej technologii można też zaliczyć ZoomView , pozwala to na osiągnięcie dużego powiększenia grafiki rastrowej. Ma też własny silnik skryptowy VETScript pozwalający na uzyskiwanie interakcji na obiektach w trzecim wymiarze .

Przykłady możliwości można zobaczyć na tej stronie. W Polsce na razie zetknąłem się tylko z taką prezentacją wykorzystującą tą technologię. Do tworzenia zawartości można użyć ich produktu Enliven, albo wykorzystać darmowego SceneBuilder (wymaga potem ręcznego poprawiania kodu).

Historia tej firmy jest przykładem jak średniej wielkości firma informatyczna przekształca się w firmę nastawioną na branże reklamową, gdzie działalność innowacyjna i developerska (R&D) ma już coraz mniejsze znaczenie. Ma to też negatywne konsekwencje że ludzie kojarzą tą firmę z niechcianą i agresywną reklamą internetową. To sprawia, że Viewpoint Media Player jest kojarzony z adware.

czwartek, 26 kwietnia 2007

Kod źródłowy kompilatora Flex 2 będzie dostępny

Firma Adobe wciąż czymś zaskakuje. Dzisiaj przeczytałem że zamierzają opublikować kod źródłowy Flex SDK . Co to znaczy dla mnie? Że ktoś może napisze kompilator AS 3 w PHP czy w Ruby. Ale tak naprawdę myślę że to jest tylko wejście wielkiej firmy w biznes Open Source. Z samego kodu firma nie ma korzyści, ale jak programiści zaczną wykorzystywać kod to firma może zarabiać na usługach i wartości dodanej na wsparciu jej klientów. Patrząc na raporty finansowe Adobe wnioskuje że firmie opłaca sie taki manewr. Technologie Adobe Flex 2 nie przynosiły dużych przychodów firmie, ale powodowały, że wartość firmy wzrastała.

Francuski ruch OpenSource inicjował pewne ruchy które sprawiały, że Macromedia a potem Adobe zrezygnowała z walki o monopol nad tworzeniem narzędzi do generowania plików SWF, wychodząc z założenia ze współpraca z programistami OpenSource daje większe korzyści. Zaoferowanie AVM2 (Tamarin) jest przykładem dobrego działania, które przyniosło raczej więcej rozgłosu marketingowego niż praktycznego. Niewielu jest programistów którzyby wykorzystaliby ten kod do swoich produktów. Porównałbym wypuszczanie i upublicznianie kodu do promocji typu "komórka za zlotówkę". Koszt zapoznania sie z tym przez zwykłego człowieka jest zbyt wysoki, (podobnie jak wysoki abonament, który jest spłacaniem ukrytych rat) a ci którzy to już znają to raczej maja na głowie ważniejsze sprawy niż grzebanie się w tym kodzie (podobnie jak z właścicielami najnowszych komórek, którzy nie potrzebują czegoś za symboliczna złotuwkę). Więc w praktyce jest to prezent dla pasjonatów i studentów. Z drugiej strony wiadomo że jak komuś zależałoby napisaniu własnego kompilatora to i tak by to już dawno napisałby - przykład MTASC. Ming, HaXe. Wypakowanie plików klas z Flex 2 SDK a potem ich dekompilacja nie jest takim trudnym zadaniem. Można zadawać pytanie czy jest obecnie sens bawić sie w to jak skoro Adobe upubliczni kod Flex 2 SDK. Czy powstaną jakieś nowe technologie oparte na tym? Czas pokaże, bo obecnie mamy taką sytuację, trzeba już coraz bardziej specjalizować się i intensywnie promować swoje technologie. To jest pożądane zjawisko. Z drugiej strony szybko pojawia się konkurencja i wtedy zaczyna się walka o programistów. Producent technologii chce przekonać żeby programiści używali jego technologii, a z drugiej strony klienci też oczekują że otrzymają produkty w danej technologii. Zaczyna sie walka o programistów. A programiści muszą wybierać technologie i klientów którym dostarczą produkty i usługi w oparciu o daną technologię. I trudno programistom dogodzić.

środa, 25 kwietnia 2007

Otrzymałem AS3 and Flex API Posters

Kiedyś na tej stronie zgłosiłem, żeby mi przysłano postery do powieszenia na ścianie. No właśnie je dzisiaj otrzymałem. Dla tych którzy nie otrzymali mogą pobrać sobie pliki i wydrukować je w zakładzie poligraficznym.

ActionScript 3 API PDF at Flex.org
Flex 2 Framework API PDF at Flex.org

Można też wydrukować bardziej skromniejsze postery utworzone przez Seana Moore'go:

ActionScript 3.0 Top Level Classes Cheatsheet
ActionScript 2.0 to 3.0 Migration Cheatsheets
ActionScript 2.0 Cheatsheets
Apollo mx.controls & mx.core Cheatsheet
Apollo flash.display & flash.events Cheatsheet
Apollo flash.filesystem, flash.html & flash.system Cheatsheet

Adobe Media Galery

Trafiłem przypadkiem na Adobe Media Galery. I zastanawiałem się jak to działa. Prawie wszystko mamy konfigurowane w plikach XML. Kod źródłowy tej biblioteki jest ogólnodostępny (modyfikowane to jest w pliku .fla w Flash 8).. Poczułem sie z tego powodu nieco zawiedziony, bo myślałem że będzie tam kod dla ActionScript 3 (i Flex 2).

Przychodzi mi do głowy pewna idea. Czy tworzyć aplikacje RIA gdzie wszystko jest konfigurowane w plikach XML? Począwszy od elementów layoutu a skończy się na stylach i plikach z tłumaczeniami. To chyba wygląda na tworzenie silnika szablonów dla aplikacji RIA.

Z drugiej strony aplikacje RIA składają sie z w wielu widoków i obsługują wiele stanów działania użytkownika. Serwer ogranicza sie do przekazania danych i przyjęcia przetworzonych danych. To oznacza ze dane XML muszą mieć format dla konkretnej aplikacji RIA.

Czy są wam znane jakieś podobne aplikacje (biblioteki) działające jak powyższy Adobe Media Galery?

wtorek, 24 kwietnia 2007

Flex Component Kit for Flash CS3

Na Adobe Labs jest narzędzie Flex Component Kit for Flash CS3 do zamiany zawartości tworzonej w Flash CS3 do postaci komponentów SWC, które mogą być obsługiwane w Adobe Flex 2. To jest spowodowane tym, że Flash CS3 jest bardziej narzędziem designerskim, niż programistycznym. Wynikają tez z tego powodu pewne różnice. W Adobe Flex 2 bazuje się na komponentach i skryptach natomiast w Flash CS3 bazują na tradycyjnych metodach takich jak animacje, obsługa timelines, movieklipy. Warto obejrzeć prezentację przedstawiające możliwości tego narzędzia

Moxie to nazwa kodowa Flex 3. Do tej wersji doda się możliwości związane z obsługą skórek (ang. skins) oraz zarządzaniem zawartością bibliotek (podobnie jak w przypadku zawartości we Flash CS3) oraz obsługę klatek kluczowych . Może kiedyś Adobe Flex upodobni się bardziej do narzędzi designerskich?

piątek, 20 kwietnia 2007

Guasax Flex Framework

Zastanawiam się, czy już pogodzić się z tym że jak w przypadku PHP czy J EE powstają nowe frameworki. Teraz chyba programistów w ActionScript 3 ogarnie moda na pisanie własnych frameworków. Jest wynik poszukiwań nad rozwiązaniami z architektury projektów informatycznych. Cairgorm 2.0.1 jest frameworkiem proponowanym przez Adobe. Ale nie wszystkim to rozwiązanie przypada do gustu , szczególnie programistom J EE. Są oni przyzwyczajeni do architektury na przykład Struts 2. Grupa programistów postanowiła zrobić framework architektury w AS3 dla programistów J EE - Guasax Flex Framework. Warto zapoznać się z ich wprowadzeniem w języku hiszpanskim i kodem źródłowym na google code.

Wychodzi na to jedna rzecz, że gdy jakiś projekt jest pisany w jakimś frameworku to w pewnym sensie "uzależnia" firmę i klienta od tego frameworka. To powoduje, że wymusza na programistach firmy znajomość danego frameworka. Problematyczne staje się zatrudnianie nowych programistów w takiej firmie. Dlaczego? Bo wymusza na nowych programistach ciągłą edukację bez wielkiej gwarancji że tego sie nauczą. Wydaje mi sie że stosowanie frameworków ułatwia pracę doświadczonym programistom ale nie tym którzy rozpoczynają pracę. Obecnie można rozróżnić na frameworki GUI (np: AsWing czy Papervision3d) czy architektury takich jak (Cairngom 2, ARP3, Riawave, czy powyższy Guasax). Pisanie własnego frameworka przez programistę jest zbyt ryzykowne dla firmy i dla klienta to z prozaicznego powodu: nie ma kto "przejąć" opiekę nad tym kodem.

Na dzień dzisiejszy uważam, że warto poznawać Cairngorna 2 (bo jest szeroko znany), ale też śledzić jak będzie rozwijał się Gausax (bo jest najbardziej zaawansowany w rozwoju). Na horyzoncie widać już konkurencję w postaci OpenLaszlo i jak HaXe bo na ich podstawie też można stworzyć duże projekty RIA (może programiści stworzą jakiś odpowiednik Ruby on Rails czy Symfony w tych technologiach). Czy polscy programiści Action Scriptu używają frameworków własnych czy wykorzystują już powyższe frameworki?

środa, 18 kwietnia 2007

Nowy numer Web Developer’s & Designer’s Journal.

Nowy numer czasopisma Web Developer’s & Designer’s Journal został wydany. W nim można poczytać kilka ciekawych artykułów.

Andrew Trice napisał artykuł "Binary Data, ColdFusion & Flex. Sending BitmapData to a server and saving it as a JPG file". Jest analiza tego jak można przesyłać dane graficzne na serwer prosto z pliku SWF. Wymaga to zastosowania klasy JPGEncoder class Zaletą wykorzystania tej biblioteki jest to że nie wymaga operacji konwertującej po stronie serwera. Kwestą do rozwiązania w jest jaki sposób prześlemy te dane. Najszybszy sposób to wykorzystanie serializacji AMF3. Kolejny sposób to wykorzystanie Web Services (dane przesyłane w ten sposób muszą być zakodowane do postaci Base-64 po stronie klienta). Zaletą tego rozwiązania jest to że można wykorzystać różne technologie po stronie serwera do zapisu tych danych.
W ostateczności można wykorzystać sam protokół HTTP z metodą POST. Do prostych zastosowań w pewności wystarczy. Zawsze można ten artykuł przeczytać i przerobić go tak aby wykorzystywał ulubioną programiście technologię po stronie serwera. Kody źródłowe są do ściągnięcia stąd a kod aplikacji można zobaczyć online


Artykuł "Simplifying AJAX with the Spry Framework Delivering great experiences" został napisany przez Paula Gubbay. Jest to przewodnik po frameworku Spry. Jest dość ciekawym frameworkiem gdzie informacje głownie są obsługiwane przez format XML wraz JavaScriptową implementacją Xpath. Zarzadzanie danymi odbywa się na poziomie odpowiednich atrybutów w znacznikach kodu XHTML sprawiając że kod XHTMLa strony staje się szablonem.
Duzą wagę poświęcono Widgetom czyli kontrolkom UI obsługiwanych przez AJAX. Spry zawiera też bibliotekę efektów. Jako całość jest dość ciekawym rozwiązaniem, można powiedzieć, że bardziej nadaje sie do wykorzystania w przyszłości do stworzenia edytorów graficznych do obsługi AJAXa nie wymagając od twórcy klepania kodu.

Najciekawsze są artykuły poświęcone Adobe Flex 2. Pierwszy z nich to: "Flex 2 Metadata Tags Telling the compiler how to compile". Autorem jest Rich Tretola. Metadane pełną ważna rolę w kodzie MXML informujac o tym jak dane mają być traktowane. Oficjalnie tych metadanych jest ze 12. Na przykład metadana [Bindable] służy do powiązania danych z kontrolkami UI . Natomiast [Embed] do osadzania obiektów takich jak grafika czy media w pliku SWF. Ciekawe dlaczego nie napisał jak można obsłużyć własne metadane z poziomu Action Script 3.

Drugi artykuł to: "Video Rock ’n Roll with Flex 2 Streaming videos " Autorem tego jest Michael Givens. Jest to krótki artykuł pokazujący jak można zrobić klienta dla Flash Media Server
(wykorzystując pliki flv z YouTube) . Przykład można obejrzeć tu, a kod źródłowy tutaj.

wtorek, 17 kwietnia 2007

Dokumentacja do Adobe Flash CS3

Polecam szczególną uwagę przy zapoznaniu się z dokumentacją online która zaktualizowano całkiem niedawno (27 marca), a szczególnie gdzie dotyczy pakietów fl.* najciekawsze to jest o kodowaniu XML Motion.

Poprawka do Adobe Flex 2.0.1

Kolejną nowością w Adobe Flash CS3 jest nowy debugger. Adobe Flash CS3 ma nowy silnik debugujący skrypty ActionScript 3. Zaistniała potrzeba uaktualnienia dla Adobe Flex 2., aby był zgodny z Flash CS3. Na Adobe TechNote jest odpowiednia poprawka do Flex 2.0.1 którą warto zainstalować.

poniedziałek, 16 kwietnia 2007

Flash Player 9.0.45

Należy obecnie od 10 lipca 2007 roku instalować wersję 9.0.47 Adobe Flash Player dla użytkowników Windowsa (o problemach z instalacją na Windows Vista poświecono odrębny wpis). Użytkownicy Linuxa moga instalować wersję 9.0.48 Adobe Flash Player.

Po "cichu" Adobe wprowadziło nową aktualizację Adobe Flash Playera do wersji 9.0.45 uzasadniając to wprowadzeniem Flasha CS3, który podobno generuje nową zawartość niezgodną z tym co oferuje Adobe Flex 2. I wprowadzono 3 poprawki. Po przejrzeniu blogów okazało się że do w ActionScript 3 można programować nowe pakiety odpowiedzialne za przekształcenia i za animację. Nico w swoim blogu w wpisie Flash CS3 swc for Flexbuilder dołączył komponent z Flash CS3 pozwalając programistom Flexa wykorzystywać nowe pakiety na przykład takie jak fl.motion czy fl.transitions. Więcej o tym można poczytać w artykule Flash Quick Starts: Programming with ActionScript 3.0

Rebranding

Nareszcie wiemy jak będą nazywać się produkty RIA Microsoftu i Adobe

WPF/e staje się Microsoft Silverlight. Adobe Apollo może nazywać się Adobe Desktop Presentation Foundation (chociaż można powiedzieć że to jest żart primaaprilasowy) Adobe "Philo" - Adobe Media Player (informacja pochodzi z serwisu flexjobs). Ostatnio na Adobe Labs pojawiły się wersje beta Adobe® After Effects® CS3 Professional preview i jak Adobe® Premiere® Pro CS3 Wygląda na to, że prace nad Adobe Media Player idą pełna parą - trwają prace nad modelem DRM dla flashowych filmów wideo. Przypuszczam, że pewnie pojawia się nowe kodeki w Flash Player.

Myślę, że teraz zacznie się marketingowa wojna o klientów. Nazwy kodowe technologii są zrozumiałe tylko dla pasjonatów czy testerów. Ale trzeba się liczyć z tym, że inaczej rebrandnig postrzegają twórcy technologii. Dla nich to jest tylko zmiana nazw i jak uaktualnienie tysięcy stron dokumentacji. Programiści muszą przestawiać sie na nowe nazewnictwo, chociaż kod nie zmienia się. W efekcie końcowym liczy się wykreowanie marki.

wtorek, 3 kwietnia 2007

Praktyki w Lublinie dla programistów Pythona

Firma Enzo Sp. z o.o. poszukiwała programisty PHP5. Obecnie powoli przechodzimy na tworzenie serwisów społecznościowych w Pythonie w frameworku Django. Ja w tej firmie jestem zatrudniony od 3 lat. Obecnie jestem programistą i testerem. Do moich zadań należy testowanie oprogramowania i aplikacji internetowych tworzonych w firmie.

Jeżeli ktoś jest zainteresowany tworzeniem aplikacji RIA (Rich Internet Application) w Lublinie to zapraszam do zapoznania się z ofertą na tej stronie. Mogę zaproponować ze swojej strony wspólne poznawanie możliwości ActionScript 3 i Adobe Flex 2 w celu wykorzystania tych technologii w projektach. Może będzie szansa na wykorzystanie AMFPHP albo WebOrb for PHP Interesująca będzie perspektywa tworzenia aplikacji wykorzystujących Adobe Apollo. Zapraszam do odbywania praktyk i liczę na współpracę.

poniedziałek, 2 kwietnia 2007

Dostępność i użyteczność aplikacji Flex 2

Firma Adobe dużą wagę poświęca temu, aby jej technologie były dostępne i spełniały ustawowe wymagania dla tego rodzaju aplikacji. Ale dużo w tym zależy od samych programistów, którzy to wykorzystają. Aby nie było wątpliwości o zastosowaniu dostępności trzeba pamiętać o zasadach jakie wyznacza zbiór dobrych praktyk: kontrolowanie porządku w czytaniu, i w nawigacji za pomocą klawiatury, zapewnienie dostępu do aplikacji Flex za pomocą klawiatury poprzez stosowanie skrótów klawiaturowych, zapewnienia alternatywnej zawartości tekstowej dla mediów typu wideo czy audio, wykorzystaniu etykiet tekstowych oraz rozsądnym doborze kolorów.

Zalecałbym najpierw zapoznanie się z dokumentacją dotyczacą tworzenia dostępnych aplikacji Flex. Wypada znać zasady działania czytników ekranu pod Windows na przykład JAWS. Trzeba wiedzieć, że kontrolka ActiveX Flash Playera wspiera Microsoft Active Accessibility (MSAA). Ta kontrolka w trybie przezroczywstości i "windowless" powoduje, że MSAA nie działa poprawnie.

Programiści kompilując aplikacje Flex powinny pamiętać o dodaniu linii poleceń odpowiedniego przełącznika (albo odpowiednim ustawieniu pliku konfiguracyjnego)

mxmlc -accessible c:/dev/myapps/app1.mxml

Na tej stronie można przeczytać jak obsługiwać kontrolki (komponenty) Flex z poziomu klawiatury. Istotna cechą opisaną na tej stronie jest zapewnienie w jakiej kolejności mają być obsługiwane poszczególne kontrolki. Ma to duże znaczenie podczas nawigacji z poziomu klawiatury i jak odczytywania przez czytniki ekranu. Programiści ActionScriptu mają do dyspozycji klasę flash.accessibility.AccessibilityProperties i możliwość sprawdzenia czy użytkownik korzysta z czytnika ekranu poprzez użycie właściwości Accessibility.active.

Pozwala to na przykład na pominięcie niepotrzebnej animacji. Z materiałów o dostępności warto przejrzeć bloga o dostępności, a takze poświęcony tej tematyce blog Niqui Merret.
Flex ma 22 komponenty które mają wbudowaną obsługę dostępności. Więcej informacji o tym można przeczytać w tej prezentacji ( i pobrać kod źródłowy ).
Bardzo ciekawym przykładem wykorzystania tej cechy we Flash Player jest FlashAid biblioteka JS pozwalająca sprawdzić czy użytkownik może korzystać z czytników ekranu.