Google Developer Day 2007 (GDD07)

Tak jsem dneska nešel do školy 🙂 Peter Hermann, jeden z IBM partnerů v Austrálii, mě upozornil na . Událost jedinečná svého druhu, první na světě a navíc se zajímavým programem. Takže nebylo moc proč váhat a vyrazil jsem.

Najít, kde se to vlastně koná bylo trochu horší. AdresaUkaž na mapě byla přesná dostatečně, bohužel areál byl trochu větší. Jak jsem později zjistil, tak v historii to sloužilo jako továrna na lokomotivy, kterou zrekonstruovali a udělali z toho jedno velké výstaviště. Navíc některé stroje nechali zrekonstruované uvnitř, takže to dostalo takový zvláštní náboj a vypadá to opravdu hezky.

V okamžiku, kdy jsem nalezl tu správnou část (nakonec nás to hledalo 6 dohromady), tak už všechno šlo jako po drátkách. Organizace je tady opravdu výborná – všude je WiFi, které se tedy občas pěkně zakucká, ale to se vzhledem k počtu lidí není co divit, speciální nabíjecí stanice na notebooky (jednoduše a prostě – stoly s prodlužovačkami), spousta občerstvení, výborné jídlo, skvělý zvuk při prezentacích a dokonce přednášející snímají kamerami.

Podium

Moderátor dne je opravdu vtipálek, prokládá pauzy mezi přednáškami skvělými vtípky a má to úžasný spád. Tak jenom pár na ukázku – „pokud se vám naši prezentující líbí, tak si je klidně vemte večer domů“, „pokud se připojíte na internet a nepoužíváte jako vyhledávač Google tak váš počítač vybuchne“ a spoustu dalších. Jak jsme se od něj hned na začátek dozvěděli, tak stejná událost probíhá „současně“ v několika zemích na světě – USA, Brazílii, Anglii, Japonsku, Francii, Rusku a spoustě dalších, odněkud je dokonce online přenášena, takže možná ještě můžete také koukat. Nicméně Sydney je díky časovým pásmům první na světe a současně je druhá největší – přihlásilo se víc než 700 lidí.

Keynote, Alan Noble

Alan povídal o Google jako takovém, o nových technologiích, které připravují a o návycích, které se učí sami nebo od trhu. Jako příklad uvedl Google Maps a jejich API. Na začátku totiž API k mapám neexistovalo, nicméně některý šikula (mimo Google) si našel čas a celé to popsal a naučil se používat. Takže Google později API doplnil a v současné době existuje API dokumentace skoro ke všem projektům, které mají. Což znamená víc než 30 rozdílných API rozhraní. Což mi přijde celkem solidní počet, vždycky jsem si myslel, že Google je jenom vyhledávač případně pošta.

Dál povídal o vizi Integrate/Reach/Built (překládat to opravdu nebudu). U Integrate uvedl jako příklad Maps, které se opravdu v dnešní době používají široce. Jenom vsuvka – když hledáme v Sydney byt, tak většina stránek je přímo propojená na Maps a ukazuje, kde daný byt je. Reach je pro Gadgets, kde mezi nejoblíbenější patří asi Pacman, který měl víc jak 7 milionů návštěvníků za poslední týden nebo ToDo, které mělo 5 milionů návštěvníků. Což jsou celkem solidní počty a co je důležité – ani Pacman, ani ToDo není od Google, tyhle věci přivádějí návštěvníky na jiné stránky. A Gadget může vyvinout úplně kdokoliv. No a nakonec Build – sem patří Google Web Toolkit, což je, jak jsem poznal později, neuvěřitelně krásná věc.

Ale při jeho prezentaci jsem si uvědomil jednu úžasnou věc – před lety se všechno přesouvalo na web a muselo být „online“, kdežto teď už se to zase začíná trochu přesouvat na klientské stanice, pro případ výpadku webu nebo když je připojení moc drahé nebo složité. A jasně – mají na to produkt 🙂

Building better AJAX applications, Aaron Boodman

Co bych měl zmínit – většina Google lidí je dost mladá. Když se člověk koukne na programátory, kteří tady jsou, tak jsou to lidé hned po škole, někteří z nich už dělají šéfy týmů nebo produktů. To mi přijde hodně hezké, dost by mě zajímalo, jaký je v Google věkový průměr.

Alan povídal o Gears. Gears je nová věc, v současné době v úplně první betě, aby zjistili, zda se to lidem líbí a má smysl pokračovat a co je nejvíc trápí. Díky tomu je jasné, že to občas padá a není úplně ideální, ale na hrátky to stačí.

Gears je právě něco, co umožní provoz webu offline, umí automaticky přepínat mezi online/offline režimem, snaží se používat lokální data i když jsou dostupná online, protože je to rychlejší a méně zatěžuje síť. A celé by to v podstatě měl být plugin do prohlížeče, přičemž jako vždy Google podporuje skoro všechny prohlížeče – IE, Firefox, Opera, Safari (to už je skoro připravené).

Alan hlavně pro celou prezentaci používal prohlížeč. Vypadalo to neuvěřitelně krásně, fungovalo hladce a jak jsme se později dozvěděli, tak pro ni používal Gears. Což znamenalo, že to nebyly statické HTML stránky, ale data byla uložená v databázi, kde nám ukázal, jak je může změnit offline, prezentace se změní a pořád funguje, stejně jako kdyby byl online. Krásné, ale … Domino Offline Services jsou to samé, pouze omezené jenom na Domino a málokdy je používá 🙂 A samozřejmě všichni byli zvědaví, co to používá za databázi – odpovědí je SQLite, věc, která má pouhých 343KB a přitom je schopná spravovat gigabyty.

Ukázal také pár příkladů, které Gears umožňuje. Jeden z nich bylo celkem složité počítání v JavaScriptu, které když se použilo tak jak jsme zvyklí tak výrazně zpomalilo prohlížeč. Ale když ten samý kód „spustil v Gears“, tak počítání bylo sice trochu pomalejší, ale zase to nezatěžovalo prohlížeč. Na tom se mi hodně líbila na možnost, přesunout to jinam, aniž by se sáhlo do kódu.

No a finále – full-text vyhledávání. Google prý vyhledává strukturovaně, takže tohle je další krok. Zatím jsou „schopni“ vyhledávat v milionech stránek, ale pracuje se na větším množství. A ve finále by měli umět i „Multilanguage Search“ – o tom už jsem někde něco slyšel, mělo by to fungovat tak, že člověk zadá dotaz, ten se přeloží, vyhledá i na stránkách v jiném jazyce, výsledky se přeloží do originálního jazyka a vrátí se. Zní to dobře, ale občas už v dnešní době je těch stránek moc, když jich bude ještě víc, tak se asi budu muset naučít svůj dotaz neuvěřitelně zpřesnit, což znamená, že o kus stránek, které to třeba nemají tak přesně napsané, přijdu. No, co člověk nadělá.

Mapplets: Making Maps Mashups Discoverable, James Macgill

Tohle téma mě snad zaujalo ze všech nejvíc. Začal totiž typicky portálovým přístupem – na webu je spousta stránek, které se zabývají nejrůznějšími věcmi a které by občas chtěly spojit. Například, když člověk hledá byt, tak by chtěl na mapě vidět, jaké byty se nabízejí okolo, jaká je průměrná cena bytu v okolí, kde jsou školy pro děti, restaurace, obchody, jaká je tam míra kriminality, počasí, … A všechny tyhle věci jsou na různých stránkách, většina těch stránek to i zobrazuje na mapách, ale nějak to neumí fungovat dohromady.

Takže jsme šli přímo do praxe – Mapplets. Pár už jich je připravených, další může člověk dodat a získat díky tomu nějaké návštěvníky. Seznam Mappletů je generován automaticky na základě popularity a regionu (IP adresy).

Samozřejmě to má celkem velké a složité API, nicméně spousta věcí, jde dělat jednoduše a Google k tomu přímo nabádá. Například pokud člověk chce na mapě zobrazit spoustu bodů, tak je nemá přidávat pomocí skriptu, ale má vytvořit KML soubor, což je jednoduché XML, které v dnešní době Google indexuje, a kde jsou popisy a souřadnice. To se předá jako parametr a Maps udělá zbytek. Krása.

Zajímavé také bylo jak dělají cross-site scripting, protože Mapplets běží na jiné doméně než Maps. Na stránce by měly být v podstatě dva rámce – jeden pro Mapplets a druhý pro Maps. A když člověk zadá požadavek v Mapplets, tak to vytvoří iframe v sobě, který zavolá Maps server s parametrem, Maps server to zprocesuje a parametr předá do hlavního rámce. A protože je to v rámci jednoho serveru tak by to mělo projít. Celkem dobrá finta (zvláště pokud jsem ji popsal správně :))

Pak jsme se vrátili trochu na začátek, na srovnání různých možností jak přidat popisky do map. Cesty jsou v dnešní době asi tři – My Maps, což je v podstatě drag-n-drop editor; KML soubory, které slouží k přidání velkého množství dat (případně dynamických dat) a Mapplets, které by měly sloužit jako interaktivní uživatelské rozhraní.

Google Maps API overview, Bo Majewski

Tak tohle byla neuvěřitelně hutná a přitom rychlá a zábavná přednáška. Připravil si pro nás 23 příkladů co se dá s mapami udělat a některé byly opravdu úžasné. Tak třeba API funkce panTo, které mapu posune na zvolené souřadnice, takže je to trochu jako let nad terénem. Různé parametry, které se dají nastavit „zamichovátkům“ do mapy, jako například gravitace, takže může pěkně skákat po mapě, nebo různé obrázky či možnost posunu zapichovátka. No a nezapomněl zmínit ani legrácky, jako třeba použít „zapichovátka“ jako hodiny a vždycky zvýraznit to správné z nich, nebo jako hru, kdy z nor vykukují krtci či co to bylo a člověk na ně musí klikat. Co bylo hodně hodně hezké – překrytí části mapy vlastními údaji. Ukázal to přímo na příkladu jedné univerzity, která překryla Google mapu své univerzity svojí vlastní, výrazně podrobnější. Pro ty co se bojí – překryje se to jenom po návštěvě správné stránky, ostatní návštěvníci jsou nedotčeni.

Prohlížeč jako prezentační nástroj

I on měl prezentaci kompletně v prohlížeči, což bylo krásné – v horní polovině byla mapa, kde se zobrazovaly výsledky, vlevo dole popisek „slidu“ a v pravé místo pro kód, díky kterému to předvedl. A upozornil, že oblíbený AdSence by měl být brzy dostupný i pro Maps, takže se reklama bude zobrazovat rovnou na mapách (a půjde říci, zda se má či nemá zobrazovat).

Pauza, oběd

Tak tohle bylo zajímavé a celkem nevšední (pro mě). Byly zde čtyři stránky, každý s totálně jiným jídlem (typem jídla) a každý stánek měl ten daný typ jídla v rýzných verzích, takže si vybral opravdu každý. Hezké.

V pauze jsme mohli obdivovat stánky šesti partnerů, kteří si hrají s Maps a ukazovali zajímavé aplikace. Nejvíc mě zaujali Bikely.com, kteří používají mapy k plánování a porovnávání cyklistických tras, takže člověk nemusí přemýšlet kam a kudy jet, RememberTheMilk.com, což je takové legrační udělátko na psaní úkolů, které spojuje úkoly s místy, takže člověk pak na mapě vidí, co má kde udělat. Ze začátku mi to přišlo směšné, ale po chvíli koukání to má celkem dobrý nápad. A poslední – PlanOfile.com pro plánování cest, včetně délky, obtížnosti, …. Hodně podobné Bikely, které je pouze pro kola.

Zázemí

Google Gadgets API, Zhen Wang

Co je to Gadget? Tak z toho jsem byl překvapen – XML soubor, který v sobě má něco HTML, přičemž z HTLM tam má jenom ten důležitý obsah – tedy například pouze nápis Hello World! pro ty nejjednodušší. Navíc to umožňuje ukládat předvolby pro každého uživatele přímo na serveru (nedokážu si představit tu spotřebu místa) nebo zvolit správný jazyk podle přání uživatele (samozřejmě pokud existuje). No a hodně upozorňoval na správné používání funkcí, hlavně těch, které umožňují cachování dat, protože jinak to prý může zahltit server, pokud se to stane oblíbeným. A protože Gadget běží na serveru toho kdo je vytvořil a nikoliv u Google, tak to odnese server, o který se staráme.

No a jak poznamenal komentátor po skončení – tohle byla jedna z mála prezentací, která skončila výrazně dřív než měla.

Open Source, Google APIs, Google Web Toolkit, Lars Eilstrup Rasmussen

Asi nejstarší prezentující, pokryl nejvíc témat a přednáška byla opravdu super. Začal třemi fotkami – jak vypadalo technické zázemí Google když začali, pak přibližně před dvěmi lety a jak vypadá teď. Tak velkou serverovnu jsem asi ještě neviděl.

Open Source – používají Linux, Tomcat, SSH, většina vývojářů používá Goobuntu (speciální verze Linuxu). A důvody jsou celkem jednoduché – nechtějí být závislí na externí softwarové společnosti a chtějí si měnit co potřebují. Také ukazal zajímavý výzkum, proč lidi píší Open Source – většina z nich to dělá pro zlepšování svých znalostí, další jenom proto aby se nějak odreagovali.

AJAX – správně poznamenal, že napsat AJAX aplikaci není legrace. Konkrétně – „Write once, test 4 – 5 times“ nebo „speed is important – it is problem to write ajax application at all, will you have opportunity to make it fast?“. Také je prý problém, že nejsou nástroje pro vývoj a testování, takže proto vznikl Google Web Toolkit (GWT). Ten umožňuje psát tyhle věcičky v Java v libovolném prostředí, testovat je a potom zkonvertovat to JavaScriptu – prý to funguje v pohodě. Navíc GWT umožňuje psaní unit testů, ladění rychlosti, podporuje vícejazyčnost, více prohlížečů, history management. A přestože to uvedli na trh teprve před rokem, tak už si to stáhlo víc jak 1 milion lidí a už o tom existují knížky na Amazonu.

Introducing Google data APIs, Venuprakash Baratham

Z tohohle mám sice nejmíň poznámek, což ovšem vůbec neznamená, že to bylo nezajímavé. Možná hodně technické? Nicméně to ukázalo, že možnosti programování jsou úžasné – pomocí volání „webových služeb“ (tuším, že to nebyly čisté webové služby, ale možná volání přímé webové adresy) jde zapisovat do Google Calendar, měnit data v Google Documents a v podstatě měnit, přidávat a měnit všechna data, která jsou kdekoliv v síti Google. Samozřejmě se vší potřebnou bezpečností.

KML Overview – Michael Ashbridge

Hodně zajímavá prezentace, hlavně típ, že ji měl celou připravenou v Google Earth. Skvělá myšlenka, pro předvedení jednotlivých možností a přechod mezi jednotlivými slidy jsme lítali po celé zeměkouli a bylo to hodně živé.

Zmínil také fakt, který je pravda, ale přichází se na něj postupně – spousta věcí na webu se dá popsat souřadnicově a souvisí s nějakým místem. Pomalu na to přicházejí i výrobci fotoaparátů a do těch nových už montují GPS navigaci nebo alespoň umožňují, aby se to s ní spojilo (což jsem zrovna tady v praxi viděl, bylo to trochu neohrabané, ale hlavně, že to slouží).

KML má neuvěřitelné možnosti, je trojrozměrné, zobrazuje obrázky, čáry, pop-up okna, zobrazovat profil krajiny, polygony, …. Neuvěřitelné hrátky jsme tu viděli a hlavně mě ukázal, že Google Earth není jenom taková nějaká hračička, ale dají se v tom dělat i smysluplné věci.

No a taky to byla nejdelší prezentace – jak správně moderátor poznamenal po skončení – hurá, už jsme zase na našem časovém plánu.

Závěr? Pokud můžete, tak na to jděte, je to úžasné, spousta informací a poznáte, že Google není jenom vyhledávač (což jsem si do nedávna tak trochu myslel, i když vím i o jejich dalších projektech, tak jsem netušil, kolik jich ve skutečnosti je).

1 komentář

  1. To zni jako zajimavy den.. 🙂
    dva postrehy:
    1] sqlite mozna teoreticky pojme gigabyty dat, otazkou je, jaky typ aplikace v realnem provozu vyuzije sqlite pracujici s gigabytem dat. Obavam se, ze takovych moc nebude. Rozhodne pro testy v prubehu vyvoje ci male aplikace, kde se pouzije jako embedded databaze to je super reseni. Ale tam nejsou ty gigabyty dat..
    2] GWT – je to hezke, ale onehda jsem cetl moc hezke rozebrani na tema: „neni to zase tak ruzove“ – pridavam odkaz:
    http://blog.novoj.net/2007/05/19/neni-ajax-jako-ajax/
    ale co do myslenky je to super, ono ladit javascript sam o sobe jeste nedavno nebylo nic moc.. i kdyz v soucasnosti uz existuji specializovane IDE, unit testing frameworky apod.. situace se zlepsuje 🙂

Leave a Reply