sobota, 18 kwietnia 2009

e-Deklaracje aplikacją Adobe AIR

Ostatnio coraz bardziej staje się popularne instalowanie Adobe AIR 1.5.1 ze względu na to, że Ministerstwo Finansów zrobiło aplikację e-Deklaracje w technologii Adobe AIR. Parę osób pisało mi że nie może zainstalować Adobe AIR. W tej sytuacji pomyślałem, że są różne problemy z którymi mogą się zetknąć użytkownicy instalujący e-Deklaracje.

-- Michałku kochany, moja koleżanka pisze mi w mailu że nie może zainstalować Adobe AIR. A ponieważ wiem że jesteś ekspertem od technologii Adobe to napisałam jej że mój Michałek zawsze znajdzie na to rozwiązanie.
Michał popatrzył w oczy Darii. Wyczuwał w niej bezradność wobec problemów z technologiami.
-- Dusiu, według mnie jest to bardzo rzadki przypadek kiedy instalator Adobe AIR zawodzi. Trzeba sobie poradzić w sytuacji gdy nie może zainstalować Adobe AIR.
Michał zamyślił się
-- Michałku co mam napisać koleżance -- błagalnie westchnęła
-- Najlepiej Dusiu zrobimy to razem to potem będziesz wiedziała co należy napisać koleżance.
-- Oczywiście Michałku
-- Tak wchodzimy na stronę http://www.e-deklaracje.gov.pl/index.php?page=do_pobrania
Michał podejrzał kod źródłowy. Wskazał kawałek kodu.
-- Dusiu trzeba pobrać ten plik e-DeklaracjeDesktop.air
-- Co robi ten plik?
-- To tylko plik instalacyjny. Ale na stronie piszą że wymagają zainstalowania Acrobat Readera. Ale my nie mamy zainstalowanego, bo używamy Foxit do plików PDF.
-- Czy to jakiś problem?
-- Teoretycznie tak, bo skoro to ma być interaktywny PDF to najpierw zignorujemy wymóg posiadania Acrobat Readera.
-- Dlaczego Michałku.
-- Bo chcę zobaczyć czy firma, która robiła to rozwiązanie dla Ministerstwa Finansów, przewidziała taka sytuację. Na razie ściągniemy wersję instalacyjną Acrobat Readera. Ale skoro koleżanka nie może zainstalować Adobe AIR to pozostało jej skorzystanie z narzędzia dla programistów Adobe AIR SDK do ściągnięcia w wersji Windows.
-- Nie wiem czy sobie poradzi z narzędziami dla programistów.
-- Dusiu jak Ty sobie poradzisz to koleżanka Twoja też.
-- Co dalej?
-- Ściągnęliśmy Adobe AIR SDK. To teraz to wypakuj na dysku C:\ , ale na innym też może być. Daria wypakowała na dysku C:\
-- Dusiu czy mamy C:\AdobeAIRSDK\bin\adl.exe ?
-- Tak Michałku
-- To w porządku, ten plik uruchamia plik opisu aplikacji AIR.
-- Teraz zmienimy rozszerzenie pliku e-DeklaracjeDesktop.air na e-DeklaracjeDesktop.zip i rozpakuj to do folderu C:\e-DeklaracjeDesktop
-- Nie wiem czy sobie poradzi z podmianą rozszerzenia.
-- Jak nie będzie potrafiła to niechaj zadzwoni szybko i jej wytłumaczysz
-- Dobrze.
-- Sprawdź mi Dusiu czy jest plik C:\e-DeklaracjeDesktop\META-INF\AIR\application.xml ?
-- Jest Michałku
-- To skopiuj go do folderu aplikacji tak żeby było C:\e-DeklaracjeDesktop\application.xml
-- Dobrze. Zrobiłam.
-- To teraz w tym folderze zrób plik start.txt i napisz w nim w jednej linijce:
C:\AdobeAIRSDK\bin\adl.exe C:\e-DeklaracjeDesktop\application.xml
a następnie zmień rozszerzenie na start.bat
-- W porządku zrobiłam.
-- Parę słów wyjaśnienia, aplikacje Adobe AIR podczas instalacji instalują się tam gdzie wskaże użytkownik. Domyślnie to jest C:\Program Files\ Natomiast podczas pierwszego uruchomienia tworzy się w specjalnym miejscu ustawienia aplikacji. Najczęściej jest to C:\Documents and Settings\Dusia\Dane aplikacji. A teraz uruchom plik start.bat
-- No widzę że działa, ale pyta się czy mam zainstalowanego Adobe Readera
-- Wybierz tak, pomimo że nie mamy zainstalowanego.
-- Dziwne Michałku, ale jednak uruchomił się. Co dalej?
-- Wybierz Rozliczenie PIT - 37
Daria zobaczyła duże okienko wypełniające całe okno z ikonką ładowania się, które nie kończyło się.
-- Zamknij to teraz. Poszukaj teraz C:\Documents and Settings\Dusia\Dane aplikacji\e-Deklaracje.A1909296681C7ACEFE45687D3A64758C8659BF46.1 W tym folderze znajdziesz folder LocalStore który będzie przechowywał ustawienia do tego programu a także interaktywny formularz w postaci PDF czyli plik PIT-37(14)_v1-0_D_1.pdf. Znajdziesz też bazę danych SQLite która będzie przechowywać Twoje dane które wysyłasz tym programem w pliku settings.dat.
-- To trochę niebezpieczna wiedza o tym gdzie ktoś może trzymać dane o swoim PIT`ie.
-- Nie przejmuj się tym zbytnio. Traktuj swój komputer jako coś bardzo osobistego. Nie każdy musi mieć dostęp do twoich danych. A teraz zainstaluj na C:\ Acrobat Readera 9.1 Zainstalowanie na innym dysku może powodować problemy z współpracą z Adobe AIR.
-- Dobrze, już instaluję
-- A jak zainstalujesz to jeszcze raz uruchom C:\e-DeklaracjeDesktop\start.bat
Daria uruchomiła e-DeklaracjeDesktop i wybrała Rozliczenie PIT - 37
Tym razem ukazało się okno z interaktywnym formularzem.
-- Michałku a co ja widzę w tym czarnym okienku?
-- To komunikaty dla programistów. Zresztą e-DeklaracjeDesktop zostało skompilowane przy pomocy Flex 3.3 SDK a plik Main.swf jest plikiem SWF skompilowanym do Flash Playera 10 w Adobe AIR 1.5.1. Od strony programistycznej do tworzenia e-DeklaracjeDesktop użyto frameworka Swizframework. Przypuszczam, że za wyborem tego frameworka był ktoś kto biegle znał JEE. Natomiast do tworzenia interaktywnego formularza użyto Adobe LiveCycle Designer ES 8.2, a ten sam PDF jest w wersji 1.7. Natomiast po stronie Ministerstwa Finansów mamy usługę sieciową WebServices z własnym protokołem wymiany danych co jest opisane w specyfikacji Wejścia-Wyjścia 1.3 Przypuszczam, że sam PDF jest tak zaprogramowany żeby mógł korzystać z WebServices za pomocą SOAP.
-- Michałku, ale te informacje nic nie mówią mi. No po za tym czego używali programiści, tworząc to oprogramowanie. Dla mnie przez to, że znasz te rzeczy jesteś jak czarodziej.
Michał głośno się zaśmiał. Przytulił ją mocno do siebie....

środa, 15 kwietnia 2009

Wyszukaj moje blogi






piątek, 10 kwietnia 2009

Canvas3D - w stronę trzeciego wymiaru

Michał siedział przygnębiony.
-- Michałku dlaczego patrzysz na mnie wilczym wzrokiem?
-- Z prostego powodu, wszystko jest trochę przygnębiające. Im bardziej patrzymy dalej tym mniej widać szczegółów.
-- Ale to normalne. Nie wolno Ci być smutnym, bo mi to się udzieli. Ja nie chcę być smutna. Zrozumiałeś?
-- No dobrze. Zmartwiony jestem tym, że chcielibyśmy mieć trzeci wymiar na stronach internetowych. Problem w tym że do końca nie wiemy jak ma wyglądać ta interakcja w trzecim wymiarze wobec strony internetowej. Programiści napiszą niskopoziomowe biblioteki z których inni programiści mogą skupić się na dostarczenie zawartości i interakcji. Ostatnio zainstalowałem sobie wtyczkę canvas3d 0.2.0 z maja 2008 roku (bo używam Firefoxa 3). Ostatnio wydano wersję wtyczki canvas3d 0.4.2 ( która podobno będzie chodzić z Firefoxem 3.5 i prawdopodobnie tez z Google Chrome). Jednak za rozwój tej wtyczki odpowiada jeden człowiek, co w sytuacji gdy nie ma żadnego szumu marketingowego to ryzykuje tym że praca pójdzie nadaremno.
-- Skąd taki pesymizm?
-- W sytuacji w której większość ludzi używa Internet Explorera i FlashPlayera, powoduje to że idzie się po najmniejszej linii oporu i jak inwestycji. Dlaczego programiści z ruchu OpenSource nie napiszą ActiveX do obsługi znacznika Canvas? Bo nikt nie będzie chciał tego instalować. Z drugiej strony mamy standard SVG, tyle czasu istniały różnego rodzaju wtyczki do SVG, to jednak Adobe wycofało się z rozwijania tego standardu i jak rozwoju wtyczki Adobe SVG Viewer. W tej sytuacji deweloperzy stron internetowych mają do wyboru: FlashPlayer, Silverlighta, Canvas i SVG, to jednak wybiorą FlashPlayera bo jest do wszystkiego. Adobe mając FlashPlayer nie będzie przecież inwestować w jego konkurenta w standard SVG. Internet Explorer miał odpowiednik Canvas w technologii DirectAnimation, ale już nikt już o tym nie pamięta (pozostał tylko VML ze względu na jego zastosowanie w dokumentach Microsoft Office). Canvas wprowadzono po to żeby można rysować za pomocą skryptów, co miało znaczenie w takich silnikach jak Webkit i Gecko pod Linuksem, bo wtedy Flash Player dla Linuksa był w trakcie rozwoju. Potem znajomość programowania pod canvas przydała się programistom aplikacji na iPhone/iPad a także pod S60 WebBrowser. SVG pomimo że jest już zaimplementowane to jedna dopiero w wersji WebKit 520. Widać w tym też problematyczność stosowania tych technologii wobec Flash Playera. Obawiam się że nawet najlepsze chęci implementacji rozwiązań w canvas3d, będzie przypominało zainteresowanie canvas czy SVG czy takimi standardami jak MathML czy XForms. Jest sposób na to żeby to zmienić - wystarczy dostarczyć kontrolkę ActiveX razem z przeglądarką opensourcową.
-- Michałku, ale te kontrolki trzeba by instalować? Przecież nikt nie zainstaluje tego wprost.
-- No cóż przecież można dostarczyć ludziom - programistom wbudowana kontrolkę ActiveX dostarczaną razem z przeglądarką tak więc nie byłoby problemu. Instalując Firefoxa użytkownik instalowałby kontrolkę ActiveX z silnikiem Gecko to programiści mogliby osadzić na stronie internetowej kod który załadowałby Firefoxa do Internet Explorera. Kiedyś była taka możliwość. ale teraz mamy to samo w tym co jest w wersji standalone Mozila Prism 0.9 gdzie jest plik C:\Program Files\Prism\xulrunner\mozctl.dll
Dla Webkita sprawa jest dość dziwna. Teoretycznie można by zrobić kontrolkę ActiveX z Webkita, np połaczyć QActive z QWebKit ale to nie jest takie proste (licencja LGPL nie dotyczy QActive), kiedyś był projekt a obecnie zarzucony swiftdotnet. Przez jakiś czas oczekiwano Google czy Microsoft wdrożą WebKit jako odrębną kontrolkę ActiveX. Pozostaje nam czekać na efekty pracy nad Canvas w Gears.
-- Ale zmierzamy w stronę trzeciego wymiaru.
-- Dusiu zmierzamy i nie wiemy co z tego wyniknie. Sprawa mi przypomina bardziej mroczne lochy klasztornego archiwum, gdzie technologie od trzeciego wymiaru dla internetu leżą sobie na półkach. Ja czuję się przy tym jak archiwista od technologii informatycznych. Może jednak nie powinien tym się przejmować. I przyjąć założenie, że trzeci wymiar jest dobry dla gier, ale czy witryna internetowa ma w nawigacji przypominać wnętrze budowli? Jeżeli tak to trzeba zadać sobie pytanie czy może lepiej zmienić architekturę działania przeglądarki internetowej, a rendering stron WWW potraktować jako interaktywna warstwę na obiektach w trzecim wymiarze. Istnieje projekt Awesomium którego celem jest osadzenie stron internetowych w trzecim wymiarze, na bazie silnika Ogre i bibliotek z Chromium. Ale to nic nowego dla mnie już ponad rok czasu to istnieje w Blink3D. albo w UOgreBrowser. Sprawia to pewną trudność bo nikt nie będzie inwestował w zrobienie przeglądarki która miałaby 2 poziomy nawigacji: jeden tryb to tradycyjna przeglądarka a drugi tryb to załadowany świat 3D gdzie strony internetowe są interaktywna teksturą.
-- Jak to ma do FlashPlayera?
-- Inżynierowie FlashPlayera może powinni połączyć swoje siły z twórcami Shockwave Playera. Zrobić coś co pozwoli wykorzystać potencjał Shockwawe Playera kompilując do niego odpowiednie pliki SWF, a także oferować jakieś dobre darmowe SDK do tworzenia plików dxr z plików SWF. Mając dostęp do API (obecnie tylko przez Lingo, a przydałoby się poprzez wykorzystanie Actionscript 3). Ostatnio wypuścili wersję Director 11.5 z główną funkcjonalnością ByteArray i jak obsługą efektów muzycznych). Na razie pozostało podziwiać tempo rozwoju PapervisionX Away3D z filtrami HDR (z PixelBendera) i wkracza w to nowy "gracz" Haxe3d (jednak najciekawsze jest wykorzystanie kodu HaXe tej bliblioteki Haxe3d do wygenerowania kodu C++ za pomocą Hxcpp ). Jednakże, próby dokonane przy pomocy Adobe Alchemy wyglądają obiecująco żeby przy ich pomocy stworzyć wydajny silnik 3D. Mógłbym jeszcze zwrócić uwagę na Silverlight 3, który ma już wbudowaną obsługę 2,5D - tak jak FlashPlayer 10, co zapowiada się interesująco pod kątem pisania biliotek wykorzystujących trzeci wymiar (z bibliotekami takimi jak jak Kit3D, Balder3D czy próba opisana w tym artykule - mam wrażenie, że żadna z tych rozwiązań nie odniosła wielkiego sukcesu). Jak chcesz Dusiu porównać możliwości pomiędzy FlashPlayerem a Sliverlightem polecam lekturę tego bloga ShineDraw
-- Co oznacza to starcie dwóch technologii dla zwykłego użytkownika?
-- Chciałoby się powiedzieć tam gdzie dwóch się bije to trzeci korzysta. Możesz wykorzystać bibliotekę do canvas3d o nazwie
Canvas 3D JS Libary (C3DL) zacząć programować aplikacje z trzeciego wymiaru w JavaScripcie.
-- Michałku, jesteś niemożliwy. Wierzysz w to, że nauczę sie tych trzech technologii?
-- Czemu nie? Wszystko zależy od tego czy znajdziesz tyle w sobie wytrwałości, żeby poznać te technologie szczególnie pod kątem wykorzystania 3 wymiaru.