The Fabulous Conference-o-Matic Browser

About

Conference-o-Matic

The ACM Digital Library contains a wealth of useful information, but it is presented very poorly, requiring the user to click through multiple pages to see anything useful, and discouraging browsing (one of the most important activities in any library, digital or otherwise!) I've always been a fan of the Smalltalk-80 browser (and its descendants, such as the column view in the Mac OS X Finder), so for Yahoo! Hack Day at Stanford I hacked together a browser for CS conference proceedings!

Usage

With three clicks (one in each browser pane), you can view the abstract and authors of any conference paper. Clicking on PDF brings up the full text (or a login page if you're not logged in to the ACM site), and clicking on citation (or the paper's title) brings up the full citation page. You may also right-click (or control-click) on a link to open up a new tab or window. Context is preserved, and it is easy to browse multiple papers in a single conference. Panes are (somewhat) resizable and results are generally cached by the web browser until the page is reloaded.

Gotchas

If you are using a web proxy (such as the Stanford Libraries proxy) which intercepts ACM URLs, you may need to visit the ACM page before attempting to load this page. The lists for single-year conferences (e.g. ANNA, ACM Policy) don't currently contain the conference name. There are still issues with resizing. Spelling and other content errors (e.g. Afrigaph '06) are also preserved. Access to journals (as well as other digital libraries such as IEEE and Usenix) is not (yet?) available.

Implementation

The client-side interface is written in HTML and JavaScript (surprise!) using YUI 2 and 3 (thanks to Dav Glass for helping me decrypt YUI 2 layout/resize.) I started the back-end scraper (great name) using Pipes, but sadly that didn't work because of a bug that caused Pipes' fetch module to eat URLs. The second back-end (demonstrated for Hack Day) used Dapper, but had serious robustness issues. This updated version uses a custom scraper written in Python and running on Google App Engine.

Bob Lantz, /edu/stanford/cs/rlantz