Glorious Generalist

Latest Posts

On Time and a Few Other Things

I sit here with a Steven Covey matrix open and then a list of priorities and I realize the one thing I don’t really have anything doing in is this, my poor blog, which has been going in one way or another since 2000 (and technically 1999) when I was 15 and 16 and decided I would try to learn HTML. My “regular” readers will have noticed I changed to a stock theme, because my ability to do custom WordPress themes has diminished somewhat over the years. My old theme wasn’t really speaking to me any more, and this one isn’t either, but until I have time to sit down and code my with my responsive steampunk that still manages to load fairly fast vision theme this will have to do. I did dip a toe into Ello to replace my LiveJournal feelings place, but guess that didn’t grab me either. It’s taking the time for myself (and in the enlarging my worldview and abilities sense, not playing Dots and doing my nails sense) that seems to be the problem here.

So: time. I had a baby about 10 months ago, as everyone has probably picked up on. I have many thoughts about technology and babies and so on, which I will get into as I work some of these ideas into a presentation (maybe 2?) in February. Time is the other important concept that having a baby alters. John Hodgman always says to participants without kids on Judge John Hodgman that they have so much free time and don’t know it, despite what they may think. At first it seemed I had nothing but time, to the point where I did conference calls for committee meetings during maternity leave since I was bored. But slowly all extra time seemed to vanish as I did things like buy a house and take on yet more projects and committee memberships and professional development opportunities. We are now going to implement a new ILS (integrated library system) and discovery layer, so that is a good opportunity for me to revisit all my commitments and step back on some. Or lean into all of them? I enjoyed Sheryl Sandberg’s book, even if I know it’s not exactly describing my life, or even that of most people. But I do appreciate the message that if you are in the position to set a good example, you should do so. (Though I do worry about people who set unhealthy examples–and honestly, leaving the office at 5:30 is still pretty late. Make it 4:30 and then we can talk.)

The other thing is that in general I am not happy with the internet, or perhaps specifically the pieces of the web that thrive on constantly updated streams of content. Today is a perfect example. There was a traumatic event that lots of people are responding to, but retweeting or writing an explainer is not action. This year has been so wretched for so many people that I more or less have a policy of saying nothing about anything real online, other than very specific library technology issues to which I can give an informed opinion. What’s the use in doing otherwise? I feel the need to defend my not sinking myself into vitriol on a daily basis, but at the same time, I can have my private opinions, thoughts, and sorrows without sharing them with the world. Perhaps what I feel the need to defend is that I do feel strongly about a lot of things, but I want time and space to formulate a useful thought beyond a hashtag.

Summer Reading Program Form: SO SIMPLE

Last time I posted I was still months away from having a baby, now I have a four month old. Time to get back into blogging. I have some things specifically about babies and being a working mother and so on, but those will have to wait.

A few weeks ago I asked around on Twitter about creating leaderboards, but couldn’t find a lot out there that worked for exactly what I needed. I was trying to make a simple application for a staff summer reading program that would allow participants to register the pages they’ve read and leave reviews, but without a lot of bureaucracy and overhead. The main tool I found was Leaderboarded, which was interesting, but way too much for the very simple thing I was trying to do. While I could have created a form on our website using Drupal or one of our PHP forms, I figured that the much easier solution would be to use a Google Form, since otherwise it would have been very difficult for the people running the program to monitor participation unless I built an entire web application, which was overkill for a temporary program.

After poking around a bit, I found this super simple solution from David Hay at the Elk Island Public Schools (in Alberta!) Technology blog. Create a form in Google Forms that asks for a name, and then any points to which the student is entitled. Then use pivot tables with the spreadsheet to get totals, and use charts to visualize these. This was very simple, and I also appreciated his script that copies formulas to the last row of the spreadsheet as people add new entries. This of course assumes you have a unique key of a person’s name added the same way each time, which for a small group of people for a short amount of time is probably a reasonable assumption.

Here’s what I ended up with. You won’t be able to complete the form without Loyola email address (to hopefully prevent spam), but here’s what happens. Most of the time people will just be entering the pages they read last, and won’t need to add anything else. They will fill in that information, and then submit the form. But if they’ve finished a book, they can leave a review for more points. Clicking the “Did you finish a book?” radio button will take them to page 2, which is below. They can fill in author and title only, or add a review for 50 points. They also get an additional 10 points for checking the book out of the LUC libraries.



On the back end, this form records to a spreadsheet. The points are added up in an additional column I added to the spreadsheet. It adds in additional points for the challenges to the pages read using conditionals, which I’d not really used in Google Forms before. They work just as you would expect.

=C2 [pages read]+(if(J2[LUC libraries]="Yes",10[condition if true],0[condition if false])+if(isblank(I2)[review box],0[condition if true],50[condition if false))

Then I use a series of pivot tables and charts to add up the total points for each person (which we will use internally for entering participants in a raffle and determining the overall winner) and departmental points, which we will use to cheer on departments and try to make them compete against each other. To check for the individuals who are ahead, I use a pivot table with a row grouped by name with the sum of total points, and the same thing for departments. Then I made a bar graph sorted by total to make a departmental leaderboard to post on the website, which you can see here (as of publication it’s blank since the program hasn’t started yet).

Since everything is stored in an online form, the group who is running this program will be able to make edits to the form and the data if they need to, and copy the reviews out of the spreadsheet to post on the library’s blog. Very simple, and not using a database when a spreadsheet will do!



Review of Using OpenRefine by Ruben Verborgh and Max De Wilde

Using OpenrefineUsing Openrefine by Ruben Verborgh

My rating: 4 of 5 stars

Disclosure: the publisher of this book provided me with a free copy in exchange for a review. The opinions expressed in the review are my own.

While OpenRefine is an extremely useful “power tool for messy data”, its power can be difficult to master without a great deal of trial and error on the part of the user. Part of this stems from the evolving nature of the tool. It began life as Freebase Gridworks, with the purpose of cleaning up data in order to run it against linked data in Freebase. When the Freebase parent organization was acquired by Google, they rebranded the tool as Google Refine, but as Google’s priorities shifted, they stopped working on the tool and it became the open source OpenRefine. This legacy means that the tool has many pieces created by different people for different purposes. While there is quite a lot of good documentation out there on the OpenRefine site and elsewhere, this book puts it together in a easy to follow format. Like a lot of OpenRefine documentation, it is a series of “recipes” that explain how to do one specific task, but is written with the cover to cover reader in mind as well. The Google produced tutorial videos have similar coverage, but the book is more in depth, and has the advantage for readers coming from the cultural institution side of using a museum data set for examples. Another advantage is that the authors of the book have a particular interest in named entity recognition (part of the book covers the tool that one of them produced), which is particularly helpful for more abstract data sets with cultural data.

Using OpenRefine is useful for beginner or intermediate users of OpenRefine. As someone who has used OpenRefine for awhile and written about its use in libraries, this was more helpful than I expected initially, since there were pieces of functionality I’d not yet encountered in experimentation or documentation so far. My one criticism is that much of the book promises a complete explanation in the appendix of regular expressions and the Google Refine Expression Language that powers the software, but I found that the GREL documentation was less useful than I hoped, though I still learned from it. I would have preferred if that section had been earlier in the book. That aside, I would recommend this book to anyone who has been using OpenRefine or thinking about using it, and additionally for library and museum professional development collections.

View all my reviews