doing more with less: mash your way to productivity
TRANSCRIPT
Doing More with Less:Mash your Way to
Productivity
Kevin ReissUniversity Systems Librarian
Office of Library ServicesCity University of New York
SLA-NY Panel 1-21-2010
Mashups are more than just:
Why Mashups?
Low-cost/low-risk development
Rapid development cycle Do something fresh quickly Typically do not require a huge amount of staff time
Utilize someone else’s computing power, i.e. “the cloud”
More and more information service providers are enabling their content to be “mashable” Subscription content vendors “Free” Internet services
What is a Mashup?
A web application that combine data and code from content sources out on the web to produce: Modest improvements to an existing web services (ex: embedded a list
of relevant links from a third party service in an existing websites) An entirely new web application
Mashups are typically made up of both: Local Content Remote Content
A mashup is composite web application Can be thought of as “Remixing the web” Presents the user with a new view or service built on top of existing data
and services
Executed with lightweight web programming techniques Web services Application Programming Interfaces (APIs)
What do you need to know (technically speaking)?
Basic HTML Widgets “<embed>” a service or data
RSS Collating and parsing feed data is an integral part of many
mashups Many “web services” return data as feeds
Basic javascript Work with simple APIs and XML as a data format
Server side scripting languages Allows you to fully interface with APIs in your application Integrate local and remote content on a complex scale
Who’s Doing It?
Just about everyone
Yahoo Many services
Google Book/MAPS
Amazon
Libraries and library content vendors
Federated search providers/designers (these maybe the original library mashup)
Even the Library of Congress - http://id.loc.gov/authorities/
Web Services at Yahoo
Web Services at OCLC
App Services at flickr
What Does one Look Like? – A Google Maps Mashup
Or This? A Twitter Mashup
Which is possible because:
Which brings you to RSS:
Which is the basis for everything on the last slide
Mashup Building Blocks
Data that lives somewhere on the web and a good idea on what to do with it
Feeds (RSS, Atom, RDF) are often the key ingredient
Websites as a service provide content in: XML JSON
Code that lives on the web Application Programming Interfaces
Mashup Levels
Basic Widget Based Mashups
Intermediate Working with feeds Working with a mashup aware editor (ex: Yahoo
Pipes)
Advanced Working with Web Services Working with Application Programming Interfaces
(APIs) Building your own web application
Widgets
The Simplest Mashups
The Simplest Mashups
Widgets
No coding required
Copy and paste
May need security clearance to run remote javascript hosted on the widget providers web server
Explore Widgets at delicious
Widgetize Your Content
Copy and Paste
<script type="text/javascript" src="http://feeds.delicious.com/v2/js/my.delicious.account?title=My%20Delicious%20Bookmarks&icon=m&count=5&sort=date&tags&extended&name&showadd"></script>
Into the webpage of your choice
Embedded Delicious
Librarything Widgets
Select Your Options Get Your Widget
Slideshare
Which Can Give You:
The Widget Embeddable Code
This strategy works for youtube, google video, flickr, and most of the “social” web
Feed Based MashupsRepackaging and Repurposing Data
Feed-based Mashups
General strategy: Identify a bunch of feeds you want to keep track
of Organize them or mine them for useful data Process them regularly Keep track of when they fail Present the results back to your users
Basic Feed Content
JSON - http://feeds.delicious.com/v2/json/ols.inside?count=15
RSS - http://feeds.delicious.com/v2/rss/ols.inside?count=15
Basic Example - Community Planet or the Feed of Feeds
Experiment with Feeds and Yahoo Pipes (http://pipes.yahoo.com)
No coding required
A good place to experiment with and identify a mashup strategy with little risk or effort
Clone the pipes of other users to get started
When you are done with your pipe you send the ouput to:
Pipes Interface – Sorting Pubmed Query Feeds
Drag and Drop Programming
Pipe Results
Using Feeds in the Library
Use feeds to aggregate search results from commonly used queries Create a bundle of search results important to
your organizations
Use feeds to show new publications/titles Combine with Amazon or Google Book search to
add new content
Use feeds to aggregate organizational content Pull together bookmarking services of employees Pull together blogging content from employees
Pipes works with more than just Feeds: Data and Services
Web Services and APIs
Programming the Web
The API Building Block: A Restful Web Transaction
Find a data source?
Ask it a question in the form of a URL? http://myservice.com/?idrequest=myrequestcontent You also have to answer: Am I eligible to get this data? Many APIs/Web Services require a developer or account ID to use hence: http://myservice.com/?id=mydevid&request=myrequestcontent
Get data back in XML – often using Asychronous Jasvascript and XML (AJAX)
Parse data with your own local code or the api in question
Present parsed data in your application
Resources with unique IDs work great in these sorts of transactions http://myservice.com/ISBN http://myarticleservice.com/pubmedid
Example: the Yahoo! SPELL Checking Web Service
The Question:
The Answer:
Home for this Service
Where it might live? – Example Deployment
Response from Yahoo!
A fresher setting
Programming with APIs
Typically simple
The key is to fail gracefully
Make sure what the terms of usage are
Many Vendors now Provide APIs
Including: Most major social web services (flickr, LibraryThing) Most major web sources of “book” data (OCLC, Google
Books, Amazon, Open Library) Many library software vendors (Examples - Ex Libris,
Serials Solutions)
Query Worldcat via API
Using the Google Map API: Digital Murray Hill
http://murrayhill.gc.cuny.edu
Wordpress powered architectural history website Open Source Content Management System (CMS) PHP/MYSQL Driven web application
Combines a number of content sources Descriptive architectural metadata Geocoding for local addresses Google maps content flickr content
Map Example
Coding with the Google Map API
Setting the Map Canvas
Setting a Map Icon
Flickr Integration
Community Photos
Mashup Wrap-UpThings to Remember about Mashups
Mashups and Content Management Systems?
Is your current web content management system (CMS) mashup friendly?
Open source CMS systems are ideal vehicles from which to explore mashups at a substantive level
Wordpress, Drupal, Joomla, etc.
All of the above have extensions that support many of the most popular mashup data formats, data providers, and apis
A Good Place to Start
Wordpress Dashboard
Wordpress Delicious Widget
Mashup Issues
Dependence on data or code that in some part you do not control Security Policies can change Access policies can change Usage limits on key-based apis
Legal Implications Make sure to read the terms of service for any
service you expect to make public Most non-commercial issues are fine
What can I do? See if your major information service providers:
Provides feeds Try aggregating them in some useful fashion
Experiment with <embed> options from services like Youtube or Slideshare in order to expand and highlight interesting organizational content
Experiment with the major social web services: Identify a “social” aspect in your organization that
already exists See if you can aggregate it and produce a useful
new view of the data
Code your own mashup using apis
Check out Library Mashups
Visit the Programmable Web http://programmableweb.com/
Library Related APIs http://techessence.info/apis
Pro Web 2.0 Mashups by Raymond Yee http://blog.mashupguide.net
Library Mashups by Nicole Engard http://mashups.web2learning.net/ In particular visit the link compilation at:
http://mashups.web2learning.net/links
Are my services and data mashable?
Does my own website provide feeds?
Can my users <embed> content from our major services?
Have we selected services and software that play well with mashups?
Conclusions
Choose web resources that are mashable when you can Support for this is growing among web content
providers
Mashups can: Cost little beyond staff time Be fun and easy to create Be throwaway work that achieve substantial
results Add value in unexpected ways Develop into essential services