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

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

on

  • 1,264 views

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!

Statistics

Views

Total Views
1,264
Views on SlideShare
902
Embed Views
362

Actions

Likes
0
Downloads
1
Comments
0

3 Embeds 362

http://blog.martinh.net 357
http://3480704540309659677_ed172087176715f6bb22b9380d500d683f7a5cb5.blogspot.com 4
http://beta.mural.ly 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • The Future is Here:It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamiltonPhoto by Sarath Sreekumar via Flickr
  • 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 :-)
  • App, or website?
  • But First…
  • Diagram credit: Andy Powell
  • About Me
  • Now Back to The Programme…
  • 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
  • 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>
  • Newsfeeds on my.LboroRSS aggregator written in Perl. Chosesnewsfeeds based on staff/student status
  • Google Docs:DocumentsListAPI via Zend,with 2 LeggedOAuth
  • 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”
  • 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";}
  • <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
  • <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>
  • Gmail:Zend Librarywith2 Legged OAuth
  • GoogleCalendar:ZendLibrary with2 LeggedOAuth
  • Learn widget:MySQL connectionto underlyingMoodle softwareExported view ofUnderlying StudentInformation System
  • Budget widget: • MS SQL (ODBC) connection • Card vendor Web Services API • Home grown Library API
  • Putting It Together
  • 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
  • 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!
  • Closing Thoughts
  • CMIS / Google Calendar
  • Add mobileVersion here
  • The Future is Here:It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamiltonPhoto by Sarath Sreekumar via Flickr