Yahoo’s open!
          Offers for developers.



Chris Heilmann, Open Source Event , Ankara, Turkey, June 2008
Hi, I am Chris.
I’ll be here for a few more
 hours, then I am back to
      London, England.
I will *so* miss the weather
        and the coffee.
You lucky, lucky people.
When I am gone, go and
speak to Volkan – out there.
3x
Anyways...
Being a web developer is not
           easy.
We spend most of our time
not developing but fixing
         bugs.
If the bugs are straight
forward, then that is not an
           issue.
Most of the time, we fix issues
though that are hard to track
    down, impossible to
reproduce or just plain weird.
The problem is that the web
  and browsers are not a
   mature development
       environment.
Bug fixing is not an effective
       use of our time.
Which is why we do
 something to make our
environment less random.
I will show you a lot of
    resources now.
However, the good news is
that they all are available
 from one starting point:
http://developer.yahoo.com
Let’s start with the APIs
The coolest thing about our
           APIs?
Output formats that make
          sense:
JSON, serialized PHP, XML
Everybody Duck!
There will be code
Retrieving and displaying
   photos from Flickr.
Text


http://api.flickr.com/services/feeds/photos_public.gne?


      id=11414938@N00&format=     atom
Text


http://api.flickr.com/services/feeds/photos_public.gne?


        id=11414938@N00&format=    json
format=json

jsonFlickrFeed({
	 	 quot;titlequot;: quot;Uploads from codepo8quot;,
	 	 quot;linkquot;: quot;http://www.fli...
format=json&jsoncallback=foo

foo({
	 	 quot;titlequot;: quot;Uploads from codepo8quot;,
	 	 quot;linkquot;: quot;http://w...
<div id=quot;flickrquot;></div>
<script type=quot;text/javascriptquot;>
  function myflickr(data){
     var f = document.g...
What about server side?
<?php
     $url = 'http://api.flickr.com/services/feeds/
photos_public.gne?tags='.$tag.'&format=php_serial';
     $ch = cu...
<?php
    $url = 'http://api.flickr.com/services/feeds/
photos_public.gne?tags='.$tag.'&format=php_serial';
    $ch = curl...
http://icant.co.uk/easy-flickr/making-of/
These rules apply to almost
    every API we offer.
You can cut down the
information to the bare
  minimum you need.
But what if the APIs don’t
offer the right format or you
 need to mix the data with
       other services?
★   Any input, any
    processing, any
    output
★   Infinite ways to
    combine and
    recombine data feeds
★   Output...
So much for the data...
... the display is the real
     challenge though.
The Yahoo User Interface
library is what we use to
           build.
It is there to fix issues we
know and encountered in a
       central location.
Find issue
      Fix issue
  Tell YUI about it
   Fix goes in YUI
No an issue any more.
We have a lot of users, a lot of
sites and an amazing amount
  of issues come out of that.
We already fixed a lot.
YUI is...
    A pattern library
(what solution is there to
   solve a user need)
YUI is...
    A JavaScript library
(Make all browsers work like
      the good ones)
YUI is...
    A CSS framework
(Create layouts that work
    across browsers)
YUI is...
A development methodology.
   (Unobtrusive Scripting,
 Progressive Enhancement)
YUI is...
A development tools suite:
  Logger, Profiler, Packer
YUI is...
Fully documented (JavaDoc)
  and with lots and lots of
         examples.
YUI is...
    Free and open source
(forkable, no open repository
            - yet)
YUI is...
Hosted by us and delivered as
close to your users as possible
        (if you want to)
YUI is...
Making your life a *lot*
       easier.
Tell us about your use of YUI!
So we offer our code and
    content to you.
In English, for the moment.
we tried translating...
content = content.replace(/u/g,’ü’);
...but then we realized it
makes more sense to get
 folks like Volkan on the
          ground.
... so yeah, talk to him.
What about our systems?
Are they open?
SearchMonkey opens Yahoo
  search result pages for
       developers.
There are two types of
   enhancements.
Enhanced results override the
      original display.
Infobars add drop-down
        menus:
You write your monkeys in
       secure PHP
    (no file or cookie nasties allowed)
And you can use any
information we know about
         this URL.
And if there is not enough
       information...
Use XML-Based Atom Feeds,
RDF markups, Microformats,
OpenSearch data or build a
   Custom Data Service.
For example:
Using microformats in the
     BBC site, we can display
     showtimes of programs
    already in the result page:
http://...
Questions?
     Christian Heilmann | http://wait-till-i.com | twitter: codepo8




Thanks to:
Apelad (http://www.flickr.co...
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Yahoo is open to developers
Upcoming SlideShare
Loading in …5
×

Yahoo is open to developers

10,241 views

Published on

My presentation at the Open Source Event in the University of Economics and Technology in Ankara, Turkey

Published in: Technology
3 Comments
6 Likes
Statistics
Notes
  • Amit, thanks a ton for the videos....
    makes the presentation much more valuable....
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • the second one

    <br /><object width="350" height="220"><param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.4" /><param name="allowFullScreen" value="true" /><param name="flashVars" value="id=8432228&vid=2950180&lang=en-us&intl=us&thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/3767/66978351.jpeg&embed=1" /><embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.4" type="application/x-shockwave-flash" width="350" height="220" allowFullScreen="true" flashVars="id=8432228&vid=2950180&lang=en-us&intl=us&thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/3767/66978351.jpeg&embed=1" ></embed></object>
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • here's the video as well

    <br /><object width="350" height="220"><param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.4" /><param name="allowFullScreen" value="true" /><param name="flashVars" value="id=8431899&vid=2949998&lang=en-us&intl=us&thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/3767/66976806.jpeg&embed=1" /><embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.4" type="application/x-shockwave-flash" width="350" height="220" allowFullScreen="true" flashVars="id=8431899&vid=2949998&lang=en-us&intl=us&thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/3767/66976806.jpeg&embed=1" ></embed></object>
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
10,241
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
113
Comments
3
Likes
6
Embeds 0
No embeds

No notes for slide

Yahoo is open to developers

  1. Yahoo’s open! Offers for developers. Chris Heilmann, Open Source Event , Ankara, Turkey, June 2008
  2. Hi, I am Chris.
  3. I’ll be here for a few more hours, then I am back to London, England.
  4. I will *so* miss the weather and the coffee.
  5. You lucky, lucky people.
  6. When I am gone, go and speak to Volkan – out there.
  7. 3x
  8. Anyways...
  9. Being a web developer is not easy.
  10. We spend most of our time not developing but fixing bugs.
  11. If the bugs are straight forward, then that is not an issue.
  12. Most of the time, we fix issues though that are hard to track down, impossible to reproduce or just plain weird.
  13. The problem is that the web and browsers are not a mature development environment.
  14. Bug fixing is not an effective use of our time.
  15. Which is why we do something to make our environment less random.
  16. I will show you a lot of resources now.
  17. However, the good news is that they all are available from one starting point:
  18. http://developer.yahoo.com
  19. Let’s start with the APIs
  20. The coolest thing about our APIs?
  21. Output formats that make sense: JSON, serialized PHP, XML
  22. Everybody Duck!
  23. There will be code
  24. Retrieving and displaying photos from Flickr.
  25. Text http://api.flickr.com/services/feeds/photos_public.gne? id=11414938@N00&format= atom
  26. Text http://api.flickr.com/services/feeds/photos_public.gne? id=11414938@N00&format= json
  27. format=json jsonFlickrFeed({ quot;titlequot;: quot;Uploads from codepo8quot;, quot;linkquot;: quot;http://www.flickr.com/ photos/codepo8/quot;, quot;descriptionquot;: quot;quot;, quot;modifiedquot;: quot;2008-06-17T09:14:05Zquot;, quot;generatorquot;: quot;http:// www.flickr.com/quot;, quot;itemsquot;: {[...]
  28. format=json&jsoncallback=foo foo({ quot;titlequot;: quot;Uploads from codepo8quot;, quot;linkquot;: quot;http://www.flickr.com/ photos/codepo8/quot;, quot;descriptionquot;: quot;quot;, quot;modifiedquot;: quot;2008-06-17T09:14:05Zquot;, quot;generatorquot;: quot;http:// www.flickr.com/quot;, quot;itemsquot;: {[...]
  29. <div id=quot;flickrquot;></div> <script type=quot;text/javascriptquot;> function myflickr(data){ var f = document.getElementById('flickr'); out = '<ul>'; for(var i=0;data.items[i];i++){ var now = data.items[i]; var item = '<li><a href=quot;' + now.link + 'quot;>'; item += '<img src=quot;'+now.media.m+'quot; alt=quot;'+now.title+'quot;>'; item += '</a></li>'; out += item; } out += '</ul>'; f.innerHTML = out; }; </script> <script type=quot;text/javascriptquot; src=quot;http://api.flickr.com/ services/feeds/photos_public.gne?id=11414938@N00&lang=en- us&format=json&jsoncallback=myflickrquot;> </script>
  30. What about server side?
  31. <?php $url = 'http://api.flickr.com/services/feeds/ photos_public.gne?tags='.$tag.'&format=php_serial'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $feed = curl_exec($ch); curl_close($ch); $data = unserialize($feed); if(isset($data['items'])){ $items = $data['items']; } ?>
  32. <?php $url = 'http://api.flickr.com/services/feeds/ photos_public.gne?tags='.$tag.'&format=php_serial'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $feed = curl_exec($ch); curl_close($ch); $data = unserialize($feed); if(isset($data['items'])){ $items = $data['items']; } ?>
  33. http://icant.co.uk/easy-flickr/making-of/
  34. These rules apply to almost every API we offer.
  35. You can cut down the information to the bare minimum you need.
  36. But what if the APIs don’t offer the right format or you need to mix the data with other services?
  37. ★ Any input, any processing, any output ★ Infinite ways to combine and recombine data feeds ★ Output RSS, JSON, Serialized PHP or XML ★ Clone and edit ★ Visual Pipes Editor
  38. So much for the data...
  39. ... the display is the real challenge though.
  40. The Yahoo User Interface library is what we use to build.
  41. It is there to fix issues we know and encountered in a central location.
  42. Find issue Fix issue Tell YUI about it Fix goes in YUI No an issue any more.
  43. We have a lot of users, a lot of sites and an amazing amount of issues come out of that.
  44. We already fixed a lot.
  45. YUI is... A pattern library (what solution is there to solve a user need)
  46. YUI is... A JavaScript library (Make all browsers work like the good ones)
  47. YUI is... A CSS framework (Create layouts that work across browsers)
  48. YUI is... A development methodology. (Unobtrusive Scripting, Progressive Enhancement)
  49. YUI is... A development tools suite: Logger, Profiler, Packer
  50. YUI is... Fully documented (JavaDoc) and with lots and lots of examples.
  51. YUI is... Free and open source (forkable, no open repository - yet)
  52. YUI is... Hosted by us and delivered as close to your users as possible (if you want to)
  53. YUI is... Making your life a *lot* easier.
  54. Tell us about your use of YUI!
  55. So we offer our code and content to you.
  56. In English, for the moment.
  57. we tried translating...
  58. content = content.replace(/u/g,’ü’);
  59. ...but then we realized it makes more sense to get folks like Volkan on the ground.
  60. ... so yeah, talk to him.
  61. What about our systems?
  62. Are they open?
  63. SearchMonkey opens Yahoo search result pages for developers.
  64. There are two types of enhancements.
  65. Enhanced results override the original display.
  66. Infobars add drop-down menus:
  67. You write your monkeys in secure PHP (no file or cookie nasties allowed)
  68. And you can use any information we know about this URL.
  69. And if there is not enough information...
  70. Use XML-Based Atom Feeds, RDF markups, Microformats, OpenSearch data or build a Custom Data Service.
  71. For example:
  72. Using microformats in the BBC site, we can display showtimes of programs already in the result page: http://www.digital-web.com/articles/embedded_data_with_searchmonkey/
  73. Questions? Christian Heilmann | http://wait-till-i.com | twitter: codepo8 Thanks to: Apelad (http://www.flickr.com/photos/apelad/2048858745/), Terence Yim and Digital Web

×