The Future is Here:It’s Just Not Evenly Distributed                           Martin Hamilton                          htt...
my.Lboro• New site bringing together student info:  –Google Email, Calendar and Docs  –Learn (Moodle) VLE  –Library Servic...
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 ...
ATOM Sample with Namespaces<item><title>Cake/Pie.</title><pubDate>Mon, 12 Dec 2011 00:37:46 +0000</pubDate><link>http://ls...
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...
requestScheme => Zend_Oauth::REQUEST_SCHEME_HEADER,   version => 1.0’, signatureMethod => HMAC-SHA1,   consumerKey => ‘XXX...
<entry><id>https://docs.google.com/feeds/documents/private/full/spreadsheet%3A0AtfqxZt971TSdFFvQlRTZ3ZpRkVyYkZERnVxclZMMXc...
<linkrel=edit-media type=text/htmlhref=https://docs.google.com/feeds/media/private/full/spreadsheet%3A0AtfqxZt971TSdFFvQlR...
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...
Traps for the Unwary• Are you using UTF-8 everywhere?• SimpleXMLElement barfs on malformed XML• How much intermediate cach...
Closing Thoughts
CMIS / Google Calendar
Add mobileVersion here
The Future is Here:It’s Just Not Evenly Distributed                           Martin Hamilton                          htt...
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
The Future Is Here: It's Just Not Evenly Distributed
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

1,011

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!

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
1,011
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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_hamiltonPhoto 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.LboroRSS aggregator written in Perl. Chosesnewsfeeds based on staff/student status
  11. 11. Google Docs:DocumentsListAPI via Zend,with 2 LeggedOAuth
  12. 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. 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. 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. 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. 16. Gmail:Zend Librarywith2 Legged OAuth
  17. 17. GoogleCalendar:ZendLibrary with2 LeggedOAuth
  18. 18. Learn widget:MySQL connectionto underlyingMoodle softwareExported view ofUnderlying StudentInformation 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 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. 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 mobileVersion here
  26. 26. The Future is Here:It’s Just Not Evenly Distributed Martin Hamilton http://martinh.net @martin_hamiltonPhoto by Sarath Sreekumar via Flickr
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×