Widzę, że jesteś pierwszy raz na moim blogu. Witaj :). Może nawet będziesz miał ochotę subskrybować blog poprzez RSS. Trzymaj się ciepło!
Odeszły w niepamięć te dobre czasy, kiedy w nowym języku wystarczyło napisać Hello World. Teraz jako pierwszy program w nowym języku piszę się klienta dla Twittera, a u nas nad Wisłą klienta do Blipa. Tak właśnie się stało w moim przypadku.
Blipujemy, po drobnych przygodach z recenzentami, wszedł przed chwilą do AppStore. Aplikacja powstawała w bólach przez około rok i pewnie by czas jej pisania się przeciągał w nieskończoność, gdybym nie przeczytał Rework. Największe piętno odcisnęły na mnie dwa rozdziały: “Launch now” oraz “Good enough is fine”. Zmieniłem nazwę na “Blipujemy na Próbę”, okroiłem zakres funkcjonalności i wydałem.
Pamiętam jeszcze ekscytację podczas pierwszej edycji JDD w 2006 roku, kiedy Bruce Eckel składał podpis pod Thinking in Java. Ile wówczas się działo! Programowanie aspektowe, generyki, TDD… Jednak od dwóch edycji jest coraz gorzej. W tym roku postanowiłem nawet nie zawracać sobie głowy JDD. Nie warto.
Dlaczego?
Brakuje opiekuna merytorycznego dla konferencji. Nie ma myśli przewodniej. Jest to zbitka luźnych tematów.
Ciągle te same imiona i nazwiska. Bill Burke, Ted Neward, Jarosław Błąd….
Nie może być tak, że na dwa tygodnie przed konferencją nie jest znany pełen rozkład jazdy.
Podczas tegorocznej Javarsovii dałem prezentację “Lekcja Stylu”. Dużo osób było zainteresowane slajdami. Oto one.
Abstrakt:
Lekcja Stylu – czy w Javie można jeszcze dostrzec piękno?
Przeglądając listy prezentacji na konferencjach związanych z Javą z ostatnich lat można dostrzec pewien wzorzec. Przedstawia się coraz to bardziej wyrafinowane zręby aplikacji, wskazówki integracyjne dla kolejnych JBusinessComponents oraz zręby aplikacji webowych, gdzie wypisanie “Hello World” zajmuje trzy linijki zamiast pięciu. Czyżby zapomniano już o samym języku Java? Czyżby wszyscy już przesiedli się na Scalę, Groovy lub JRuby?
Swoją prezentacją chcę wrócić do korzeni, do samego języka Java. Będę pokazywał dobre przykłady, jak należy programować, aby czytanie kodu było miłym doświadczeniem. Nie będzie jednak to wykład o wzorcach projektowych, ale o codzienności programisty, który właśnie po wypiciu porannej kawy i otwarciu edytora, pisze pierwszą tego dnia instrukcję warunkową.
Będzie to hołd książce “Implementation Patterns” Kenta Becka. W prezentacji zostaną przedstawione także ułatwiające życie biblioteki takie jak Google Guava, Google Guice oraz Mockito.
Pasjonują mnie aplikacje mobilne. Ostatnio głośno zastanawiałem się skąd aplikacja WGPW na iPhone pobiera dane dotyczące notowań na Warszawskiej Giełdzie Papierów Wartościowych. Na oficjalnej stronie aplikacji ani słowem o tym. Dane te nie są ogólnie dostępne ani też darmowe.
Zadałem sobie pytanie jak można najłatwiej podsłuchać tą aplikację, żeby się dowiedzieć, skąd pobiera ona informację o notowaniach. Zainstalować na stacjonarnym Maku i podsłuchiwać? Nie wiem, jak uruchomić aplikację iPhone na MacOS. Podsłuchiwanie całej sieci WiFi? Nie, to jest żmudne i nigdy nie jestem w stanie dobrze skonfigurować Wiresharka do tego.
Okazało się, że banalnym sposobem jest udostępnienie połączenia internetowego na MacBooku i ustawienie iPhone na tą sieć.
Odpaliłem Wiresharka i na telefonie odpaliłem aplikację. Efekt był natychmiastowy.
Aplikacja WGPW pobiera dane ze swojego serwera raraavis.org. Rozejrzałem się tylko chwilkę, przykładowe zapytania:
Więcej nie podaje, sami potraficie przecież rozmontować to API. Co dzieje się za tymi serwerami to już nie wiadomo . Korzystanie z danych z powyższego serwisu pewne nie jest do końca legalne.
Jest to dość dobra metoda, jeśli chcesz dokładnie prześledzić zachowanie się aplikacji na urządzeniu mobilnym. Nie sprawdzi się ona, jeśli aplikacja korzysta z SSL, sorry folks.
Miłej zabawy. Dajcie znać, jak znajdziecie jakieś fajne API =).
Aktualizacja:
16 czerwca 2010: Bartek w komentarzu zauważył, że serwis przestał działać. Aplikacja przestała działać. No cóż…
Nie jestem w stanie zrozumieć, czemu polskie serwisy tak bardzo boją się udostępniać zgromadzone przez siebie dane poprzez API. Zastanawiam się, z czego to wynika?
Bez dwóch zdań króluje Blip ze swoim API oraz forem dyskusyjnym, gdzie programiści Blipa się udzielają. Twórca Blipa zadbał o dobre kontakty z deweloperami, co zaowocowało dziesiątkami dodatków do Blipa. Nic dziwnego, że Blip stał się tak bardzo popularny. Flaker też ma jakieś interfejs programistyczny, ale sama nazwa mnie odstrasza od serwisu. Blip FTW, zwłaszcza, kiedy planują wielkie zmiany w serwisie.
Wniosek z API Blipa: technologia, kontakt z deweloperami oraz ewangelizacja.
Grono swego czasu udostępniło API dla aplikacji zewnętrzynych. Ogłosili konkurs z fajnymi nagrodami, trochę prac napłynęło i nawet ktoś tam wygrał. Z dniem zakończenia konkursu wszystko zamarło, nie powstawały żadne nowe aplikacje. Ekipa Grona nie miała pomysłu na ich dalsze wykorzystanie, zrobili dokładnie nic. Kiedy Grono zaczęło przeżywać masowy exodus użytkowników, zaatakowali jeszcze raz z API à la Facebook – nie pomogło. Nie mogę się teraz do tego dokopać, ale była aplikacja odrzucona przez Grono, ponieważ integrowała się z serwisem konkurencyjnym. Dziwię się, że Grono jeszcze funkcjonuje.
Mamy jeszcze naszego lokalnego giganta Allegro, które jest wręcz uroczo staromodne ze swoim interfejsem programistycznym w SOAP. Są to nieznane mi zakątki internetów, lecz wygląda prężnie. Technologia – jest, ewangelizacja – ?, duża kasa – jest. Proste, no nie?
Kto powinien postarać się o API?
Interesują mnie tylko dwa serwisy. Pierwszy to król polskich portali społecznościowych. Nie widzą, że wczesna większość powoli odnajduje się na Facebooku? Nie widzą, że to oni mają lepszy CTR? Wątpię. Nasza-klasa interesuje mnie tylko z jednego powodu: duża baza użytkowników, czyli potencjalne pieniądze. Komuś Farmville? Quizy?
Drugi serwis to Gastronauci, niszowy serwis o knajpach z największą bazą recenzji w Polsce. Plotki głoszą, że gdzieś istnieje ich API (jeśli coś wiesz to podeślij mi info), nawet aplikacja na iPhone się szykuje. Dlaczego zwlekają z jego publikacją?
Przejdź na Blipa i zacznij edytować wygląd swojego Bliploga (http://blip.pl/template/edit). Dodaj odnośnik do swojego profilu z atrybutem rel="me" do szablonu, np.
Przejdź do edycji swojego profilu Google (http://www.google.com/profiles/me/editprofile) i dodaj odnośnik do swojego Bliploga, np. http://wwiktorr.blip.pl.Zaznacz “This is a profile page about me”.
Teraz twój Google musi zweryfikować, czy faktycznie jesteś autorem podanego Bliploga. Żeby przyspieszyć ten proces, wejdź na sgapi-recrawl.appspot.com i kliknij “recrawl”.Jeżeli wszystko dobrze poszło, powinieneś zobaczyć potwierdzenie.
W Google Buzz przejdź do “Connected Sites”. Dodaj Blipa.
Uzbrój się w cierpliwość. Po krótkim czasie Buzz podepnie twoje blipy.
Ostatnio byłem zmuszony to ponownej instalacji systemu na Maku. Przy okazji zrobiłem spis aplikacji, z których korzystam. Lista jest przede wszystkim dla mnie, ale może i coś dla siebie znajdziesz .
Nexus One – powolipojawiająsiępierwszerecenzje. Nie wiem jak szybki jest iPhone 3GS, ale Nexus One jest prawdziwym demonem szybkości. Zerknijcie poniżej na przygotowany przeze mnie filmik. Zauważcie, jak gazeta.pl szybko się wczytuje .