Code4Lib 2023

Code4Lib 2023 wrapped up today. I attended in person this year, as it was nearby, in Princeton, New Jersey. As always, it was really great. One of my favorite things about this conference is that I always go home feeling a lot more optimistic about my profession.

I was happy about the large number of newcomers at the conference this year. Having new faces in the room is really important for maintaining the vibrancy this community.

Also, I’m (finally) starting to feel like less of an outsider at Code4Lib. I’ve attended 4 conferences; presented at one of them; participated in the Slack; wrote an article for the journal; and even recently became an editor of the journal. You’d think I’d feel at home by now, but it has taken a long time. Maybe what has happened is that the importance of the social connections I’ve made are finally starting to overcome the impostor syndrome I started with.

Posted in code4lib, conference, imposter syndrome | Leave a comment

Modern JavaScript on campus

JavaScript has changed a lot over the years. Old browsers are not equipped to handle new syntax. ES6 (in 2015) was a major change. That was a long time ago. But unfortunately, on our campus, we still have browsers deployed in labs that predate ES6.

Why is this? My guess is that old system images still get installed, without much consideration of the browser versions. And for some reason, the browsers are not permitted to auto-update. Why this is the case is mystifying to me, but I assume there are reasons.

This makes it hard on people building websites for our campus community. You can’t use modern JavaScript and expect it to work everywhere on campus. You can write old-timey JavaScript if you like, but this can be annoying to manage and maintain. There are very good reasons why we moved on from those old JavaScript ways.

Maybe you could write conditional code that accommodates old and new JS. This is possible, but becomes complicated quickly. Or you can lobby for newer browsers — this is probably the best solution — but you may face intractable campus politics, which can be very quickly dispiriting. At this juncture, on our campus, it seems like a hard problem to solve.

Posted in javascript | Leave a comment

Vue 3

I had been meaning to upgrade our library website to Vue 3 for a while now. We had been on Vue 2 for some time. But there was a hard deadline for switching over, because Vue 2 reaches end-of-life at the end of 2023. Out of prudence I didn’t want to push up too close to that deadline, in the event that the switch might require more than a trivial amount of effort.

Anyhow, this weekend is when I finally made an attempt. It was a particularly auspicious time, because we are between semesters right now, so website traffic is way down. Of course, during the switch-over I did manage to break the production site for about 5 minutes, so I was glad to have picked a quiet weekend.

Aside from that 5 minute hiccup it went well! Because our Vue code is rather simple, the switch was pretty easy. Basically, I had to change how the Vue app is initialized, but that’s about it. Everything else worked perfectly fine when ported over to Vue 3. It feels good to be up to date with the latest version of Vue, and I am happy to no longer have that end-of-year deadline hanging over me.

Posted in vue | Leave a comment

The last days(?) of the Kingsborough Twitter archive

It looks like it might be the end of the road for our bot that archives tweets about Kingsborough Community College. Recently, the official @twitterdev account announced the impending end to the free tier of the Twitter API. On top of that, Mr. Musk himself suggested that the new replacement basic paid tier should cost $100/month, which is wildly prohibitive for our library. There’s still a lot of confusion and uncertainty about what these announcements mean for bot makers, but the gist of it is that it is not looking good for our archive.

The archive has run more or less continuously since February 2015, which is quite a good run, in my opinion. I’ve documented some of the technical bits here, here and here. We now have a dauntingly huge collection of tweets, which will hopefully serve as grist for someone’s analyses down the road. I am tempted to have a go at extracting some insights from the data set myself over the coming weeks. For now, while I’m sad that the archive is probably ending imminently, I’m happy that it ran successfully for so long.

Posted in api, archives, bots, twitter | Leave a comment

Guest blogging

For the next little while, I’m going to be guest blogging over at Choice’s new LibTech Insights blog. My first post is up already! It’s about Mastodon.

My intention is to keep Library Technology at Kingsborough going as well. Wish me luck!

Posted in meta | Leave a comment

The ghost of Code4Lib future

I was complaining about the Computers in Libraries magazine website recently, for pretty obvious reasons. I wanted to link to an article I wrote for the magazine from my faculty bio page, but I can’t in good faith send people to that website. I mean, it’s fine that the site is old; it’s actually kind of wonderful in a retro way. But I can’t present anything there as my professional work … I just can’t.

This has got me thinking about how online and professional communities age with the rest of us. Computers in Libraries has its own demographic, for better or worse. I suppose that my generation has Code4Lib, but we’re all getting older at Code4Lib too, and I wonder how long it will be before Code4Lib starts resembling the Computers in Libraries magazine webpage.

To be more positive and forward-looking about all of this: what’s next after Code4Lib? I want to see what that community is up to.

Posted in code4lib, old | Leave a comment

Become illegible

One thing I appreciate about Mastodon (and the Fediverse) is the desire among some users to not be legible. Some users don’t want to be seen, understood, or to have any “reach”. There’s a desire to not be visible, to not be widely understood, and to basically be baffling to outsiders.

I’m taking this idea of legibility from James C. Scott’s book Seeing Like a State. I’ve seen some Mastodonians explicitly reference Scott’s book. Others don’t refer to Scott directly, but are often speaking about the same thing.

There are numerous strategies for being less legible: having a private account, not posting to the public timelines, not threading posts that would make much more sense threaded, not using a real name, deliberately not explaining references, not providing context, sub-tooting, and so on. This is all behavior that is common to inward-looking groups elsewhere on the internet, but only on Mastodon have I seen illegibility as being the explicit, stated goal. It is a decidedly interesting and compelling goal, and I humbly submit it here for your consideration.

Posted in mastodon | Leave a comment


As a high school student, I spent quite a bit of time on my local BBSes. For those who are too young to remember them, or were not paying attention, BBSes were proto-internet social networks of a sort. You would use your modem to dial a local telephone number, where you would then log in to a small, shared, text-based community. They were local to your area code (unless you wanted to pay for long distance calls), and very oriented towards nerds.

There was plenty of age-inappropriate content, primitive networking (hi, fidonet), and random strangers to talk to. I learned my first lessons about online identity and online behavior. The whole experience was probably formative of the way I still think about what is “online”. It’s a shame that this whole world has now entirely disappeared, although I did meet someone on Mastodon recently who still runs a BBS in France. The closest thing that most of us have access to today is SDF and other such pubnixes, which have a similar aesthetic.

Posted in old | Leave a comment

Two roads diverged in a yellow wood, and I took the one that was not machine learning

I started making a Mastodon bot over the weekend, although I’m not super excited about it. Mostly this is because, from a technical perspective, it’s not new ground for me. The bot is text-based, and uses Python and SpaCy to work with text drawn from the Wikipedia API. I’ve done this before, so I’m not terribly enthused.

But I want to spend more time programming, so I stayed up late working on it. Frankly, I am finding it a challenge to stick with Python these days, since a bunch of the current excitement surrounding the language is around machine learning, and I am decidedly *not* interested in that, from either a technical or a social perspective.

Is this why people turn to new languages? To find a different emphasis, or maybe some different buzzy topics to work on? I didn’t realize how much I was relying on the popular Python topic du jour for motivation until all of a sudden it diverged from my interests and left me mostly adrift. I will have to reorient, and reground my programming practice in something new.

Posted in python | Leave a comment


Abstraction is largely the story of computing. Software developers have been building abstraction upon abstraction for decades now. Lev Manovich (of the CUNY Graduate Center) captured this clearly in his book Software Takes Command, and my thinking about this topic is influenced by his book. Abstraction makes life easier by simplifying tasks and making complex processes easily understandable to humans.

For example, in many programming languages, tasks can be written as functions. Functions allow us to abstract away complexity. Because complexity can be hidden away inside a function, someone using the function often does not necessarily need to understand its inner workings; for some purposes, they just need to know what it does and how to run it. Related functions are often bundled into libraries, giving programmers a ready-made toolkit of abstractions that are relevant to the specific task they are working on.

The basic building blocks of programming languages, such as functions, objects, and so on, are powerful tools for making and using abstractions. These abstractions allow us to greatly simplify our work, because we can let the abstractions do the heavy conceptual and computational lifting. Crucially, we have access not only to the abstractions that we’ve built ourselves, but also to many, many abstractions made by others. We build upon their work as well as our own. To borrow from a popular saying about turtles, computing is abstraction all the way down.

Posted in software | Comments closed
Need help with the Commons? Visit our
help page
Send us a message
Skip to toolbar