In a previous post, I described my recent install of PKP’s OJS. This week, I followed up by doing a run-through of a sample publication workflow on my localhost version. In brief, it was great. Without consulting the documentation, and without very much confused clicking around, I was able to peer-review and publish a sample… Continue reading OJS, part 2
Code4Lib Journal issue 60
I just wanted to point out that Code4Lib Journal, issue 60 is now published! https://journal.code4lib.org/issues/issues/issue60 Quality Control Automation for Student Driven Digitization Workflows OpenWEMI: A Minimally Constrained Vocabulary for Work, Expression, Manifestation, and Item Taming the Generative AI Wild West: Integrating Knowledge Graphs in Digital Library Systems Gamifying Information Literacy: Using Unity and Github to… Continue reading Code4Lib Journal issue 60
In praise of the case study
The academic literature of librarianship is a bit narrow sometimes. Most journals expect conformity to an article structure taken directly from the social sciences. In my experience, this can chafe at a librarian’s creativity: we sometimes need to go to tremendous efforts to find ways to shoehorn our ideas into that social science article structure,… Continue reading In praise of the case study
In praise of Bootstrap
While I’m pretty sure that it is very out of style by now, I still really like the aesthetics and functionality of Bootstrap. As an example of its utility, I recently coded up a quick, off-the-cuff static page with Bootstrap. I could make it look nice with only one ‹link› tag and no JS or… Continue reading In praise of Bootstrap
OJS
Our library is OJS-curious these days, so I thought I’d set up a test instance so that we can kick the tires. This post is a quick summary of the steps needed to get this working: Install KVM and virt-manager (and dependencies) on my laptop, to create and manage virtual machines. Spend quite a while… Continue reading OJS
Code4Lib 2025
The annual Code4Lib conference was earlier this week, and as always, it was inspiring and motivating. This was my 5th Code4Lib, and it has become an important part of my professional life. Talks range from the very high-level to the very detailed, and it is testament to this community that they reliably inspire no matter… Continue reading Code4Lib 2025
Pivot
As I get older, I recognize that my capacity to contribute meaningful code to librarianship is diminishing. For me, coding was originally a backup plan: a career path that I could pursue if I didn’t get tenure. But it didn’t come to that, thankfully. Also, it turned out that I love coding, and that it… Continue reading Pivot
Obligatory static site generator post
This past week, the CUNY Academic Commons — the home for this blog — was offline for a few days, as they were migrating to new hosting. Then, when it came back, you may have noticed that the theme for the blog was all wonky, and some of the functionality was not working. Anyhow, this… Continue reading Obligatory static site generator post
Log
On Saturday, March 14th, 2020, the day after we were sent home on account of the plague’s arrival in New York, I started keeping a log of all of the work things that I did. With very few exceptions, I’ve kept logging every day since then. The log is now approaching 10,000 entries, so I… Continue reading Log
Further into GitHub Actions
Since my last post, I’ve been moving more things over to GitHub Actions. It has been an interesting journey. Some things are pretty straightforward to port from PythonAnywhere Tasks. Others have puzzled me a bit more. As an example of the latter, I wanted to set up my rss-to-mastodon bot as a GitHub Action. It’s… Continue reading Further into GitHub Actions

