Milan Kryl

Kryl Blog - RSS

Google Developer Day 2008

24. 10. 2008 - 11:09

Celodenní konference vývojářů Google Developer Day 2008 v Praze probíhala v prostorách hotelu Clarion. Sešlo se tu spousta vývojářů, včetně známých a méně známých tváří, které se na internetu pohybují. Článek bude průběžně aktualizován během dne.

Registrace a snídaně

Vše bylo potřeba pořádně uklidit, připravit a přichystat. Hostesky byly neúprosné a příchozí nevpustily dřív než přesně v devět hodin. Po rychlé registraci bylo příjemné dobře posnídat. Zatímco paní šatnářka (samotná na celý dav vývojářů) měla plné ruce práce.

Zahájení programu Google Developer Day 2008

Kateřina Holcmanová přivítala všechny příchozí a popřála příjemnou konferenci. Mezitím všechny vývojáře rozcvičila - nechala nás postavit a vypnout mobilní telefony :-) Pak slovo převzal Jan Šedivý, všem vývojářům nabídl otevřenou náruč a požádal je, aby byli při jednotlivých přednáškách aktivní a v případě nejasností, dotazů nebo problémů s prezentovanou technologií nezůstali mlčet.

Nelson Mattos se pustil do rozsáhlejší přednášky nazvané Client, cloud and connectivity. Představil kroky Google, který se snaží o zpřístupnění technologie datacenter pro všechny vývojáře. Je možné využít jak architektury na backendu (Google App Engine), stejně tak i na frontendu (Google Chrome).

Google Chrome ukázal Mads Sig Ager, který je inženýrem Google v dánském Google. Ukázal několik výhod prohlížeče z pohledu uživatele. Google Gears byl dalším produktem, který se dočkal stručného představení. Včetně novinek verze 0.4. Hlavní novinkou je možnost lokalizace uživatele (pokud to uživatel povolí).

Vladimír Třebický v krátké demonstraci ukázel možnost vytvořit vyhledávací pole na stránky. Hledaní upravil na české a přidal vyhledávání ve videu a obrázcích. Jako pokročilejší demonstraci ukázal mapu cen piva v Praze z Nelso.com, spojení YouTube API s Google Maps API (kdy je probíhající závod zobrazován na mapě). A uživatelské HD video - kdy je soubor rozdělen po čtvrtinách, nahrán na YouTube a přehráván ve 4 přehrávačích vedle sebe.

Android jako otevřená platforma pro mobilní telefony (Mobile Software Stack) byla zmíněna témeř na závěr prezentace. Andrew Bowers produktový manažer Google Web Toolkitu představil spojení Javy a vysoce optimalizovaného kompilovaného JavaScriptu kompatibilního napříč webovými prohlížeči.

OpenSocial je soubor API, které se již dotýká 300 milionů uživatelů na internetu. V tomto týdnu představí podporu OpenSocial i český Seznam.cz.

OpenSocial and The Social Web

Kevin Marks: Mladší generace bere internet jako vzduch, který potřebují k životu. Sociální sítě si můžete představit jako mapu světa. Každá sociální síť jako jeden oddělený stát. Emaily jsou používané dětmi hlavně pro komunikaci se staršími. Velkým problémem je registrace vyplňování formulářů. Buď uživatele odradíte, nebo je donutíte lhát (ZIP Code -90210 vs. 12345).

Data, Aktivity, Přátelé - to jsou klíčové údaje, které OpenSocial obsahuje. Jméno, UID, fotografie a adresa profilu jsou základní informace o každé osobě. Aktivity zahrnují akce, které uživatel v aplikaci provádí. A přátelé jsou další uživatelé připojení do OpenSocial svázáni vazbou.

Chris Chabot: HTML, JavaScript a CSS - to stačí pro vytvoření OpenSocial aplikace. Kromě získání základních informací o uživatelích je možné modifikovat ukládané informace pro potřeby konkrétního serveru (např. hi5 nebo MySpace). Pro velmi velké zátěže až 200 000 požadavků za vteřinu je možné použít cache proxy, která data servíruje mnohem rychleji. 90% času se stejně stráví na straně prohlížeče, proto je dobré posílat hlavičky cachování, několik HTTP požadavků slučovat do jednoho (spojení obrázků a pozicování přes CSS, sloučení CSS souborů, apod.).

Shindig - cesta jak se stat poskytovatelem kontejneru. Je možné rozběhnout během pěti minut. Nicméně s podporou škálování, cachování a celkového nasazení většinou trvá 2 - 3 měsíce. Implementace je možná v Javě nebo PHP. Případně je možné domluvit i výjimku, kdy je poskytováno rozraní formou RPC.

What's New in Geo?

Jean-Laurent Wotton a Russel Middleton: KLM soubor je malá databáze lokalizovaných objektů na mapě. Je to XML soubor, který je možné zobrazit pouhým zadáním do vyhledávacího pole maps.google.com, přidat jako vrstvu do mapy vkládané do stránky, zobrazit v mobilním telefonu na mapě nebo zobrazit v Google Earth. Velmi pěkná demonstrace bylo zobrazení všech cca 30 tisíc satelitů okolo Země.

Nově je k dispozici Static Maps API. Vhodné převážně pro mobilní zařízení nebo vkládání mapy, která je statická a neinteraguje s uživatelem. Nicméně i statickou mapu je možné spojit s JavaScriptem. Detekce lokality - stačí použít AJAX API a zjistit, jestli je nadefinovaná proměnná ClientLocation.

V rozhraní Google Maps je možné použít i vlastní obrazové vrstvy. Demonstrace je možné najít na webu MapLib, stejně tak tu můžete vytvořit vlastní modifikované mapy a následně je vložit do svých stránek.

V případě použití map ve Flashi je možné použít Google Maps API for Flash. Mapu je možné bezproblémově vložit do Flashe a využít dalších funkcí, které JavaScript neumožňuje (lepší animace, vektorová grafika, lepší streamování binárních dat v reálném čase).

Nyní je možné v API použít i data ze služby Panoramio nebo informace z Wikipedie. Stačí přidat jednu řádku JavaScriptu do vytvářeného kódu. Se Street View API je možné přistupovat k databázi panoramat nafocených v různých městech. Minulý týden byla uvolněna obrázková databáze Francie a není tajemství, že další místa budou postupně následovat. Velmi efektní byla demonstrace plánovače kombinovaná se Street View. Na každé odbočce bylo možné prozkoumat místo odbočení.

V letošním roce byl uvolněn Google Earth plugin, ke kterému je možné přistupovat přes Google Earth API. Není potřeba stahovat velkou aplikaci Google Earth, ale základní funkčnost je dostupná přímo v internetovém prohlížeči. Jedním z pěkných příkladů je možnost řídit náklaďák na Google Earth mapě. Plugin Google Earth je možné detekovat v prohlížeči a v případě, že uživatel nemá podporu, je možné nabídnout alternativu v podobě 2D varianty.

From Mashups to Mapplets

Jaroslav Bengl: Mashup - cokoliv co vzniká kombinací z několika zdrojů. Všechny vrstvy, které se vytvoří na Google Maps a povolí se veřejně, tak jsou následně zaindexovány Googlem a zobrazeny ve výsledcích vyhledávání. Uživatelská data jsou zobrazena, až pokud se nenajde nic v klasické databázi dat. Ve výsledcích se zobrazují jako modře obarvené body.

Ve vyhledávání na mapách je možné vyhledávat v klasickém internetu a výsledky si zobrazit v mapě. Stačí v Možnostech vyhledávání zvolit Mapované webové stránky a zadat dotaz.

Mapplet je XML soubor, který má kromě dat definovanou i další funkcionalitu. Například server BezRealitky má na Google Mapplet. Je možné jej vytvořit multijazyčně (podobně jako Google Gadgety). Jde vlastně o takový Google Gadget pro Google Mapy.

Build your YouTube

Jean-Laurent Wotton, Nicola Ferioli: Videohosting je náročný, dlouho trvá než si vytvoříte dostatečný video obsah. Proto můžete zvolit snazší cestu a použít YouTube Data API. Nejde sice o white label hosting, ale malé logo YouTube ve vloženém videu nemusí vadit.

Komunikace je založená na AtomPub. API je rozděleno na různé skupiny podle použití, API týkající se videa a API týkající se uživatelů.

Vyhledávání videa je možné omezit dle kategorie, změnit řazení nebo omezit výsledky na jeden jazyk nebo formát. Ve verzi 2 je možné omezit vyhledávání podle lokality (místo a vzdálenost od tohoto místa). Je možné stahovat videa, která jsou nejvíce zobrazovaná, omezit podle lokality, uživatelská videa nebo uživatelské playlisty. Každý feed je možné zobrazovat různým způsobem: projekce api, base a mobile (pro mobilní zařízení s menším datovým přenosem).

Pro operace zápisu je potřeba se ke službě přihlásit. Pak je možné přes API zapisovat informace (AuthSub nebo ClientLogin). Následně je možné POST požadavky zapisovat podobné akce, jako přes samotnou službu YouTube (hodnocení, komentáře, sledování kanálů, ...).

Každý vývojář se musí zaregistrovat. Získá 2 klíče (jeden svůj a jeden k aplikaci, která bude YouTube používat). Následně je může používat pro operace s YouTube API. Pokud programujete v některém z následujících jazyků: Java, PHP, .NET (C#), Python je možné použít knihovny pro komunikaci s YouTube.

Kromě přístupu k datům je možné modifikovat zobrazení videa a playeru. Je možné změnit barvy, skrýt menu souvisejících videí, nastavit start z jiného místa než od začátku, povolit nekonečné opakování.

Kromě přístupu k datům je možné modifikovat zobrazení videa a playeru. Je možné změnit barvy, skrýt menu souvisejících videí, nastavit start z jiného místa než od začátku, povolit nekonečné opakování. Je možné použít dokonce přehrávač bez ovládacích prvků (Chromeless Player) a to buď přímo v ActionScriptu nebo v JavaScriptu. Příklady najdete na Google Code.

Building Scalable Web Apps with Google App Engine

Jon McAlister: Nechte pracovat backend za vás. Neprovádějte náročné dotazy několikrát - používejte memcache (vhodné pro homepage Digg a podobné). Používejte efektivní úložiště - entity (BigTable). BigTable umí velmi efektivně následující operace: získat data podle klíče, získat řádky v nějakém intervalu a získat řádku s nějakým prefixem.

Skupina entit (Entity Group) je pro ukládání dat, která jsou blízko sebe - například data jednoho uživatele. Skupina entit je základní transakční jednotka. V entitách je definovaná hierarchie. Rodič může být jiného druhu než potomek. Jedna hierarchie patří do jedné skupiny entit.

Je potřeba navrhnout data podle vzorku jejich používání. Nicméně je možné definovat neomezený počet skupin entit a do každé se může nezávisle zapisovat.

Příkladem může být distribuované počítadlo. Použití Model.count() je špatné - BigTable není navrženo tak aby podporovalo funkci count. Ani jedna entita počítadla není správný postup. Bude docházet k častým aktualizacím. Správnou cestou je definice N skupin entit se sdílenými počítadly. Každá bude používané pro započítání počtu a při započítávání budeme vybírat náhodně některou z nich a v transakci ji zvýšíme o jedničku. Při čtení je potřeba sečíst všechny počítadla dohromady, pro lepší rychlost čtení jednotlivých počítadel je vhodné použít memcache.

Závěrečné vyhodnocení

Poslední přednášku trošku protáhl polský přednášející. Proto se slibované občerstvení servírovalo ještě před samotným závěrem. Ale účastníky se nakonec podařilo úspěšně nahnat do přednáškové místnosti Zenit a celou akci vyhodnotit. Nakonec si pochvalovali i všichni přednášející, takovou účast nepamatují v jiném evropském městě. Příští rok se tedy můžete těšit na další pokračování Google Developer Day - včetně většiny zpracovaných připomínek.

 

Tip: Krátké zprávy a zajímavosti (rychlý přístup https://kryl.info/kratce)

Související