Webware and Rich Internet Applications
30 May
Dziś jest dzień zachwycania się czymś co nazywa się AS3Wrapper. Co to robi ? Otóż umożliwia dostęp do całego Flash API z poziomu Javascript. Całość naprawdę robi wrażenie i daje spore możliwości. Co najważniejsze nie odbywa się to wszystko kosztem wydajności ! Najlepiej odwołam się do artykułu, który napisał sam autor : Pulling Flash objects into Javascript. Polecam zobaczyć dwa dobre przykłady zastosowań: Przykład 1, oraz z biblioteką PaperVision3d Przykład 2 (zobaczcie źródła).
29 May
Mimo technologii, które mamy dziś dostępne, podstawowym zadaniem powinno być to, żeby nie zabić od razu tego kto będzie używał rzeczy w nich zrobionych (usability). Drugim zadaniem jest to, by nie zabić też samego siebie przez ciągłe stanie w miejscu (efficiency). Podstawową lekturą jesli chodzi o pierwszy punkt powinno być Creating Passionate Users. Pomocny jest tez serwis stworzony przez effectiveui pod nazwą: User Interface Resource Center(dużo dobrych artykułów). Warto przejrzeć www.usability.gov i przeczytać super książkę Steve Krug - Dont Make Me Think.
Co do efektywności jako takiej dobrze jest odwiedzić David Allen Company i przeczytać jego książkę Getting Things Done. Znakomite są też dwa wykłady z konferencji Ruby: Jim Weirich - Shaving with Occam i Ryan Davis - Hurting Code for Fun and Profit. No i trzeba ciągle pamiętać o K.I.S.S (Keep It Simple Stupid), YAGNI (You Ain’t Gonna Need It), DRY (Don’t Repeat Yourself) i Simplify. Tony Hoare :
There are two ways of constructing a software design:
One way is to make it so simple that there are obviously no deficiencies..
and the other way is to make it so complicated that there are no obvious deficiencies.
Pierwszy sposób jest znacznie, znacznie trudniejszy….
24 May
Ruby znakomicie sprawdza się w Metaprogramowaniu (przykład) i DSL (Domain Specific Language) - widać to dobrze po RSpec. Jay Fields przedstawił koncepcję BNL(Business Natural Languages) i to jak zaimplementować ją w Ruby. BNL to rodzaj DSL’a, który ukierunkowany jest na czytelność, dostępność, zrozumiałość dla ekspertów rożnych dziedzin. Ideą jest to, że ci eksperci niekoniecznie muszą umieć programować w tym języku, powinni natomiast łatwo rozumieć to co on sobą logicznie reprezentuje. Jak każdy DSL, istotą jest tu napisanie kodu, który jest bardzo czytelny (”ludzki”), wydajny, logiczny i stanowi zarazem dokumentacje całego procesu.
W poniższej prezentacji Jay mówi o tym, co stało za potrzebą stworzenia BNL-a, pokazuje proces tworzenia oraz przykłady z biznesowych prawdziwych projektów. Materiały i dokumentację można znaleźć tutaj.
Link do prezentacji: Business Natural Languages Development
24 May
Merapi to jakby most, połączenie pomiędzy aplikacjami napisanymi w Javie i tymi działającymi i napisanymi w Adobe AIR. Dlaczego i po co ?
Dzięki temu połączeniu w prosty sposób można uzyskać dostęp do całej mocy i funkcjonalności, którą oferuje Java (miliardy bibliotek) z poziomu Aplikacji napisanej w Adobe AIR. Żeby nie być tu gołosłownym poniżej znajduję się przykładowy screencast z działającą w ten sposób aplikacją . Jednym słowem nowe ekscytujące możliwości
.
Merapi Hello World :
24 May
Android - czyli platforma dla urządzeń mobilnych opracowana przez Google i firmy zrzeszone w Open Handset Alliance. Aplikacje pisane są tu w języku Java i uruchamiane wirtualną maszyną zwaną Dalvik, która działa pod kontrolą Linuxa.
Dlaczego warto się tym zainteresować ? Przede wszystkim ze względu na ciągły rozwój ten platformy i firmy, które w jej rozwój są zaangażowane
. Nie tak dawno został ogłoszony konkurs na aplikacje pod Androida (z bardzo wysokimi nagrodami
), można o tym poczytać też na helloandroid. Niedawno zastanawiano się tez czy Android pobije iPhona … i już dziś wiadomo, że jest to pewne. Google podpisało już umowy z takimi firmami jak Motorola, Samsung, LG czy HTC, z tego ten ostatni obiecał, że jako pierwszy przedstawi swoja propozycję HTC Dream.
Warto poczytać o możliwościach na stronie projektu i przejrzeć bloga programistów.
Generalnie coraz więcej się dzieje w świecie mobile devices, powstaje już właściwie “mobile RIA” (np JavaFX) , w niedalekiej przyszłości urządzenia przenośne będą mieć możliwości dostepne dziś tylko na Laptopach i Pctach, dlatego warto już dziś rzucić okiem na Androida ![]()
23 May
Sun Microsystems ciągle rozwija swój produkt, mogący pozwolić wejść im w świat aplikacji RIA. Tym produktem jest właśnie JavaFx. Aplikacje w JavaFX tworzyć można wykorzystując środowisko NetBeans z wtyczką JavaFX Script, Media Converter. Aplikację będzie można uruchamiać na wszystkich wspieranych platformach (po zainstalowaniu pluginu), podobnie jak Adobe AIR czy Silverlight. Na niedawnej konferencji JavaONE zaprezentowano przykłady aplikacji dla Facebooka, połączonego z Flickrem i Twitterem. Pokazano możliwość przeciągnięcia aplikacji z okna przeglądarki na pulpit. Co więcej tę samą aplikacje uruchomiono następnie na telefonie komórkowym na platformie Android.
Całość wygląda efektownie i obiecująco, jednak na razie jest zbyt wcześnie by JavaFX mogła konkurować z Adobe Flex czy Adobe AIR. Wynika to faktu, że całość nie jest jeszcze tak dopracowana, a co za tym idzie rozpowszechniona (pluginy vs FlashPlayer = produkty Adobe). Tak więc jeśli chodzi o platformę dla Aplikacji RIA, Adobe wciąż wiedzie prym.
20 May
Cells niesie ze sobą to co w Ruby On Rails sie nie udało, czyli moduły, czyniąc to bez straty dla wydajności co pierwotnym modułom też się nie udało. Każda komórka (Cell) jest jak niewielki lekki kontroler (wraz z odpowiadającymi widokami), który można użyć wszędzie w naszej aplikacji. Jest to bardzo interesująca rzecz, która pozwala budować aplikacje zorientowane bardziej komponentowo.
Kolejna rzecz to Apotomo - jest to stanowy (stateful) komponentowy framework dla Railsów. Posiada on bazujące na Cells widgety do implementowania logiki aplikacji (wielokrotnego użytku). Strona nie musi być już budowana jednym monolitycznym kontrolerem, ale może być definiowana za pomocą zagnieżdżonego drzewa widgetów
. Całość w każdym razie wygląda bardzo fajnie (dziś zacząłem używać
). Warte uwagi jest też, że Apotomo zostało porównane do Seaside frameworka napisanego w języku Smalltalk.
Warto odwiedzić tą liste mailingową, gdzie ludzie, do których się dołączam od dzis :p tworzą i używają stanowe, komponentowe frameworki. Może to pozwoli frameworkom Ruby być jeszcze lepszymi ![]()
19 May
Rubinius powstał w celu stworzenia najszybszej maszyny wirtualnej Rubiego oraz łatwego i szybkiego rozwoju dla samego języka Ruby. Podejście jest tutaj następujące: ponieważ implementacja wirtualnej maszyny napisana jest w Ruby i ma ona do czynienia właśnie z Ruby, znacznie łatwiej będzie rozwijać język. Niedawno Evan Phoenix na swoim blogu, doniósł że udało im się w końcu uruchomić Ruby on Rails, jest to kolejny sukces po tym jak uruchomili już framework Merb
Rubinius nawiązuje do 30 lat doświadczeń Smalltalka. Jest w nim dobrze zaimplementowana wielowątkowość (Channels, Actors, Tasks, Threads). Rubinius napisany jest w oparciu o metodologię TDD/BDD, głównie we frameworku RSpec. Aby zobaczyć postęp prac lub też dołączyć do projektu warto odwiedzić Rubinius project on Lighthouse. Cały projekt jest niewątpliwie bardzo interesujący !:) Obecnie wszystkie prace są raczej prowadzone pod kątem funkcjonalnym niż wydajnościowym, czyli będzie dużo lepiej
.
19 May
AsWing to Open Source’owy GUI framework stworzony w języku ActionScript3 (przedtem ActionScript2). Framework ten wzoruje się na Java Swing (obecnie najpopularniejszej bibliotece GUI w javie). Jest tu bardzo dużo komponentów, dzięki czemu można zbudować w pełni funkcjonalny interfejs dla aplikacji Flash/RIA.
Podstawowy problem pojawiający się w aplikacjach używających Adobe Flex to .. ociężałość. Gotowy plik SWF może zajmować do kilku megabajtów, a sam czysty framework już zajmuje koło 1 Mb. Dodatkowo wszystkie te efekty i przejścia zażynają procesor.
AsWing jest jakby odpowiedzią na to. Jest lekki (plik z samym Hello World zajmuje kilkanaście KB) i wydajny.
Przykładem może być to co zrobił mój znajomy Evgenios Skitsanos grafeio.eu na razie wersja Beta, wszystko działa szybko i zajmuje 124 KB !! (podobna Aplikacja w Adobe Flex zajmowałaby około 1.5 MB).
Dobry tutorial mozna znaleźć tutaj Step By Step AsWing with FlexBuilder, oraz forum dyskusyjne AsWing Forum.
19 May
Tamarin to open source’owy projekt implementujący specyfikacje języka ECMAScript 4. Jest to wirtualna maszyna, która będzie używana w Mozilli Firefox 4 (czyli jeszcze nie teraz) razem ze SpiderMonkey (silnikiem JavaScript). Kod będzie dalej używany przez Adobe jako część ActionScript Virtual Machine wewnątrz Flash Playera.
Niestety na razie nie ma wielkiego zainteresowania Tamarinem. Zainteresowanie to natomiast zrodziło się w Japończykach, którzy dalej wyprzedzają nas technologicznie o lata świetlne. Zrobili oni użytek z MMgc (Tamarin Garbage Collector), z AVM2(Action Script Virtual Machine 2) oraz kodu Tamarina, który można znaleźć tu: Tamarin Source i stworzyli AVMSHELL - kompilator powłoki (można teraz wywoływać z linii poleceń skrypty w ActionScript 3). Po co tyle wysiłku ? Chodzi o wydajność ! Ten sam kod napisany w JavaScript i odpalony pod Firefoxem 2 działa 15 razy wolniej niż napisany w ActionScript 3 i odpalony w Tamarinie (ciąg fibonacciego).
Co zrobić żeby to uruchomić ? Można ściągnąć avmplus.exe (silnik wykonawczy).
Skompilować do pliku skrypt.abc przy pomocy asc.jar z Flex SDK i uruchomić avmplus.exe
java -jar asc.jar skrypt.as
avmplus.exe skrypt.abc
Z plikiem avmplux.exe można bardzo wiele. Jest świetny japoński serwis o ActionScripcie Spark Project. Są również materiały z konferencji poświęconej formatowi SWF , oraz artykuł o językach programowania kompilowanych do formatu SWF Link (niestety japoński
).
Warty przeczytania jest też artykuł pokazujący co daje nam Tamarin.
18 May
![]() |
![]() |
Ponieważ się strasznie wszystko zmienia szybko, warto zwrócić uwagę na to co będzie sie działo w następnej wersji ECMAScript, czyli standardzie językowy, na którym jest oparty Action Script. Żeby to sobie zobaczyć warto odwiedzić i poczytać New In ECMAScript . Możliwe, że będzie za niedługo trzeba się wysilić i skupić nad czymś co będzie się zwało Action Script 4 ?
. “Nowością” może też być nowy typ Vector (parametryczny typ danych), który dodano teraz do Action Script 3.
Jeśli chodzi o Adobe Flex 4 (”Gumbo”), to wszystko będzie wiadomo wraz z nadejściem dokumentacji (wtedy tez pojawi się ona dla Flash Playera 10). Ale główne priorytety developerów na dziś to:
Podstawową sprawą jest wbudowanie w Flexa deklaratywnej graficznej biblioteki, czyli zastąpienie roli, którą obecnie spełnia framework Degrafa- budowanie dowolnych kształtów za pomocą znaczników zamiast kodu AS3. Więcej informacji o nowym Adobe Flex (”Gumbo”) i jego pierwszych wersjach beta można znaleźć tutaj:Adobe Flex 4 (”Gumbo”).