Friday, July 13, 2018

IE and Conditional Styles, eXist indexing...

So two challenges this week:


  1. I had created an angular javascript addition to the catalog to display the gift book information of a title, so you can click on it, and then get a listing of all gift books from that donor. Well I have this in place for most of the year, and just happened to notice in IE, that it was not working, and it was placing the words "Gift of" on each title since the stylesheet declaration to not display was not working.

    For the longest time, I thought it was strictly a CSS issue and IE, but the more I looked into it I saw that my conditional CSS was not getting populated with anything, and just was style="$ctrl.show".

    So I started looking for information on CSS, angular ctrl elements, and IE. And sure enough, found that you must use ng-style instead of style, otherwise, some browsers like IE will remove invalid style attribute values (presence of {} etc makes it invalid) before even angular has a chance to render it. When you use ng-style angular will calculate the expression and add the inline style attributes to it.

    However, even just flipping to just ng-style, was not enough, I needed to make it ng-attr-style <span ng-attr-style="$ctrl.show"> and now it works properly in both browsers. I also rewrote what I had as a module which is better than just a component.
  2. The other challenge has been eXist, and I could not figure out how I was not able to get any results in my eXist queries to just search for full text, and I know that there must have been something different that I was doing as it had worked before.

    Below is an example:

    http://exist.willamette.edu:8080/exist/apps/METSALTO/api/SearchQuery.xquery?q=all^Editorial^phrase&collection=studentpubs&type=search

    and this returns a json string of matches, but for some reason, it would work any other collection but the one I had been working on in studentpubs. I think it came down to who I was logged in when I ran the full-text indexing query. Ran as administrator I would never get results, re-ran as myself and I get results just fine now.
I'm just glad I did not have to ponder these issues over the weekend.

Friday, July 6, 2018

ArchivesSpace Proxy...

This task should have been easier than it was. So I needed to proxy archivesspace similar to how proxy Kaltura and Omeka from libmedia.

Usual apache proxy, but on archivesspace, there are some config settings in the ruby application that need to be set.

AppConfig[:frontend_url] = "http://libtest-1.willamette.edu:8080/archives/asadmintest"

AppConfig[:public_url] = "http://libtest-1.willamette.edu:8081/archives/astest"

So for them, the staff side is the frontend URL. Once I had these set up I then set the proxy pass on libmedia:

ProxyPass /archives/asadmin http://archivesspace.willamette.edu:8080/archives/asadmin
ProxyPassReverse /archives/asadmin http://archivesspace.willamette.edu:8080/archives/asadmin

ProxyPass /archives/as http://archivesspace.willamette.edu:8081/archives/as
ProxyPassReverse /archives/as http://archivesspace.willamette.edu:8081/archives/as

Thought that would be it, but there was still a link on the main page of the interface displaying archivesspace.willamette.edu

So I added this to the config.rb file:

AppConfig[:frontend_proxy_url] = 'https://libmedia.willamette.edu/archives/asadmin'
AppConfig[:public_proxy_url] = 'https://libmedia.willamette.edu/archives/as'

Now my front page link is properly pointing at the proxied address.

Chrysalis, Chat Widget

I worked on a couple of systems projects over the last two weeks.


  1. The Chrysalis
  2. New Primo Chat widget

    This one I had been wanting to get in place for a long time. This last year since we moved to the new Primo Interface we were just using a link in the interface to our chat page, and it was not really a widget. On last Friday someone was nice enough to alert the ExLibris community that NYU libraries had posted code to GitHub that used the libraryh3lp service.

    I was able to install with npm, then I grabbed the code and integrated is as custom addition to our Primo Explore environment. The chat widget came out well, I imagine we will tweak colors and location as the summer goes on.

Friday, May 11, 2018

Usability Tests, Card Sorting, and Databases

Pretty busy week, even though finals are wrapping up next week at Willamette. So we finished the month of April with a week-long sprint for me on Usability Testing. Sara volunteered WU for working with the Digital Objects in Primo with the Alliance and that ended up being the same week that we were going to do the Usability Testing for the new Academic Commons.

Usability Testing Takeaways:
    1. We need to offer more than a $10 gift card if we want to get folks time for 20 to 30 minutes
    2. Fewer tasks in a session are better than more.
    3. Take the best notes you can, but having it videotaped would be so much easier. We have the technology lets use it.
    4. I hope we can actually test the main website, but I have a feeling we are going to have to wait until the end of the summer.

Card Sorting:


    1. Do not have a card sorting task with 66 cards in it, that's a bit of an overkill.
    2. The Optimalsort from the Alliance which came from Optimal Workshops is pretty slick, I have now signed up for a free account and we may use it for our next testing.
Databases:


    1. I finished going through all of our database entries so we were up to date with regards to whether or not the vendor had flipped to SSL. It was also just a good cleanup project, as a number of databases were not functioning. Then each time you might flip the URL to SSL you also had to update EZproxy configuration.

Wednesday, April 11, 2018

Google Feed Burner, SSL certs, and Google Analytics

I believe all three of these would qualify as systems related tasks for the first part of April.


  1. So RSS feeds with ExLibris have always been a challenge, be it getting the proper link, or elements we want to be included in the RSS feed. So about a month ago, Blake Galbreath at Washington State University posted a question on one of our Alliance Slack channels to see if anyone has had luck getting an RSS feed from Alma work in LibGuides. I decided to try it, as I know we would have done it if it worked, and sure enough, it did not and gave a 200 error message, when you use their tool to verify the RSS feed it does not validate.

    When I search the Primo listservs I noticed someone else somewhere in the midwest was bumping into the same problem. I then wondered if I took the feed and pumped it through another feed tool, like say Google FeedBurner could I then get a validated RSS feed. Boohyah, got it working and wrote it up in Confluence, and Blake and I also shared at the systems call on 4/11/17.
  2. SSL certificates, well nothing ever goes easy for me with SSL certs, but I think it's getting easier. Working on the Kaltura server, which eventually I should be able to get to Lets Encrypt, which was a pain right now, as they removed an easy way to install on sites that were already SSL. I decided to just place a new CSR request, and have Case submit to InCommon. Got the certs back, and I decided to first just copy the new certs into the same spots on the server with the old names of the files. However, even when I did that when I would check the SSL cert it was still showing the old date even on a reboot of the system. So Mike suggested it could be just as simple as the filenames still being the same. So this second time, I copied in the new certificates with their new names, updated kaltura ssl config to point to the new certs, and sure enough that fixed it. Nice.
  3. The final highlight at the start of the week, Archives needed some usage numbers on PNAA EADs, so I turned the Google Analytics which I have set up, and sure enough, I think we got some solid usage numbers. Then I even was able to show one of the archives assistants how to use Google Analytics to even get more details on where are actual use is coming from.  

Friday, March 30, 2018

Ides of March: Kaltura upgrade, OAI harvesting, Primo Explore

Three different systems things that I worked on the first couple of weeks of March:


  1. I upgraded our Kaltura instance, and usually, when I do the upgrade I run the install script and pass it an answer file. However, this time I decided to just create a brand new answer template from scratch and I got all the question entries correct for the first time. It 's like 50 answers, so I was pretty impressed.
  2. I delved back into the world of Primo harvesting probably at a bad time as there was a lot of Primo changes going on, but I was able to set up a pipe for the new Academic Commons, and also update the normalization rule for the journal articles in DSpace to be articles and the libguide PNX records to be websites.
  3.  I was able to also get our github repository up for our primo customizations here on github, I was also able to get the javascript to work to display our Gift Book links.

Personal Archiving Workshop, Library Carpentry Workshop, and Git

Not a super systems post, but some definite elements. Before Spring Break, I got to do two workshops, one at Willamette and another at Oregon State.


  1. The personal archiving workshop was organized by Sara Amato and presented by Danielle Mericle and had some great tips in it. I think the most important was is that you need to set aside the time to do the personal archiving each week, and don't try to bite off too much at the start. Really liked the libguide that she shared from Cornell. 
  2. At the Library Carpentry Workshop, we worked on Regular Expressions and on a tool called OpenRefine. I had recently used OpenRefine for our library breaklist at the end of the fall semester so it was nice to see some features I had not used in it before.
  3. Then two thoughts on Git, I had been declined a pull request but it had been waiting awhile and I had already done some other work on my repository. So I finally got the understanding down that I can just cancel the current pull request, send up my new changes to my branch and then make a new pull request. You can probably stack pull requests, but this method seemed to make more sense. Also, agree that we can keep old code around in Git or a Bitbucket repository, but let's label it as being retired or some way indicate it is no longer in production.