From the category archives:

Live Blogging

contextualgooglegadgetsBuilding context-aware extensions for Gmail - Deep dive on Gmail contextual gadgets

Enterprise - Dan Holevoet

How much time do your users spend in email everyday? Wouldn’t it be nice if you could seamlessly integrate your apps into the rich context offered by their email and allow them to avoid shifting to new applications for various tasks? Gmail contextual gadgets allow you to register regular expressions and insert gadgets into e-mail messages based on their content. In this session, you’ll learn how to create and distribute these powerful gadgets.

Session type: 201
Attendee requirements: Basic familiarity with gadgets and/or HTML/JS.
Tags: Enterprise, Google Apps, Gadgets, Gmail, ISV, SaaS
Hashtag: #enterprise9

Date: Thursday May 20
Time: 4:45pm-5:45pm
Room: 4

Why contextual gadgets?

  • Who uses google apps and gmail?
  • How much time are you in gmail?
  • Often you get questoins, go into another tab, go to another document, etc.
  • Lots of steps and they are incourage you to leave your inbox
  • Leaving inbox takes time, context switch, unproductive
  • Contextual gadgets allows you to stay in your inbox and get things done
  • Match on fields like To, From, Subject, Links, Images, etc.
  • Based on matches they trigger a gadget to appear
  • This context gets passed to the gadget to do something useful

What makes up a contextual gadget?

  • Extractor, Filter, Matches, Decision, Action
  • The gadget, one or more extractors, Associated descriptions in the application manifest file (gadgets have these three things)
  • What makes a contextual gadget? CML, HTML and JavaScript
  • Extractors are essentially pearl compatible regular expressions … two variables: pre-canned by google, the second kind are the customer extractors (coming soon!)
  • Custom takes or and makes them and …
  • If you want to test custom extractors I’ll see if I can hook you up…
  • Limiting pre-canned extractors … filtered to apply only on a subset of emails …
  • Application manifest describes the components of the contextual gadgets
    • Extractors, filters, gadgets to trigger, scopes for data access…

Version:1.0 StartHTML:0000000167 EndHTML:0000003757 StartFragment:0000000457 EndFragment:0000003741

Best Practices

Using Extractors

  • use pre-canned if possible
  • Select the smallest necessary scope when matching data (road blocks to be added by domain manager)
  • Match on as few emails as possible

Writing your gadget UI

  • If nothing to show, handle it gracefully
  • Provide an option to expand or collapse your gadget ui, and remember the user’s preference
  • Use gadgets.window.adjustHeight() to return unused space back to the user

Fetching Data

  • get or post
  • container proxies request to remote server (any site on the web)
  • Server receives requested data
  • Gadget gets the data

Authenticate

Caja*

*will be using Caja in the future

provides white list of safe javascript operations that can be used by untrusted applications …

TicTrac application demo

  • Incoming messages are filtered by the recipient list
  • The sender and time sent are extracted
  • These fields ar sent to a google ap engine to pull out info about the thread
  • writing rpc gagets for app enginen, good artcle on google site …

{ 0 comments }

Surf the stream: Google Buzz, location, and social gaming

Social Web - Bob Aman, Timothy Jordan

Google Buzz has a feature-rich API that allows you to do all kinds of interesting things with conversations and location. In this session we’ll build a Buzz-tastic mobile game using App Engine, HTML5, and the Buzz API for social awesomeness.

Session type: 201
Attendee requirements: Knowledge of Python, the web and a good spirited nature.
Tags: Buzz, Social, mobile, HTML5, App Engine
Hashtag: #buzzbingo

Date: Thursday May 20
Time: 11:30am-12:30pm
Room: 1

Wave

https://wave.google.com/wave/#restored:wave:googlewave.com!w%252Bo01RhLZkBJ6

Intro…

A few demoes like Boxee …

Buzz Bing Game …

  • Did a Buzz post, with link to article with a key word, added a @buzzbinger or something like that…
  • The board square with that buzz word would be marked off using api’s (that see’s the post, follows the link, finds the keywords, and marks off the square)

All code for this is written in python on AppEngine:

Buzz Bingo to Buzz API to Buzz to User to Buzz Bingo

Play it

  • Sign-in and auth for Buzz
  • Generate the board
  • User joins conversations (pulls in consumption feeds for the user)
  • Board marked
  • Bingo!

Glue: Oauth, Salmon, Pubhubsubbub, ActivityStreams …

< add architect image >

{ 0 comments }

Google I/O 2010 Thurs Keynote (Live Blogging)

by walter.roth on May 20, 2010

Google IO 2010 Thurs Notesgoogletvintrogoogleio2010

Day II

Day II Keynote

Vic opens up

Why does the world need another mobile OS?

If you believe in open, choice and innovation.

Let’s look at some momentum…

Over 100k activations a day for Smart Phones …

Tremendous in under 18 months …

Over 50k apps, 180k+ developers …

Over 22 demos to show …

5 major areas of investments in the platform (7 releases in 18 months)

Android 2.2 (aka “Froyo:)

  • Speed (Your app writes to the VM, Dalvik is fast, efficient, etc … now JIT compiler with 2-5x faster on same hardware)
  • Enterprise (Heard we need specific features, adding 20, e.g., MSFT friend (auto-discovery, security policies, GAL lookup), admin)
  • SDK (Application data backup API (moves data and application), Cloud to device messaging api (not a push notification making up for the lack of multiprocessing in the OS)…message can trigger an android intent …. demo …. tethering & portable hotspots….)
    • Google maps on pc, sends to phone map, watch android device, loads right into navigation ….”that’s how you do a cloud to device api…”
    • Reading an article on tehcrunch, send to device, opens up browser at that webpage
  • Browser (1. Use phone, 2. Text messaging … third main they do is use the browser…added 2-3x javascript performance based on V8)
    • Demo’ing on 3 devices, Froyo, Eclair and iPad … swim race of Android…
    • World’s fastest mobile browser
  • HTML 5, and Beyond (working with open standards, to access things on the device that normally could only be done natively)
    • Sneak peak of where we are going next …
    • Last year introduced geolocation from the browser …
    • Want to do more, what about the accelerometer, tilter, direction of device … moves phone and google maps in browser moves accordingly
    • Key feature devs want is access to the camera in the browser (building those api’s into the browser)
    • Seeing a lot of search on the mobile phone, with a lot of them being voice … demo’d it … with Obama and French President at G8, Golden Gate bridge at Sunset
    • Will do, Call 5th Floor Restaurant, since he said “Call” which is an intent, it loads it into the
    • Showed Google translate, added voice in and then it gives voice out
    • Also announcing support for Flash Player and AIR (We are committed to having the fastest and most comprehensive browser …. its turns out that people on the internet use flash … to be open you must be inclusive …)

Version:1.0 StartHTML:0000000167 EndHTML:0000004387 StartFragment:0000000457 EndFragment:0000004371

  • Market
    • Made improvements to the marketplace
    • Find apps more easily, search inside apps, move apps to SD card, update all and auto-updates
    • People add on average 40 apps …
    • Demo: searching apps “Search Apps” … simple and easy way to find apps
    • Can search within the data of an app, we think developers will be innovating on this in many ways
    • Allows users to report errors, developers can see bugs and see listed the entire stack trace …
    • What’s next? Sneak Peak
      • Available on browser in PC
      • Signed in to tells you what apps he owns
      • Adding apps, you click buy and it automatically gets downloaded to the device via the Internet (referenced indirectly itunes where you have to tether the device)
      • Same with buying music, automatically gets sent to the device over the air
      • Acquired simplified media … access to all mp3’s remotely that is legal
      • “All music” is all available … your music from your home device available to your device as a feed …
  • Advertising
    • We know a little about this
    • Turns out…
    • 10 years of ad experience
    • We have inventory, we are not charging people to be members, you have an ad, we have inventory
    • Flexible formats (different types of advertisers … you need formats that meets each type of advertiser)
    • Third things we learned, advertising needs to be measured, and you need tools for this
    • It turns out we have some tools you may have heard about
    • Open to innovation (pony’s on slides, open to the deisgner as example ;-)
    • Demo: backgrounds apps … adsense for mobile apps … Links, link to buy app, link with banner … Expandable ad format (new today) … as users want to stay in the context of where they are … after done looking at it, can slide right back to where they are … Expandable add format, which includes rich media, like a tailor … another ad format … “click to call” ad … leverage the user’s location, direct TV wants to make a special offer to SF people, with a click to call to order that … another one includes a map, directions and click to call … DoubleClick is open to server any ads, you as the developer and publisher have the choice … google.com/mobileads to find more …
    • Today: opening up the new adformats to all attendees
    • We’ll give you $100 free credits to advertise your apps in the Android marketplace
  • Sprint HTC EVO 4G highlight
    • Gorgeious large sreen
    • fast
    • sprint 4G networks
    • Going to make it available to all of you today …
    • I think you are going to love that device … don’t run out to get it now …

Version:1.0 StartHTML:0000000167 EndHTML:0000004739 StartFragment:0000000457 EndFragment:0000004723Introduced another Googler to discuss GoogleTV….

Introducing GoogleTV

  • Ave 5 hours per day
  • $70B per year spent on TV advertising
  • 4B TV users world wide

Why is it so popular?

  • It just works
  • Don’t have to think about it too much
  • Has stayed the same
  • Other technologies can’t do this

But …

  • Increasingly, more and more of my viewing of video is done on my pc or mobile phone
  • The web is driving that
  • Up till today, there is limited web on your living room TV
  • Two worlds (The Web / Your TV)
  • Users adjust, but they do unnatural things to adjust (family huddled around small pc in the living room)
  • Video should be consumed on the biggest, brightest and best

3 Major limitations of current technology trying to do this

  1. Trying to dumb down the web (end up recreating the web, wap all over again, learned from mobile that it doesn’t scale)
  2. All closed (Closed does not work anymore, once a users experiences the freedom of going anywhere on the web, there is no going back)
  3. Input button (They all make you chose and click either TV or WEB)
  • Requires you to take the best of both worlds and make it a single expeirence
  • How do you make TV and the Web better
  • TV Meets Web. Web Meets TV.

4 Ways we’ll innovate to remember

  1. Less time finding more time watching
  2. Control and personalize what you watch
  3. Make your TV content more interesting
  4. More than ust a TV

Vincent starts demo …

  • GoogleTV starts with TV
  • Users spend 4-5 hours in front of this device, you can’t take away form that, you can only add…
  • To watch a show, you go to The Guide … its good unless you have a lot of channels
  • What if we rethought navigation for TV
  • Use the web navigation
  • A search box
  • Do you remember the first time you use Google? The feeling of empowerment?
  • SEARCH BOX, takes you where you want to go across TV and the WEB
  • Instant access to all my favorite channels
  • How about a show
  • 30 Rock search
  • This time it also shows a future result, and you can click button to record it in the future
  • You have instant access to all TV content
  • Funny issues with connectivity
  • And funny content shows up on stage …

Version:1.0 StartHTML:0000000167 EndHTML:0000006828 StartFragment:0000000457 EndFragment:0000006812

  • Interface to let people have a single experience across free and paid content
  • People just want a quick and easy access tool
  • Suggestions on content based on things like NetFlix, we can bring other’s apps and data into this
  • Not contained by searching for channels … searching content
  • Can be from web or TV
  • You are in control
  • None of these sites had to do anything specific, its already there on the web
  • We make it available to your high def TV
  • We’ve given you now millions of channels
  • All enabled by the search box
  • We put you in control of your content on your TV
  • Watching Sports
  • I want to watch and do other things like fantasy sports, etc
  • Can search box score, can go anywhere while you are watching the game
  • As you watch the game, you can track whats going on with the game itself
  • This is a pretty simple feature
  • But this has totally transformed how I watch sports
  • I can watch a football game and track my fantasy sports
  • I can watch idol and see what people are saying on twitter on it
  • Think what it can do with advertisers
  • Every TV now has the potential to be interactive
  • We’ve just talked about Video
  • But there is other things happening in your living room
  • Games, music, photos,e tc.
  • Home .. Bookmarks … lots of content bookmarked ahead of time … websites, channels, other cool things too, that you can do in the web, like Flickr …
  • Your best photo viewer is your georgeous 50 inch screen in your living room
  • Now with access to any online album, my TV has just become the best photo viewer
  • The web is unlimited, now your TV is unlimited
  • Specs
    • Broadband Connection … Wifi and Internet built in
    • Easy Integration…HDMI cable to existing cable box
    • Plenty processing power
    • Input devices … paired with Android phones over wifi (or keyboards, mouse, etc) .. now you can speak to your tv. “Good morning america” … search results …
  • Can share channels/content from phone to TV, shows Conan O’Brien and Vic G doing a funny dance
  • Will publish this IP protocol so you can develop on any device to enhance the GoogleTV experience
  • 3 components to stack of GoogleTV
    • Build on Android (over the air updates included)
    • Google Chrome Browser (“we choose the fastest)
    • Flash 10.1 pluggin
  • One of the benefits of building on Android and Chrome … you can use Android apps on TV
  • With quick search, you can also navigate to favorite apps, type market, then see mobile version of Market working on GoogleTV … it works out of the box … if your app doesn’t require device specific resources, it will work on GoogleTV.
  • Installs Pandora mobile app on GoogleTV
  • We can run all web applications, and also all mobile applicatoins
  • You can push applications to your GoogleTV
  • Brittany Bohnet (GoogleTV team) demo
    • Also push apps to other android devices (like pc to cloud to android showed earlier)
    • On PC, checkign out the Twitter application, sent to GoogleTV
    • Not only users have one experience, now developers have more devices their apps can run
    • A few things to work out first …
  • Another Googler to do a demo for developers (heads up)
    • How to enhance for websites and googleTV
    • Will give you api’s to navigate tv content
    • Direction search to channel, to show or website etc from your application
    • Hunter Walk Director of YouTube demo’s now…
      • Brings the interactive of the web to the TV
      • New Channel on Youtube: Leanback
      • Just starts playing, behaves what you’d expect a tv to behave
      • Whats it playing? A chanel for you
      • Here, a friend favorited a video, it gets pushed to my channel
      • Also, we figure out what you like, we turned your preferences to channels for you
      • “MyFeed” My rentals … In Theaers, etc…
      • Youtube leanback, allows you to access your own personal VideoFeed ….
      • Launching a beta of this

Version:1.0 StartHTML:0000000167 EndHTML:0000004025 StartFragment:0000000487 EndFragment:0000004009

  • Demo for NBA.com
  • Allows all subscriptions to feeds to be synced across all devices
  • Search tedtalks, get googleTV search results plus more results, can search within Listen apps, its …
  • Take closed caption on TV, combined that feed with google Translate, and now you get sub titles of whatever you want … with just a few key strokes …
  • We are bringing innovation to the Living room
    • GoogleTV is an open platform, it is you who matters (you are the most important part of it)

Sign up for GoogleTV.com

Partners and Timelinesgoogleiopartnerceobestbuysonylogitechinteletc

  • Create a new catogory of devices that are open to everyone …
  • Your tv has just gotten a lot smarter … our goal is to make the TV smarter just like smart phones did to phones
  • We need partners:
  • GoogleTV platform will be opened sourced into the Android and Google Chrome source code
  • How is this coming to market?
  • In a big way
  • We are partnering with the biggest electronic brands
  • Delivering three googleTV devices
  • Sony
  • Logitec
  • Intel
  • Fall 2010 launch
  • Also partnered with DishNetwork
  • And BestBuy
  • For developers?
    • Today you can enhance your devices for the TV marketplace
    • Early 2011 Market, etc
  • Eric Schmit is introduced to talk vision et alceosindevelopersgotogetphone
    • 20 years ago, I sat here and listend to getting your TV guide on your TV
    • 10 years ago, heard people talk about using TV to communicate
    • We’ve been waiting as a lot has had to happen
      • The internet
      • Winning of Open source
      • Platforms
      • Faster processors
      • etc.
    • It also needed partners to make this happened
    • Introduce CEO of Intel
    • CEO of Sony
    • CEO of Logitech
    • CEO of The DishNetwork
    • CEO of BESTBUY
    • CEO of Adobe

(Developers started to get up one by one as the CEO’s were talking heads on stage … so they could pick up their new phones …)

Additional Coverage:

{ 0 comments }

Building Real-Time Apps with PubSubHubbub (e.g., hubbub)

Brett Slatkin (Google) on Google App Engine Team (one of the innovators of this)

notes: tinyurl.com/push-io2010

onbigfluke.com to follow him

Agenda:

Intro, publishing, subscribing, hubs, special guests, progress & adoptions, future work….

  • What is is? Turns RSS and Atom feeds into real-time streams .. a single api for web scale, low latency messaging. Publisher, Subscriber and Hub.
  • Design Goals: decentralized (no one in control), scale to the size of the whole web, publishing and subscribing as easy as possible, push any complexity towards the hug, Pragmatic (i.e., not theoretically perfect, but solve huge, known use cases with minimal effort)
  • Demo (Brett’s test blog)
  • Friend Feed, Google Reader, Blogger, Buzz, cliqset
  • Post a feed in blogger, each service that is hubsub enabled … each ones updates!!!! Very quick.
  • Real Time Web technologies
  • Many vendors are publishers and subscribers
  • Why another protocol?
  • Almost every company already has their own internal system: TIBCO, webshpheremq, ActiveMQ, etc. Proprietary message payloads, topics, networks
  • Existing attempts at a standard haven’t caught on. Xmpp started in 1999, still isn’t used for interop widely beyound IM (may change with onesocialweb.org)….Overkill”: xep, WS, AMQP, RestMS, new REST-*
  • There is a reason why many of these didn’t caught on …
  • How to for publishers….its so easy you can do it from a bookmarklet…
  • Publishers best practices
    • Use URLS for server-side filtering
    • Use URLS for authorization (can give urls that only work for them, google reader will only let them read the urls)
  • How to for subscribers … showed code …. (can get only new items or changed items)
  • The role of a Hub (accepts, receives, extracts, send Dos protections). Also logical component. Publishers may be their own hug. Combined hub/publisher has p2p speed up. Quality re: scalability and reliability.
  • Julian from SuperFeedr
    • Default hug (works with any feed)
    • Hosted hubs
    • PubSubHubbub + Benefits
  • Default Hub
    • started last year, doing feed polling on behalf of other people
    • avoid polling (smart scheduling, protocol mapping: rsscloud, sup, xml-rpc ping …)
    • push to subscribers (xmpp too)
    • schema mapping (we do the hard work in mapping everything into the same format)
    • Use Cases
      • iPhone notification: urban airship, boxcar
      • Feed reader: webwag, feedingo
      • Desktop notificaiton: adobe Wave
      • Semantic Search: guzzle.it, Twingly!
      • Social Web: SixApart (social apps that want to aggregate social data from all the social services … we fetch all the data for them)
  • Hosted Hubs
    • Don’t reinvent the wheel
    • Don’t run/maintain/debug the wheel
    • Your hug, your data
    • Analytics, callbacks and more
  • References: tumblr, ping.fm, etc.
  • Schema Mapping
    • Tons of different formats: RSS X, Atom Y
    • Tons of different namespaces: Digg vs. Mix vs. Yahoo Buzz. Same semantics
    • Tons of invalid stuff (missing tags, data, unique id…)
    • Location: Geo-RSS
    • Social: ActivityStreams
  • Extensions
    • Digest notifications (heartbeat + Digest)
    • Feed status (querying superfeedr)
    • Subscription callback
    • Virtual feeds (e.g., subscribe to a Craigslist feed, we’ll combined feeds from different sources)
  • Infrastructure (70k feeds a second, lots of cacheing for diff’s)
    • We are botnet!
    • Independent XMPP workers with their own lifecycle
    • Massive “ring” for scheduling
    • Clustered cache for diff-ing
  • A few numbers
    • contnet pshed to 1.8M endpoints
    • 20M+ of atom entries pushed daily
    • around 50 hosted hubs
    • 45 “dispatchers”
    • 80 parsers
    • 50 servers
  • Growth … hocky stick .. about 3M by end of june
  • @julien51 on twitter

Back to Brett

  • Adoption
  • Over 100M feeds are enabled
  • Companies, Superfeedr, Google, SixApart, LiveJournal, Myspace,, Twitterfeed, netvibes, cliqset, gnip, postrank, etc.
  • Google products, Buzz, Feedburner, blogger, reader shared items, google alerts, fastflip, …
  • Fun numbers from the reference Hub
    • 200+ feed fetches per second (peak av)
    • 250+ items delivered per second
      • includes item updates
    • 70 million active subscribers
    • 1.2 billion items seen since July 2009
  • (pubsubhubbub.googlecode.com)
    • Publisher clients in many languages, including c# (active mailing list)
    • More publishers, subscribers, hubs on the way …
  • Future Work
  • Arbitrary content types (JSON, HTML, XML)
    • Microformats folks want HTML push-io2010 (more focus on human presentation)
    • Google wants XML Sitemaps updates
    • Plan on build on LRDD web linking
    • Facebook uses ½ PuSH for their new API’s (ActivityStreams want this too)

In Progress

  • Private Feeds
  • Fully encrypted, authorized, authenticated
  • Integration with Oauth, webfinger
  • Apply business policies (to enforce business model)
  • Per-item privacy control (e.g., need to enforce plausible deniability, how to do that .. if you don’t have access to the item, you don’t even know that it exist .. each subscriber will have a unique url that the subscriber subscribes to, and the hub will send the items, and it understands who you are, and only sends things you have permissions to … so it puts the difficult parts in the HUB which is a part of the design principles, etc. Working on scale now and the actual design, etc. Hope is to have fully authetnicated feeds, getting fully authenticated and private in a decentralized center….join the mailing list if you are interested in that …)

Good reads:

Ostatus.org

code.google.com/apis/buzz

Facebook real-time AP

developers.facebook.com/docs/api/realtime

{ 0 comments }

Bridging the islands: Building fluid social experiences across websites

Social Web - John Panzer, Joseph Smarr

As more sites add social functionality, profiles, friends, and conversations are becoming increasingly fragmented and redundant. But an emerging collection of open technologies aim to help bridge these social islands, allowing users to seamlessly move between sites, bring their friends along, and have unified conversations that span multiple web sites. Come learn how OpenID, OAuth, Portable Contacts, ActivityStrea.ms, and Salmon can help you connect your site to the rest of the Social Web, increasing your traffic, engagement, and relevance to your users.

Session type: 201
Tags: OpenID, OAuth, Portable Contacts, ActivityStrea.ms, Salmon
Hashtag: #islandsio

Date: Wednesday May 19
Time: 3:00pm-4:00pm
Room: 9

Recapping Chris’s story ….

  • “Kate” and “Jack” lived on 2 separate islands….
  • Vacationed on same island (shows map of social media)
  • Met and fell in love
  • Had to leave old friends on their own islands
  • Its really hard to visit other islands (when people try, they get stopped by the island guards)
  • You have to fill out lots of forms before you get onto the islands (registration pages)
  • Some islands get together to let islands move together (good for big islands, but not the smaller islands)
  • So, some young islanders, geeks, came up with a solution that works for all island and everybody all the time
  • WE all have an immigration problem on the social web
  • Separate accounts, passwords, etc for each website
  • Friction every time you sign up for a new services
  • Lots of profiles that are out of date, cause too hard to change one by one
  • Also poor security, when you reuse username and passwords
  • Interactions are biased towards working with a few big services, so you don’t give your users a lot of choice
  • Bad for developers and bad for users
  • Good news, you can now let users sign up for a new services using their eisting accounts!
    • Solves two related problem who is this user, what data do they already have, supported by most major services today (increasingly based on open standards like openID and Oauth)
  • How can we find out what services a user uses?
  • Right now sites have lots of buttons for each type of account (e.g., Facebook, Twitter, etc)
  • Clues, you can look at their email address, if its a gmail, you can offer google onboarding, etc.
  • Better, you can use Webfinger where you can basically look up a person by their email address and the service will list all the services the user has
  • Also, Xauth, where the browser tells you information, gives hint, like, someone on this computer is using Google, you might want to offer them google onboarding, etc.
  • Demo
    • Gets email link to Plaxo
    • It goes there, since its from gmail, it offers onboarding with Gmail
    • Offers to grab info from gmail to get started (i.e., contacts)
  • Xauth … even if doesn’t come from Gmail … xauth tells the page what service you use and if you are logged in … meebo demo.
  • Xauth.org is where you can go to check what your browser is saying
  • How do you build this?
  • Doing the dance
    • browser redirect / popup to get user’s cconsent on the other site
    • Response contains user identifier and access tokens
  • Store external identifiers linked to local use accountingStore access tokens with user to fetch external data
  • With xauth there is a simple JavaScript site to add
  • Back to the story … once the islanders set this up, they has a “passport system”
  • Brings us to Chapter 2: Staying Connected
  • At their own islands they were Jack and Kate.
  • But on other islands, they needed a forwarding type system to get contact when not in their home island
  • We need forwarding addresses on the social web as well …
  • Increasingly you know people ways that are not email addresses (e.g., by twitter address)
  • Also, you may want to control how you can be found
  • Also, information in these websites seem to stay in these websites
  • Fragmented messaging systems and social “inboxes” … and too hard to control how others contact you
  • Bad for users and developers
  • Good news
  • You can let users link their profiles together and bring their friends with them!
  • Make it easy for users to control how “findable” they are (let them link to their other profiles like rel=me, Social Graph API (Google crawls and gives you all of these so you don’t have to crawl); Look up their preferred services on other sites using webfinger; let them pull in their existing contacts / friends-lists via API’s)
  • Supported by most major services
    • Micoformats, portable contacts, opensocial, etc. (open standards)
  • What if users want to keep separate profiles / friends? That’s find, let them control their “discoverable identifies” Can use existing friends as suggestions, or auto-follow/friend…same goes for sharing content to/from users’ other sites
  • Plumbing Demo
  • Joseph Smarr’s google profile
  • Shows his profiles linked to
  • Its found different links from each of those profiles
  • The full set of public websites he felt comfortable supporting
  • Webfinger … email based, spilts out the following services … spilts out machine readable info of publically published data … JSON and XML
  • Very quickly this gives you a rich tapestry of information about a user
  • All using open standards
  • Mechanical advice for this?
  • Let users claim and verify multiple email addresses, urls, and accoutn profiles …. use Social Graph API (FME=1) and webfinder to xpand the list with existing public profile inks on the web … Use contacts using Oauth, etc…. (he talks fast)….
  • All were happy….
  • Chapter 3: Keeping in touch and Sharing
  • To check to see whats going on on other islands, they have to go visit each of them
  • Keep checking, not getting updates in real time
  • At each island, they are doing complicated things, but the language they have is insignificant (i.e., text in bottle, email)
  • They want it to happen automatically, as the natural course of things
  • Solutions…
  • Problem: staying in touch on the social web. Right now its RSS and Polling. Its a problem because its not scalable. The content that gets squeezed into it is turned into text messages, measning gets squeezed out. Slow, lots of wasted efforts polling, etc. When content does get going, it ends of being silo’d at other islands, and the island that created the content never find out about it.
  • Bad for users, bad for developers, rain cloud….
  • You can share and consume rich activity data in real-time
  • Annotate your feeds with rich, glorious metadata (activitstrea.ms)
  • Seperate verbs and objects for links, photos, reviews, etc.
  • Better “echo cancellation” for re-synidcating content
  • Ping a hub with updates and subscribe to streams PubSubHaubbub
  • Make users activites and replies “swim upstream” Salmon
  • Quick Demo
  • www.cliqset.com
  • (and Status.net is the other one that has implemented this)
  • Its a microblogging site where you can write messages and mention other people
  • Cool mouse over that webfinger helps generate without cliqset knowing of it
  • Links to status.net, you can the messages are there two
  • How did they do it?
  • Providing Webfinger as starting point
  • Using email identifiers, or urls, etc.
  • WebFinger demo
  • How did I find Kate … put in her email address, generates all the machien readable data that is public for her … one of them is her Salmon replies because she wants to know when people are talking about her … also published a “public key” for…
  • Links and types are listed, you can include a lot or a little depending on how private you are …
  • Producing activities … add verb and activity types … and use Cliqset’ “feed proxy” for many pre-AS feeds … map to existing verbs where possible, can augment with site-specfic verbs too … keep unstructured content as well for compatibility … use web finger … a few other things I missed …..
  • Consuming activities … map it to your gui … prive rich ux baed on known semantics … display activty geneerator for attribution ….etc.
  • Going rel-time: PubSubHubbub
    • So when that video is shared out, they can get it right away
    • ad <link rel=’hub’> to the feeds you produce …
    • POST a ping to yoru chose hub on changes
    • Run your own hug, or use an existing gone
    • missed a few things
  • Being a Salmon Stream
    • For comments, add a <link rel=’salmon’> in feeds your produce
    • point at a salmon endpoint that accepts POSTS
    • Add a comment when you see a salmon
    • For mentions, similar …
  • Sending Salmon Comments Upsteam
    • Look for link re=”salmon’ I feeds you consume, rember for later
    • When uers comment, POST the comment back to the Salmon endpoints
    • Sign comments via Salmo’s magic signtuare (publich public keys for users via webfinder)
    • Something else
    • Meant for public web for now ….
  • Sending Salmon Mentions
    • When you see a mention, perform Webfinger discovery on the ID
    • If there’s a <rel ’salmon’> link in the XRD, POST the mention there
  • Salmon Activity Demo (helps combat abuse that comes with a distributed service with no central authority)
  • End of story of the islanders.
  • Joseph summary
  • Every story needs a moral
  • Problem visiting each other and traveling to other island (OpenID)
  • Problem staying in touch distribute (WebFinger)
  • Problem sharing rich content in real time (
  • Concluding: using island metaphor a lot
  • Great to have lots of different islands that can link to each other
  • Google supports this, users win
  • Having rich experience across sites, with big and small players getting involved, and how increasingly its done with Open Standards
  • Lots of links here …

Q: As a salmon developer on the email list, when do you think it will be at a point where there will be libraries out there like OpenID, so we don’t have to understand all the details of the protocol …

A: Mentioned a few languages starting to offer this … working to collect them and make them open sourced … we plan on using these for our own deployments … none of these specs are too hard, build them and then open source it…

{ 0 comments }

I had started in The World of List View By Roman Guy and Adam Powell …

Spent more time in the GoogleWave live coverage of the session so I switched …

Changed Rooms to Whats the Hubbub about Google Buzz API’s?

Came in when the Seesmic guy was presenting ….

Experience with the standards (see photo of slides) …

Seesmic Desktop has plugins (e.g., bing, buzz, etc) …

Seesmic Web is the second platform …

  • Twitter list plus Google Buzz timeline
  • See updates, can comment, can pic where to post multiple at a time …

Seesmic for Android client

  • Mobile space is growing like crazy

Ping.fm (update many status across networks including buzz …) … released today …

MING from SocialWok

Integration with Buzz API’s

  • “People call us the Facebook for GoogleDocs ….”
  • Shows Google Profile, and sees Buzz feed …
  • Go to SocialWok, select which services to connect to in Settings … answer in google buzz name … we use WebFinger to get the profile …
  • Nice page shows what access you are getting … click ok … lets SocialWok post out to GoogleBuzz … can choose from multiple accounts …
  • Writes status update in Socialwok, attaches a googledocs, can click on “cc” to also publish to GoogleBuzz …
  • SocialWok also integrates into gmail, Gmails contextual social gadget …
  • Bottom of the email you can see three profiles
  • Will show the social activities between those people, including emails, documents, etc.
  • We can pull in GoogleBuzz update
  • SocialWok working with Open Web
    • PubSubHubbub to pull feeds into Socialwok (buzz, twitter, facebook, and othe RSS/Atom/Activitystre.ms)
    • ActivityStrea.ms format (so does buzz)
    • missed two more (webfinger and a few others)
  • Using Buzz REST API’s
  • 3 legged Oauth for authentication
  • Publish/CC update to buzz
  • Pulling Google profile and buzz feed into gmail contextual gadget (using gemail address and parsing user part….. missed more)
  • Next slide
  • Cool things about Buzz API’s
    • Open standards based (activitystrea.ms, portable contacts, open social based rest urls for endpoints … it didn’t take much effort to integrate with Buzz because of this)
    • Easy to integrate with Socialwok’s previous work (crosspost namespace even stores the original ID of the post! Can refer back to your original update … activitystrea.ms updates re now POSTed without modication….Posting to buzz before the api’s were defined)
  • Future work for Socialwok and Gogle Buzz
    • Rich media using Buzz attachments mechanisms
    • Comment federation using Salmon
    • Federation of Buzz Search results into Socialwok (keyword monitoring)
    • Private Buzz (ACL management … right now we are showing all public … now you can image posting to private Buzz using authenticated Oauth…)
    • Contacts integration (sing Portable Contacts)
    • google-buzz-api

{ 0 comments }

Google I/O 2010 Keynote (Live Blogging)

by walter.roth on May 19, 2010

Google I/O Wednesday

05/19/10

Thurs keynote starts at 8:30 am …

I/O stands for the first thing a developer learns, and also Innovation and Open …

Keynote:

  • The web grown up
  • All other platforms have declined, the Internet continues to double …
  • Its incredibly important
  • 2004 Ajax was introduced
  • People started to not just publish pages but also applications
  • Now, web applications are becoming more powerful thanks to HTML5
  • Web apps need to be able to use resources locally
  • More HTML5, supported by all “modern browsers”
  • Another important trend is Mobile
  • More HTML5 on the Mobile web
  • Gmail Demo
    • Using HTML5 file api’s, drag and drop files into an email as an attachment
    • Using HTML5 notification api’s, get notifications when an email gets in
  • Charles Pritchard (Founder, MugTug)
    • Darkroom app
    • 2004 used html4, image editor online
    • Now using html5, move a lot of that to the desktop
    • Editing offline, using cache (Application Cache, local storage and file reader)
    • Quick to load, quick to close and quick to use … (next generation of apps)
    • Using JavaScript …
  • Jim Lanzone (Ceo, clicker)
    • TVGuide for the web, massive db of premium content (launched a few months ago)
    • See Charlie Rose archives
    • Start typing, get show pages, then hit play (shows video)
    • Joke about Lost, hoping someone would ask a following up question … finally…
    • Purely native, very rich thanks to HTML5 and the guys at Chrome
  • Use of video, its one of the most important mediums on the web
  • On the web you have a lot of formats to choose from …
  • We think video should have a great, free and open option just like images and pgn
  • Invested over $120M to contribute to this vision
  • On2 … based in NY, working in video since 90 92, over 2B+ installs, used by flash, skype, etc, Acquired by Google in 2010
  • Today: announcing that we are open sourcing VP8 under an open source and royalty free license
  • WEBmproject.org …. webM
  • Mike Shaver of mozilla
    • You tube will be support webM video
    • high quality video, built into the stac, with great performance
    • Mozilla is very interested in open video
    • Have seen the importance of universal video
    • Video is key of the web experience and needs to be part of the web
    • Just like JavaScript, HTML, CSS etc are all used without strings attached, now video will be like that
    • The web is gaining important capabilities, so browsers need to take advantage ofthat
    • Takes advantage of multiple cores, low and high bandwidth, etc.
    • Its high quality and embedded into the stack, use like text
    • Project London: 400 some lines of codes (text, video, animations, controls, etc)
    • Firefox supporting WebM, we want to see this available in all browsers for all users and developers to use
  • CTO of Opera, Hokem
    • Published a call for video on the web manifesto a while back
    • Not easy, syntax would be easy <video>, what was hard is the free format, <video src=webm> webm joins this list….
    • labs.opera.com
    • Tim didn’t patent html, name didnt’ patent JavaScript, I didn’t patent ss
    • Graphics is text, and text on screen … all using HTML5
    • We’ll have very rich pages with HTML5 and CSS3
    • Done right, we can get ride of over half images (some are just for styles)
    • “To the web community, start using this…”
    • “To Google, I’d like to say think you, its very civil of you…”
    • I look forward to work with Google in the future to make sure the web is open …
    • We believe web access will be a human right of this century
  • Kevin Lynch, CTO
    • Fun to see new technologies come out for people to express themselves
    • Today focusing on HTML5 and how we are working with it
    • Dreamwever demo (most popular pro html editor next to note pad)
    • How do you do this across screens (mobile devices)
    • Multi screen view (see how it looks across devices)
    • Demo transition effects, works consistently and smoothly
    • How do we support enabling graphics?
    • A table of available seats at a restaurant
    • Illustrator supports SVB
    • JavaScript code to create colors that represent free vs. busy
    • Integrating graphics editing and using HTML5
    • How we can do animations within css and HTML5
    • Motocycle ad demo
    • Putting VP8 in our flash player reaching all of our users …
    • Working with Google on a bunch of devices with flash, will say more tomorrow about that ….
  • GoogleVP returns
  • One problem on the web is finding applications on the web
  • Easy to find one of many chess games on the web
  • But hard to find the good one
  • Can’t see the ratings, uses, etc.
  • Its easier on the phone to find such a game, but not on the web
  • Second problem, developers need reach
  • Third, developers need moniizing
  • Should be easy to create and sale a premium application on the web
  • CHROME WEBSTORE preview (New Chrome page)
  • You can add apps to this new tab page, eg, TweetDeck
  • TweetDeck has a complete HTML5 version, in browser, slick, drag and drop
  • Notification api, geo location api to show tweets on map, etc.
  • Conviently installed on the chrome tab
  • Chrome Web Store has applications, see ratings, revneue, see how many are using it, see comments, buy, etc….
  • You can buy apps there … one click, adds to the tab page
  • Games is a huge web app category
  • Plants vs. Zombie
  • Lego Star Wars. Different level of game, 3D, Legos and Starwars (will work well with this audience)
  • Unity is porting all of their games to work natively in Chrome, rich 3D gaming experiences
  • CONTENT is another important category (newspapers, magazines, etc)
  • Recreating magazine experience on the web
  • Introduces Terry McDonell, editor of Sports Illustrated Group
  • Shows video with “swagger” and shows where we are coming from Sports Illustrated
  • Live html5 prototype, showing the possiblitiy of bringing rich magazine experience to alll these devices
  • Pulls the best of the web and the best of magazine
  • Rearrange the magazine by users
  • Live polls, Videos, save for later w/ video playlist, scroll navigation with thumbnail pages, Typography is important,
  • The idea of being able to go deeper, wider, etc is important …
  • Sharing with friends with the social networks, etc…
  • The advertisers need to work hard too .. useful info … so useful it becomes content itself
  • Its would be new to actually develop it …
  • View lenses, where to buy it on map, etc…
  • Using, css animation, embedd fonts, drag and drop and custom drag and drop, html5 video, geolocation, web workers, app cache, web db, feeds, google maps api, google buzz api, polls, lazy loading pages — The wonder factory
  • Needs to be open, search able, available everywhere, social, etc. – then we can get people to pay for it (didn’t catch all of these)
  • Back to VP of GoogleDocs
  • Over 70M active users of Chrome (great graph showing adoption)
  • Chrome Web Store: coming soon
  • Chrome and Chrome OS
  • Free and paid apps
  • The future of the web is HTML5 – IE Blog april 29, 2010

Version:1.0 StartHTML:0000000167 EndHTML:0000017929 StartFragment:0000000487 EndFragment:0000017913

  • Lars Rasmaussen ( Google Wave)
  • Last year showed you a vision of Wave, today its a real product, we are opening it up now, no need invite anymore
  • We are integrating it into GoogleApps (we might be crazy)
  • Wave really shins as a place to get work done …
  • Especially if you have remote collaboration on a project
  • It changes the way you work, sometimes in subtle and surprising ways …
  • Hotel using it to track tasks throughout the day, keeping everyone on the same page
  • If you’ve tried Wave before, please check it out again
  • Have added a lot on front end and back end
  • Google robots can live anywhere now, making it easy to integrate with your applicatio
  • Adding media and attachment features for both robot and wavve api’s
  • Can built inline viewers for wave
  • Also creating more hooks to integrate your product with wave
  • E.g., Salesforce is showing how they are embedding Wave into Salesforce Chatter
  • People like SAP and their StreamWork will support federated Wave
  • Open sourcing more components, like in browser editor (one of the hardest pieces to write)
  • Also starting to publish the client server protocol (didn’t catch exactly what he said)
  • Google Director of Engineering; David Glazer
  • Hockey Shirt with Web Worker on front, HTML 5 on the back
  • The Web – Is Heading to Work
  • More Web Applications at WorkaroundsGreat chart (get it, email, accounting, sales, customer service and support, enterprise mgmt, employee performance, recruitng, elearning, web conferencing, etc….) in order
  • Issues
    • It takes too long to build apps (idea to app is too hard)
    • Employees work everywhere, on all devices (apps you build for them need to run all devices)
    • Apps are trapped (choices of architecture trap you, locks you into a deployment model)
    • Too many apps to manage (we hear big enterprises have over BIG NUMBER, in thousands, didn’t catch it of apps to manage)
    • Fast and familiar development, mobile flexible deployment, powerful app management.
    • Bringing the cloud to the enterprises
    • Open gives choice, and choice drives innovation
    • Announcing: Google <3 Vmware
  • Paul Moritz, CEO of VM Ware
    • Allowing existing applications take advantage of the cloud (customers have huge investments in applications they can’t walk away from, the only hope for them is virtualiziong, put them in a black box and add functionality, sliding applications around)
    • Allowing operations to become more cloud like, extending their data centers outside their own facitlies into ones they can rent from etc
    • The questoins becomes, what about NEW APPLIcatioNS?
    • There will be many clouds out there, internally, public ones like Google/Amazon….
    • Wouldn’t it be great to be able to write applications that are portable across different clouds
    • What is the OS for the cloud? What is the level of abstraction that will allow apps to work great across clouds
    • The new operating system are these new frameworks
    • Developers have voted with their feet, working with frameworks that deliver more productivity
    • Thats why we acquired SpringWork (they believed it was just too hard to develop java applications, developed a light weight but extremely powerful platform, started it in open source, now more than half of java development uses it, etc)
    • Wouldn’t it be able to give the largest body of develoeprs, the java community, to give them the ability to write java applications
    • Worked with google, to share what we’ve built on the backend, with what Google has done with the front end
    • To give an open source layer
    • Cloud portability …
  • Back to Googl
  • Fast and familiar development
  • GWT 2.1 + Roo integration.
  • Ben Alex, Senior Staff Engineer, SpringSource/VMware
    • GWT takes Java source code, compiles it as optimized JavaScript code that works in modern web
    • Used Google Web to collaborate on making Roo to work with GWT
    • Demo started … buiding application live on stage
    • Expense Reports (near to your hearts)
    • GWT front end with ROO backend, in under 200 keystrokes
    • Roo is open source tool you can download
    • Sets up database (persistence layer)
    • Creates tables, employees, fields, gets reports, date fields, etc.
    • Now to the front end … GWT, will look at the domain model and make a front end …
    • Tables on left, fields for the object on the right
    • Handles the CRUD
    • If want to add columns, like comments
    • Free IDE with Roo integration
    • Can edit in Java fashion, string comment;
    • Roo detects that you’ve updated the java class, and it updates the GWT
    • Comment field is added to the interface
    • In a few minutes, gone from empty directory, get full round capabilities, etc.
    • Under 200 keystrokes later you have the basics of an application
    • Demo end
    • After adding a little UI polish, its now a rich web applicationsIts very fast, shows refreshing in terms of drawing UI and getting the data
    • App is only 100k, optimize JS including CSS et al
    • Don’t have to wait for new page, you can click on an boject and the details come into the screen at the screen shifts left
    • IT gets the data you need when you need it
    • Traditional spits out a lot of html and data
    • With HTML5, it just fetches exactly the data you need and then populates the page with that data
    • Speeds up the app and makes it feel more responsive to what you are doing
    • Developers know all this already
    • Whats new, is, how do you get this working well
    • Developed “speed tracer” … its a chrome extensions
    • HTML5 wizzing interface built with GWT … tells me down to the mili second where the time is going (script checking, garbage collection, etc) Its like a xray machine for your browser’s guts
    • Sometimes its the server that is slow, not just the browser
    • Spring has that, its called SpringInsight
    • We’ve combined that information with SpeedTracer.
    • The way it works on your desk is not how it works in production … use the same tools to your production server … Appstats, introduced by google app engine, etc
    • So we’ve brought it into speedtracer
    • Want to give easy ways to connect widgets together with minimal code
    • New set of data presentation widgets
    • You’ve seen dozens of ajax demos where they show you the kitchen sink
    • So how to make this interesting?
    • 18M records, show it everything works fast
    • 125k employees, 5k expense reports for about 20 million line items … non trivial amounts of data
    • FAST. Claps.
    • Sorting is often done.
    • Done quickly. 5M records.
    • Search limits down fast. Very itunes like.
    • Started empty directory, made app, spent a few days to make it fuller, tuned it on the desktop, then tuned it again on server, uploaded massive data (took a few days to upload it), and continues to run in the browser as intended re: performance … we think thats kind of cool.
  • Fast and familiar development (done)
  • Now show you how to make it available from all devices
  • Ben and Bruce come back up, to show how it works on mobile devices using the same libraries (GWT 2.1 Widget Libraries)
  • For mobile device, more constraints to deal with
  • Customized the expense app for different devices
  • iPad, works the same way, small adaptations like finger dragging
  • Android, (wifi issues) trying to show adding a record on Android, gets updated on iPad list view
  • Finally works with some great demo fast thinking … round of applause (real time updates)
  • Shows manager deny the $150 entry, and the android list gets updated with x icon
  • Aside from the network glitches … the arc … empty directory, 200 keystrokes later you go tan ap, then have library that builds apps that work with a lot of data, have performance tools for desktop and clouds … and these apps can be adapted for use on all other devices …
  • Back to Google VP
  • Now showing Flexible Deployemet (how make sure you are not logged in to one architecture)
  • Coud Portability, run your app where you want
  • Google, vCloud, vSphere
  • Same app run in many different places
  • What need to change in the different deployments?
  • Because its built on open standards, then drag and drop to any server that supports these standards
  • It just works, because open standards leads to innovation
  • Now, powerful app management
  • You will have a lot of apps
  • Introduces Kevin Gibbs, Software Engineer
  • Enterprise == Scaling Applications
  • Warning: lots and lots of apps
  • Growing problem: managing the growing number of applicatoins
  • Going from a few to a hundred web apps, a few employees to thousands, can be a challenge
  • GoogleApp Engine hosts over 100k apps used every week
  • App Engine’s Enterprise Challenges
    • Easier to management
    • Better support
    • More reliable
    • Key features
    • Predictable pricing (better way to pay, engineers paying with a credit card each time is not scalable)
  • New product: Google App Engine for Business
    • Domain console (security controls)
    • Pro supporting
    • Formal SLA
    • SSL and SQL databases (the choice of using bigtable or your own database)
    • Sensible pricing (based on something simple, applications and users)
  • Over have a billion daily page views;
  • Easy to use, easy to get started for free
  • Pay by the app: $8 per month per use up to $1000 / application
  • Heard from CIO’s used over 60% of budget to keep the lights on, we can help move that to zero
  • If your app doesn’t have any usage, you don’t pay a dime
  • Demo starts
  • Find your app easily within organization
  • Creating an app has auto configuration with domain main
  • Wants to add a blog
  • Security by default
  • Lists all the apps created in a company
  • I can see which ones I have access to and ones that I don’t (encourages collaboration internally between developers)
  • Permissions: who has access to each applications and at what level
  • Eg., developer access, view data, create new data, change data, etc.
  • Some apps (eg., code review app), only listed as viewer … can view logs, but can’t change the data, or the app, etc.
  • Some apps I don’t have any access to, but I can request access by clicking a link
  • Let’s look at the CIO or Domain Administer view…
  • I don’t have apps cause I don’t write code.googleBut I have full access to any applicationGrant developers access, remove developers that have left the compay, etc.
  • GoogleApps for business is a new focus, its not available for everyone to use, its just an announcement, etc.
  • Today we are publishing the roadmap, some will be ready sooner than later, so you can plan
  • code.google.com
  • I’ve showed you a new version of AppEngine that is suited to businesses need and how to manage all your application
  • Google VP
  • Faster dev, all devices, cloud portability, juggle thousands of apps
  • google.com/cloudportability ; also at vmware.com/cloudportability
  • The Web is Build for the Future …
  • Because you choose to build on open standards, you were ready for the future …
  • What you’ve been building is

{ 1 comment }

eric-bidelmanThe Big Picture and How to Get Started
Speaker: Jeff Scudder & Eric Bidelman

The number of APIs made available for Google products has exploded from a handful to a slew! Get
the big picture on what is possible with the APIs for everything from YouTube, to Spreadsheets, to
Search, to Translate. We’ll go over a few tools to help you get started and the things these APIs share
in common. After this session picking up new Google APIs will be a snap.

I was going to attend the event on the Google Web Kit, but then I read the description above and I quickly changed course …  Note, these are not very detailed and miss a few sections. I had to take care of a few emails during this presentation.

Live Blogging Notes:

Available API’s

  • Translate
  • Language detection
  • Feeds
  • Search
  • etc.

Adding customer search to your page… (example code)

…not just JavaScript

  • REST, JSON
  • Examples in flash, php, Java

HTTP? (Layer)

URL, client requests to server … ;-)

Gives floor to Eric to talk about Google Data API’s…

  • HTTP, RESTful, Etags, Oauth (Get / Post / Put / Delete (e.g., CRUD)
  • Atom pulishing protocol (XML), JSON, etc.
  • Extends the APP

Has a good feature comparison to Google Data, Atom, RSS 2.0 (TO DO: find online)

Example Request: fetching data …

What can I build?

  • Search / Discovery API’s
  • Admin / Data Management API’s
  • Content Creation /Publishing API’s
  • Apps / Office Productivity API’s

There is about 20+ data api’s and counting that uses the Google API’s …

New ones will use these api’s as well …

Wide variety of services (Calender, email, video, pictures, etc…) to mash up ….

dataliberation.org (its your data that you can access anytime and do whatever you want with it)

Authorization

  • Its difficult
  • Let’s Gogle do it
  • Authorization not authentication

Oauth

  • Similar to AuthSub
  • Web OR Desktop
  • Open standard (Google, Twitter, Facebook, Yahoo, Flickr, etc use it)

Demos …

iGoogle with gadgets on it …

First oen talks to Blogger API … Oauth approval page … gadget refreshes itself … can pick a blog to post two when logged in, enter in title and content and publish. Shows it published. Made a write using JavaScript. This is a READ/WRITE JS Library.

  • Handles details of laoding data from google, supports read/write, js-client….

Shows code on the Blogger Gadget demo (creating demo)

Demo: Cloudie

3rd party developer

Wrapped a number of Google API’s …

A virtual desktop on the AppEngine, storing docs, contacts, calender, etc in Google docs, etc …

Stores configuration in a GoogleDoc ….

Uses GoogleDocs as the storage platform ….

docs.cloudie.org

{ 0 comments }

Building Google Chrome Extensions 101

What is a browser extension?

Ways to add niche functionality to a browser that people want.

What do you build extensions with?

HTL, CSS and JavaScript

Lots of things you’ll get for free in extensions …

  • Local storage (key value pairs)
  • Storing preferences and settings
  • Geolocation api (lets browser tell you where the device is running)
  • WebGL (standard for doing 3D in the browser)
  • Audio and video without plug-ins (natively for a couple of codecs)
  • Notifications (e.g., desktop notifications coming out of the toolbar)
  • Web Sockets (creates a persistent long live connection where the browser can keep connected to a server, to get IM, mail, etc quickly to the browser)
  • Discover extensions here: chrome.google.com/extensions; extensions can be hosted there unless you code uses restricted api’s, in those cases, you need to sign something that indemnifies google, etc.
  • Can also use flash, and run native code (from the old netscape days)
  • NativeClient is another project, runs native code in the context of a sandbox, its coming soon
  • Easy to install, click and installs immediately without restarting the browser
  • Easy to update, every couple of hours, browsers go and check url, if updates exists, will get it and will update on the fly … all users would update within a day or so, no review process

How do I write an extension?

  • Use technology you already know … just like writing a website
  • Just focusing on chrome itself (not cross browser)
  • Simple API’s: eg, bookmarks, history i18n, processes, tabs / windows, etc.
  • Start with manifestation with a.json file
  • Develop right in Google Chrome text editor
  • chrome://extensions/ (from tools menu on mac)
  • Not wild about toolbars in Chrome (design philosophy)
  • Instead of toolbars, for extensions, we added “Browser Action” …
  • Browser Action icon in upper right (a few things you can do with it)
  • Its dynamic, can use JavaScript with it on the fly
  • Can change it to another image within extension folder
  • Or, in html, using the canvas element … demo of using canvas to spin the icon
  • Can display new mail count, for example, like 4 characters worth
  • Things you can do to get users attention and give them info to follow up on
  • Page Actions – instead of being in the URL box, its next to it
  • Browser actions are for any page … but Page Actions is for something contextual to the page in question … might only show up if it detects there is some flash on page (if the extension does things for flash)
  • Pop up from URL box
  • 3 main views: browser, page and pop ups
  • One more view … is the webpage itself
  • Grease Monkey built in … we call it “Content Script”
  • A javaScript that gets injected and changes the html that you are viewing
  • Lessons learned by Aaron when he did GreaseMonkey (now works for google)
  • Isolated words … didn’t want your content script to be compromised by a bad website …. so the idea behind Isolated words … its JavaScript … can’t see global variables or functions within the page … it turns out that you can do a lot by just havig access to the DOM … you don’t have to interact with the script of the page … there is workarounds … something about working within the context of the page’s script ….. (Security feature)
  • Limited access to chrome.*API
  • Can talk to other extensions, to act on your behave …
  • Introducing the background page …
  • Runs behind the browser, doesn’t show, has a dom and a content script, etc.
  • A place to run persistent script … this is the place you’d do the xhr’s to pull new mail, registering new listener programs, etc…
  • API’s for content scripts to communicate with your background scripts …
  • The brains of your extensions
  • The popup is a page as well. It and the script talks t the background page … the logic lives in the background page
  • Background and popups is your code and you have full access to it
  • The content script has limited access to chrome api’s
  • Message passing
  • code.google.com/chrome/extensions/ for documentation on this stuff …

A simple twitter trend fetcher

  • Changes page, adds a div, inserts trends on twitter
  • Adds blue div on top of page, showing twitter trending topics, added by extensions
  • Need to choose url’s that it will be inserted into

….

  • Uses HTML5 for things…
  • Option pages
  • Override pages … can over ride tabs, or book marker functionality, or, etc. You can override those things ….
  • Themes …
  • Can manipulate windows api … (create them, move them around, close them, etc…)
  • Asynchronous … don’t want to lock up the whole browser …
  • Bookmarks sampe code … tree like api … takes bookmarks and puts into a page
  • Take screenshots api … takes one and displays it in the page ….
  • A few more experimental ones … use custom codes .. processes, infobar, cookies, context menus, clipboard … looking for feedback … TRY OUT THESE THINSS and give feedback

Q: How use GeoLocation?

A: Right now you have to specify them in in your geo array.

Q: From the snapshot api, can you create a thumbnail?

A: You get a URL with the image, and then you can load it into canvas to do what you need to create it as a thumbnail.

{ 0 comments }

Google I/O Bootcamp NotesWill-Norris

#iobootcamp on twitter

05/18/10

Introduction to Google Buzz
Speaker: Will Norris
Google Buzz allows users to share updates, photos, videos and more from right inside of Gmail or
using the new developer APIs. This session will provide a high-level view of the APIs available for
interacting with Buzz, and the open protocols they are built on.

Social 101: Buzz

The Conversational Web

  • Previously there was more consumers of content than creators
  • We believe you should have interactions across the web regardless of where its posted or where you’ve entered the web

Google Buzz

  • Baked into gmail, where you are spending a lot of time already
  • Keep track of whats going on and not losing it all
  • Post to Buzz widget, can put on your own site
  • Buzz andorid app, and html5 app

Relevant Technologies

  • Enough to get a frame of reference for later in the sessions
  • Atom (and friends) … xml format for syndicating web content … great for blogs … doesn’t go much further for that … so extensions were added
  • Like an image inclosure …
  • Atom + MediaRSS … eg adding height and width of image to be displayed correctly
  • Atom + GeoRSS … Location is becoming more important, most devices have data … to add geolocation data to Atom is GeoRSS … point and feature name …
  • Atom + GeoRSS + Portable Contacts … common format for importing address book … uses “poco”
  • Atom + Threading … To create real conversations about this, not just posts … this specifies this is a reply to this post … Here is the post and point to comments … OR …. I am a comment in reply to something else … it can be a video in reply to another video (e.g., youtube, etc).

Activity Streams

  • What are the right things to add to Atom to capture whats going on in applications today (streams)
  • Its not so much about the content, its the actions on the content that is important
  • What do these feeds have in common? (showed actoin lists, like uploaded videos, updates, uploads by a person, favorites of video’s uploaded by person, etc)
  • Not many things in common
  • The conversational web is not just about the content, its sharing the video … its not just sharing but also letting people know that you “favorited” the content, etc… doesn’t really fit well in the Atom model
  • The examples are two same action on two different sites, the other two are two different actions on the same site
  • How do we get away from these dumb feeds, add some more meta data, to do interesting things
  • Actor + Verb + Object (start simple)
  • Ted committed revision 42
  • Cami favorites a video
  • Ted friended Cami
  • Atom + Activity streams (showing how to do this)
  • What does adding this additional meta data buy us?
  • We are still early in it, havn’t seen a lot of applicatoins doing interesting things on this
  • But you can image, like an app that wants to Pivot on these things (e.g., one object tyep is “reviews”)
  • Show me all of my “Reviews” regardless of where I created the reviews.
  • Or show me all my “Favorites” regardless of where I favored them.

Salmon

  • I have my blog with comments and Likes
  • I want my blog to get as big an audience as I want, so I syndicate to Buzz, FriendFeed, etc.
  • Each of them have their own comments and likes
  • We are fracturing things
  • You want to engage people where they are and comment there, but it would be nice to have that content to come back to your initial place of post
  • Salmon does that, allows comments and likes to swim upstream
  • When someone leaves a comment, it will notify my initial site
  • It can go for any object that is taken on any object
  • This works cross sites, like mentioning an individual with an @ sign, (he mentioned clickset users, status.net and they use salmon and have cross mentioning) … Buzz will be supporting this hopefully in the not so distant future
  • Check out Bridging the Islands 3-4pm room 9 hosted by creator of Salmon (TASK)

PubSubHubbub

  • You’ll hear a lot about this this week
  • It hits the core of a lot of what Google is doing, beyound google
  • Its part of making the web faster
  • Its enabling the realtime updates of things like appfeeds
  • Your rss reader keeps checking with your blog for updates, it keeps checking (e.g., once an hour maybe)
  • As a site owner, I’d love for them to stop hammering me … one or two users is not a big deal … but many “the thundering heard” will tumble your site on godaddy …
  • The idea solution is a different model
  • Replaces your blog with a HUB
  • Your blog posts to the Hub
  • The Hub pushes it out to the subscribers
  • Ream app Wed 4:15 pm -5:15pm same room as SALMON

Oauth

  • Password anti-pattern (e.g., entering in your twitter u and p, or email u and p to set up an account and import your contacts) … gives away the keys to your kingdom …..
  • Your valet key for the web
  • Valet Key (limits speed to 20 mph, limit total distance to 20 miles, reistrict access to the trunk and glove box)
  • Oauth Token (limited to particular app, what data applicatoin can access, how long the data can be accessed, revokable)
  • “Find your friends the right way…”
  • From twitter takes you to Google, it tells you what the app wants and will do with it
  • e.g., asking for one time access
  • Then goes to flickr and they match your contacts with people on flickr

Big buzz announcements tomorrow you may want to go to that session …

On Thurs there is a building on buzz session ….

Q: why not use (couldn’t hear, xmtp)

A: We don’t believe in having data in silos. We wanted to use existing standards. There was a project called Diso that was all about distributed social network of sorts. The most distributed is everyone is their own node. The other extreme is having one huge network. We were building a lot on wordpress. With that in mind specifically, we choose (couldn’t hear) instead of (couldn’t hear xtmp). Another issues is OneSocialWeb. XMTP is what they are building on. Similar to what DISO is trying to do.

Q: Who are the early adopters?

A: ActivityStreams (Myspace and facebook have done some work with it; Microsoft life is using ActivityStreams) … they are not all 100% compatible with each other. Slight different implementations. 6Apart CEO is the primary editor of the spec. Facebook is involved. MSFT is as well. Lots of collaboration there.

Q: Can PubSubHubbub support authenticated feeds?

A: Not yet, its at the top of our TODO list. Oauth will be a prime way to deal with authenticated feeds. It will probably be address with PubSubHubbub. Today there is no good example of what that will look like. If you have a good idea, please join the community and add your thoughts on how that should work. (Said the issues is something about being able to trust the source or something …).

{ 0 comments }