SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Build your web apps with
            YQL and YUI
Application = Data manipulation

                                                       +

                                             Data visualization

Yahoo! Presentation Template, Confidential         2
What are we going to cover?
YQL


 Why and what of YQL
 Overview of YQL features
 YQL Console
 Community


YUI
 What is YUI
 YUI3
 Community

Yahoo! Presentation Template, Confidential   3
Why YQL - My application

                       My awesome application
The trouble with Data
   You need to find data API
   Get Access, sign up
   Find data endpoint
   Read docs to learn the API
   Get data in different formats
   Use data after converting and filtering
   Keep up with API changes
   Multiply by number of APIs
   Deal with multiple connections

Yahoo! Presentation Template, Confidential   5
To make data
                             accessible,
                         Yahoo! Created YQL



Yahoo! Presentation Template, Confidential   6
Why – Entering the world of YQL
• Single API spec
                                my awesome application
• SQL-like
• select/insert/update/delete
• Optimization
• Powerful
• Extensible

                                          bindings
What is YQL
 The Yahoo! Query Language is an expressive SQL-like
  language that lets you query, filter, and join data across
  Web services.
 Select * from internet
 SQL-Like Language
  › Familiar to developers
  › Synonymous with data access
 Through the SHOW, DESC commands and the console,
  we enable developers to discover the available data
  sources and structure without opening another Web
  browser.
Yahoo! Presentation Template, Confidential   8
What can YQL do
    show: lists the supported tables

    desc: describes the structure of a table

    select: fetches data

    insert/update/delete: modify data

    use: use an Open Data Table

    set: define key-values across Open Data Tables




Yahoo! Presentation Template, Confidential   9
Filtering, paging, projection
 Table data can be filtered in the WHERE clause
 YQL presents data as “rows”
  › Abstracts away “paging” views of data sources
 In YQL fields are analogous to the columns of a table,
  multiple fields are delimited by commas

select Title,Address from local.search where
query="sushi" and location="san francisco, ca" and
Rating.AverageRating="4.5" LIMIT 2


Yahoo! Presentation Template, Confidential   10
Joining across sources
 Sub-select works the same as normal select

 Example: How to get weather forecast of Hong Kong?
  Join two services from different companies:

select * from weather.forecast where location in (select id
from xml where
url=“http://xoap.weather.com/search/search?where=hong+
kong”)

 Parallelizes execution
Yahoo! Presentation Template, Confidential   11
Post-query manipulation
 YQL includes built-in functions such as sort, unique, truncate, tail,
  reverse.


 Simple post-SELECT processing can be performed by appending
  the “pipe” symbol to the end of the statement
SELECT … |
  sort(field=item.date)
SELECT … | unique(field=item.title) | …

 Functions only operate on the data being returned by the query,
  nothing to do with the tables or data sources themselves


select * from social.profile where guid in (select guid from
social.connections where owner_guid=me) | sort(field="nickname")

Yahoo! Presentation Template, Confidential   12
Benefits




Yahoo! Presentation Template, Confidential   13
YQL Tables
 Built-in Tables
  › Maintained by Yahoo!
  › fantasy sports, weather, answers, flickr, geo, music,
    search, upcoming, mail …
  › Data Tables
    • Specialized tables to fetch raw data from the web
    • csv, html, json, xml …
YQL Tables
 Open tables
  › Brings the power of YQL to any API


 Community tables
  › Someone may have done the work for you already
  › http://datatables.org
  › Tables are hosted on GitHub
    • https://github.com/yql/yql-tables
YQL console
 http://developer.yahoo.com/yql/console/

 Hosted site which executes YQL queries

 IDE (Swiss Army Knife) for YQL Developers

 Quickly discover tables and iterate on queries

 Design, build, and debug

Yahoo! Presentation Template, Confidential   16
YQL Console
Console tables
Query builder and Explorer
YQL usage
 Launched October 28, 2008
 167 tables and 1244 community tables


 Powered Yahoo! properties like Livestand, many mobile apps,
  universal headers notifications, my Yahoo, toolbar. Processing over
  100 billion requests a month.


 Free external community cluster servers 10 billion requests a
  month.




Yahoo! Presentation Template, Confidential   20
YQL Tables on GitHub
Contributing
Process for adding/updating tables on Git
         1.              Fork the YQL Tables project
         2.              Clone your Fork
         3.              Make your changes
         4.              Push Changes / Commit
         5.              Make Pull Request
         6.              YQL Table Admin will moderate and merge changes and generate
                         new push to datatables.org


 Steps 1-5 are standard Git procedures, step 6 is unique
 Git Tutorials
    ›    http://help.github.com/forking
    ›    http://thinkvitamin.com/code/starting-with-git-cheat-sheet
 Yahoo! Presentation Template, Confidential            22
Information
 All YQL info on http://developer.yahoo.com/yql/

 Latest updates on yqlblog.net
  › Some recent updates:
    • New enhancements to console.
    • YQL Table Health and YQL Lint
    • Streaming.




Yahoo! Presentation Template, Confidential   23
Conclusion
 More easily build applications
  › Fewer lines of code
  › Data processing done away from app
  › Consistent and familiar syntax for all data
    access
  › Iterative environment for developing the
    queries

Yahoo! Presentation Template, Confidential   24
Conclusion
 Applications that run faster
  › Service in the cloud does the work
    • Conversion, filtering, parallel requests
  › Smaller network footprint
    • Fewer client calls
    • Smaller data amounts
    • Closer to the data, fatter pipes


                                 YQL = select * from internet
Yahoo! Presentation Template, Confidential     25
Introduce YUI 3
Presenter
• Name                                        WretchCa
                              News
 – Zordius                                       m

 – 陳建宏
                                       Auto   Music
                                  Joke
 – 小Z                                   Lifestyle
                                       Blog
• Job                             Movie
                                              Comic

 – 2003      ~ now @ Yahoo!       Map     Pulse

 – SDE                                 Homepag
                              Wretch      e    Music
 – F2E                                       Download
 2012/3/12
WHAT IS YUI

        28    2012/3/12
What is YUI
• YUI is a free, open source JavaScript and
  CSS framework for building richly
  interactive web applications
• Homepage
 – http://yuilibrary.com/




 2012/3/12
What is YUI
• Why use YUI?
 – Modular  architecture
 – Small, fast
 – Handle X browsers for you

• May I use other frameworks?
 – Yes … for small projects
 – YUI help you more in a large project: modular
   design, i18n, sandbox, plugins…
2012/3/12
What is YUI
• jQuery VS YUI 3


                               jQuery           YUI 3
                     core    Dom + Event         light

             Load modules   manual include       auto

              DOM access    CSS3 selector    CSS3 selector
               operations    OO, chaining    OO, chaining
               Versioning       strict         sandbox
               Extensions     Plugin site     YUI gallery
 2012/3/12
What is YUI
• jQuery code
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$("a").click(function(event) {
       event.preventDefault();
       alert('Hello World!');
});
</script>




 2012/3/12
What is YUI
• jQuery code
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="moduleA.js"></script>
<script src="moduleBrequireA.js"></script>
<script>
$("a").click(function(event) {
       event.preventDefault();
       alert('Hello World!');
});
</script>


 2012/3/12
What is YUI
• YUI 3 code
<script src="http://yui.yahooapis.com/3.4.1/build/yui/yui-
  min.js"></script>
<script>
YUI().use('node', 'event', function (Y) {
 Y.one('a').on('click', function (E) {
             E.preventDefault();
             alert('Hello World!');
 });
});
</script>

 2012/3/12
What is YUI
• YUI 3 code
<script src="http://yui.yahooapis.com/3.4.1/build/yui/yui-
  min.js"></script>
<script>
YUI().use('node', 'event', 'moduleBrequireA', function (Y) {
 Y.one('a').on('click', function (E) {
             E.preventDefault();
             alert('Hello World!');
 });
});
</script>

 2012/3/12
YUI 3
• Reset
 –    removes the browser-provided styling for HTML elements
• Base
 –    consistent and basic cross-browser styling
• Fonts
 –    applies a baseline font treatment to all HTML elements
      (Arial , 13px size , 16px line-height)
• Grids

 2012/3/12
YUI 3
• Reset




 2012/3/12
YUI 3
• Reset




 2012/3/12
YUI 3
• Reset + Font




 2012/3/12
YUI 3
• Javascript modules
 – Utilities,   Extensions
 – Plugins
 – Widgets

• Dynamic loaded


2012/3/12
YUI 3
                                    Dynamic
yui-min.js                          loading
   CORE,                                           Dependency
                      YUI().use()                   checking
Module System
                                       Browser
   20.3 K                              specific
                                                     Lazy
                                                   loading



             Module   Module        Module        Module


 2012/3/12
YUI 3
• Plugin
 • Add / remove feature
 • Simple
 • Configurable
 • Y.one(‘#dragdiv’).plug(Y.Plugin.Drag);
 • Y.all(‘.resize’).plug(Y.Plugin.Resize);


 2012/3/12
YUI 3
 Plugin.Align                Plugin.NodeFX
 Plugin.AutoComplete         Plugin.Resize
 Plugin.Base                 Plugin.ResizeConstrained
 Plugin.Cache                Plugin.ResizeProxy
 Plugin.CalendarNavigator    Plugin.ScrollViewList
 Plugin.ConsoleFilters       Plugin.ScrollViewPaginator
 Plugin.CreateLinkBase       Plugin.ScrollViewScrollbars
 Plugin.DDConstrained        Plugin.Shim
 Plugin.DDNodeScroll         Plugin.SortScroll
 Plugin.DDProxy              Plugin.WidgetAnim
 Plugin.DDWindowScroll       plugin.NodeFocusManager
 Plugin.Drag                 plugin.NodeMenuNav
 Plugin.Drop
YUI 3
• Widgets
 • AutoComplete
 • Calendar
 • Charts
 • Dial




2012/3/12
COMMUNITY
Community
 YUI Gallery
 ›    405 modules




 2012/3/12
Community
 Contribute
 ›    Host on github
 ›    Anyone can fork / request push




 2012/3/12
Community

           Visit
  http://yuilibrary.com/


2012/3/12
Yahoo! Developer Network
Thank you!

Weitere ähnliche Inhalte

Ähnlich wie Build your web apps with yql and yui

JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)jeresig
 
Running YUI 3 on Node.js - JSConf 2010
Running YUI 3 on Node.js - JSConf 2010Running YUI 3 on Node.js - JSConf 2010
Running YUI 3 on Node.js - JSConf 2010Adam Moore
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
YQL Publicis Hackday
YQL Publicis HackdayYQL Publicis Hackday
YQL Publicis HackdayPaul Donnelly
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Open Hack Taiwan 2012
Open Hack Taiwan 2012Open Hack Taiwan 2012
Open Hack Taiwan 2012Cody Schwebke
 
YUI3 and AlloyUI Introduction for Pernambuco.JS 2012
YUI3 and AlloyUI Introduction for Pernambuco.JS 2012YUI3 and AlloyUI Introduction for Pernambuco.JS 2012
YUI3 and AlloyUI Introduction for Pernambuco.JS 2012Eduardo Lundgren
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadRuss Fustino
 
夜宴49期《YUI Conf 2010》
夜宴49期《YUI Conf 2010》夜宴49期《YUI Conf 2010》
夜宴49期《YUI Conf 2010》Koubei Banquet
 
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...Rakuten Group, Inc.
 
Open Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C WidgetsOpen Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C Widgetsscottw
 
Wookie Intro
Wookie IntroWookie Intro
Wookie Introscottw
 
Let's run JavaScript Everywhere
Let's run JavaScript EverywhereLet's run JavaScript Everywhere
Let's run JavaScript EverywhereTom Croucher
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
 
Yui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyqlYui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyqlmirekgrymuza
 
Case Study: Plus Retail - Moving from the Old World to the New World
Case Study: Plus Retail - Moving from the Old World to the New WorldCase Study: Plus Retail - Moving from the Old World to the New World
Case Study: Plus Retail - Moving from the Old World to the New WorldForgeRock
 

Ähnlich wie Build your web apps with yql and yui (20)

JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)
 
Running YUI 3 on Node.js - JSConf 2010
Running YUI 3 on Node.js - JSConf 2010Running YUI 3 on Node.js - JSConf 2010
Running YUI 3 on Node.js - JSConf 2010
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
YQL Publicis Hackday
YQL Publicis HackdayYQL Publicis Hackday
YQL Publicis Hackday
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Open Hack Taiwan 2012
Open Hack Taiwan 2012Open Hack Taiwan 2012
Open Hack Taiwan 2012
 
YUI3 and AlloyUI Introduction for Pernambuco.JS 2012
YUI3 and AlloyUI Introduction for Pernambuco.JS 2012YUI3 and AlloyUI Introduction for Pernambuco.JS 2012
YUI3 and AlloyUI Introduction for Pernambuco.JS 2012
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 
夜宴49期《YUI Conf 2010》
夜宴49期《YUI Conf 2010》夜宴49期《YUI Conf 2010》
夜宴49期《YUI Conf 2010》
 
Banquet 49
Banquet 49Banquet 49
Banquet 49
 
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
 
Introduction to YUI
Introduction to YUIIntroduction to YUI
Introduction to YUI
 
Open Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C WidgetsOpen Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C Widgets
 
Wookie Intro
Wookie IntroWookie Intro
Wookie Intro
 
Let's run JavaScript Everywhere
Let's run JavaScript EverywhereLet's run JavaScript Everywhere
Let's run JavaScript Everywhere
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
 
Yui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyqlYui conf nov8-2010-introtoyql
Yui conf nov8-2010-introtoyql
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
BackboneJS
BackboneJSBackboneJS
BackboneJS
 
Case Study: Plus Retail - Moving from the Old World to the New World
Case Study: Plus Retail - Moving from the Old World to the New WorldCase Study: Plus Retail - Moving from the Old World to the New World
Case Study: Plus Retail - Moving from the Old World to the New World
 

Kürzlich hochgeladen

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Build your web apps with yql and yui

  • 1. Build your web apps with YQL and YUI
  • 2. Application = Data manipulation + Data visualization Yahoo! Presentation Template, Confidential 2
  • 3. What are we going to cover? YQL  Why and what of YQL  Overview of YQL features  YQL Console  Community YUI  What is YUI  YUI3  Community Yahoo! Presentation Template, Confidential 3
  • 4. Why YQL - My application My awesome application
  • 5. The trouble with Data  You need to find data API  Get Access, sign up  Find data endpoint  Read docs to learn the API  Get data in different formats  Use data after converting and filtering  Keep up with API changes  Multiply by number of APIs  Deal with multiple connections Yahoo! Presentation Template, Confidential 5
  • 6. To make data accessible, Yahoo! Created YQL Yahoo! Presentation Template, Confidential 6
  • 7. Why – Entering the world of YQL • Single API spec my awesome application • SQL-like • select/insert/update/delete • Optimization • Powerful • Extensible bindings
  • 8. What is YQL  The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services.  Select * from internet  SQL-Like Language › Familiar to developers › Synonymous with data access  Through the SHOW, DESC commands and the console, we enable developers to discover the available data sources and structure without opening another Web browser. Yahoo! Presentation Template, Confidential 8
  • 9. What can YQL do show: lists the supported tables desc: describes the structure of a table select: fetches data insert/update/delete: modify data use: use an Open Data Table set: define key-values across Open Data Tables Yahoo! Presentation Template, Confidential 9
  • 10. Filtering, paging, projection  Table data can be filtered in the WHERE clause  YQL presents data as “rows” › Abstracts away “paging” views of data sources  In YQL fields are analogous to the columns of a table, multiple fields are delimited by commas select Title,Address from local.search where query="sushi" and location="san francisco, ca" and Rating.AverageRating="4.5" LIMIT 2 Yahoo! Presentation Template, Confidential 10
  • 11. Joining across sources  Sub-select works the same as normal select  Example: How to get weather forecast of Hong Kong? Join two services from different companies: select * from weather.forecast where location in (select id from xml where url=“http://xoap.weather.com/search/search?where=hong+ kong”)  Parallelizes execution Yahoo! Presentation Template, Confidential 11
  • 12. Post-query manipulation  YQL includes built-in functions such as sort, unique, truncate, tail, reverse.  Simple post-SELECT processing can be performed by appending the “pipe” symbol to the end of the statement
SELECT … | sort(field=item.date)
SELECT … | unique(field=item.title) | …  Functions only operate on the data being returned by the query, nothing to do with the tables or data sources themselves select * from social.profile where guid in (select guid from social.connections where owner_guid=me) | sort(field="nickname") Yahoo! Presentation Template, Confidential 12
  • 14. YQL Tables  Built-in Tables › Maintained by Yahoo! › fantasy sports, weather, answers, flickr, geo, music, search, upcoming, mail … › Data Tables • Specialized tables to fetch raw data from the web • csv, html, json, xml …
  • 15. YQL Tables  Open tables › Brings the power of YQL to any API  Community tables › Someone may have done the work for you already › http://datatables.org › Tables are hosted on GitHub • https://github.com/yql/yql-tables
  • 16. YQL console  http://developer.yahoo.com/yql/console/  Hosted site which executes YQL queries  IDE (Swiss Army Knife) for YQL Developers  Quickly discover tables and iterate on queries  Design, build, and debug Yahoo! Presentation Template, Confidential 16
  • 19. Query builder and Explorer
  • 20. YQL usage  Launched October 28, 2008  167 tables and 1244 community tables  Powered Yahoo! properties like Livestand, many mobile apps, universal headers notifications, my Yahoo, toolbar. Processing over 100 billion requests a month.  Free external community cluster servers 10 billion requests a month. Yahoo! Presentation Template, Confidential 20
  • 21. YQL Tables on GitHub
  • 22. Contributing Process for adding/updating tables on Git 1. Fork the YQL Tables project 2. Clone your Fork 3. Make your changes 4. Push Changes / Commit 5. Make Pull Request 6. YQL Table Admin will moderate and merge changes and generate new push to datatables.org  Steps 1-5 are standard Git procedures, step 6 is unique  Git Tutorials › http://help.github.com/forking › http://thinkvitamin.com/code/starting-with-git-cheat-sheet Yahoo! Presentation Template, Confidential 22
  • 23. Information  All YQL info on http://developer.yahoo.com/yql/  Latest updates on yqlblog.net › Some recent updates: • New enhancements to console. • YQL Table Health and YQL Lint • Streaming. Yahoo! Presentation Template, Confidential 23
  • 24. Conclusion  More easily build applications › Fewer lines of code › Data processing done away from app › Consistent and familiar syntax for all data access › Iterative environment for developing the queries Yahoo! Presentation Template, Confidential 24
  • 25. Conclusion  Applications that run faster › Service in the cloud does the work • Conversion, filtering, parallel requests › Smaller network footprint • Fewer client calls • Smaller data amounts • Closer to the data, fatter pipes YQL = select * from internet Yahoo! Presentation Template, Confidential 25
  • 27. Presenter • Name WretchCa News – Zordius m – 陳建宏 Auto Music Joke – 小Z Lifestyle Blog • Job Movie Comic – 2003 ~ now @ Yahoo! Map Pulse – SDE Homepag Wretch e Music – F2E Download 2012/3/12
  • 28. WHAT IS YUI 28 2012/3/12
  • 29. What is YUI • YUI is a free, open source JavaScript and CSS framework for building richly interactive web applications • Homepage – http://yuilibrary.com/ 2012/3/12
  • 30. What is YUI • Why use YUI? – Modular architecture – Small, fast – Handle X browsers for you • May I use other frameworks? – Yes … for small projects – YUI help you more in a large project: modular design, i18n, sandbox, plugins… 2012/3/12
  • 31. What is YUI • jQuery VS YUI 3 jQuery YUI 3 core Dom + Event light Load modules manual include auto DOM access CSS3 selector CSS3 selector operations OO, chaining OO, chaining Versioning strict sandbox Extensions Plugin site YUI gallery 2012/3/12
  • 32. What is YUI • jQuery code <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script> $("a").click(function(event) { event.preventDefault(); alert('Hello World!'); }); </script> 2012/3/12
  • 33. What is YUI • jQuery code <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="moduleA.js"></script> <script src="moduleBrequireA.js"></script> <script> $("a").click(function(event) { event.preventDefault(); alert('Hello World!'); }); </script> 2012/3/12
  • 34. What is YUI • YUI 3 code <script src="http://yui.yahooapis.com/3.4.1/build/yui/yui- min.js"></script> <script> YUI().use('node', 'event', function (Y) { Y.one('a').on('click', function (E) { E.preventDefault(); alert('Hello World!'); }); }); </script> 2012/3/12
  • 35. What is YUI • YUI 3 code <script src="http://yui.yahooapis.com/3.4.1/build/yui/yui- min.js"></script> <script> YUI().use('node', 'event', 'moduleBrequireA', function (Y) { Y.one('a').on('click', function (E) { E.preventDefault(); alert('Hello World!'); }); }); </script> 2012/3/12
  • 36. YUI 3 • Reset – removes the browser-provided styling for HTML elements • Base – consistent and basic cross-browser styling • Fonts – applies a baseline font treatment to all HTML elements (Arial , 13px size , 16px line-height) • Grids 2012/3/12
  • 37. YUI 3 • Reset 2012/3/12
  • 38. YUI 3 • Reset 2012/3/12
  • 39. YUI 3 • Reset + Font 2012/3/12
  • 40. YUI 3 • Javascript modules – Utilities, Extensions – Plugins – Widgets • Dynamic loaded 2012/3/12
  • 41. YUI 3 Dynamic yui-min.js loading CORE, Dependency YUI().use() checking Module System Browser 20.3 K specific Lazy loading Module Module Module Module 2012/3/12
  • 42. YUI 3 • Plugin • Add / remove feature • Simple • Configurable • Y.one(‘#dragdiv’).plug(Y.Plugin.Drag); • Y.all(‘.resize’).plug(Y.Plugin.Resize); 2012/3/12
  • 43. YUI 3  Plugin.Align  Plugin.NodeFX  Plugin.AutoComplete  Plugin.Resize  Plugin.Base  Plugin.ResizeConstrained  Plugin.Cache  Plugin.ResizeProxy  Plugin.CalendarNavigator  Plugin.ScrollViewList  Plugin.ConsoleFilters  Plugin.ScrollViewPaginator  Plugin.CreateLinkBase  Plugin.ScrollViewScrollbars  Plugin.DDConstrained  Plugin.Shim  Plugin.DDNodeScroll  Plugin.SortScroll  Plugin.DDProxy  Plugin.WidgetAnim  Plugin.DDWindowScroll  plugin.NodeFocusManager  Plugin.Drag  plugin.NodeMenuNav  Plugin.Drop
  • 44. YUI 3 • Widgets • AutoComplete • Calendar • Charts • Dial 2012/3/12
  • 46. Community  YUI Gallery › 405 modules 2012/3/12
  • 47. Community  Contribute › Host on github › Anyone can fork / request push 2012/3/12
  • 48. Community Visit http://yuilibrary.com/ 2012/3/12