17 lipca 2008

Universal Widget API

Mówi się, że muzyka łagodzi obyczaje. To prawda. A wiecie, co obyczajów na pewno nie łagodzi? Idiotyczny, fatalnie udokumentowany projekt, w którym zleceniodawcy nie wiedzą, o co chodzi, analitycy rwą sobie włosy z głowy, technical team leaderzy muszą analizować gotowy kod, a programiści z trudem mogą cokolwiek osiągnąć.

U nas w firmie, a dokładnie w naszym pokoju wesołych JAVowców działał konkurs na przekleństwa – każdy bluzg był skrupulatnie odnotowywany przez dzielnego MiGo, który pod koniec miesiąca podliczał wyniki i pobierał za nie kasę – 10 groszy za przekleństwo w lutym, stopniowo wzrastało do 50 gr w czerwcu. Konkurs został wprowadzony właśnie po to, by obyczaje w naszym testosteronem płynącym pokoju złagodzić. Jednak pod koniec czerwca MiGo zastrajkował, bo uznał, że ciągłe "Goły, pyknij fałeczkę" za bardzo wybija go z rytmu pracy. Nikt po nim posady nie przejął, więc konkurs został zawieszony.

I dobrze dla kieszeni moich kolegów z pokoju się stało, bo zaraz potem przyszedł rzeczony projekt, i teraz bluzgi latają po naszym pokoju jak szalone. Wszyscy zgodnie ustalili, że konkurs wróci najwcześniej wtedy, gdy z projektem się uporamy.

Ale to taki wstęp właściwie nie związany z tematem. Tematem bowiem jest mój mały nowy task, który dostałem po miesiącu zabawy z Javą 3D. Teraz dostałem zadanie rozpracowania technologii UWA czyli Universal Widget API.

UWA zostało wprowadzone przez twórców serwisu NetVibes. NetVibes pozwala założyć sobie konto i utworzyć sobie spersonalizowaną stronę, która, zgodnie z naszymi potrzebami, będzie zawierać elementy, jakie sobie wybierzemy: nasze ulubione wyszukiwarki, kanały RSS, które śledzimy, narzędzia (jak kalkulator, kalendarz, zegar czy pogodynka), a także różne dodatki rozrywkowe: gry, losowe filmiki z youtube'a czy obrazki z różnych galerii – słowem, do wyboru, do koloru. Coś bardzo podobnego oferuje Google w swojej usłudze iGoogle.

Wszystkie te aplikacyjki na stronie NetVibes to właśnie są widgety, a Universal Widget API, dostarcza mechanizmów do ich tworzenia. NetVibes dostarczał takie narzędzia już wcześniej, ale wtedy były to tylko widgety kompatybilne z ich serwisem. Teraz jednak, za pomocą UWA można pisać – jak sama nazwa wskazuje – widgety uniwersalne, które bez problemu można załadować na stronie iGoogle, na iPhone'a czy na pasek widgetów Windowsa Visty (ten po prawej).

Generalnie jest to bardzo proste – wykorzystuje się HTMLa, JavaScripta i AJAXa, można sięgać do źródeł danych poprzez PHP czy inne skrypty strony serwera, ale wcale nie jest to konieczne – samo UWA dostarcza mechanizmów do pobierania danych np. z kanałów RSS czy Atom. Cały widget może zawierać się w jednym pliku HTML ze kodem JavaScriptowym. Może też być bardziej skomplikowany – pełna dowolność.

W ramach testowania widgetów, które pisałem przy rozpoznawaniu technologii, założyłem sobie wreszcie stronę na iGoogle, wybrałem kilka przydatnych widgetów, ale zauważyłem też, że wielu, które by mi się przydały, tam nie ma. Ale to nie problem – sam napisałem sobie ściągawkę najnowszych artykułów z Gazety.pl (niby jest taka dostępna, ale moja jest lepsza ;) oraz Pardon.pl (obydwie dostępne na moim serwerze uczelnianym) oraz taki dynks, który ostatnio pojawił się jako dodatek na Blogspocie – śledzenie wybranych blogów z informacją o najnowszych postach. Niby dodałem sobie to do swojego bloga, ale jednak postawiłem sobie za punkt honoru samodzielnie coś takiego napisać. Tego ostatniego na razie nie udostępnię, bo musiałem to napisać lokalnie w pracy, bo PHP na serwerze student.agh.edu.pl ma w ustawieniach kilka nieprzychylnych ograniczeń, uniemożliwiających prawidłowe działanie.

Ale generalnie muszę przyznać, że całe to UWA to prześwietna sprawa i pozwala to naprawdę dostosować swoje iGoogle i netvibesy, a nawet tą nieszczęsną Vistę do swoich potrzeb :)

Brak komentarzy: