Your SlideShare is downloading. ×
The Future Is Here: It's Just Not Evenly Distributed
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

968
views

Published on

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!

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
968
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. The Future is Here:It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamiltonPhoto by Sarath Sreekumar via Flickr
  • 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. App, or website?
  • 4. But First…
  • 5. Diagram credit: Andy Powell
  • 6. About Me
  • 7. Now Back to The Programme…
  • 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. 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. Newsfeeds on my.LboroRSS aggregator written in Perl. Chosesnewsfeeds based on staff/student status
  • 11. Google Docs:DocumentsListAPI via Zend,with 2 LeggedOAuth
  • 12. Time for a RESTGET/feeds/documents/private/full?xoauth_requestor_id=f.j.bloggs-08%40student.lboro.ac.uk HTTP/1.1Host: docs.google.comConnection: closeUser-Agent: Lboro.ac.uk-My-2.1 Zend_Framework_Gdata/1.11.1Accept-encoding: identityAuthorization: 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. 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/private/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. <entry><id>https://docs.google.com/feeds/documents/private/full/spreadsheet%3A0AtfqxZt971TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc</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/labelsterm=http://schemas.google.com/g/2005/labels#viewedlabel=viewed/><category scheme=http://schemas.google.com/g/2005#kindterm=http://schemas.google.com/docs/2007#spreadsheetlabel=spreadsheet/><title type=text>Single Sign-On target services</title><content type=text/html’src=https://docs.google.com/feeds/download/spreadsheets/Export?key=0AtfqxZt971TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc&amp;xoauth_requestor_id=f.j.bloggs-08@student.lboro.ac.uk/><link rel=alternate type=text/htmlhref=https://docs.google.com/a/student.lboro.ac.uk/spreadsheet/ccc?key=0AtfqxZt971TSdFFvQlRTZ3VpRkVyYkZERnVxclZMMXc&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. <linkrel=edit-media type=text/htmlhref=https://docs.google.com/feeds/media/private/full/spreadsheet%3A0AtfqxZt971TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc/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. Gmail:Zend Librarywith2 Legged OAuth
  • 17. GoogleCalendar:ZendLibrary with2 LeggedOAuth
  • 18. Learn widget:MySQL connectionto underlyingMoodle softwareExported view ofUnderlying StudentInformation System
  • 19. Budget widget: • MS SQL (ODBC) connection • Card vendor Web Services API • Home grown Library API
  • 20. Putting It Together
  • 21. Putting It TogetherVisiting 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. 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. Closing Thoughts
  • 24. CMIS / Google Calendar
  • 25. Add mobileVersion here
  • 26. The Future is Here:It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamiltonPhoto by Sarath Sreekumar via Flickr