0
Yahoo!
@ Nike
May 4, 2009




              Tom Hughes-Croucher
                     croucher@yahoo-inc.com
Overview



• Blueprint
• Site Explorer / BOSS
• Search Monkey
BLUEPRINT
    the mobile platform
The Blueprint for Today

• Welcome
• Blueprint Overview
• Blueprint Developer Tutorial
• Blueprint Design Language
• Furth...
We know it’s massive..
5


4

3

    2

    1
                         2010
    0
            2005

    Personal computers      Mobile phones



...
?
Do your services work?
Yahoo!’s mobile mission:

to enable a mobile ecosystem
for billions of users
m.yahoo.com
m.yahoo.com
No 1 mobile destination

Maximum coverage..
but a poor experience
for high-end users.


Definitely Mobile 1.0
Seems familiar?
We’ve moved on..
I want my
Mobile 2.0
Rich UI
Rich UI
Rich UI
Rich UI
Lightweight
XML markup
language.
                      <placard layout=”simple” class=”link”>
Based on X-Forms.       <lay...
Lightweight
                      <placard layout=”simple” class=”link”>

XML markup              <layout-items>
         ...
Not a single device
Cool. What else?
It looks great
It looks great
Itʼs powerful
location-based services

mapping controls

device optimization

image & video controls
Itʼs powerful
location-based services

mapping controls

device optimization

image & video controls
It delivers
It delivers
It delivers
BLUEPRINT    the mobile platform



 Yahoo! Blueprint Apps      3rd Party Blueprint Apps



         Blueprint language sp...
BP is the platform


        Blueprint Language
BP is the platform
                             •   XML
                             •   XForms
                          ...
BP is the platform
                                    •   XML
                                    •   XForms
            ...
BP is the platform
                                    •   XML
                                    •   XForms
            ...
Blueprint widgets
     GO
integrated into the client
included in the Gallery
can be added to Carousel
reach millions of us...
Blueprint widgets
      GO
integrated into the client
included in the Gallery
can be added to Carousel
reach millions of u...
Blueprint apps            new

Java, Windows Mobile
& Symbian devices

standalone application
freely distribute
runs on 10...
Blueprint apps             new

Java, Windows Mobile
& Symbian devices

standalone application
freely distribute
runs on 1...
Blueprint sites             new

xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devi...
Blueprint sites             new

xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devi...
Blueprint sites             new

xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devi...
Blueprint sites             new

xHTML & HTML browsers
your site
your domain
on your infrastructure
supports 1000s of devi...
BLUEPRINT
    the mobile platform
BLUEPRINT
             the mobile platform




not another mobile OS
BLUEPRINTthe mobile platform




not another mobile OS
not a platform for games
BLUEPRINTthe mobile platform




not another mobile OS
not a platform for games
not proprietary
BLUEPRINTthe mobile platform




not another mobile OS
not a platform for games
not proprietary
just return Blueprint XML
BLUEPRINT
    the mobile platform
BLUEPRINT
                 the mobile platform



 An open mobile platform that
makes development easy and is
 the best wa...
BLUEPRINT
    Developer Experience
          Quick Tutorial
I want to build stuff. Today.

• Platform Overview

• Blueprint Language Concept

• Steps to (Widget-) Success

          ...
BLUEPRINT   the mobile platform




 Yahoo! Blueprint Apps      3rd Party Blueprint Apps



         Blueprint language sp...
Blueprint Language: What’s that exactly?




                                           BLUEPRINT
Blueprint Language: What’s that exactly?


        XML mark-up language, based on X-Forms




                            ...
Blueprint Language: What’s that exactly?


        XML mark-up language, based on X-Forms




            No scripting or ...
Blueprint Language: What’s that exactly?


        XML mark-up language, based on X-Forms




             No scripting or...
Blueprint Language: What’s that exactly?


        XML mark-up language, based on X-Forms




             No scripting or...
Blueprint XML: Create a Page!


<page>
   <content>
       <module>
          <header layout=quot;simplequot;>
          <...
Blueprint XML: Create a Map!

<map>
<center>
<latitude>37.3919</latitude>
<longitude>-122.0302</longitude>
</center>
   <m...
Blueprint Control: Location
<location-chooser ref=quot;originquot;>
   <label>From:</label>
</location-chooser>

<location...
Creating Blueprint Services: What do I need?




                                          BLUEPRINT
Creating Blueprint Services: What do I need?


                 Any web-server




                                       ...
Creating Blueprint Services: What do I need?


                  Any web-server




             Use any scripting languag...
Creating Blueprint Services: What do I need?


                   Any web-server




             Use any scripting langua...
Creating Blueprint Services: What do I need?


                   Any web-server




             Use any scripting langua...
Building Mobile Widget
       Download the Blueprint SDK
1




                                    BLUEPRINT
Building Mobile Widget
               Download the Blueprint SDK
1




    Blueprint SDK includes
• Blueprint Documentatio...
Building Mobile Widget
                      Develop your Widget
2




     Widget Request                        HTTP Req...
Building Mobile Widget
                                     Develop your Widget
      2




                    Widget Req...
Building Mobile Widget
                                     Develop your Widget
      2




                    Widget Req...
Building Mobile Widget
                                                 Data flow

       Mobile Phone                    ...
Building Mobile Widget
                     Interfacing with Yahoo! Servers

Content Type for Blueprint Services:
Content-...
Building Mobile Widget
                     Interfacing with Yahoo! Servers
Internationalization and Localization:
When Ya...
Building Mobile Widget
                           Package your Widget
3



Application Package is a zip file
  containing
...
Building Mobile Widget
                 Upload your mobile Widget
4


• http://mobile.yahoo.com/developers/test/upload
• P...
Building Mobile Widget
                         Test your mobile Widget
5


1. Yahoo! Go Emulator: http://mobile.yahoo.com...
Building Mobile Widget
                Publish your mobile Widget
6

• http://mobile.yahoo.com/developers/submit/upload
• ...
Widgets Development Process Summary

           Download the Blueprint SDK
1



               Develop your Widget
2



  ...
Get Numbers: Blueprint
Analytics




                         BLUEPRINT
Links & Support
                         Get the SDK

• Download the SDK
  http://mobile.yahoo.com/developers/download


 ...
The Blueprint Design Language
Tomorrow’s Mobile User Experience
The Language is Evolving




                           BLUEPRINT
Web Sites            Applications

Document Centric          Task Centric
Content Syndication    Native Look & Feel
 Biase...
Internet as a Platform


                                          Structured Experiences
                                ...
On Demand Service Updates




                    Let’s retain the
                  benefits of streamed
                 ...
Aggregated Services




            Let’s reuse services already
             implemented and tested
                     ...
Aggregated Services




                      BLUEPRINT
Aggregated Services




            <onesearch/>




                           BLUEPRINT
Web Sites            Applications

Document Centric          Task Centric
Content Syndication    Native Look & Feel
 Biase...
Web Sites                   Applications

Document Centric                 Task Centric
Content Syndication           Nati...
BLUEPRINT



Questions?
Site Explorer
Yahoo! Site Explorer / BOSS
Search Engine


• Maximum content
• More in-bound links
• Normative URLs
• Fresh-fresh-fresh
Number of pages
   crawled
Number of pages
   crawled        Inbound links
Number of pages
   crawled                       Inbound links




                  Detail level
Lost Inlinks
Lost Inlinks
6092 Inlinks Lost

       OR

36% Inlinks Lost
Detail level
Unauthenticated
Authenticated
B.O.S.S.
Build (your) Own Search Search
Site Explorer in BOSS


• Inlinks (v1/v2)
• Page Data (v1/v2)
• Ping (v1)
• Update Notification (v1)
Inlinks
Inlinks
Page Data
Ping / Update Notification




        Get on the Yahoo! Search
                 Radar!
Site Explorer



• https://siteexplorer.search.yahoo.com/
• http://developer.yahoo.com/search/siteexplorer/
• http://devel...
Site Explorer
Questions?
Feeding the Monkey: the SearchMonkey
data layer, presentation applications, and
                   you
What is SearchMonkey?
         an open platform for using structured data to build more useful
                           ...
Enhanced Result




                   Key/value Pairs
   Image   Links
                    or abstract
Infobar



          Summary   Blob
How to get data to
SearchMonkey?        Humans see:
                     • name
                     • picture of a person...
Artificial intelligence is hard.
Plus…
How does it Work?
How does it Work?




Acme.com’s DB
How does it Work?




Acme.com’s Site




Acme.com’s DB
How does it Work?
                      site owners/publishers share structured data with Yahoo!
1




    Acme.com’s Site...
How does it Work?
                       site owners/publishers share structured data with Yahoo!
1




              RDF/...
How does it Work?
                             site owners/publishers share structured data with Yahoo!
1




            ...
How does it Work?
                             site owners/publishers share structured data with Yahoo!
1




            ...
How does it Work?
                             site owners/publishers share structured data with Yahoo!
1




            ...
How does it Work?
                             site owners/publishers share structured data with Yahoo!
1




            ...
How does it Work?
                             site owners/publishers share structured data with Yahoo!
1

               ...
How does it Work?
                             site owners/publishers share structured data with Yahoo!
1

               ...
Data Sources: RDF and Microformats
   Name        Cached   Open    Mode               Notes
Yahoo! Index    yes     yes   ...
Approach #1: Embedded RDF
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<!DOCTYPE html PUBLIC quot;-//W3C//DTD XH...
Approach #2: Embedded
Microformats
<div id=quot;hcard-Joe-Smithquot; class=quot;vcardquot;>
  <span class=quot;fnquot;>Joe...
Data Sources: DataRSS Feed
    Name        Cached   Open   Mode               Notes
 Yahoo! Index    yes     yes    Passiv...
Approach #3: DataRSS Feed
<?profile http://search.yahoo.com/searchmonkey-profile ?>
<feed xmlns:xsi=quot;http://www.w3.org/2...
Building with Structured Data

 • Structured data -> easy app building
   –Relies on RDF, microformats, DataRSS
     •That...
Data Sources: XSLT
   Name        Cached   Open   Mode               Notes
Yahoo! Index    yes     yes    Passive    Old-S...
Approach #4: Extract with
XSLT
<?xml version=quot;1.0quot;?>
<xsl:stylesheet xmlns:xsl=quot;http://www.w3.org/1999/XSL/Tra...
Prototyping with XSLT

• What if I don’t have structured data?
  –I don’t own the site
  –I do own the site, but I want to...
Creating an Infobar

 • Infobar advantages
   –Annotate someone else’s site
   –Use links and images from other domains
  ...
Data Sources: Web Services
   Name        Cached   Open   Mode               Notes
Yahoo! Index    yes     yes    Passive ...
Approach #5: Call a Web
Service
<?xml version=quot;1.0quot;?>
<xsl:stylesheet xmlns:xsi=http://www.w3.org/2001/XMLSchema-i...
Ever-present Monkeys
Ever-present Monkeys
Ever-present Monkeys
Ever-present Monkeys

  http://ysearchblog.com/2009/03/12/embed-
 videos-games-and-docs-with-searchmonkey/


• Videos
• Ga...
Resources

• Main:
  –http://developer.yahoo.com/searchmonkey
• Lists and Forums:
  –searchmonkey-developers@yahoogroups.c...
Next Steps

1. Identify content to use in SearchMonkey
2. Weigh the strengths and drawbacks of each
  method for providing...
SearchMonkey
Questions?
Tom
Hughes-Croucher
croucher@yahoo-inc.com
@sh1mmer
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Yahoo @ Nike
Upcoming SlideShare
Loading in...5
×

Yahoo @ Nike

1,405

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,405
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide




  • lots of interest in the markets, people doing widgets.. what&#x2019;s a widget?
    is blueprint for widgets?
  • at the beginning, j2me tools from nokia or sun and you could make a text app
    WML / WAP browsers didn&#x2019;t really spark imagination but worked
    lowest common denominator or lots of work
    it&#x2019;s getting hard - developer mindshare
  • at the beginning, j2me tools from nokia or sun and you could make a text app
    WML / WAP browsers didn&#x2019;t really spark imagination but worked
    lowest common denominator or lots of work
    it&#x2019;s getting hard - developer mindshare
  • at the beginning, j2me tools from nokia or sun and you could make a text app
    WML / WAP browsers didn&#x2019;t really spark imagination but worked
    lowest common denominator or lots of work
    it&#x2019;s getting hard - developer mindshare
  • at the beginning, j2me tools from nokia or sun and you could make a text app
    WML / WAP browsers didn&#x2019;t really spark imagination but worked
    lowest common denominator or lots of work
    it&#x2019;s getting hard - developer mindshare
  • at the beginning, j2me tools from nokia or sun and you could make a text app
    WML / WAP browsers didn&#x2019;t really spark imagination but worked
    lowest common denominator or lots of work
    it&#x2019;s getting hard - developer mindshare
  • at the beginning, j2me tools from nokia or sun and you could make a text app
    WML / WAP browsers didn&#x2019;t really spark imagination but worked
    lowest common denominator or lots of work
    it&#x2019;s getting hard - developer mindshare
  • so which platform do you pick?
    iphone?
    android?
    site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
    500m visitors per month
    aiming for 1bn mobile users
  • so which platform do you pick?
    iphone?
    android?
    site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
    500m visitors per month
    aiming for 1bn mobile users
  • so which platform do you pick?
    iphone?
    android?
    site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
    500m visitors per month
    aiming for 1bn mobile users
  • so which platform do you pick?
    iphone?
    android?
    site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
    500m visitors per month
    aiming for 1bn mobile users
  • so which platform do you pick?
    iphone?
    android?
    site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
    500m visitors per month
    aiming for 1bn mobile users
  • so which platform do you pick?
    iphone?
    android?
    site builders, netbiscuits, Samsung/Nokia W3C Widgets, LG Flash Widgets, BONDI?
    500m visitors per month
    aiming for 1bn mobile users
  • i.e. can a consumer use them? which consumer? where?
    can they tell their friends? their dad?
  • i.e. can a consumer use them? which consumer? where?
    can they tell their friends? their dad?
  • i.e. can a consumer use them? which consumer? where?
    can they tell their friends? their dad?
  • not one country, region, segment. framing the market as billions means it can&#x2019;t be one phone, one OS or even one technology.







  • Web as the Platform
    Rich UI
    Lightweight Programming Model
    Software above a single device
    End of Release Cycle
    Data is the next Intel Inside
    Collective Intelligence
  • Browsers, lots of them.
    Clients. For different UIs, Java, Windows, Symbian, and more.. sat nav anyone?
    and the iPhone.. the touch-screen daddy.

  • Browsers, lots of them.
    Clients. For different UIs, Java, Windows, Symbian, and more.. sat nav anyone?
    and the iPhone.. the touch-screen daddy.

  • Browsers, lots of them.
    Clients. For different UIs, Java, Windows, Symbian, and more.. sat nav anyone?
    and the iPhone.. the touch-screen daddy.

  • XForms does AJAX without the J. It helps structure an app by separating data and presentation. MVC.
    XForms has the model in the head and references it from the page. Look at W3C site for more info.
    DON&#x2019;T HAVE TO LEARN OBJECTIVE-C
  • XForms does AJAX without the J. It helps structure an app by separating data and presentation. MVC.
    XForms has the model in the head and references it from the page. Look at W3C site for more info.
    DON&#x2019;T HAVE TO LEARN OBJECTIVE-C
  • XForms does AJAX without the J. It helps structure an app by separating data and presentation. MVC.
    XForms has the model in the head and references it from the page. Look at W3C site for more info.
    DON&#x2019;T HAVE TO LEARN OBJECTIVE-C
  • Blueprint is the platform - software above a single device

  • We have a placard for that.
  • We have a placard for that.
  • We have a placard for that.
  • video transcoding
    cell tower database - growing rapidly
    maps inc. satellite, driving directions, points of interest and soon KML.
  • video transcoding
    cell tower database - growing rapidly
    maps inc. satellite, driving directions, points of interest and soon KML.
  • video transcoding
    cell tower database - growing rapidly
    maps inc. satellite, driving directions, points of interest and soon KML.
  • Right now basic usage and device stats. We are integrating with IndexTools which is probably the best web analytics platform there is.
  • Right now basic usage and device stats. We are integrating with IndexTools which is probably the best web analytics platform there is.



















  • Go is for Windows Mobile, Java, Blackberry & Symbian. Stated aim to support all platforms we can.
  • All platforms we support for Go. Basically single widget version of Go.
  • We transcode across may devices. In the future we will support branding.
  • We transcode across may devices. In the future we will support branding.
  • We transcode across may devices. In the future we will support branding.
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • targeted at the mass market. mostly you want reach, distribution and users!
  • carriers, oneSearch, frontpage




































































  • A SearchMonkey Enhanced result contains a great deal of structured data. It could have a picture, key/value pairs, deep links&#x2026;

    This kind of information goes far beyond what normal search results give you &#x2013; a title and an autoextracted summary. Where does this information come from?
  • Likewise, an Infobar has a summary (what the user sees before the pane is expanded) and a &#x201C;blob&#x201D;, an area of free-form HTML.
  • Here&#x2019;s a profile page for a colleague of mine on LinkedIn. When you and I glance at the page, we see all sorts of structured information. We see pictures, contact info, names, &#x2026; all sorts of items that have actual meaning.

    But spiders just see a blob of markup. The spider can extract some basic info, like a title (probably correct), a summary (could be good or not), and some other metadata. But for pulling structured information out of web pages, human beings beat computers hands down. So how to harvest structured data?

    One approach would be to make computers SMARTER, by improving their ability to do pattern recognition and natural language processing. DRAWBACKS:
    these sorts of AI-type features have proven to be pretty expensive and difficult to develop. I&#x2019;m not smart enough to do this, so I want you to do it for me. YOU know a lot more about YOUR site than we do.
    even with a &#x201C;dumb&#x201D; approach, indexing all these billions of webpages already takes many thousands of CPU cores, crunching away. Again, very expensive.
    finally, we all know what happens here. The computer begins scouring information from the entire world wide web, starts learning at a geometric rate, becomes self-aware, &#x2026;
  • Computers become intelligent, begin to learn at a geometric rate, form SkyNet, and scour the Earth with nuclear fire. Shareholder value decreases.

    So we decided to go with the approach of -- keep our spider fairly dumb, and figure out different ways for people to provide us with structured data.
  • In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn&#x2019;t use ALL these methods.

    From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.

    Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.

    SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.

    We&#x2019;ll talk more about all these methods in the subsequent slides.
  • In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn&#x2019;t use ALL these methods.

    From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.

    Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.

    SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.

    We&#x2019;ll talk more about all these methods in the subsequent slides.
  • In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn&#x2019;t use ALL these methods.

    From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.

    Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.

    SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.

    We&#x2019;ll talk more about all these methods in the subsequent slides.
  • In this scenario, we see all the different ways that you can feed SearchMonkey with data. A real SearchMonkey app probably wouldn&#x2019;t use ALL these methods.

    From your database / CMS, you generate web pages with HTML markup. Those web pages can contain microformats or RDF, special markup that provides semantic meaning about the data on your pages. Our crawler can extract this information, just as it does the title, the page content, the mime-type, and so on.

    Alternatively, from your database you can also provide us with a DataRSS feed (more on that later) that we consume and place into our index.

    SearchMonkey also has two ways to actively retrieve information. You can create a Page Extractor, which scrapes information from a web page. You can also call a web service to retrieve more information about a page.

    We&#x2019;ll talk more about all these methods in the subsequent slides.
  • Transcript of "Yahoo @ Nike"

    1. 1. Yahoo! @ Nike May 4, 2009 Tom Hughes-Croucher croucher@yahoo-inc.com
    2. 2. Overview • Blueprint • Site Explorer / BOSS • Search Monkey
    3. 3. BLUEPRINT the mobile platform
    4. 4. The Blueprint for Today • Welcome • Blueprint Overview • Blueprint Developer Tutorial • Blueprint Design Language • Further Discussion BLUEPRINT
    5. 5. We know it’s massive..
    6. 6. 5 4 3 2 1 2010 0 2005 Personal computers Mobile phones * Source eTForecasts
    7. 7. ?
    8. 8. Do your services work?
    9. 9. Yahoo!’s mobile mission: to enable a mobile ecosystem for billions of users
    10. 10. m.yahoo.com
    11. 11. m.yahoo.com No 1 mobile destination Maximum coverage.. but a poor experience for high-end users. Definitely Mobile 1.0
    12. 12. Seems familiar?
    13. 13. We’ve moved on..
    14. 14. I want my Mobile 2.0
    15. 15. Rich UI
    16. 16. Rich UI
    17. 17. Rich UI
    18. 18. Rich UI
    19. 19. Lightweight XML markup language. <placard layout=”simple” class=”link”> Based on X-Forms. <layout-items> <image resource=”email.gif” /> <block class=”title”>Add Email</block> Purely declarative, </layout-items> <load event=”activate” resource=”mail.bp” /> no new scripting </placard> language necessary.
    20. 20. Lightweight <placard layout=”simple” class=”link”> XML markup <layout-items> <image resource=”email.gif” /> language. <block class=”title”>Add Email</block> </layout-items> <load event=”activate” resource=”mail.bp” /> </placard> Based on X-Forms. Purely declarative, no new scripting language necessary.
    21. 21. Not a single device
    22. 22. Cool. What else?
    23. 23. It looks great
    24. 24. It looks great
    25. 25. Itʼs powerful location-based services mapping controls device optimization image & video controls
    26. 26. Itʼs powerful location-based services mapping controls device optimization image & video controls
    27. 27. It delivers
    28. 28. It delivers
    29. 29. It delivers
    30. 30. BLUEPRINT the mobile platform Yahoo! Blueprint Apps 3rd Party Blueprint Apps Blueprint language specification Infrastructure Runtimes SDK Gallery Yahoo! Go Developer Tools Monetization Mobile Apps Reference Analytics Mobile Sites Tutorials
    31. 31. BP is the platform Blueprint Language
    32. 32. BP is the platform • XML • XForms • UED Patterns • Device Services Blueprint Language
    33. 33. BP is the platform • XML • XForms • UED Patterns • Device Services Blueprint Language HTML J2ME S60 WinMob iPhone (Android) Blueprint Renderers
    34. 34. BP is the platform • XML • XForms • UED Patterns • Device Services Blueprint Language Native HTML J2ME S60 WinMob iPhone (Android) Blueprint Renderers
    35. 35. Blueprint widgets GO integrated into the client included in the Gallery can be added to Carousel reach millions of users
    36. 36. Blueprint widgets GO integrated into the client included in the Gallery can be added to Carousel reach millions of users available today
    37. 37. Blueprint apps new Java, Windows Mobile & Symbian devices standalone application freely distribute runs on 100s of devices
    38. 38. Blueprint apps new Java, Windows Mobile & Symbian devices standalone application freely distribute runs on 100s of devices developer preview now commercial release later
    39. 39. Blueprint sites new xHTML & HTML browsers your site your domain on your infrastructure supports 1000s of devices
    40. 40. Blueprint sites new xHTML & HTML browsers your site your domain on your infrastructure supports 1000s of devices developer preview now commercial release soon
    41. 41. Blueprint sites new xHTML & HTML browsers your site your domain on your infrastructure supports 1000s of devices developer preview now commercial release soon
    42. 42. Blueprint sites new xHTML & HTML browsers your site your domain on your infrastructure supports 1000s of devices developer preview now commercial release soon
    43. 43. BLUEPRINT the mobile platform
    44. 44. BLUEPRINT the mobile platform not another mobile OS
    45. 45. BLUEPRINTthe mobile platform not another mobile OS not a platform for games
    46. 46. BLUEPRINTthe mobile platform not another mobile OS not a platform for games not proprietary
    47. 47. BLUEPRINTthe mobile platform not another mobile OS not a platform for games not proprietary just return Blueprint XML
    48. 48. BLUEPRINT the mobile platform
    49. 49. BLUEPRINT the mobile platform An open mobile platform that makes development easy and is the best way to create mobile internet services.
    50. 50. BLUEPRINT Developer Experience Quick Tutorial
    51. 51. I want to build stuff. Today. • Platform Overview • Blueprint Language Concept • Steps to (Widget-) Success BLUEPRINT
    52. 52. BLUEPRINT the mobile platform Yahoo! Blueprint Apps 3rd Party Blueprint Apps Blueprint language specification Infrastructure Runtimes SDK Gallery Yahoo! Go Developer Tools Monetization Mobile Apps Reference Analytics Mobile Sites Tutorials
    53. 53. Blueprint Language: What’s that exactly? BLUEPRINT
    54. 54. Blueprint Language: What’s that exactly? XML mark-up language, based on X-Forms BLUEPRINT
    55. 55. Blueprint Language: What’s that exactly? XML mark-up language, based on X-Forms No scripting or procedural code BLUEPRINT
    56. 56. Blueprint Language: What’s that exactly? XML mark-up language, based on X-Forms No scripting or procedural code Provides rich mobile core features and services BLUEPRINT
    57. 57. Blueprint Language: What’s that exactly? XML mark-up language, based on X-Forms No scripting or procedural code Provides rich mobile core features and services EASY! BLUEPRINT
    58. 58. Blueprint XML: Create a Page! <page> <content> <module> <header layout=quot;simplequot;> <layout-items> <block class=quot;titlequot;>Greeting</block> </layout-items> </header> <block>Hello World!</block> </module> </content> </page> BLUEPRINT
    59. 59. Blueprint XML: Create a Map! <map> <center> <latitude>37.3919</latitude> <longitude>-122.0302</longitude> </center> <map-zoom>6</map-zoom> <map-mode>map</map-mode> <map-showtraffic>false</map-showtraffic> <map-point> <location> <latitude>37.392916</latitude> <longitude>-122.033934</longitude> <street>810 Del Rey Ave</street> <city>Sunnyvale</city> <state>CA</state> <zip></zip> </location> </map-point> </map> BLUEPRINT
    60. 60. Blueprint Control: Location <location-chooser ref=quot;originquot;> <label>From:</label> </location-chooser> <location-chooser ref=quot;destinationquot;> <label>To:</label> </location-chooser> Supports GPS or Cell ID: Find Me Does not have GPS or Cell ID Information BLUEPRINT
    61. 61. Creating Blueprint Services: What do I need? BLUEPRINT
    62. 62. Creating Blueprint Services: What do I need? Any web-server BLUEPRINT
    63. 63. Creating Blueprint Services: What do I need? Any web-server Use any scripting language BLUEPRINT
    64. 64. Creating Blueprint Services: What do I need? Any web-server Use any scripting language Use any existing publishing tools BLUEPRINT
    65. 65. Creating Blueprint Services: What do I need? Any web-server Use any scripting language Use any existing publishing tools Return Blueprint! BLUEPRINT
    66. 66. Building Mobile Widget Download the Blueprint SDK 1 BLUEPRINT
    67. 67. Building Mobile Widget Download the Blueprint SDK 1 Blueprint SDK includes • Blueprint Documentation • XML Schema definitions • Templates to get started • Mobile Widget Sample Code • PHP helper class (blueprint.php) BLUEPRINT
    68. 68. Building Mobile Widget Develop your Widget 2 Widget Request HTTP Request Yahoo! Server Widget Content Blueprint (XML) Your Web Server Widget Submission Application Package BLUEPRINT
    69. 69. Building Mobile Widget Develop your Widget 2 Widget Request HTTP Request Yahoo! Server Widget Content Blueprint (XML) Your Web Server 2. Create static/ dynamic pages Widget to return Submission 2 Blueprint Application Package BLUEPRINT
    70. 70. Building Mobile Widget Develop your Widget 2 Widget Request HTTP Request Yahoo! Server Widget Content Blueprint (XML) Your Web Server 2. Create static/ dynamic pages Widget to return Submission 2 Blueprint 3. Create your Application application Package package and submit 3 BLUEPRINT
    71. 71. Building Mobile Widget Data flow Mobile Phone Yahoo! Server Your Server Request entry point User opens HTTP request to Widget publisher Widget URI specified in config.xml Includes language and location headers Blueprint page returned Includes Content-Type header; may include cache-control headers; may include cookies for Widget publisher (Cookies stored on Yahoo! Widget content returned server) User requests new data Request new content HTTP request … BLUEPRINT
    72. 72. Building Mobile Widget Interfacing with Yahoo! Servers Content Type for Blueprint Services: Content-Type: application/x-ywidget+xml Use only the UTF-8 character set. Using Cookies: Your server can set/retrieve cookies exactly as if you are serving HTML instead of Blueprint markup. The cookies are stored on Yahoo! servers Cache Control: Wherever possible, Blueprint pages are cached on the user’s device. To control caching, use the following standard HTTP headers when serving pages: Cache-Control, ETag, and If- None-Match. Only these headers affect caching BLUEPRINT
    73. 73. Building Mobile Widget Interfacing with Yahoo! Servers Internationalization and Localization: When Yahoo! Mobile application server sends a page request, the request may contain several HTTP headers, including: Accept-Language RFC 4646/4647 language code (Example: Accept-Language: en-US) Geo-Country ISO 3166 country or UN M.49 region code (Example: Geo-Country: CA) You can use the information in the headers to decide what content to return. BLUEPRINT
    74. 74. Building Mobile Widget Package your Widget 3 Application Package is a zip file containing • config.xml • Application metadata, including the URL for your web server • gallery.xml • Information for the widget gallery • Image Files • Includes icons and screen shots (for the gallery) BLUEPRINT
    75. 75. Building Mobile Widget Upload your mobile Widget 4 • http://mobile.yahoo.com/developers/test/upload • Package the widget files into a zip archive • Upload the .zip file BLUEPRINT
    76. 76. Building Mobile Widget Test your mobile Widget 5 1. Yahoo! Go Emulator: http://mobile.yahoo.com/go/tryit (Note: External links won’t work) 2. Browser http://devtest.m.yahoo.com (Note: GPS and cell-ID won’t work on desktop browser) BLUEPRINT
    77. 77. Building Mobile Widget Publish your mobile Widget 6 • http://mobile.yahoo.com/developers/submit/upload • Please test your widget before publishing • It may take 1 week for the approval process BLUEPRINT
    78. 78. Widgets Development Process Summary Download the Blueprint SDK 1 Develop your Widget 2 Package your Widget 3 Upload your mobile Widget 4 Test your mobile Widget 5 Publish your mobile Widget 6 BLUEPRINT
    79. 79. Get Numbers: Blueprint Analytics BLUEPRINT
    80. 80. Links & Support Get the SDK • Download the SDK http://mobile.yahoo.com/developers/download Get Help! • Yahoo! Tech Group http://tech.groups.yahoo.com/group/yhoomobiledevelopers • Read the Blueprint Blog http://mobile.yahoo.net/developer/blog BLUEPRINT
    81. 81. The Blueprint Design Language Tomorrow’s Mobile User Experience
    82. 82. The Language is Evolving BLUEPRINT
    83. 83. Web Sites Applications Document Centric Task Centric Content Syndication Native Look & Feel Biased to Layout Richer Experience Content Connectivity Optional Link Navigation Browser Native Functionality BLUEPRINT
    84. 84. Internet as a Platform Structured Experiences High Level Controls Stateless MVC Patterns Streamed Pages Asynchronous Requests XForms and XPath oh my! Maps Embedded Web Content Blueprint Renderer Native Applications Location Service Image Transcoding Yahoo! Services Slideshows Seamless Search Results Video Transcoding Voice Recognition Authentication Advanced Input Controls Core Control Photo Acquisition Scaled Hosting Language BLUEPRINT
    85. 85. On Demand Service Updates Let’s retain the benefits of streamed experiences Organically add features Roll out new services Serve up seasonal content BLUEPRINT
    86. 86. Aggregated Services Let’s reuse services already implemented and tested by Yahoo! ...or anyone serving up Blueprint pages. BLUEPRINT
    87. 87. Aggregated Services BLUEPRINT
    88. 88. Aggregated Services <onesearch/> BLUEPRINT
    89. 89. Web Sites Applications Document Centric Task Centric Content Syndication Native Look & Feel Biased to Layout Richer Experience Content Connectivity Optional Link Navigation Browser Native Functionality BLUEPRINT
    90. 90. Web Sites Applications Document Centric Task Centric Content Syndication Native Look & Feel Biased to Layout Richer Experience BLUEPRINT Content Connectivity Optional Link Navigation Browser Native Functionality BLUEPRINT
    91. 91. BLUEPRINT Questions?
    92. 92. Site Explorer Yahoo! Site Explorer / BOSS
    93. 93. Search Engine • Maximum content • More in-bound links • Normative URLs • Fresh-fresh-fresh
    94. 94. Number of pages crawled
    95. 95. Number of pages crawled Inbound links
    96. 96. Number of pages crawled Inbound links Detail level
    97. 97. Lost Inlinks
    98. 98. Lost Inlinks
    99. 99. 6092 Inlinks Lost OR 36% Inlinks Lost
    100. 100. Detail level
    101. 101. Unauthenticated
    102. 102. Authenticated
    103. 103. B.O.S.S. Build (your) Own Search Search
    104. 104. Site Explorer in BOSS • Inlinks (v1/v2) • Page Data (v1/v2) • Ping (v1) • Update Notification (v1)
    105. 105. Inlinks
    106. 106. Inlinks
    107. 107. Page Data
    108. 108. Ping / Update Notification Get on the Yahoo! Search Radar!
    109. 109. Site Explorer • https://siteexplorer.search.yahoo.com/ • http://developer.yahoo.com/search/siteexplorer/ • http://developer.yahoo.com/boss
    110. 110. Site Explorer Questions?
    111. 111. Feeding the Monkey: the SearchMonkey data layer, presentation applications, and you
    112. 112. What is SearchMonkey? an open platform for using structured data to build more useful and relevant search results Before After
    113. 113. Enhanced Result Key/value Pairs Image Links or abstract
    114. 114. Infobar Summary Blob
    115. 115. How to get data to SearchMonkey? Humans see: • name • picture of a person • current job • industry, … Computers see: an undifferentiated blob of HTML Can we make computers smarter?
    116. 116. Artificial intelligence is hard. Plus…
    117. 117. How does it Work?
    118. 118. How does it Work? Acme.com’s DB
    119. 119. How does it Work? Acme.com’s Site Acme.com’s DB
    120. 120. How does it Work? site owners/publishers share structured data with Yahoo! 1 Acme.com’s Site Acme.com’s DB
    121. 121. How does it Work? site owners/publishers share structured data with Yahoo! 1 RDF/Microformat Markup Acme.com’s Site Index Acme.com’s DB
    122. 122. How does it Work? site owners/publishers share structured data with Yahoo! 1 RDF/Microformat Markup Acme.com’s Site Index DataRSS feed Acme.com’s DB
    123. 123. How does it Work? site owners/publishers share structured data with Yahoo! 1 RDF/Microformat Markup Acme.com’s Site Index DataRSS feed Acme.com’s DB
    124. 124. How does it Work? site owners/publishers share structured data with Yahoo! 1 Page Extraction RDF/Microformat Markup Acme.com’s Site Index DataRSS feed Acme.com’s DB
    125. 125. How does it Work? site owners/publishers share structured data with Yahoo! 1 Page Extraction RDF/Microformat Markup Acme.com’s Site Index DataRSS feed Web Services Acme.com’s DB
    126. 126. How does it Work? site owners/publishers share structured data with Yahoo! 1 site owners & third-party developers build SearchMonkey apps 2 Page Extraction RDF/Microformat Markup Acme.com’s Site Index DataRSS feed Web Services Acme.com’s DB
    127. 127. How does it Work? site owners/publishers share structured data with Yahoo! 1 site owners & third-party developers build SearchMonkey apps 2 consumers customize their search experience with Enhanced Results or Infobars 3 Page Extraction RDF/Microformat Markup Acme.com’s Site Index DataRSS feed Web Services Acme.com’s DB
    128. 128. Data Sources: RDF and Microformats Name Cached Open Mode Notes Yahoo! Index yes yes Passive Old-School Y! Index data RDFa, eRDF yes yes Passive Vocab + markup decoupled Microformats yes yes Passive Vocab + markup coupled DataRSS feed yes no Active Atom + metadata XSLT no no Active Good for prototyping Web Service no no Active Brings in remote data
    129. 129. Approach #1: Embedded RDF <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML+RDFa 1.0//EN” quot;http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtdquot;> <html xmlns=http://www.w3.org/1999/xhtml xmlns:dc=http://purl.org/dc/elements/1.1/ xmlns:foaf=http://xmlns.com/foaf/0.1/ •Cached data lang=quot;enquot; xml:lang=quot;enquot;> <head> •allows Enhanced Results <title>The Amazing Home Page of Joe Smith</title> </head> •but not for dynamic data <body> <h1 property=quot;dc:titlequot;>Joe's Home Page</h1> • Reuse existing markup <div rel=quot;foaf:makerquot;> <h2 property=quot;foaf:namequot;>Joe Smith</h2> <div rel=quot;foaf:depictionquot; • but requires site redesign resource=quot;http://joesmith.org/images/jsmith.pngquot;> <img src=quot;/images/jsmith.pngquot; • Open approach alt=quot;Smiling headshot of Joequot; /> <p property=quot;dc:rightsquot;>Creative Commons • everyone can use Attribution 3.0 Unported</p> </div> • Passive, crawled by Y! </div> … • less bureaucracy to set up
    130. 130. Approach #2: Embedded Microformats <div id=quot;hcard-Joe-Smithquot; class=quot;vcardquot;> <span class=quot;fnquot;>Joe Smith</span> <div class=quot;adrquot;> <div class=quot;street-addressquot;>123 Murphy Avenue</div> <span class=quot;localityquot;>Sunnyvale</span>, • Cached data <span class=quot;regionquot;>California</span> <span class=quot;postal-codequot;>94086</span> • allows Enhanced Results </div> • but not for dynamic data <div class=quot;telquot;>(408) 555-1234</div> </div>… • Reuse existing markup • but requires site redesign • Open approach • everyone can use • Passive, crawled by Y! • less bureaucracy to set up
    131. 131. Data Sources: DataRSS Feed Name Cached Open Mode Notes Yahoo! Index yes yes Passive Old-School Y! Index data RDFa, eRDF yes yes Passive Vocab + markup decoupled Microformats yes yes Passive Vocab + markup coupled DataRSS feed yes no Active Atom + metadata XSLT no no Active Good for prototyping Web Service no no Active Brings in remote data
    132. 132. Approach #3: DataRSS Feed <?profile http://search.yahoo.com/searchmonkey-profile ?> <feed xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot; xsi:schemaLocation=quot;http://www.w3.org/2005/Atom ../xsd/datarss.xsdquot; xmlns:dc=quot;http://purl.org/dc/terms/” xmlns=quot;http://www.w3.org/2005/Atomquot; • Cached data xmlns:commerce=quot;http://search.yahoo.com/searchmonkey/commerce/quot; xmlns:y=quot;http://search.yahoo.com/datarss/quot;> • allows Enhanced Results <id>http://local.yahoo.com/datarss/</id> <author><name>Peter Mika (pmika@yahoo-inc.com)</name></author> • but not for dynamic data <title>Example data feed for Local</title> <updated>2008-07-16T04:05:06+07:00</updated> • Generate feed from DB <entry> • and maintain afterwards <title>Parcel 104</title> <id>http://local.yahoo.com/info-21583016-parcel-104-santa-clara</id> • Closed approach <updated>2008-07-16T04:05:06+07:00</updated> <content type=quot;application/xmlquot;> • only Yahoo! gets data <y:adjunct version=quot;1.0quot; name=quot;com.yahoo.local”> <y:item rel=quot;dc:subjectquot;> • Actively provide a feed <y:type typeof=quot;vcard:VCard commerce:Restaurant”> <y:meta property=quot;commerce:hoursOfOperationquot;> • coord w/Yahoo! to set up Breakfast daily, Lunch Mon.-Fri., Dinner Mon.-Sat.
    133. 133. Building with Structured Data • Structured data -> easy app building –Relies on RDF, microformats, DataRSS •That was the hard part • PHP in a typical app –Mostly simple assignments, Data::get() –Possibly strings, XML, math
    134. 134. Data Sources: XSLT Name Cached Open Mode Notes Yahoo! Index yes yes Passive Old-School Y! Index data RDFa, eRDF yes yes Passive Vocab + markup decoupled Microformats yes yes Passive Vocab + markup coupled DataRSS feed yes no Active Atom + metadata XSLT no no Active Good for prototyping Web Service no no Active Brings in remote data
    135. 135. Approach #4: Extract with XSLT <?xml version=quot;1.0quot;?> <xsl:stylesheet xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot; version=quot;1.0quot;> <xsl:template match=quot;/quot;> <adjunctcontainer> <adjunct id=quot;smid:{$smid}quot; version=quot;1.0quot;> • Generally not cached <item rel=quot;rel:Photo” resource=quot;{//div[@class='hresume']//div[@class='image']/img/@src}quot;/> • too slow, infobar only <item rel=quot;rel:Cardquot;> <meta property=quot;vcard:fnquot;> • but good for dynamic data <xsl:value-of select=quot;//div[@class='hresume']//span[contains(@class,'fn')]quot;/> </meta> • Scrape page with XSLT <meta property=quot;vcard:titlequot;> <xsl:value-of select=quot;//div[@class='hresume']//ul[@class='current']/liquot;/> • operates on cleaned up </meta> </item> version of the DOM </adjunct> </adjunctcontainer> • watch out for template </xsl:template> changes </xsl:stylesheet> • Easy to prototype
    136. 136. Prototyping with XSLT • What if I don’t have structured data? –I don’t own the site –I do own the site, but I want to prototype first • Build an XSLT custom data service first –Write some XSLT to extract the data and transform it into DataRSS
    137. 137. Creating an Infobar • Infobar advantages –Annotate someone else’s site –Use links and images from other domains •Mash up info from multiple sites •Affiliate / coupon links? Hmmm… –Can act on *, all websites
    138. 138. Data Sources: Web Services Name Cached Open Mode Notes Yahoo! Index yes yes Passive Old-School Y! Index data RDFa, eRDF yes yes Passive Vocab + markup decoupled Microformats yes yes Passive Vocab + markup coupled DataRSS feed yes no Active Atom + metadata XSLT no no Active Good for prototyping Web Service no no Active Brings in remote data
    139. 139. Approach #5: Call a Web Service <?xml version=quot;1.0quot;?> <xsl:stylesheet xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot; version=quot;1.0” xmlns:h=http://www.w3.org/1999/xhtml • Generally not cached xmlns:y=quot;urn:yahoo:srch” xsi:schemaLocation=quot;urn:yahoo:srch • too slow, infobar only http://api.search.yahoo.com/SiteExplorerService/V1/PageDataResponse.xsdquot;> <xsl:template match=quot;/quot;> • but good for dynamic data <adjunctcontainer xmlns:my=quot;http://example.com/ns/1.0quot;> <adjunct id=quot;smid:{$smid}quot; version=quot;1.0quot;> • Call a Remote Web <meta property=quot;my:link1quot;> <xsl:value-of select=quot;//y:Result[1]/y:Urlquot;/> Service </meta> <meta property=quot;my:result1quot;> • allows SearchMonkey apps <xsl:value-of select=quot;//y:Result[1]/y:Titlequot;/> </meta> to glue together </adjunct> </adjunctcontainer> • can handle OpenSearch </xsl:template> </xsl:stylesheet> XML natively
    140. 140. Ever-present Monkeys
    141. 141. Ever-present Monkeys
    142. 142. Ever-present Monkeys
    143. 143. Ever-present Monkeys http://ysearchblog.com/2009/03/12/embed- videos-games-and-docs-with-searchmonkey/ • Videos • Games • Documents • More soon
    144. 144. Resources • Main: –http://developer.yahoo.com/searchmonkey • Lists and Forums: –searchmonkey-developers@yahoogroups.com –http://suggestions.yahoo.com/searchmonkey • RDF and Microformats:
    145. 145. Next Steps 1. Identify content to use in SearchMonkey 2. Weigh the strengths and drawbacks of each method for providing data: – RDF – Microformats – DataRSS feed
    146. 146. SearchMonkey Questions?
    147. 147. Tom Hughes-Croucher croucher@yahoo-inc.com @sh1mmer
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×