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 | Comments closed

Quasar

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 | Comments closed

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 | Comments closed

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 | Comments closed

Nighttime

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 | Comments closed

Circulation

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

Comments

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

Replit

Since 2016, I’ve hosted many of my Python projects on PythonAnywhere. It has been a reliable and easy platform to use, but recently I’ve been worrying about its future. While I don’t have any particular insights into the health of the PythonAnywhere organization, the technology seems to have mostly stagnated. It makes me wonder how long it will continue to exist.

Maybe I’m being too pessimistic about it, but I am being prudent and looking for alternatives. I was referred to Replit, which I have been poking at. It is a different world in terms of functionality: it’s more of an IDE than a shell (although of course you can use the shell too). It’s more expensive and more modern. Mostly I just want git and vim, so the modern accoutrements are not big selling points for me; but maybe it will be around longer than PythonAnywhere, and maybe I would eventually warm to some of the fancy features. It’s worth considering.

Posted in python, pythonanywhere, replit | Comments closed

Moving on from ubuntu

There are a lot of reasons that I really like Ubuntu. Foremost among them is the availability of help: there are a wealth of posts on Ask Ubuntu and elsewhere that are often super useful when trying to solve almost any Ubuntu problem. It’s great. It’s especially good for someone new to Linux.

But I am not on board with Ubuntu’s new plan to have everyone sign up to Ubuntu Pro in order to receive updates. This rankles me for reasons I can’t quite articulate. Ubuntu Pro is free for personal use (under 5 machines), and then there is an enterprise tier above that. I assume that the reason for insisting that everyone register is so that they can monetize all those organizations with more than five installs.

But to me this goes against the spirit of free software. Refusing to update non-registered users is just licensing by other means. So I’m probably going to move on to another distro. I’ve posted before about how I have been enjoying running Debian on my Chromebook. I like it for different reasons than Ubuntu. My (possibly incorrect) initial impressions are that Debian is more stable and more command line-focused than Ubuntu. Which is fine; perhaps even preferable.

I have some new (to me) hardware that I’m going to install Debian on this weekend. We’ll see how it goes.

Posted in debian, linux, ubuntu | Comments closed

Replacing libguides’ annoying “email me” buttons

I did some JavaScripting yesterday that I thought might be of interest to librarians who use LibGuides and LibAnswers. The impetus for this was that some of the librarians at my college were dissatisfied with the “Email Me” buttons that are on LibGuides’ profile pages and profile boxes.

I have to agree, the Email Me buttons are not great. They’re old-timey “mailto” links, which are notorious for often attempting to open an email client that is not actually set up. Besides wanting to avoid that obvious annoyance, we also wanted something that would add a patron’s question to a LibAnswers queue, instead of sending an email. A queue is preferable to an email because it will help prevent a question from getting lost somewhere in a librarian’s inbox, and also any librarian can claim it, hopefully improving response times.

Anyhow, it only took a little bit of JS, CSS and a widget from LibAnswers. The code is in our kingsborough-libguide repository on GitHub. I’d like to remove the jQuery from this snippet, but that may have to wait a day or two.

Posted in javascript, libguides | Comments closed
  • Subscribe to this blog via email

Skip to toolbar