Successfully reported this slideshow.
Your SlideShare is downloading. ×

The Future Is Here: It's Just Not Evenly Distributed

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 39 Ad

The Future Is Here: It's Just Not Evenly Distributed

Download to read offline

This is a talk for the Loughborough University Computer Society about the nitty gritty of my.Lboro, our new student portal site. It touches on cloud APIs, Zend and much, much more!

This is a talk for the Loughborough University Computer Society about the nitty gritty of my.Lboro, our new student portal site. It touches on cloud APIs, Zend and much, much more!

Advertisement
Advertisement

More Related Content

Advertisement

Similar to The Future Is Here: It's Just Not Evenly Distributed (20)

More from Martin Hamilton (20)

Advertisement

Recently uploaded (20)

The Future Is Here: It's Just Not Evenly Distributed

  1. 1. The Future is Here: It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamilton Photo by Sarath Sreekumar via Flickr
  2. 2. my.Lboro • New site bringing together student info: –Google Email, Calendar and Docs –Learn (Moodle) VLE –Library Services –Newsfeeds and key links • This talk: How it works :-)
  3. 3. App, or website?
  4. 4. But First…
  5. 5. Diagram credit: Andy Powell
  6. 6. About Me
  7. 7. Now Back to The Programme…
  8. 8. RSS/ATOM • It’s all around you <link href=“…” rel=“alternate” type=“application/rss+xml” /> • But it might need a clean up – Consider implications of embedded HTML
  9. 9. ATOM Sample with Namespaces <item> <title>Cake/Pie.</title> <pubDate>Mon, 12 Dec 2011 00:37:46 +0000 </pubDate> <link>http://lsucs.org.uk/threads/cake-pie.5963/ </link> <guid>http://lsucs.org.uk/threads/cake-pie.5963/ </guid> <author>Lord_Infamy</author> <dc:creator>Lord_Infamy</dc:creator> <slash:comments>1</slash:comments> </item>
  10. 10. Newsfeeds on my.Lboro RSS aggregator written in Perl. Choses newsfeeds based on staff/student status
  11. 11. Google Docs: DocumentsList API via Zend, with 2 Legged OAuth
  12. 12. Time for a REST GET /feeds/documents/private/full?xoauth_requestor_id=f.j.bloggs- 08%40student.lboro.ac.uk HTTP/1.1 Host: docs.google.com Connection: close User-Agent: Lboro.ac.uk-My-2.1 Zend_Framework_Gdata/1.11.1 Accept-encoding: identity Authorization: Oauth realm=”X", oauth_consumer_key=”Y", oauth_nonce=”Z", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1323821672", oauth_version="1.0", oauth_signature="4hfRnByN%2F2DZya8t797CQqPmCTg%3D”
  13. 13. 'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER, 'version' => '1.0’, 'signatureMethod' => 'HMAC-SHA1', 'consumerKey' => ‘XXX’, 'consumerSecret' => ‘YYY’ ); $config = new Zend_Oauth_Consumer($options); $token = new Zend_Oauth_Token_Access(); $httpClient = $token->getHttpClient($options); $client = new Zend_Gdata_Docs($httpClient); $feed = $client- >getDocumentListFeed('https://docs.google.com/feeds/documents/priv ate/full?xoauth_requestor_id=' . urlencode($email_address)); foreach ($feed->entries as $entry) { $title = $entry->title; $href = $link->getHref(); print "<li><a target='_gdocs' href='$href'>$title</a></li>n"; }
  14. 14. <entry> <id>https://docs.google.com/feeds/documents/private/full/spreadsheet%3A0AtfqxZt 971TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc</id> <published>2010-05-25T14:53:42.396Z</published> <updated>2010-05-25T15:02:10.470Z</updated> <category scheme='http://schemas.google.com/g/2005/labels' term='http://schemas.google.com/g/2005/labels#viewed' label='viewed'/> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/docs/2007#spreadsheet' label='spreadsheet'/> <title type='text'>Single Sign-On target services</title> <content type='text/html’ src='https://docs.google.com/feeds/download/spreadsheets/Export?key=0AtfqxZt971 TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc&amp;xoauth_requestor_id=f.j.bloggs- 08@student.lboro.ac.uk'/> <link rel='alternate' type='text/html' href='https://docs.google.com/a/student.lboro.ac.uk/spreadsheet/ccc?key=0AtfqxZt9 71TSdFFvQlRTZ3VpRkVyYkZERnVxclZMMXc&amp;hl=en_US'/> <link rel='http://schemas.google.com/spreadsheets/2006#worksheetsfeed’ type='application/atom+xml’ href='https://spreadsheets.google.com/feeds/worksheets/0AtfqxZt971TSdFFvQlRTZ3Z
  15. 15. <link rel='edit-media' type='text/html' href='https://docs.google.com/feeds/media/private/full/spreadsheet%3A0AtfqxZt971 TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc/gtg9ff6k?xoauth_requestor_id=f.j.bloggs- 08@student.lboro.ac.uk'/> <author> <name>f.j.bloggs-08</name> <email>f.j.bloggs-08@student.lboro.ac.uk</email> </author> <gd:resourceId> spreadsheet:0AtfqxZt971TSdFFvQlRTZ3VpRkVyYkZERnVxclZMMXc </gd:resourceId> <gd:lastModifiedBy> <name>f.j.bloggs-08</name> <email>f.j.bloggs-08@student.lboro.ac.uk</email> </gd:lastModifiedBy> <gd:lastViewed>2011-10-06T21:29:56.187Z</gd:lastViewed> <gd:quotaBytesUsed>0</gd:quotaBytesUsed> <docs:writersCanInvite value='true'/> </entry>
  16. 16. Gmail: Zend Library with 2 Legged OAuth
  17. 17. Google Calendar: Zend Library with 2 Legged OAuth
  18. 18. Learn widget: MySQL connection to underlying Moodle software Exported view of Underlying Student Information System
  19. 19. Budget widget: • MS SQL (ODBC) connection • Card vendor Web Services API • Home grown Library API
  20. 20. Putting It Together
  21. 21. Putting It Together Visiting http://my.lboro.ac.uk: – Shibboleth prompts for SSO login if necessary • SAML response includes LDAP attributes from Active Directory, e.g. student ID – Populates skeleton HTML of page • Starts AJAX callbacks going to render widgets • Choice of staff/student content – Appearance driven via CSS + jQuery
  22. 22. Traps for the Unwary • Are you using UTF-8 everywhere? • SimpleXMLElement barfs on malformed XML • How much intermediate caching to do? • Do you even have APIs?? • 2 Legged OAuth not well understood • REST good, SOAP bad – but use JSON rather than XML if you can • print_r() and Data::Dumper are your friends!
  23. 23. Closing Thoughts
  24. 24. CMIS / Google Calendar
  25. 25. Add mobile Version here
  26. 26. The Future is Here: It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamilton Photo by Sarath Sreekumar via Flickr

×