Re: [CODE4LIB] web services and widgets: MAJAX 2, ticTOC lookup, Link/360 JSON, and Google Book Classes
Clever idea to put the TicToc stuff 'in the cloud'. How are you going to keep it up-to-date ? Peter -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Godmar Back Sent: dinsdag 19 mei 2009 6:03 To: CODE4LIB@LISTSERV.ND.EDU Subject: [CODE4LIB] web services and widgets: MAJAX 2, ticTOC lookup, Link/360 JSON, and Google Book Classes Hi, I would like to share a few pointers to web services and widgets Annette and I recently collaborated on. All are available under an open source license. Widgets are CSS-styled HTML elements (span or div) that provide dynamic behavior related to the underlying web service. These are suitable for non-JavaScript programmers familiar with HTML/CSS. 1. MAJAX 2: Includes a JSON web service (e.g., http://libx.lib.vt.edu/services/majax2/isbn/1412936373 or http://libx.lib.vt.edu/services/majax2/isbn/006073132x?opacbase=http%3A% 2F%2Flibcat.lafayette.edu%2Fsearchjsoncallback=majax.processResults ) and a set of widgets to include results into web pages, see http://libx.lib.vt.edu/services/majax2/ Supports the same set of features as MAJAX 1 (libx.org/majax) Source is at http://code.google.com/p/majax2/ 2. ticTOC lookup: is a Google App Engine app that provides a REST interface to JISC's ticTOC data set that maps ISSN to URLs of table of contents RSS feeds. See http://tictoclookup.appspot.com/ Example: http://tictoclookup.appspot.com/0028-0836 and optional refinement by title: http://tictoclookup.appspot.com/0028-0836?title=Nature A widget library is available; see http://laurel.lib.vt.edu/record=b1251610~S7 for a demo (shows floating tooltips with table of contents preview via Google Feeds and places a link to RSS feeds) The source is at http://code.google.com/p/tictoclookup/ and includes a stand-alone version of the web service which doesn't use GAE. The widget library includes support for integration into III's record display. 3. Google Book Classes at http://libx.lib.vt.edu/services/googlebooks/ - these are widgets for Google's Book Search Dynamic Links API. Noteworthy is support for integration into III's OPAC on the search results page (briefcit.html), on the so-called bib display page (bib_display.html) and their WebBridge product via field selectors, all without JavaScript. Source is at http://code.google.com/p/googlebooks/ 4. A Link/360 JSON Proxy. See http://libx.lib.vt.edu/services/link360/index.html This one takes Serials Solution's Link/360 XML Service and proxies it as JSON. Currently does not include a widget set. Caches results 24 hours to match db update frequency. Source is at http://code.google.com/p/link360/ Could be combined with a widget library, or programmed to directly, to weave Link/360 holdings data into pages. All JSON services accept 'jsoncallback=' for cross-domain client-side integration. The libx.lib.vt.edu URLs are ok to use for testing, but for production use we recommend your own server. All modules are written in Python as WSGI scripts, requiring setup as simple as mod_wsgi + .htaccess. - Godmar
Re: [CODE4LIB] web services and widgets: MAJAX 2, ticTOC lookup, Link/360 JSON, and Google Book Classes
On Tue, May 19, 2009 at 8:26 AM, Boheemen, Peter van peter.vanbohee...@wur.nl wrote: Clever idea to put the TicToc stuff 'in the cloud'. How are you going to keep it up-to-date ? By periodically reuploading the entire set (which takes about 15-20 mins), new or changed records can be updated. A changed record is one with a new RSS feed for the same ISSN + Title combination; the data is keyed by ISSN+Title. This process can be optimized by only uploading the delta (you upload .csv files, so the delta can be obtained easily via comm(1)). Removing records is a bit of a hassle since GAE does not provide an easy-to-use interface for that. It's possible to wipe an entire table clean by repeatedly deleting 500 records at a time (the entire set is about 19,000 records), then doing a fresh import. This can be done by uploading a console application into the cloud. (http://con.appspot.com/console/help/about ) Alternatively, smaller sets of records can be deleted via a remove handler, which I haven't implemented yet. A script will need to post the data to be removed against the handler. Will do that though if anybody uses it. User impact is low if old records aren't removed. A possible alternative is to have the GAE app periodically verify the validity of each requested record with a server we'd have to run. (Pulling the data straight from tictocs.ac.uk doesn't work since it's larger what you're allowed to fetch.) This approach would somewhat defeat the idea of the cloud since we'd have to rely on keeping that server operational, albeit at a lower degree of availability and load. Another potential issue is the quota Google provides: you get 10GBytes and 1.3M requests free per 24 hour period, then they start charging you ($.12 per GByte) I think I mentioned in my post that I included a non-GAE version of the server that only requires mod_wsgi. For that standalone version, keeping the data set up to date is implemented by checking the last mod time of its localy copy - it will reread its data when it detects a more recent jrss.txt in its current directory, so keeping its data up to date is a simple a periodically curling http://www.tictocs.ac.uk/text.php - Godmar
[CODE4LIB] web services and widgets: MAJAX 2, ticTOC lookup, Link/360 JSON, and Google Book Classes
Hi, I would like to share a few pointers to web services and widgets Annette and I recently collaborated on. All are available under an open source license. Widgets are CSS-styled HTML elements (span or div) that provide dynamic behavior related to the underlying web service. These are suitable for non-JavaScript programmers familiar with HTML/CSS. 1. MAJAX 2: Includes a JSON web service (e.g., http://libx.lib.vt.edu/services/majax2/isbn/1412936373 or http://libx.lib.vt.edu/services/majax2/isbn/006073132x?opacbase=http%3A%2F%2Flibcat.lafayette.edu%2Fsearchjsoncallback=majax.processResults ) and a set of widgets to include results into web pages, see http://libx.lib.vt.edu/services/majax2/ Supports the same set of features as MAJAX 1 (libx.org/majax) Source is at http://code.google.com/p/majax2/ 2. ticTOC lookup: is a Google App Engine app that provides a REST interface to JISC's ticTOC data set that maps ISSN to URLs of table of contents RSS feeds. See http://tictoclookup.appspot.com/ Example: http://tictoclookup.appspot.com/0028-0836 and optional refinement by title: http://tictoclookup.appspot.com/0028-0836?title=Nature A widget library is available; see http://laurel.lib.vt.edu/record=b1251610~S7 for a demo (shows floating tooltips with table of contents preview via Google Feeds and places a link to RSS feeds) The source is at http://code.google.com/p/tictoclookup/ and includes a stand-alone version of the web service which doesn't use GAE. The widget library includes support for integration into III's record display. 3. Google Book Classes at http://libx.lib.vt.edu/services/googlebooks/ - these are widgets for Google's Book Search Dynamic Links API. Noteworthy is support for integration into III's OPAC on the search results page (briefcit.html), on the so-called bib display page (bib_display.html) and their WebBridge product via field selectors, all without JavaScript. Source is at http://code.google.com/p/googlebooks/ 4. A Link/360 JSON Proxy. See http://libx.lib.vt.edu/services/link360/index.html This one takes Serials Solution's Link/360 XML Service and proxies it as JSON. Currently does not include a widget set. Caches results 24 hours to match db update frequency. Source is at http://code.google.com/p/link360/ Could be combined with a widget library, or programmed to directly, to weave Link/360 holdings data into pages. All JSON services accept 'jsoncallback=' for cross-domain client-side integration. The libx.lib.vt.edu URLs are ok to use for testing, but for production use we recommend your own server. All modules are written in Python as WSGI scripts, requiring setup as simple as mod_wsgi + .htaccess. - Godmar