{"id":83,"date":"2006-12-21T00:54:22","date_gmt":"2006-12-21T05:54:22","guid":{"rendered":"http:\/\/dilettantes.code4lib.org\/2006\/12\/21\/nice-threads\/"},"modified":"2006-12-21T00:54:22","modified_gmt":"2006-12-21T05:54:22","slug":"nice-threads","status":"publish","type":"post","link":"https:\/\/rossfsinger.me\/blog\/2006\/12\/nice-threads\/","title":{"rendered":"Nice threads"},"content":{"rendered":"<p>I have been working on Fancy-Pants quite a bit in the last couple of weeks.  This is an AJAX layer over Voyager&#8217;s WebVoyage &#8212; an attempt to de-suck-ify its interface a bit.  Why is it called Fancy-Pants?  Well, Voyager still has the same underwear, it&#8217;s just got a new set of britches.<\/p>\n<p>There are two main problems that it&#8217;s trying to solve:<\/p>\n<ol>\n<li>For items that have more than one MFHD, WebVoyage won&#8217;t show any item information in the title list.<\/li>\n<li>We wanted to link to 856 URLs from the title list.<\/li>\n<\/ol>\n<p>Now, we&#8217;re already doing the second one, but it&#8217;s not implemented particularly well.  While we were solving those problems, we wanted to see what we could do about that god-awful table based display.<\/p>\n<p>I took <a target=\"_blank\" href=\"http:\/\/www2.lib.ncsu.edu\/catalog\/?Nty=1&#038;N=0&#038;Ntk=Keyword&#038;Ntt=senate%20hearings\">NCSU&#8217;s Endeca<\/a> layout as the baseline template for what I wanted the results to look like.  Right now, Fancy-Pants can only be accessed via this <a target=\"_blank\" href=\"http:\/\/rsinger.library.gatech.edu\/gil\/gil-rewriter.html\">Greasemonkey script<\/a> [<a target=\"_blank\" href=\"http:\/\/greasemonkey.mozdev.org\/\">get Greasemonkey here<\/a>].  Greasemonkey, of course, wouldn&#8217;t be a requirement, but we&#8217;re using it to inject the initial javascript call since we&#8217;re having to work on a live system.<\/p>\n<p>For the title list screen, the javascript is looping through the bib ids on the page (it grabs them from the &#8216;save record&#8217; checkboxes) and sends them to a Ruby on Rails app that queries Voyager&#8217;s Oracle database and builds a new result set.  The javascript hides the original page results (display: none) and inserts a div with the new results.  If there are multiple 856es or locations, the result has expanding\/collapsing divs to show\/hide them.<\/p>\n<p>I send the query terms to <a target=\"_blank\" href=\"http:\/\/developer.yahoo.com\/search\/web\/V1\/spellingSuggestion.html\">Yahoo&#8217;s spell check API<\/a> and will return a link to any suggestions it gives.  No, this isn&#8217;t the ideal, but I&#8217;m still in proof-of-concept stage.<\/p>\n<p>Things I still want to do with title list screen are:<\/p>\n<ol>\n<li>Come up with a way to show what the item is (journal, microform, map, etc.) &#8212; I&#8217;ve started on this, but it&#8217;s very rough<\/li>\n<li>Make the &#8216;sort by&#8217; dropdown a row of links<\/li>\n<li>Turn the &#8216;Narrow my search&#8217; button\/page into a faceted navigation menu with options that make sense for the result set (for instance, limiting language to Dutch, Middle (ca. 1050-1350) isn&#8217;t going to come into play that much).  Also add some logical facets a la Evergreen<\/li>\n<li>Replace the &#8216;save record&#8217; feature to work during the entire session and be able to save directly to Zotero, Endnote, Bibtex, CiteULike or Connotea.<\/li>\n<li>COinS and UnAPI<\/li>\n<li>Give it the same style as the rest of our new web design.<\/li>\n<\/ol>\n<p>I&#8217;m currently not doing much with the record view page, but I am adding a direct link to the record.\u00a0 I plan on integrating Umlaut responses here, as well as other context sensitive items &#8211; especially those that don&#8217;t conform well to OpenURL requests.<\/p>\n<p>If you were able to install the Greasemonkey script and want to try it out, go to <a target=\"_blank\" href=\"http:\/\/gil.gatech.edu\/\">GIL&#8217;s keyword search<\/a> and try:<\/p>\n<ol>\n<li>senate hearings &#8212; this is a good example of multiple mfhds\/856es<\/li>\n<li>thomas friedmann &#8212; a good example of &#8220;Did you mean&#8221;<\/li>\n<\/ol>\n<p>Also try a journal search for &#8220;Nature&#8221;.\u00a0 Then try whatever floats your boat and let me know how it worked.\u00a0 If you notice that it&#8217;s really slow, this is actually because of Voyager.\u00a0 The &#8220;Available online&#8221; and relevance icons are all rendered dynamically and they just grind the output to a halt.\u00a0 When we go live with this, we&#8217;d disable those features in WebVoyage to speed things up.<br \/>\nFancy-pants is by no means a final product.\u00a0 I view this as a bridge between what we have and an upcoming <a target=\"_blank\" href=\"http:\/\/incubator.apache.org\/solr\/\">Solr<\/a> based catalog interface.\u00a0 The Solr catalog will still need to interface with Voyager, so Fancy-pants would transition to that.\u00a0 Ultimately, I would like this whole process to eventually lead to the Communicat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have been working on Fancy-Pants quite a bit in the last couple of weeks. This is an AJAX layer over Voyager&#8217;s WebVoyage &#8212; an attempt to de-suck-ify its interface a bit. Why is it called Fancy-Pants? Well, Voyager still has the same underwear, it&#8217;s just got a new set of britches. There are two [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,7,10,9],"tags":[],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-coding","category-libraries","category-polishing-the-turd","category-ruby-on-rails"],"_links":{"self":[{"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":0,"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/posts\/83\/revisions"}],"wp:attachment":[{"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/media?parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/categories?post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rossfsinger.me\/blog\/wp-json\/wp\/v2\/tags?post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}