Mass Find and Replace in Notepad++ using Regular Expressions

While working on an upgrade to ILLiad 8.6 from 8.5 I was reminded that the tabindex attribute is not necessary and that I haven’t yet completely removed this code from our ILLiad webpages. I’ve removed some of the references, but at first glance, I’ve assumed this task would be daunting, after all, there are dozens of webpage files that would need to be checked.

Not so much! With about 5-10 minutes of thinking/work, I was able to remove over 400 instances of tabindex in all of our ILLiad webpages!

After some testing on a small batch of files I settled on the following process:

  • First, I created a regular expression to match our tabindex instances: (tabindex=”)\d+(“)
  • Then, I opened all of my local ILLiad webpage copies in Notepad++
  • Using the Replace feature (Search->Replace), enter the regular expression in Find What
  • Under Search Mode, select Regular Expression
  • Click Replace All in All Opened Documents
  • Then click File -> Save All
  • Finally copy the local files to the server

ILLiad’s Odyssey Helper

Why I haven’t persevered and figured this out until now shall remain a mystery? Those who already use Odyssey Helper already know how valuable this feature can be. Basically, Odyssey Helper reduces monotonous clicks and improves efficiency by allowing scans to be done outside of ILLiad and then sent through Odyssey without touching ILLiad again. No more scanning, then opening the request, clicking “Mark Found, Scan Now”, clicking “Ok” to the Scanner Not Found error message, and finally clicking “Send Via Odyssey.”

Atlas Systems has a nice video on the topic:

The trick for testing with Doc Del that isn’t mentioned in the video or the documentation is that you need to change the “Process Type” to navigate between Lending and Document Delivery. They must be processed separately in Odyssey Helper.

Currently, I’m setting up Odyssey Helper so that the pdf files reside on the library’s shared network folder and Odyssey Helper is open on one designated computer. That way scans/downloads can be done by several individuals on different computers, yet sent from one location.

Note: In version 8.6 Odyssey Helper is morphing into Electronic Delivery Utility.

Automating internet and app based tasks

Earlier this year, I wrote about AutoHotKey as a way to automate processes and activities that I do within Windows. Since then, I’ve learned about ways to automate activities you might do on the internet and between applications. IFTTT and Zapier are two services that have been recommended through the grapevine. They are certainly worth a look, particularly if you want to enable location specific actions using your smartphone or want to update one software tool when another does something.

To explore some ideas, you can browse the “Recipes” on IFTTT or “Zaps” on Zapier.

Scheduling Software for Student Workers and Staff Time Off

The task at hand: find a scheduling software tool that can keep track of all the library schedules (circulation desk, ILL, research help, archives, etc.), everyone can access, and will allow for time off requests.

Admittedly, the task and software review was a fall project but with a semester using one product almost complete, I’d like to reflect on what software was chosen to trial as well as the outcomes of that trial.

To start with, I researched scheduling software options and ended up limiting the initial review to 5 products using a Top Ten Review on employee scheduling software reviews (Note: the link goes to the most recent review and has changed slightly since 2014), word of mouth, and product updates from vendors we already have products with. Then I set up a trial and tested each product against a list of desired features that I gleaned from discussions with our circulation staff and reference librarians. Here are some of my thoughts:


This rated high in many reviews and did have a nice looking interface but it just wasn’t intuitive. There were many times I couldn’t figure out if I was supposed to save something or if the system would save it. I also found that if you clicked into an employee, the system didn’t always display who you were looking at and so you had to rely on your memory. This was quickly ruled out.


I reviewed this at the request of others in my department. Overall, I found its appearance similar to other SpringShare products which was a real plus but as the most expensive scheduling option it offered the least features. At the time, it lacked the ability to email all the workers at once and workers could only swap shifts as opposed to giving them up for others to take. Also the ability to enter your availability (aka class schedule) as a worker meant that you had to request time off, which then had to be approved, and once approved, the system sent an email that included the time of the workers request but not the details of the request. Like all of SpringShare products, I’m sure more features have been added but going into the spring semester, it didn’t meet our needs.


This tool provided a nice mix of features with a more intuitive interface making it super easy to add shifts. However, I had to knock this one out of the running because a student couldn’t just open up their shift to everyone (a must have feature) but rather would have to notify other students individually of the available shift.

Hello Scheduling

This scheduling tool made it into the final round where staff took it for a spin. I thought it was very intuitive and had a nice interface. Setting up the schedule took some time though the process made sense. There was also support documentation with videos for both students and administrators.  At the time, the biggest downside was that students couldn’t enter in preferred working times, only their available times. In the end, the circulation staff chose the next software program not because this one couldn’t meet their needs but because they like the next one better.


The eventual tool of choice, this one had several recommendations through word of mouth, had the most features/customizations, and ironically was the cheapest software tool. The tool takes preferences into account, allowed color coding of schedules, included time off requests, allows users to adjust their notification settings, and allows differing levels of manager access into the system. The only complaint I heard initially was that the interface looks a little outdated and my complaint is that the auto-scheduling tool doesn’t like to assign workers adjacent shifts (ie Tom to a shift from 10-11 and from 11-12, but rather Tom to 10-11 and Sally to 11-12).

Having used the software for an entire semester I haven’t heard many additional complaints but I have noticed that it took a little bit for staff to get used to the idea that settings affect all the schedules equally (circulation desk, ILL, research help, etc.), managers needed a separate worker account if they wanted to use the system to request time off, and that to copy a weekly schedule to a new week the new week must be unpublished (though you can make individual changes to a published schedule).

Can you embed a list of publications on a website?

I was recently asked this question at a campus event and immediately wondered why I never asked that question before. The inquirer managed a website for a research network that has several pages containing a bunch of relevant publications to the research topic. They wanted to combine all the citations onto one page yet still allow for the different subject areas to be searchable. “Could a citation manager do this within the college’s website architecture?” I was asked.

The user was already familiar with Zotero so I chose to focus on possibly using this tool as the backend and dynamically displaying the results on a webpage…and there was success. Zotero lists plugins on its support pages including several designed for website integration.

I honed in on one called BibBase. It allows sorting by date, title, keyword (based on the tags in Zotero), and type (ie article, presentation, etc.). Updates made in Zotero are automatically updated on your website. Seeing potential, I added a couple Zotero entries into a test folder and proceeded to test this option. It was so easy! BibBase walks you through the steps and then displays 3 different snippets of code that you can add to your website; javascript, php, and iframe. Simply copy the code and paste it into your website. Done!

Described in text

Example of BibBase within institutional website.

Consequently, BibBase is my recommendation for anyone who is willing to use Zotero and may not know a lot about coding. Note: I didn’t look at integrating into WordPress or content management systems and would re-evaluate if those platforms were involved.

There were two other options that looked interesting and could be worth pursuing if you had the knowledge and/or patience to learn.

Zot_bib_web – Displays the publications and has a nifty search box. The catch for some is that it involves running python scripts and the script can only be updated once a day. The directions looks straight forward but if mentioning python scripts scares you, this probably isn’t the tool for you.

RefBase – This one also has potential and it has the sought after search box. However, I chose not to pursue it for this request because of the need to run php and create additional tables to a database. Doing this within the institutional website is just not an option at this time.

Moire – One Reason Scans may have Lines and Dots

Back when we were testing scanners, the clue that led me to discover the low scanning resolution of one particular scanner was what I later learned was something called moire. Some images scanned just fine, but scanning an image containing a brick wall brought out a moire pattern. The pattern exacerbated the scanning pattern.


Sample of moire on scanned image

Instead of re-explaining what others have done, I’m sharing the following two websites which I found extremely helpful in explaining the problem and providing tips for avoiding and fixing moire patterns.

Searching ILLiad’s Database

…without direct access to the backend database.

ILLiad power users are probably wizards with ILLiad’s custom/advanced searching feature within the client, but for me, this feature was a pleasant surprise and an exciting treasure waiting to be unleashed.

Unlike the common search query fields in the Home ribbon, the custom search option is only identified by a small box and arrow in the corner of each search section. And honestly, I only thought to click on the icon because Microsoft Word has the same image to access a bunch of customizable goodies.

explained in text

Once clicked, I found an interesting search interface that mimicked SQL query functions in many positive ways.  Some of the cool things I’ve used this database search function for include:

  • retrieving users who have opted into our campus delivery
  • retrieving a list of users who are at one of our remote field locations
  • finding a list of requests for specific journals during a specified timefram
  • getting a list of requests that were found and made through a specific resource (in this case it was Scopus, but next time it might be our custom catalog in our discovery layer)

Basically, if it’s a field of information, you can retrieve it from within the client without having to go through another program or interface. Very cool indeed.

For more details about custom searching, check out Atlas Systems’ documentation on the subject.