Y!OS Overview and Deep Code Dive

10,518 views

Published on

Overview of the Yahoo! Open Strategy and a deep technical code dive into the components.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,518
On SlideShare
0
From Embeds
0
Number of Embeds
176
Actions
Shares
0
Downloads
111
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Y!OS Overview and Deep Code Dive

    1. Yahoo! Open Strategy Y!OS December 20, 2008 Jonathan LeBlanc – YDN
    2. Y!OS Goals
    3. Establish a Social Dimension – Profiles http://profiles.yahoo.com
    4. Establish a Social Dimension – Small View http://my.yahoo.com
    5. Opening Yahoo – Application platform (YAP) http://developer.yahoo.com/dashboard
    6. Opening Yahoo – Application Gallery http://apps.yahoo.com/myapps
    7. <ul><li>YAP Components How does it work? </li></ul>
    8. YAP Components – Open Authentication (OAuth) <ul><li>2-legged & 3-legged OAuth </li></ul><ul><li>Consumer / Shared Secret keys </li></ul><ul><li>Similar to BBAuth, but open standard </li></ul>
    9. YAP Components – Yahoo! Markup Language (YML) http://developer.yahoo.com/yap/yml <ul><li>Allows secured access to private data </li></ul><ul><li>Can use ‘me’ and ‘viewer’ keywords </li></ul><ul><li>Small view uses YML lite </li></ul><ul><li>Will begin integrating into OSML </li></ul>
    10. YAP Components – Social APIs http://developer.yahoo.com/social/ <ul><li>Social Directory (read) </li></ul><ul><li>Contacts (read) </li></ul><ul><li>User Status (read / write) </li></ul><ul><li>Updates (read / write) </li></ul>
    11. YAP Components – Caja http://code.google.com/p/google-caja <ul><li>HTML / CSS / JavaScript securer </li></ul><ul><li>Enforces standards </li></ul><ul><li>Includes JSLint </li></ul><ul><li>YAP is the first major platform to fully integrate this technology (and keep it running) </li></ul>
    12. YAP Components – Software Development Kits (SDKs) http://developer.yahoo.com/social/sdk PHP SDK Currently Available Open and OAuth Applications ActionScript 3 SDK Currently Available Open Applications Java SDK in Development Open and OAuth Applications
    13. YAP Components – Yahoo! Query Language (YQL) http://developer.yahoo.com/yql <ul><li>SQL-like syntax </li></ul><ul><li>Private / Public Data </li></ul><ul><li>Use of certain YDN API’s </li></ul><ul><li>Captures external data feeds </li></ul>
    14. <ul><li>YAP Applications How do They Work? </li></ul>
    15. YAP Applications – Open Applications <ul><li>Runs on platform </li></ul><ul><li>Can use 2 & 3 legged OAuth </li></ul><ul><li>Contain small and large views </li></ul><ul><li>Small view uses YIV & iframe to secure </li></ul><ul><li>Large view uses Caja to secure </li></ul><ul><li>Supports OpenSocial 0.8 </li></ul>
    16. YAP Applications – Open Applications Creating an Open Application – Step 1
    17. YAP Applications – Open Applications Creating an Open Application – Step 2
    18. YAP Applications – Open Applications Creating an Open Application – Step 3
    19. YAP Applications – Open Applications Creating an Open Application – Step 4
    20. YAP Applications – Open Applications External Access Prohibited
    21. YAP Applications – OAuth Applications <ul><li>Runs off platform </li></ul><ul><li>Uses 2 & 3 legged OAuth </li></ul><ul><li>Does not contain views </li></ul><ul><li>Requires Users to Authenticate Session </li></ul>
    22. YAP Applications – OAuth Applications Creating an OAuth Application – Step 1
    23. YAP Applications – OAuth Applications Creating an OAuth Application – Step 2
    24. YAP Applications – OAuth Applications Creating an OAuth Application – Step 3
    25. YAP Applications – OAuth Applications Creating an OAuth Application – Step 4
    26. YAP Applications – OAuth Applications Creating an OAuth Application – Step 5
    27. YAP Applications – OAuth Applications Creating an OAuth Application – Step 6
    28. <ul><li>Y!OS Resources How Do I Get Started? </li></ul>
    29. Y!OS Resources - Documentation <ul><li>Y!OS Main Overview - http:// developer.yahoo.com/yos </li></ul><ul><li>YAP Main Overview - http://developer.yahoo.com/yap </li></ul><ul><li>YQL Docs - http://developer.yahoo.com/yql </li></ul><ul><li>YML Docs - http://developer.yahoo.com/yap/yml </li></ul><ul><li>Caja - http://code.google.com/p/google-caja/ </li></ul><ul><li>Caja Support - http://developer.yahoo.com/yap/guide/caja-support.html </li></ul><ul><li>Slide Deck (Overview) - http://www.slideshare.net/jleblanc/yos-presentation-presentation </li></ul><ul><li>Slide Deck (Deep Dive) - http://www.slideshare.net/jleblanc/sdk-presentation-presentation/ </li></ul>
    30. Y!OS Resources – Tools and Galleries <ul><li>YAP Dashboard - http://developer.yahoo.com/dashboard </li></ul><ul><li>YQL Console - http://developer.yahoo.com/yql/console </li></ul><ul><li>JSLint - http://www.jslint.com </li></ul><ul><li>Application Gallery - http:// apps.yahoo.com/myapps </li></ul><ul><li>YDN Forum - http://developer.yahoo.com/forum </li></ul><ul><li>PHP SDK - http://developer.yahoo.com/social/sdk/ </li></ul><ul><li>AS3 SDK - http://developer.yahoo.com/flash/yos/ </li></ul>
    31. Y!OS Deep Dive December 20, 2008 Jonathan LeBlanc – YDN
    32. <ul><li>Y!OS Code Overview Yahoo! Markup Language (YML) </li></ul>
    33. YML – Available Tags YML Tags yml:a   yml:audio   yml:form   yml:friend-selector yml:if-env   yml:image   yml:message yml:name   yml:profile-pic   yml:pronoun yml:share  yml:swf  yml:user-badge yml:visible-to-friends yml:visible-to-owner yml:visible-to-user    YML Lite Tags yml:a   yml:audio   yml:form   yml:if-env   yml:image   yml:name   yml:profile-pic   yml:pronoun   yml:user-badge  
    34. YML – Syntax Rules <ul><li>YML tags are namespaced with yml:. However, since YML documents are not actually XML, no formal namespace declaration is required. </li></ul><ul><li>All attributes must be enclosed in double quotes. To specify double quotes within an attribute value, enter the &quot; character reference. </li></ul><ul><li>If the data type of an attribute is boolean, allowed values are &quot;true&quot; and &quot;false&quot;, which must be enclosed in double quotes. </li></ul><ul><li>Singleton tags (that is, tags with no closing tags) must end with /> . </li></ul><ul><li>White space and indentations are passed through, but ignored in the interpretation phase. </li></ul><ul><li>YML tags accept and produce characters in UTF-8 only. </li></ul>
    35. YML – Sample YML Use Tab Controller
    36. YML – Sample YML Use Tab Construction
    37. YML – Sample YML Use Tab Styles
    38. <ul><li>Y!OS Code Overview PHP SDK </li></ul>
    39. PHP SDK – 2-Legged OAuth Initialization Used For: Applications which only require access to public user data and open APIs
    40. PHP SDK – 3-Legged OAuth Initialization <ul><li>Used For: </li></ul><ul><li>Applications requiring private data access </li></ul>
    41. PHP SDK – User Data Manipulation
    42. PHP SDK – Create an Update for a User
    43. PHP SDK – Set the Status (Presence) of a User
    44. <ul><li>Y!OS Code Overview Yahoo! Query Language </li></ul>
    45. YQL – Console Location: http://developer.yahoo.com/yql/console
    46. YQL – Query Structure Projection - SELECT what FROM table - SELECT * FROM social.connections Local and Remote Filtering - SELECT what FROM table WHERE filter - SELECT * FROM social.profile WHERE guid = me Sub-selects - Joining Data - SELECT what FROM table WHERE fieldvalue IN (SELECT ...) - SELECT * FROM social.profile WHERE guid IN (SELECT guid FROM social.connections WHERE owner_guid=me) Local Paging Control - SELECT what FROM table WHERE filter LIMIT 10 OFFSET 50 - SELECT * FROM web.search WHERE query=&quot;madonna&quot; LIMIT 3 OFFSET 10 Remove Table Size Control - SELECT what FROM table(0,500) WHERE condition - SELECT * FROM web.search(0,10) WHERE query=&quot;madonna&quot; AND result.XXX = something
    47. YQL – Available Tables YQL Command: SHOW tables
    48. YQL – Table Contents YQL Command: DESC social.connections
    49. YQL – Running a Query
    50. YQL – Output Types
    51. <ul><li>Y!OS Code Overview Caja </li></ul>
    52. Caja & JavaScript – Before Cajoling
    53. Caja & JavaScript – After Cajoling
    54. Caja & JavaScript – What doesn’t work? <ul><li>eval() </li></ul><ul><li>new Function() </li></ul><ul><li>Strings as event handlers (node.onclick = '...';) </li></ul><ul><li>Names ending with double / triple underscores </li></ul><ul><li>with function (with (obj) { ... }) </li></ul><ul><li>Implicit global variables (specify var variable) </li></ul><ul><li>Calling a method as a function </li></ul><ul><li>document.write </li></ul><ul><li>window.event </li></ul><ul><li>.onclick </li></ul><ul><li>OpenSocial gadgets.io.makeRequest return JS </li></ul>
    55. Caja & HTML – What doesn’t work? <ul><li>name attributes with gadgets.io.makeRequest </li></ul><ul><li>Custom attributes </li></ul><ul><li>Custom tags </li></ul><ul><li>Unclosed tags </li></ul><ul><li><embed> </li></ul><ul><li><iframe> </li></ul><ul><li><link rel=‘… </li></ul><ul><li>javascript:void(0) </li></ul><ul><li>Radio buttons in IE </li></ul><ul><li>Relative url’s </li></ul>
    56. Caja & CSS – What doesn’t work? <ul><li>* hacks </li></ul><ul><li>_ hacks </li></ul><ul><li>IE conditionals </li></ul><ul><li>Insert-after clear fix </li></ul><ul><li>expression() </li></ul><ul><li>@import </li></ul><ul><li>Background images in IE </li></ul>
    57. <ul><li>Y!OS Code Overview Common Issues </li></ul>
    58. Common platform issues and questions <ul><li>I attempt to authenticate my 2-legged / 3-legged session and receive a “null object error” </li></ul><ul><li>How do I authenticate OAuth using JavaScript? </li></ul><ul><li>I have an existing OpenSocial application. How do I get started? </li></ul><ul><li>I have an existing Facebook application. How do I get started? </li></ul><ul><li>None of my styles are displaying, what’s happening? </li></ul><ul><li>Why PHP / AS3 for the first SDK? </li></ul><ul><li>setSmallView is not working? What’s going on? </li></ul>
    59. Questions? <ul><li>Thank you! </li></ul>

    ×