Summer, again

Summer is upon us at the Kingsborough Library! The fiscal year has ended, commencement is over, and things have quieted down in the library. I had been really busy with revisions for some papers, but those are wrapping up now too. Time to think about some summer coding projects:

  • Implement Mind AR in our library AR tour game. I posted about this previously, but there is more work to do.
  • Work on projects for the Alma Extensibility Task Force. Some existing projects need updating and some newer projects are underway.
  • Learn more about Quasar. I started on this earlier, but there is much more to learn.
  • Work on updating our Primo pages. This is both really straightforward but also weirdly difficult, because Alma.

I have the feeling that other things will be added to this list. For example, we’ll see if there will be any developments with Springshare’s move to Bootstrap 5.

Posted in summer | Leave a comment


This year, like in past years, a handful of librarians are doing #blogjune, which is a challenge to blog every day for the month of June. I think it is a wonderful initiative. Each year it is an opportunity for me to add some great new feeds to my RSS reader. It helps reestablish a blogging community of a sort, which although much smaller than it used to be, still exists. It highlights the role of blogs in our profession, where I feel they still have a contribution to make.

Given my posts here, you can see that I’m not participating this year, other than as an interested reader. I just don’t have the speed of ideation to come up with a post every day. If I did, this blog would be far more active than it is. But I 100% support the #blogjune posters. I think this a good thing for our profession and for the web in general. At the very least, it’s an opportunity for all of us to learn a bit more about each other.

Posted in blog | Leave a comment


Me from earlier today on Mastodon:

There’s a certain type of compartmentalization to social media that I don’t like. For example: this account is only about static site generators, or this account is only pics of donkeys, or whatever. Do not like! I want to follow the person who is interested in static site generators AND donkeys. It’s guaranteed that they are much more interesting.

Behind this post is a vaguely remembered idea from Martin Buber[1] that speaking to others as thou is a fundamentally different experience than addressing them as it. When we experience others as a thing, as an it, we fail to engage with them as a person. On the other hand, for Buber, the thou is a transcendent experience. I’ll withhold my opinion on transcendence, but he certainly makes a point that applies to modern social media: when we treat people as objects, as accounts, as interests, as posts, we are not actually communicating with them. The it relationship may be quantifiable, commoditizable, and exploitable, but the thou relationship is not.

[1] Buber, Martin, and Walter Kaufmann. I and Thou. Charles Scribner’s Sons, 1970.

Posted in martin buber, social media | Leave a comment

JavaScript for teaching and learning

It turns out that JavaScript has proven more useful for my job than Python. I certainly use it more. I assume this is an inevitable result of being a Web Librarian. JavaScript has seeped into my professional life.

Part of me wishes this was different. If I were at a research institution, I might find more opportunities to exercise my Python skills. But I work at a community college, where most faculty are focused on teaching, publishing about teaching, and promoting student success. And what we need is web stuff. Librarianship — and teaching more generally — needs technologies built, brought online, wired together and supported. The opportunities to use JavaScript in this context are endless.

It is nice to see JavaScript projects take flight and exist on the web. JavaScript is as vast as the web, and there’s so much to explore.

Posted in javascript, language, python | Leave a comment


Recently, I wanted to build a nice table for the web, with things like toggles, column sorting, pagination and so on. I know better than to try coding this from scratch, and that instead I should use a component library to make things easier.

My initial instinct was to turn to Bootstrap, which is a CSS framework of long standing, and which has good support for tables. I’m pretty familiar with Bootstrap, and I was pretty sure I could combine it with Vue to do what I need. Of course, others have already thought of this, and produced a library called Bootstrap Vue.

But as usual, I am several steps behind on the latest JavaScript. Bootstrap Vue has already been abandoned because it does not support Bootstrap 5, which is the latest (and only active) version of Bootstrap. I went searching for alternatives. Reddit commenters were very keen on Quasar, which has a component library built specifically for Vue. The idea of bringing together pre-built components and a JS framework makes a lot of sense to me, and I was keen to give it a try.

I got rather fixated on this last night, and stayed up until 5am wiring up an example for my co-workers. It turned out pretty well! I can share a link later, once it’s a bit more polished. While there’s certainly a lot more to learn about Quasar, so far it has been able to do exactly what I need.

Posted in bootstrap, quasar, vue | Leave a comment

Code formatters

Use a code formatter!

That’s it. That’s the whole post. If you’re writing code, you should probably assure that it’s formatted to some kind of standard. That’s what formatters do. They will style your code according to best practices so that you don’t have to worry about it.

While there are various opinions on what is best, I recommend black for Python and prettier for JavaScript, although of course there are other possibilities. Whatever language you are using will almost certainly have some options.

That is all. Thank you for your attention :)

Posted in software | Leave a comment

Mind AR

I’ve written a few times on this blog about our library’s augmented reality (AR) game, which we’ve been using during information literacy sessions. The game has been mostly successful, but we’ve had trouble with the computer vision part of it: sometimes the game identifies markers that are not actually there, and therefore shows shapes in the virtual space at the wrong times (we’ve been calling these false positives). Anyhow this was very vexing, and we had put a lot of effort into fixing it without much progress.

But this week I had a big breakthrough. I swapped in a new marker recognition library called Mind AR. It is way better than AR.js, by leaps and bounds. Here are some of the advantages I’ve seen so far:

  • No false positives.
  • It is possible to use much more detailed markers.
  • Far less CSS hackery is needed to get the games’ menus to display properly in the virtual space.
  • It is a drop-in replacement for AR.js, so our A-Frame code can remain pretty much the same.

Resolving the false-positives problem is significant because it allows us to move forward with some of our goals: we can build out quiz questions and other such dialogs, which would not have been suitable at all if they had been appearing due to false positives.

We’ve also moved the game from LibGuides to PythonAnywhere, which has opened up some additional possibilities. All in all a good week for the AR game!

Posted in ar | Leave a comment


There’s something to be said for coding at night. Programmers have long had a reputation for being up at all hours, working until exhaustion with the aid of caffeinated beverages. In my opinion, there’s merit to this stereotype. Really good coding requires immersive concentration, which can be hard to come by during the distracting daytime. But my phone usually goes silent by 11pm, and then the real work can get done.

Give me some ambient music in my headphones, a thermos of tea, and several uninterrupted hours of nighttime quiet, and I’ll write better quality code than I did all day.

Posted in Uncategorized | Leave a comment


I have recently swapped some of my responsibilities with a colleague at my library. I am no longer e-resources librarian, rather, I am now head of circulation. I am excited about this. At our library, many librarians wear multiple hats, so despite these changes, I nonetheless remain the web librarian.

There are things about circulation that I am looking forward to. Specifically, it will be nice to spend more time working with people. There are 6 college assistants, 3 student workers and one full-time staff member in the circulation department. They are all lovely and I am happy to be working with them. It will be different from e-resources. E-resources is a bit lonely sometimes; you spend a lot of time by yourself, working with spreadsheets and Alma.

The circulation staff are all very competent and self-sufficient, and the previous head of circulation managed the function well, so circulation is humming along nicely, and as long as I don’t mess it up, my interventions in the near term might be minimal. If that happens, it will free me up to work more on coding projects for my department and for the central Office of Library Services. We will see how this plays out; I am currently optimistic and excited about circulation!

Posted in circulation, eresources | Comments closed


An important part of keeping this blog sustainable has been keeping the comments only open to signed-in Commons members. I undoubtedly make some dumb posts, but I don’t need strangers telling me that. Reading the comments — especially critical comments — requires labor that I don’t have the bandwidth for, so I keep the comments mostly closed.

But this also points to a bigger issue: this blog is often (from a technical perspective) not very sophisticated. While it is largely about technology, I concede that I’m not a very accomplished technologist. What I’ve learned is that there is nonetheless an audience: I stand proudly on the side of the beginner and the non-expert who is working with technology. While I wonder what my friends who are good programmers think about my posts, I will also happily ignore the uncharitable randos who no doubt have a lot to tell me.

Posted in meta, workload | Comments closed
  • Subscribe to this blog

Skip to toolbar