Something.js
using YQL && Raphaël for
       fun || profit

LACHSTOCK
YQL
YQL is Yahoo! Query Language
Yahoo! calls it:
An expressive SQL-like language that lets you
query, filter, and join data across Web
I call it:
An API for the public internet.
I think my description is a bit more catchy.
SELECT * FROM search.web WHERE
query="javascript"
SELECT what
FROM table
WHERE condition
= =! > < <= >=
IN LIKE
IS NULL IS NOT NULL
AND OR
Join tables with sub-selects using matching
values as a foreign key.
What is a YQL table?
What is a YQL table?




The defaults are mostly data sources for
Yahoo's own data APIs.
What is a YQL table?




HTML JSON XML
RSS ATOM CSV
feeds microformats.
What is a YQL table?




HTML JSON XML
RSS ATOM CSV
feeds microformats.
Tables are defined in XML.
<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
  <meta>
    <author>Paul Daniel</author>
    <documentationURL>http://apiwiki.twitter.com/REST+API
+Documentation#show</documentationURL>
  </meta>
  <bindings>
    <select itemPath="feed.entry" produces="XML">
      <urls>
         <url>http://twitter.com/statuses/user_timeline/{id}.atom</url>
      </urls>
      <paging model="page">
         <start default="0" id="page"/>
         <pagesize max="200" id="count"/>
         <total default="20"/>
      </paging>
      <inputs>
         <key id="since" type="xs:string" paramType="query" />
         <key id="since_id" type="xs:string" paramType="query" />
         <key id="id" type="xs:string" paramType="path" required="true"/>
      </inputs>
    </select>
  </bindings>
</table>
You can write your own.
And share them for others to use.
SHOW tables
DESC table
What’s the output?
<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="10"
yahoo:created="2009-02-11T03:16:48Z" yahoo:lang="en-US"
yahoo:updated="2009-02-11T03:16:48Z" yahoo:uri="http://
query.yahooapis.com/v1/yql?q=SELECT+*+%0AFROM+search.web+WHERE+query%3D
%22javascript%22">
    <diagnostics>
        <publiclyCallable>true</publiclyCallable>
        <url execution-time="116">http://boss.yahooapis.com/ysearch/web/
v1/javascript?format=xml&amp;start=0&amp;count=10</url>
        <user-time>119</user-time>
        <service-time>116</service-time>
        <build-version>851</build-version>
    </diagnostics>
    <results>
        <result xmlns="http://www.inktomi.com/">
            <abstract><![CDATA[<b>JavaScript</b> is super cool and awesome
and we love it.]]></abstract>
            <clickurl>http://lrd.yahooapis.com/
_ylc=X3oDMTQ4NWxyYWUxBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZ
Ed5TkouTXNxZlNMQmkEcG9zAzEEc2VydmljZQNZU2VhcmNoV2ViBHNsawN0aXRsZQRzcmNwdml
kA253RkNNVVBEQjJIMkxjVFRsQWt1ZVI0VXl6LkNJVW1TUXlBQUFLckk-/SIG=11tsuk1oo/
**http%3A//en.wikipedia.org/wiki/Ruby_(programming_language)</clickurl>
            <date>2009/02/01</date>
            <dispurl><![CDATA[<b>en.wikipedia.org</b>/wiki/<wbr><b>Ruby</
{
    "query":
    {
        "count":"10",
        "created":"2009-02-11T03:20:22Z",
        "lang":"en-US",
        "updated":"2009-02-11T03:20:22Z",
        "uri":"http://query.yahooapis.com/v1/yql?
q=SELECT+*+%0AFROM+search.web+WHERE+query%3D
%22javascript%22",
        "diagnostics":
        {
             "publiclyCallable":"true",
             "url":
            {
                 "execution-time":"109",
Specify callback with ‘callback’ for JSON-P.
call({
    "query":
    {
        "count":"10",
        "created":"2009-02-11T03:20:22Z",
        "lang":"en-US",
        "updated":"2009-02-11T03:20:22Z",
        "uri":"http://query.yahooapis.com/v1/yql?
q=SELECT+*+%0AFROM+search.web+WHERE+query%3D
%22javascript%22",
        "diagnostics":
        {
             "publiclyCallable":"true",
             "url":
            {
                 "execution-time":"109",
http://query.yahooapis.com/
v1/public/yql?q=SELECT%20*
%20%0AFROM%20search.web
%20WHERE%20query%3D
%22javscript%22
&format=json&callback=call
http://developer.yahoo.com/yql/
http://developer.yahoo.com/yql/console/
Raphaël
Dmitry calls it:
“A small JavaScript library that should simplify
your work with vector graphics on the web.”
I call it:
Utterly amazing.
Raphaël lets you draw cross-browser vector
graphics.
Even in IE6.
No more boxes.
“The web is not rectangular any
more”
                      - Dmitry Baranovskiy
http://raphaeljs.com/
Then we looked at lots of demos from the site...
Something.js
http://lachlanhardy.github.com/
something.js/
Questions?