SlideShare a Scribd company logo
1 of 64
Download to read offline
YQL
and
YUI
Building
blocks
for
quick
applica8ons




Chris8an
Heilmann,
Yahoo
internal
talk,
Sunnyvale,
California,
02/02/2010
I
am
known
to
be
able
to

quickly
build
cool
demos.
hIp://keywordfinder.org/
hIp://isithackday.com/hacks/guardian/
hIp://icant.co.uk/geomaker/index.php
hIp://github.com/codepo8/QuickTrans
hIp://icant.co.uk/goohoobi/index.php?research
hIp://uk‐house‐prices.com/
The
reason
is
that
I
am

building
with
things
that

work.
And
that
gives
me
8me
to

concentrate
on
the

important
things.
One
thing
I
am
bored
of
is

wri8ng
CSS
layouts.

Which
is
why
I
am
using
a

very
simple
solu8on.
hIp://developer.yahoo.com/yui/grids/builder/
hIp://developer.yahoo.com/yui/grids/builder/
The
reason
is
that

I
want
to
support

browsers
‐
not
work
for
them.
I’d
rather
be
able
to
update

a
CSS
URI
than
re‐write
my

CSS
when
a
new
browser

comes
around.
Things
we
spend
far
too

much
8me
on:
 Hacks
to
make
browsers
work.
 Op8mising
prematurely.
 Using
our
pet
language/environment/library
 Reading
badly
wriIen
tutorials
and

 incomplete
documenta8on.
 Using
bleeding
edge
effects
and
interfaces

 and
then
trying
to
create
a
fallback
solu8on.
 Flashy
effects.
What
we
really
should

start
with
is
the
data.
This
is
where
APIs
and
web

services
come
in.
The
issue
is
that
all
of

these
are
wriIen

differently,
expect
different


authen8ca8on
and
give

back
different
data.
YQL



   hIp://developer.yahoo.com/yql/console/
YQL



   hIp://developer.yahoo.com/yql/console/




     select
{what}
from
{where}
         
where
{condi8ons}
hIp://isithackday.com/hacks/frankfurt
http://github.com/yql/yql-tables
A
few
examples...

select
*
from
flickr.photos.search

where
text="donkey"
A
few
examples...

select
*
from
flickr.photos.search

where
text="donkey"
and
license=4
A
few
examples...

select
*
from
craigslist.search
where

loca8on="s`ay"
and
type="sss"
and

query="flower
pot"
A
few
examples...

select
*
from
google.news
where

q="healthcare"
A
few
examples...
select
*
from
query.mul8
where

queries
in
(
'select
*
from
nyt.ar8cle.search
where

query="healthcare"',
'select
*
from
microsoc.bing.news
where

query="healthcare"',
'select
*
from
google.news
where
q="healthcare"'
)
A
few
examples...

select
content
from
html
where

url="hIp://www.foxnews.com/"
and

xpath="//h2/a"
A
few
examples...
select
*
from
google.translate
where
q

in
(
  select
content
from
html
where

  url="hIp://www.foxnews.com/"
and

  xpath="//h2/a"
)
and
target="fr"
A
few
examples...
insert
into
wordpress.post

(8tle,
descrip8on,
blogurl,
username,

password)

values
("Test
Title",
"This
is
a
test

body",
"hIp://yqltest.wordpress.com",

"yqltest",
"password")
Using
YQL
has
a
lot
of

benefits:
 No
8me
wasted
reading
API
docs
 Using
the
console
makes
crea8ng
complex

 queries
dead
easy.
 Data
filtering
down
to
the
least
amount

 necessary.
 Fast
pipes.
 Caching
+
conver8ng

 Server‐side
JavaScript

Using
YQL
is
easy!
(PHP)
Using
YQL
is
easy!
(JavaScript)
What
I
tend
to
do
with
YQL

is
build
APIs
that
render

out
HTML.
The
reason:
re‐use.

An
“API”
like
this
allows

you
to
build
a
non‐script

version
and
re‐use
it
with

Ajax
for
a
slicker

experience.

Furthermore,
you
can
offer

it
to
the
outside
world

later
:)
And
to
build
the
interface,

I
use
libraries.
Libraries.




             (...)
NESS
             A D
       H E 
M
  OP 
T
ST
Build
interfaces
that
work!
hIp://icant.co.uk/csscharts/
hIp://uk‐house‐prices.com/graphs.php?
bloc=230&bstart=50&bend=54&start=50&end=54&loc=230
hIp://developer.yahoo.com/yui/ar8cles/hos8ng/#configure
hIp://developer.yahoo.com/yui/examples/autocomplete/
ac_basic_array.html
hIp://developer.yahoo.com/yui/examples/slider/
slider_dual_with_highlight.html
Preview
8me!
Kids
these
days...




                     hIp://www.flickr.com/photos/jamin2/3851031112/
                     hIp://www.flickr.com/photos/codepo8/311805104/
By
using
out‐of‐the‐box

solu8ons
and
keeping
a

pragma8c
mind
you
can

quickly
build
something.
And
if
that
is
not
crea8ve

enough
for
you,
you
could

help
improving
the

libraries
that
enable
others

to
do
so.
Only
by
using,
tes8ng
and

improving
we
can
build

beIer
solu8ons.
So,
give
the
things
I

showed
a
go,
and
feed

back
to
us
what
needs

improvement!

Chris8an
Heilmann

hIp://wait‐8ll‐i.com

                                  Thanks!

hIp://developer‐evangelism.com

hIp://twiIer.com/codepo8




More Related Content

More from Christian Heilmann

The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
Christian Heilmann
 

More from Christian Heilmann (20)

Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 
Breaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconfBreaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconf
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
Supercharging Public Speaking
Supercharging Public SpeakingSupercharging Public Speaking
Supercharging Public Speaking
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for Humans
 
The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Building With YQL And YUI