niedziela, 13 kwietnia 2008

XHTML w FlashPlayerze

Często zdarza mi się czytać uwagi, że Flash Player nie nadaje się do wyświetlania (renderowania) stron w formacie XHTML wraz z obsługą CSS. Ale jak przeszukałem sporo informacji o tym, to się okazało że są już odpowiednie rozwiązania. Są to:
Deng X Browser - silnik renderujący XHTML/CSS/SVG/XForms (czyli obsługuje to czego jeszcze żadna przeglądarka internetowa nie parsuje do końca dobrze).
sFIR pozwala na wykorzystanie potencjału jaki tkwi w typografii - zestawienie przykładów. Głównym problemem było pogodzenie mechanizmów wyświetlania strony, tak żeby dobrze to wyglądało dla robotów - tak powstał pomysł SEFFS.

Natomiast obecnie są dostępne eksperymentalne rozwiązania dla Flex i ActionScript 3: Tall Tylera htmlwrapper oraz próba Adobe w tym kierunku - ale zaniechana o czym pisze Alex Harui. Dla programistów Flexa pozostaje rozwiązanie w postaci osadzania HTML w Flex. Można o tym poczytać u Brian Deitte bądź u Alistair Rutherford.

Ponieważ teraz prawie każda strona wymaga wykorzystania Java Scriptu, bo coraz więcej aplikacji internetowych jest tworzonych z użyciem AJAX. W tej sytuacji pozostaje pytanie czy warto tworzyć aplikacje internetowe osadzone w FlashPlayerze.

Argumenty za rozwojem tych bibliotek:

  • Stosowanie typografii (do tej pory nikt nie zrobił dobrego rozwiązania w tym zakresie)
  • Łatwość rozbudowy dokumentów XHTML w kierunku wykorzystania innych standardów np: SVG czy CSS3. Myślę, że na bazie Flash Playera / AIR szybciej powstałby silnik renderujący takie standardy jak MathML, XPath, XForms. Daje to potężną przewagę nad przeglądarkami bo korzyścią jest to że użytkownicy i twórcy stron nie musieliby narzekać że coś tam nie jest obsługiwane w IE5 czy IE6 (bo wszędzie będzie wyglądać identycznie). Dużym plusem może być też (hipotetycznie) że może stać się pierwszym silnikiem obsługującym HTML5.
  • Współpraca z AJAX jest możliwa na kilka sposobów. Użycie biblioteki Flex-Ajax Bridge pozwala programistom na dynamiczne tworzenie interfejsu użytkownika za pomocą komponentów Flexa. Innym rozwiązaniem jest wykorzystanie biblioteki as3corelib do obsługi danych w formacie JSON. Można poczytać o tym na blogach Mike Chambers czy Parranoidferret.com
  • Głębokie linkowanie - coraz więcej aplikacji internetowych wymaga stosowania czytelnego zapisu adresów URL. Aplikacje internetowe "osadzone" w Flash Playerze są często jakby niezależne od nawigacji w przeglądarce. Przecież wystarczy wykorzystać wbudowanych w Flex 3 bądź biblioteki UrlKit
Zastrzeżenia:
  • Silnik renderujący to nie wszystko. Coraz więcej aplikacji internetowych wymusza stosowanie JavaScriptu, napisano miliony linii kodu w JavaScripcie co może skutecznie zniechęcić do przechodzenia na ActionScript, a jak wiadomo FlashPlayer nie obsługuje JavaScriptu więc kod w JavaScript będzie musiał zostać przepisany na ActionScript. Kolejnym problemem może być obsługa DOM. Nie znalazłem jeszcze informacji o tym jak DOM znany z przeglądarek zastąpić e4x. Trzeba by napisać bibliotekę AS3 do obsługi DOM wykorzystującą e4x. No chyba, że ktoś już używał biblioteki as3query.
  • W przypadku popularności biblioteki htmlwrapper można by spodziewać wysypu "wtyczek", a ostatecznym przypadku powstawanie kodu CSS tylko dla obsługi przez Flash Playera, co teoretycznie oznacza, że każdy może standard rozszerzać o nowe rozwiązania.
  • Pozostaje też kwestia przebudowania oprogramowania po stronie serwera, może się okazać że wykorzystanie Flash Remoting okaże się lepszym rozwiązaniem niż budowanie aplikacji na AJAX. Tylko jeszcze nikt nie napisał pośrednika z AMF do aplikacji wykorzystującej AJAX.
  • Na koniec pozostają uprzedzenia i stereotypy. Nic nie poradzę na że sporo ludzi kojarzy Flasha i format SWF z animacjami oraz filmami niż z profesjonalnymi aplikacjami czy bibliotekami. Kolejne argumenty że strony oparte na FlashPlayerze nie dają się indeksować przez Google albo, że zawartość z pliku SWF jest niedostępna dla screenreaderów są wynikiem tego, że mało komu chce się dodać klika linijek kodu więcej.
  • Najważniejszą barierą w upowszechnieniu się tych bibliotek jest brak ludzi, którzy chcieliby to wykorzystać. Inaczej mówiąc brakuje ludzi którzy biegle znali się na programowaniu w ActionScript 3 oraz pisali o tym. Uważam że te problemy o których pisałem powyżej są do rozwiązania.

czwartek, 10 kwietnia 2008

Google Engine App

Ponieważ lubię Pythona to mnie ucieszyło że Google zrobiło kolejną usługę tym razem dla programistów. Google Engine App jest usługą pozwalającą hostingować małe aplikacje napisane w Pythonie. Ściągnąłem SDK i pomyślałem, że warto spróbować. Szybko zainstalowałem i przerobiłem to na Windows XP Getting Started Guide. Ale cóż nie ma róży beż kolców. Gdy chciałem obsłużyć statyczne dane pojawiał mi się błąd "regex invalid: unbalanced parenthesis" podczas uruchamiania testowego serwera. Na ich forum znalazłem rozwiązanie.
Trzeba zmienić linie kodu 2369-70 w katalogu SDK\google\appengine\tools\dev_appserver.py z:

regex = os.path.join(re.escape(regex), '(.*)')
path = os.path.join(path, '\\1')

na:

regex = re.escape(regex) + '/(.*)'
path = path + '/\\1'

To dotyczy tych, który używają Windowsa XP. Znalazłem posta o tym jak łączyć PyDev z Google Engine App SDK. Ale najciekawsze były kody źródłowe aplikacji pracujących z Google Engine App SDK. Przykłady w praktyce? muvmuv (kod źródlowy) Django Questbook (kod źródłowy) oraz przykładowy szablon aplikacji w Django. Dla tych. którzy chcieliby stawiać pierwsze kroki w Django ( już znają inne języki programowania) to polecam zapoznanie się z artykułem Shabda Raaj opisujacym jak tworzyć aplikację Django (sondę z kodem źródłowym) w App Engine.

Przypuszczam, że takie podejście Google jest rywalizacją z Amazonem (Simple Storage Service) oraz z Microsoftem (SQLServer Data Service).
No cóż zaczyna być ciekawie. Czyżby zaczynał sie schyłek pisania oprogramowania webowego w klasycznym SQL na rzecz zdalnego hostingu danych i obrabianych ich w jakimś dialekcie SQL (GQL, FBQL, LINQ) a bazy danych zaczynają obsługiwać kilka TB danych (technologie BigTable, SimpleSB).
Warto śledzić takie inicjatywy jak Force.com, dostarczające szereg usług dla programistów.

Trzeba tez zwrócić uwagę na to że są inne usługi Google z których można korzystać przy pomocy API GData. Dla programistów Google Engine App polecałbym bibliotekę Google Data Python Library. Warto przeczytać wprowadzenie do tej biblioteki
Mozna spróbować też użycie wirtualizacji w celu symulowania działania aplikacji na bazie SDK (do ściągnięcia stąd).

Ja nawet przewiduję wbudowanie w przeglądarce serwera WWW na przykład w Pythonie co sprawi że użytkownik ściągnie sobie aplikację i będzie mógł ją udostępniać ją innym do pobrania tak jak w przypadku sieci P2P. W takim rozproszonym modelu klasyczny hosting idzie do lamusa. Dlaczego? Usługi hostingowania aplikacji dostarczą API dzięki której użytkownik będzie miał pewność, że jego dane będą unikalne i w każdym razie nie musi być przechowywane na serwerze a w cache przeglądarki i każdy kto będzie chciał pobierze to z przeglądarki kogoś. Jak będzie wyglądała wtedy strona WWW? Będzie to paczka z kodem dla wbudowanego w przeglądarce serwerze WWW. Pobierasz raz i niejako instalujesz ją i co pozwala na pracę lokalnie z innymi użytkownikami równocześnie. To ma sens jak działalność użytkownika ogranicza się do odczytu danych. Natomiast jak ktoś potrzebuje doda komentarz to są dwa sposoby aktualizacji: wysyła to portem UDP do innych którzy mają uruchomione przeglądarkę i zainstalowaną paczkę z aplikacją co powoduje automatyczna aktualizację. Natomiast hostigodawca aplikacji trzyma informacje o IP przeglądarek z uruchomionym serwerem i przyjmuje dane do zapisania i w ten sposób aktualizuje paczkę jakiś danych. Następnie serwer w przeglądarce pyta sie serwera aplikacji czy są jakieś aktualizacje i wtedy pobiera aktualizację od serwera albo od innej przeglądarki która już ma zaktualizowaną bazę.

środa, 2 kwietnia 2008

Discover the Next Web

W Warszawie 31 marca odbyła się konferencja Microsoftu "Discover the Next Web" poświęcona nowym technologiom.

"Szybko, szybciej, MVC"
Prelegent: Bartłomiej Zass, Microsoft Polska
W ciągu kilkunastu miesięcy sposób budowy aplikacji WWW uległ drastycznej przemianie. Środowiska takie, jak Ruby on Rails czy Django istotnie wpłynęły na skrócenie czasu programowania i testowania serwisów internetowych. Jakie podejście prezentuje w tej kwestii Microsoft? To jeden z najciekawszych wykładów. Nareszcie Microsoft wprowadził dodatek ASP.NET 3.5, który pozwala na programowanie wg wzorca MVC. Teraz zamiast programowania na zdarzeniach i formularzach WebForms (co zawsze sprawiało problemy z wygenerowaną stronę jeśli chodzi o kod HTMLa), Microsoft proponuje tworzenie serwisów w oparciu o wzorzec MVC i routing (ładne tworzenia URL) za pomocą biblioteki ASP.NET MVC Preview 2. Prelegent pokazał jak tworzyć ładne adresy URL, obróbkę na modelach danych za pomocą LINQ (to jest taka technologia pozwalająca używać składni SQL na obiektach danych w pamięci aplikacji). Następnie pokazywał jak używać systemów szablonowych (podobnych do Smarty w PHP) - są to Brail, NVelocity, HAML. Potem omówił założenia tworzenia aplikacji internetowych opartych na tworzeniu testów TDD z VisualStudio, NUnit, MbUnit (piszesz najpierw interfejs, potem test, a dopiero po napisaniu testów pisze się implementację interfejsu programistycznego). Linki z dokumentacjami o tej technologii: QuickStarts, materiały video, oraz kod źródlowy tej biblioteki. Podsumowanie: to jest dobre rozwiązanie dla firm której programiści stosują oprogramowanie webowe opartych o wzorzec MVC - Ruby on Rails, Django, Symfony czy Springs i chcą tworzyć średnie i duże projekty internetowe w oparciu o technologie .NET.

"Interfejs użytkownika 2.0"
Prelegent: Szymon Kobalczyk, InterKnowlogy
Jednym z ważnych skutków fali serwisów Web 2.0 jest skupienie uwagi na komforcie pracy użytkownika. Wygląd oraz ergonomia pracy często stanowi jedno z pierwszych kryteriów wyboru aplikacji, niezależnie od tego, czy dostarczane są w zafoliowanym pudełku, czy poprzez przeglądarkę internetową. Podczas prezentacji prelegent zaprezentował sposoby projektowania aplikacji z bogatym, niestandardowym interfejsem graficznym, wykorzystującym zalety technologii Windows Presentation Foundation i Silverlight. Pokazał przykłady oparte o istniejące komercyjnie wdrożenia. Wykład miał charakter przeglądowy. Pokazywał jak bardzo zmienia się wygląd aplikacji pod Windows w których wykorzystano technologię Windows Presentation Foundation co sprawia że wygląd bardziej staje się zbliżony do interfejsu serwisów internetowych i jak aplikacji z interfejsem 3D. Ponieważ jest potrzeba tworzenia bardziej "elastycznego" interfejsu użytkownika do aplikacji internetowych to Microsoft wprowadził technologię SilverLight Pokazał przykładową aplikację wykorzystujące interfejs 3D - 3D Collabolator i aplikacje desktopowe przypominające interfejs strony internetowej. Pokazywał też przykładowe aplikacje w Silverlight 2.0 - iZooFari Podsumowanie: moc kart GPU pozwala na wykorzystanie interfejsu trójwymiarowego w aplikacjach komputerowych i jak internetowych.

"Świat z klocków"
Prelegent: Michał Żyliński, Microsoft Polska
Windows Live Services to gama mało znanych w Polsce usług pozwalających na łatwe wzbogacenie funkcjonalności serwisów WWW i aplikacji komputerowych. Podczas sesji prelegent dokonał ich przeglądu oraz pokazał kilka ciekawych zastosowań w praktyce.Usługi MS dla serwisów WWW i aplikacji to:

  • Live Photos ma API do zarządzania własnymi zdjęciami
  • Writer edytor do blogów, który ma własne SDK do rozszerzania funkcjonalności
  • Spaces jest dla programistów którzy chcą tworzyć serwisy społecznościowe
  • Live Search pozwala dodać wyszukiwarkę Microsoftu na własną stronę
  • Messenger pozwala na używanie komunikatora w własnych aplikacjach i na stronach WWW
  • Alerts - rozsyłanie komunikatów - odpowiednik Twittera
  • Live Agents - dodawanie awatarów (z syntezą mowy) do własnych aplikacji i stron WWW


Prelegent wspomniał jeszcze o SQL Server Data Services (SSDS) zapewniającą "wirtualny hosting bazy danych" i bibliotece ADO.NET Data Services komunikującej z taką wirtualną bazą danych. Dla programistów potrzebujących zdalnych narzędzi do zarządzania obiegiem informacji w organizacji to Microsoft przygotował usługę BizTalk Services. Natomiast dla programistów internetowych zaproponował projekt Volta generowanie kodu JS/Ajax za pomocą języka C#. Warto zobaczyć Popfly najbardziej zaawansowany edytor aplikacji internetowych (mashupów) dla serwisów internetowych, a także jako przykład nowej generacji serwisu społecznościowego. Wniosek: te technologie są w cieniu ich odpowiedników Google, jedyną zaletą jest interfejs programistyczny - WebServices (SOAP) pozwalający na osadzanie tych usług w aplikacjach komputerowych.

"Nasza jutrzenka: Silverlight 2.0"
Prelegent: Bartłomiej Zass, Microsoft Polska
Silverlight to technologia istotnie zmieniająca sposób konstruowania zaawansowanych, bogatych graficznie aplikacji internetowych. Dostępna publicznie od kilku tygodni nowa wersja testowa przyniosła wiele istotnych zmian i usprawnień. Właściwie prelegent zrobił to co jest pokazane na tych wideoscreenach Silverlight to konkurent dla Adobe FlashPlayera. Obydwie technologie opierają się na wtyczkach do przeglądarki. Silverlight 1 przypominał mi FlashPlayera 6 Posiadał możliwość tworzenia animacji i osadzenia multimediów za pomocą języka znaczników XAML. Można było pisać skrypty JS z poziomu przeglądarki do sterowania animacjami. Silverlight 2 beta to już prawdziwy konkurent Adobe FlashPlayera. Posiada własny silnik wykonawczy CLR wbudowany, co pozwala na pisanie bibliotek dll sterujących aplikacja w Silverlight. Cala aplikacja jest trzymana w jednym pliku *.xap (który jest spakowanym zipem). Posiada kontrolki (takie jak w MXML Flex) Programuje się deklaratywnie (XAML) i jak z poziomu C# (wymaga kompilacji) i jak z poziomu skryptów DLR w Pythonie lub w Ruby) oraz można sterowanć z poziomu strony WWW za pomocą JavaScriptu. Jest łatwy dostęp do danych XML poprzez Linq (w Action Script mamy e4x). Występuje komunikacja binarna za pomocą socketów. Wygląd aplikacji można stylować poprzez CSS albo zastosować skórki. FlashPlayer ma jeszcze przewagę nad Silverlightem bo pozwala na dwukierunkową transmisję wideo i audio Prezentowane narzędzia to: Silverlight Tools for VS2008 dla programistów używających Visual Studio 2008 Microsoft Expression Blend 2.5 March 2008 Preview - dla programistów (takich którzy nie chcą używać Visual Studio) Dla grafików poleca się narzędzie Expression Design 2 beta a dla webmasterów ASP.NET i PHP to jest narzędzie Expression Web 2 W praktyce można serwisy wykorzystujące Silverlight robić notatnikiem albo jakimś opensourcowym edytorem typu SharpDevelop

Krótka sesja niespodzianka - Hubert Turaj z Making Waves omawiał testowanie użyteczności aplikacji Flex na przykładzie Kalkulatora Energii. Dla mnie ta aplikacja Flex jest przykładem jak interfejs użytkownika znany z gier komputerowych wkracza w sferę poważnych aplikacji internetowych. Dla mnie ta aplikacja też jest przykładem wykorzystania WebServices ASP.NET po stronie serwera w celu dostarczania danych i jak frameworka Cairngorm 2 w celu zarządzania widokami aplikacji Flex

Sylwetki prelegentów:
Szymon Kobalczyk, InterKnowlogy
Szymon zatrudniony jest na stanowisku Senior Software Engineer w firmie InterKnowlodgy. Od 7 lat zajmuje się różnymi aspektami technologii .NET, głównie w zakresie projektowania interfejsów dla aplikacji internetowych oraz urządzeń mobilnych. Obecnie specjalizuje się w budowie rozwiązań opartych o Windows Presentation Framework. Szymon jest również jednym z liderów i częstym prelegentem Krakowskiej Grupy Deweloperów .NET oraz członkiem ciała doradczego Patterns & Practices "Prism". Ostatnio został zdobywcą pierwszej nagrody w prestiżowym konkursie "Lab49 WPF in Finance Innovation Contest

Bartłomiej Zass, Microsoft Polska,
ISV Developer Evangelist w dziale Developer & Platform Group polskiego oddziału Microsoft. Zajmuje się współpracą z polskimi firmami wytwarzającymi oprogramowanie, pomagając w skutecznym doborze technologii oraz wykorzystaniu najnowszych rozwiązań. Jako programista uczestniczył w wielu projektach informatycznych. Prelegent polskich i zagranicznych konferencji technicznych. Do jego głównych obszarów zainteresowań należą technologie internetowe oraz zagadnienia konstrukcji interfejsu użytkownika.

Michał Żyliński, Microsoft Polska,
W firmie Microsoft Polska odpowiada za kontakt z szerokim rynkiem partnerskim, specjalizując się w producentach oprogramowania. Służy pomocą w kwestiach technicznych i biznesowych (dobór programów partnerskich, inicjatywy marktingowe). Prowadzi serwis InnovateOn

poniedziałek, 24 marca 2008

Rozmyślania pod srebrnym blaskiem księżyca

Michał wrócił ze lotniska, gdzie pożegnał się z Dusią. W głowie kołatała się ostatnia rozmowa z Dusią.
-- Michałku dziękuję Ci za czas spędzony razem.
-- Ja też Ci dziękuję. Chcę być na zawsze Twój Dusia.
-- Michale doceniam Twoją wierność, ale jak mnie dobrze już poznałeś to nie wolno Tobie opierać swojego życia na mojej osobie.
-- Dusia... -- łzy spłynęły po policzkach
-- Michale nie płacz jak dziecko. Doceń to, że masz wolną wolę i musisz respektować to że inni też mają wolną wolę. Moją też. Rób to, co w czym jest jesteś dobry.
-- Co ja teraz mam zrobić?
-- Masz dwa rozwiązania. Czekać przez całe życie na mnie, albo pokochaj inną kobietę która byłaby dla Ciebie muzą.
-- Dobrze wybieram pierwsze rozwiązanie.
-- Jesteś Michale uparty.
Dusia pocałowała go w policzek. Podeszła do stanowiska odpraw. Pomachała ręką Michałowi na pożegnanie.
Michał patrzył na samolot, który odleciał z Dusią.

Michał usiadł przed monitorem. Patrzył ze smutkiem, Zobaczył statystyki swojego bloga.
-- Jak zwykle ludzie mają problemy z Windows Vista, że im Flash Player nie chce działać. A w tej sytuacji może powinien zmienić swojego bloga? No widać, że technologia Adobe Flex jest coraz bardziej popularna, dzięki bibliotekom do renderingu trójwymiarowego Away3D, Papervision3D, Sandy3D. Coś w tym jest bardzo pociągającego. Sukces zawdzięczają prostocie. Nie zmuszają użytkownika tych bibliotek do analizowania ich implementacji, tylko dają prostą recepturę co można z tym zrobić.
No sporo ostatnio siedziałem nad tymi bibliotekami, ale nie czuję się na siłach aby wnikać w ich interfejsy programistyczne.

Michał poszedł po kawę i przyniósł sobie kawę w termosie. Nalał sobie kawę do kubka.
-- No ale Microsoft zmądrzał dostarczając Silverlight 2 beta 1. Programiści mają teraz świetne narzędzie do obsługi grafiki dwuwymiarowej. Nareszcie czuć coś co sprawiało, że Microsoft nie miał szczęścia do grafiki dwuwymiarowej w przeglądarkach MS Chromeffects, DirectAnimation, VML i HTML+Time. A teraz ten Silverlight. Jaki morał z tego płynie? Niech Silverlight długo będzie w wersji beta, przynajmniej ludzie będą mieli o czym pisać. Wprowadzi MS w swoim Silverlight akcelerację sprzętową łącznie z obsługą pixel/vertex shaderów DirectX? Nie wiem, ale przydało by się to bardzo - szkoda że tylko pod Windows.

Michał wypił sobie kawę. Zerknął na zegarek. Westchnął
-- Second Life staje się popularne w biznesie, bo jest taka moda że nawet każde miasto chce mieć tam wizytówkę. Mnie zdziwiło to, że nawet Lublin tam też chce być. Piszą o tym na swoim blogu.
Pozwolę sobie na zamieszczenie ich filmiku.



Faktycznie wygląda interesująco do tego stopnia, że zaczynam się zastanawiać czy kiedykolwiek to będzie miało postać standardu. Niewiele brakuje, że można by takie rzeczy odtwarzać we Flash Playerze. Czego przykładem są 2 polskie produkcje: Decort3D Pawła Stanisławczuka z TO DESIGN oparte na bibliotece Away3D oraz MyDeco Bartłomieja Rozbickiego, Radka Krzepkowskiego i Pawła Piotrzkowskiego z ArsThanea oparte na Papervision3D.
Michał wstał od komputera i poszedł na spacerek nad stawem. Podziwiał blask księżyca Rozmyślał o Dusi.

poniedziałek, 25 lutego 2008

Powiew swieżego powietrza - Adobe AIR

Michał siedział przy komputerze. Dusia przyniosła kubek malinowej herbaty.
--- Dzisiaj mamy premierę Adobe AIR.
--- A co to takiego?
--- Jest to technologia która pozwoli integrować aplikacje komputerowe z aplikacjami internetowymi.
--- Możesz mi wyjaśnić Michałku co to takiego?
--- Wyobraź sobie że korzystasz z przeglądarki internetowej i nagle masz problemy z internetem. Sporo napracowałaś ale chciałabyś zapisać swoja pracę lokalnie na dysku. Do tej pory żeby zapisać dane swojej pracy to musisz mieć dostęp do internetu. Firma Adobe zrozumiała że ludzie lobią korzystać z przeglądarki internetowej, ale nie maja możliwości pracować z aplikacja internetową gdy maja problemy z internetem. W tej sytuacji wraz z firmą Google zaczęto współpracować przy tym aby aplikacje internetowe maiły taką możliwość. Google dostarczyło technologię Google Gears, która rozwiązuje takie problemy. A Adobe zintegrowało tą technologię z Flash Playerem oraz z silnikiem do wyświetlania stron WWW WebKit. I tak powstała najnowocześniejsza przeglądarka internetowa. Chociaż wiem, że nazwaniem tego przeglądarką internetową jest raczej nieporozumieniem. Lepiej by Tobie powiedzieć że to jest narzędzie do tworzenia własnej przeglądarki internetowej.
--- A co będę miała własną przeglądarkę internetową?
--- Tak Dusia. Ale najważniejsze jest to że możesz zrobić coś co sprawi że ta aplikacja będzie czymś więcej niż przeglądarką internetową.
--- Co na przykład?
--- Zainstalujemy Adobe AIR z tej strony. A potem wejdziemy na stronę gdzie znajdziemy przykładowe aplikacje AIR. Wybierzemy aplikację do zarządzania wydatkami i czasem Ora Time & Expenses
--- Ale fajna i prosta aplikacja, szkoda że po angielsku.
--- Jak można sprobować zrobić własną --- uśmiechnął się --- Ale pokażę Ci coś dalej, dobra informacja zawsze jest w cenie, ale dzisiaj najważniejszym źródłem są sami ludzie wiec warto wiedzieć co robią i co mają do pokazania światu. Zainstalujemy Adobe Developer Connection Developer Desktop
--- No widzę już. Ale po to ludziom Adobe AIR żeby ludziom dawać takie programiki, które będą dostarczać taką treść jaką jest na stronach internetowych ?
--- Dusia co wolisz uruchomić przeglądarkę i wpisać adres strony WWW i szukać tego po całym serwisie sporo klikając czy jednak wolałabyś uruchomić taki programik i wszystko czego potrzebujesz mieć w jednym programiku?
--- No przekonałeś mnie prawie do Adobe AIR. A czy jest coś czego nie zrobię w zwykłej przeglądarce?
--- Na przykład edycję filmów FLV Zainstalujemy RichFLV
--- Nie wiedziałam że można filmiki FLV oglądać lokalnie, a to dopiero coś fajnego.
--- Dusiu nie tylko... możemy też robić zrzuty ekranu z filmów FLV za pomocą flapture czy mieć program do retuszu StudioCloud’s In-Studio Gallery
--- A to już jest niesamowite mieć w jednej aplikacji edytor grafiki i możliwość zapisywania tego co robie na serwerze po to żeby to sprzedawać .
--- No właśnie. ale Tobie Dusiu w pracy przydałoby sie takie narzędzie do planowania czasem zespołu więc zainstalujemy AgileAgenda
--- Widzisz Michałku że to jest demo i nie da sie pisać polskimi znakami.
--- No faktycznie że nie da sie pisać polskimi znakami. Ale to chyba jest do poprawienia prawda Dusiu?
--- No... odpowiedziała smętnie
--- Nie martw sie Dusiu. Wiesz w czym AIR Adobe zrobi karierę? W zdalnym nauczaniu! Zainstalujemy sobie klienta serwisu Parleys.com dla programistów Java.
--- Ale widzę że masz problemy bo aplikacja sie wywala.
--- W tym przypadku jest zrozumiałe - jeszcze nie zdążyli zaktualizować, a w razie czego możemy pooglądać wersje internetową
--- No wygląda imponująco, no ja chciałabym chodzić do takiej szkoły dla programistów.
--- Dusiu kto wie... ale podręczników i kontaktu z ludźmi nie zastąpią niestety.
--- Michałku a jaka aplikacja według Ciebie najbardziej zaskoczyła?
--- To aplikacja Q-AIR do tworzenia dwuwymiarowych kodów paskowych QR-Code dla użytkowników urządzeń mobilnych. Idea jest prosta. masz komórkę z aparatem fotograficznym to możesz zrobić zdjęcie kodów paskowych QR-Code z komórki do specjalnego programiku Kaywa Reader (ja mam zainstalowaną w swojej komórce QuickMark) a następnie otrzymujesz linka do strony internetowej. Fajny pomysł na to, żeby nie pisać długich URL w komórce bo to jest niewygodne. A może zamieścimy QR-Code z linkiem do naszej strony? Albo porozlepiamy wlepki z QR-Code w autobusach aby ludzie mieli aktualny link do rozkładu jazdy autobusu w którym jadą. Albo w supermarkecie to zamieszczać przy cenniku, a klienci będą otrzymywać linki internetowe do produktu. W telewizji pokażą Ci QR-Code - robisz zdjęcie i dostajesz link do strony internetowej.


--- Michałku masz szalone pomysły -- Dusia wstała otworzyła drzwi balkonowe. Michał spojrzał na nią i poczuł powiew świeżego powietrza Adobe AIR...

niedziela, 17 lutego 2008

Telewizja internetowa dla Dusi

Dusia rozmawia z koleżanką przez komórkę:
--- Wiesz co mój Michał ostatnio porabia? Chce zakładać telewizję przez internet...
Dusia poleciała z komórka do Michała, który leżał sobie w łóżku z powodu gorączki.
--- Michałku, czy mógłbyś wytłumaczyć mojej koleżance jak ma działać ta telewizja przez internet?
Michał wziął komórkę Dusi:
--- Witam.
--- Witaj Michale. Dusia mówiła mi, że każdy może zrobić sobie telewizję przez internet. Czy to prawda?
--- W teorii tak. Wystarczy dobre łącze przez internet. A na Windows XP wystarczy zainstalować oprogramowanie do niekomercyjnego użytku. VH Screen Capture Driver to jest programik, który emuluje kamerę, a można nim nagrać film z ekranu. Następnie zainstaluj sobie Flash Media Encoder 2. To będzie programik z którego będziesz kodować zawartość z ekranu na format do transmisji na żywo. Potem zainstaluj sobie Flash Media Development Server 3. Abyś mogła więcej dowiedzieć się o tym programie to możesz poczytać artykuły Webcasting live video with Flash Media Encoder oraz Beginner's guide to streaming video with Flash Media Server 3. Ten serwer będzie transmitował obraz z Twojego komputera do 9 użytkowników naraz. Wystarczy dodać jeszcze kamerkę i obraz z kamerki będzie przesyłany do programiku takiego jak Skype, a inni będą mogli przez to oglądać na żywo bo będą widzieć to co dzieje się na ekranie monitora.
--- Ale ja nie znam angielskiego dobrze, to może tego nauczysz Dusię? A potem mnie tego Dusia nauczy...
--- Można prawie każdego nauczyć kto zechce, z Dusi można zrobić redaktorkę "TV Dusia". Ale tym się zajmę jak wyzdrowieję.
Dusia zaśmiała się głośno.
--- Trzymam kciuki, zdrowiej szybko Michale. Czekam na pierwszy program nadany przez Dusię -- powiedziała koleżanka Dusi.
Michał oddał komórkę Dusi. Uśmiechnął się do Dusi.
--- Ale ludzie już powariowali, każdy będzie zakładał telewizję online -- westchnął -- ale to już będzie ciekawsze niż Jerry Springer Talks.
Dusia przyniosła herbatkę. Przyniosła też leki. Michał wziął je i popił herbatkę.
--- Dziękuję Ci Dusiu, pójdę już spać.
Dusia pocałowała Michała w policzek. Odeszła od łóżka, ukołysała biodrami. Zgasiła światło.

sobota, 9 lutego 2008

Rubiny na torach

Dusia zobaczyła jak Michał siedział ze smętna miną.
--- Co Ci dolega?
--- Bezradność jak szybko dezaktualizuje się wiedza.
--- Nie przejmuj się Michałku
--- Odpalam prosty przykład aplikacji i nie działa
--- A co to?
--- Rubiny moja umiłowana -- odpowiedział --- pełno ich na torach
--- Ale programiści mają wyobraźnię -- westchnęła
--- Wyobrażam Cię w biżuterii pełnej rubinów, jak hinduska diwa pozująca się na torach. --- odpowiedział z nutką sarkazmu w głosie -- a tak na poważnie coraz większą popularność zyskuje narzędzie o nazwie Ruby on Rails dla programistów tworzących serwisy internetowe. No właśnie zastanawiałem sie co mogło się zmienić w zastosowaniu tego narzędzia gdybym chciał to połączyć z ulubioną technologią Adobe Flex 3.
--- Ja sobie wyobrażam jak hinduski radża kocha się ze mną na tych torach --- strzeliła ripostę --- a tym radżą jesteś ty Michałku.
--- No... może kiedyś się to spełni -- odrzekł ze smutkiem -- ale nie chciałbym być na miejscu Stanisława Wokulskiego. Wracając do rzeczy zainstalowałem Ruby on Rails 2.0.2. Pobrałem zestaw przykładów bazujących na tym narzędziu o nazwie Flex Ruby on Rails RIA SDK dla programistów Flex. Ale najprostszy przykład o nazwie flex_ror_sdk_send_data nie chciał mi się uruchomić. Stawiam różne hipotezy dlaczego mi się nie udało uruchomić. Jedna jest taka że każda zmiana w kodzie aplikacji RoR wymusza restart serwera. Często widzę komunikat "Routing erorr" co właśnie powodowało że chciałem wywołać działanie aplikacji RoR bez restartu serwera Mongrell. Jak ponownie uruchomiłem serwer to pojawił się komunikat że nie mam biblioteki sqlite3.dll. Rozwiązaniem okazało się pobranie tej biblioteki i wypakowanie tego tam gdzie mam pliki interpretora Ruby czyli w naszym przypadku F:\ruby\bin. Kolejnym problemem okazał się kod, który zakładał, że użytkownik domyślnie użyje kontrolera application i akcji data_to_file. Rozwiązałem to że zrobiłem własny kontroler o nazwie WitajSwiecie poleceniem

F:\rails\flex_send_data\ruby script\generate controller WitajSwiecie

Gdy poprawiłem kod pliku flex_send_data.mxml na

var appUrl:URLRequest = new URLRequest();
appUrl.url = "http://127.0.0.1:3000/witaj_swiecie/data_to_file/";
appUrl.method = URLRequestMethod.POST;

I wtedy kod zadziałał. Ale pytanie pozostało dlaczego http://127.0.0.1:3000/application/data_to_file/ nie działa

--- Michałku jestem pod wrażeniem jak szybko rozwiązujesz problemy i nie zrażasz się, że coś nie działa.
--- Owszem, ale moja cierpliwość jest skończona, czasami mam dość tych komunikatów że coś nie działa. Kolejny przykład to rails_file_transfer i musiałem pozmieniać kod w ActionScript przy odwołaniach URLRequest, aby działało to przy moim kontrolerze witaj_swiecie a kod akcji wstawiłem w F:\rails\flex_send_data\app\controllers\application.rb a plik flex_file_transfer.mxml wstawiłem do F:\rails\flex_send_data\public a tam go skompilowałem w FlashDevelop. Gdy uruchomiłem to zauważyłem, że aplikacja Flex nie wyświetla po ponownym otwarciu zawartości folderu F:\rails\send_data\public\myUploads. Wygląda na to, ze musiałbym dopisać kod akcji viewfolder i skrypt ActionScript do obsługi tej akcji.
--- Nie rozumiem, ale po co to wszystko?
--- Żebyś miała wiele rubinów i była pożądaną kobietą przez radżę, który dzięki twoim intrygom stanie się maharadżą na kolei -- zażartował sobie Michał z Dusi --- a tak poważnie zostawimy pisanie tego kodu czytelnikom. Została mi jeszcze na dzisiaj słynna biblioteka WebOrb for Ruby. Myślę, że z perspektywy czasu warto śledzić kariery kobiet w branży programistycznej. Na dzisiaj możesz poczytać wpisy Kathleen Erickson.
--- A poderwałbyś ją? --- spytała się prowokacyjnie
--- A skądże! -- zdziwiony pytaniem -- Mieszka zbyt daleko ode mnie, a ty Dusiu jesteś dla mnie najważniejszą osobą.
Dusia siadła na kolanach Michała i polizała językiem jego policzki, a Michał delikatnie muskał językiem po jej szyi....