You are browsing the archive for Syndicated.

Cyberpunk Librarian: Part 01

5:22 pm in Syndicated by Faceless Librarian

Introduction

mnemmonicWilliam Gibson, the father of cyberpunk, once said that the street finds its own uses for things. Without getting into a whole lot of literary analysis, he was talking about how people, especially those living without a lot of money, tend to find surprising ways to utilize what they have at hand.

Speaking of people living without a lot of money – librarians.

I don’t know how your library works, but I don’t always have the money or the approval to buy certain things when I absolutely need them. And that, my friends, is assuming I can buy it at all. What I need may not even exist. It has to be created, and who’s going to pay someone to create, build, and/or develop something?

As a Circulation Librarian in charge of the third busiest Circulation Department in the system, I face some really odd and interesting problems. In this two part series, I’m going to talk about a couple problems vexing me and my branch and how I solved them. I’m also going to talk about AutoHotkey, which helped me solve them. With a little luck, you can take something away with you to help you fix up a few issues in your branch, be it large or small.

So, let’s get started, shall we?

The Problem: The $350,000 State of the Art Robot Who Can’t Call For Help

I have got the coolest machine.

It’s an FKI Logistex LibraryMate self check-in machine with a nine bin sorting system along with a staff induction unit. If that doesn’t mean anything to you, let me break it down like this. I’ve got a machine where patrons can drive up to the outside of the building, feed their materials into a reader, the machine checks them in, and then sorts the materials into one of nine bins for easy slipping and reshelving. We’ve also got a feed on the machine inside that allows the staff to do the same thing.

It’s incredibly rad. In 17 years of public library circulation, it’s the first labour saving device I’ve seen that actually saves labour.

Basically, this is a robot. It uses a combination of three RFID readers along with laser scanners to read the barcode or RFID tag on an item. After it reads the tag or the barcode, it contacts the ILS, checks the item in, receives information about what the item is, and then it uses that information to figure out which bin that item goes in. As a technologically minded library guy, this thing is like electric sex.

But it’s not without its flaws.

While the machine comes with a little app that you can install on any locally networked computer, all that app does is pop up when there’s a problem. So if the machine is jammed, shuts down, or otherwise goes inoperative this little programme throws up a window to let you know.

Sure, that’s very handy… if you happen to be sitting there at the desk and looking at the computer. So, what if you’re not?

Well normally, you’re hosed. That’s exactly what I was on the weekends when it went down and no one was working. See, the library is closed on Sunday. Thus from Saturday night to Monday morning, the machine is on its own. Then, one Monday, I came in to find this:

4853746712_36334b7590_b

What’s more,you see those rolling bins in front of that mountain of books? One of those was also filled with returned items. It took us over an hour to get all of it checked in and then another hour or so getting the machine emptied and the stuff onto trucks for shelving. I thought to myself, “I’ve got a little piece of sci-fi in my check-in room using radio and lasers to check items in, and it can’t call for help when it goes down?�

That’s just unacceptable.

So I told my boss that I had a goal: By the end of the week, I’d develop a bit of software that allows that machine to let someone know it’s broken, even when we’re nowhere near the library. Thankfully, there’s a very easy way for this to happen, and millions of people do it everyday.

I’d have it send a text message to my cell phone.

The Solution

Making some notes on paper, I developed a workflow and architecture for this to happen. I knew that I’d need a couple different pieces of software to make this work. First, I’d need something that could send me a text message. No problem, my work computer has Microsoft Outlook on it. Second, I’d need something that told me the machine was down. That too wasn’t an issue because, like I said, I have a little programme that already does that. Third, I’d need something to tie them together.

That’s where AutoHotkey comes in.

AutoHotkey is a free scripting language. Using it, you can write some pretty nifty programmes that automate all kinds of things from text replacement to system maintenance to automating tasks in World of Warcraft.

After tinkering around, I came up with 21 lines of code that did the trick. Here’s how-

Step 01: Set up an Internet shortcut using a “mailto:� command.

I created a shortcut on the computer that used a mailto: command just like you’d see in a webpage. I set it up to mail my phone number @vtext.com. That’s Verizon’s email gateway to sending text messages. For the subject I put FKI ALERT! and for the body I typed PROBLEM DETECTED WITH THE FKI SELF CHECKIN! I saved the shortcut and, since it was a mailto: shortcut, Windows immediately associated it with Outlook. So if you double click the shortcut, Windows launches an Outlook composer with everything already filled in. All you have to do is send it.

Step 02: Set up a trigger within the code.

My programme works on a very simple workflow. It starts out by looking for the window that pops up when the machine goes down. Normally the little app monitoring the FKI just sits in the system tray and you’ll not see its window. However, when anything goes awry, that window comes up and that’s the only time it comes up. It never appears without cause.

That window is the trigger.

The little app I wrote does nothing but look for that window and, if it doesn’t see it, it goes to sleep for five minutes. No reason to have it check too often and waste processor cycles. Five minutes is fine. So that’s it. It scans the desktop, looks for the window, and if it’s not there it goes to sleep because all is well.

However, if the window is there, the rest of the programme kicks into gear. Like Visual Basic, you can use AutoHotkey to “send keys� just like you would if you were typing. When the window is detected, it calls up that Outlook shortcut. It waits five seconds to give the computer ample time to respond. Then it sends the key combination “Alt S� because that’s the keyboard shortcut used to send an e-mail in Outlook. Then it waits another five seconds to allow processing.

Then my little programme terminates, which brings us to-

Step 03: Fixing the problem

After the e-mail goes out, my programme exits itself. Why? Because the window it’s looking for will not go away until you fix whatever is wrong with the machine. In other words, you have to come in, fix the machine, close out the window, and re-launch my programme. It’s kind of like a grenade, it’s only useful when it goes off but, once it does, that’s all there is. As an added benefit, it won’t keep texting me. I get a text and, depending on the time of day or night, I can go in and fix it if I need to. So while I may just ignore a text coming in on Sunday night at 10pm, I will not ignore the one coming in on Sunday morning at 9am.

So far, it’s been a pretty reliable bit of coding. Then again, in 21 lines (I’m not counting the remarks at the beginning.) there’s not much to screw up. While I’m not a great programmer, everything I do is open source. If your library has a similar machine with a similar problem. I’ve pasted the code below or you can get it from a Google Doc.

; FKI Alert by Daniel Messer
; This programme monitors a computer for the FKI Alert window. When the window is detected
; this programme will call upon an e-mail shortcut to call for help. Ideally, this email
; shortcut should be directed toward an SMS address, but any email address should work.
Loop {
    ProcessNameSearch = javaw.exe
    ; DetectHiddenWindows, on ; Currently commented out because I don't think I WANT to find hidden windows.
    WinGet, id, list,,, Program Manager ; Get all windows for the entire system.
    Loop, %id%
        {
        StringTrimRight, this_id, id%a_index%, 0
        WinGet, this_process, ProcessName, ahk_id %this_id%
        if this_process = %ProcessNameSearch%
            {
            WinGetTitle, this_title, ahk_id %this_id%
            Sleep, 5000
            Run f:\FKI_ALERT.url
            Sleep, 5000
            Send !s
            Sleep, 1000
            ExitApp
            }
        }   
Sleep, 300000
}


Dr. Gonzo Recommends!

3:14 pm in Books, Syndicated by Faceless Librarian

Greetings, salutations, and how the hell are ya?

The latest issue of Dr. Gonzo Recommends is online for the reading. I mean, you could read it… if you wanted to. I guess?


Trends in Fantasy Cover Art

8:00 am in Books, Syndicated by Faceless Librarian

I’m a data guy.

Recently, I finished a project where I collected data from the last two years of my branch library’s operation along with the last two years of the District’s operation. I chose two years because it was two years ago when we opened our new branch. I also drew out the spreadsheet to cover a full four years. Then I gathered the data, and put it into the spreadsheets so I could chart trends, make graphs, and observe and predict changes.

I wasn’t asked to do this. It was my own side project. I did it, and I’m still doing it, because I’m curious.

That’s it, just curious. I wanted to know some stuff – that’s all.

Given my love of cover art, when you combine cover art and data you’ll find one very happy library nerd sitting at my desk. So have a look at a lovely chart showing the trends in fantasy cover art from 2009 and, when you’re done with that, go check out the story behind it. I did, and I sure wasn’t sorry.

Print


Let Me Show You How My Mind Works

9:37 am in Syndicated by Faceless Librarian

So, I’m working check in this morning, which isn’t at all odd because I tend to work check in every morning. It’s literally a moment of Zen for me because, when I’m working check in, that’s all I’m doing. Occasionally I’ll listen to music, but mostly, I’m just checking in.

A Buddhist wise man once said that when you’re walking, know that you are walking. Well, when I’m checking in I know that I’m checking in. Still, I have the occasional odd thought because my mind is really fond of making connections between two or more seemingly unrelated things.

We have several branches in our system. Two of which are called El Mirage (which is the coolest name for a branch) and Sun City. As I’m checking things in, I come up with one item that needs to go to El Mirage and two that need to go to Sun City. So, as I set them aside I say to myself:

“I’ve got two Sun Cities and an El Mirage.”

Which was immediately replaced with:

I’ve got two turntables and a microphone.”

That’s just the barest peek at the workings of my brain. Is it any wonder I drink?


THIS SHOULD SCARE THE SHIT OUT OF YOU

9:15 am in Syndicated by Faceless Librarian

The problem with people putting information online is that people are stupid and don’t understand what they’re doing or how to do it properly.

As an information professional, a librarian, and a citizen of the Internet; this Google search scares me. What is it? Well, if you typed it out, this is what you would type:

filetype:rtf | filetype:ppt | filetype:pptx | filetype:csv | filetype:xls | filetype:xlsx | filetype:docx | filetype:doc | filetype:pdf “this document is confidential” site:gov

And in essence what it’s doing is searching governmental sites for any and all document types with the word “This document is confidential” in it.

So much for confidentiality.


LIBRARIANS

6:05 pm in Syndicated by Faceless Librarian


Dr. Gonzo Recommends

12:28 pm in Books, Syndicated by Faceless Librarian

The latest issue of Dr. Gonzo Recommends is now online with all the latest recommendations from the totally non-credible source that is Dr. Gonzo himself. (In a word, me.)

This issue comes with 100% more Hedy Lamarr, absolutely free!


The Science Section

3:55 pm in Books, Science, Syndicated by Faceless Librarian

When we first opened, my boss asked if there was any place in the library we wanted to “adopt� as being the place where we set up displays based on the items in that area. Naturally I chose the science section. Since then, I’ve kept a display going that’s basically just suggested items, books, and the like. Nothing much, and certainly not at all eye catching. Then today, I decided to do something a little different.

I wanted to bring some attention to that area, maybe educate a little and, of course, whip a few items for the patrons to try out. Now then, that’s pretty easy when you think about it and there are some other things I have in mind for that area. Still, for the time being, I think this is better than what I had and that’s the most important thing. Here, take a look:

0816001133

So I snagged a colourful and humourous SCIENCE image. It has no point but to be funny and kind of label the science display. Other than that, pure amusement for myself and other geeks. For those not as into science, it also presents a look at the subject as something that may not be as bone dry as they think. I stuck the image into a clear, plastic stand so it’s fairly well protected and will stand on its own. I’ll change this out every so often with similar images. They may not always be funny, but they will serve as eye candy.

0816001133a

On the top shelf, I’m going to have something new every week. I want a beautiful science related image and then, next to it, a little bit about what that image is. For the very first one, I did something simple that anyone could do. I found a gorgeous picture of the Large Hadron Collider and then I bounced over to Wikipedia and grabbed a clip from an article on the subject. (Of course, I cited my source on the paper.) This way, there are two eye catching images related to the section along with a quickie blurb about something in the realm of scientific niftyness.

In other words, I’m actually displaying something now, rather than just standing books on their ends.


Really, Bing? Really?

2:29 pm in Science, Syndicated by Faceless Librarian

So this morning I was setting up a display over in our science section. I wanted to do something to liven it up, call attention to it, and otherwise make it something a little more interesting than just some suggested books. Remembering a few images that I quite liked I went and found them, and then it hit me. There’s this really funny image by Randall Munroe that would be great for this area. I didn’t want to use it right away, but I wanted a print out of it ready to go.

Since it was going to be a print out, I wanted the biggest, highest resolution image I could find. I tried Google Images, and got a decent one, but then I decided to try Bing Image Search and see if it got me anything different.

It did.

Actually it got me stuff so different, it doesn’t even make sense. Just as an aside, the image below is clickable for the embiggening, but doing so might not be totally safe for work.

AND THAT SHOULD TELL YOU SOMETHING ABOUT HOW WELL THIS SEARCH WORKED.

BingSearchWTF


Know Your Flow

2:57 pm in Syndicated by Faceless Librarian

I’ve written before about the nifty machine we have here that allows people to check in their own books from the drive through, and then after the machine checks them in it sorts them into one of nine bins. I love it.

Thing is, over the weekend, it seems to have this hiccup. It’ll take an item, but sometimes it won’t read the RFID and it’ll shunt it down to the exceptions bin for manual processing even though the item is ours and should sort into one of the other bins. I have no idea why it does this. I’m inclined to blame BP, but I think it’s becoming more fashionable to blame Republicans. I think I’ll just blame that Justin Bieber moron. He looks like the type who’d break my machine.

celebrity-pictures-tina-fey-smart-sexyAnyway, there’s one sunny side of this whole problem and that’s that I know about the problem in the first place. Seriously, it sounds cliché, but the first step to dealing with a problem is knowing of its existence. While I can’t really solve the problem in a mechanical way, because I’m not going to take the machine apart, I can deal with it via a workflow.

I’m usually on check in every morning and I’m here an hour before the library opens to the public. This is good because I’ve only got one drop to deal with and not the walk in drop in the lobby. So if that exceptions bin is pretty full, I wheel it over to the staff induction unit and I feed the exceptions back into the machine again. I’m going to have to handle everything in there anyway because I have to check it all in manually to find out why the machine didn’t take it. So there’s no extra handling involved in doing this.

The staff induction unit doesn’t misread any of the tags because it’s not as forgiving as the drive up unit. The staff side is based off the idea that you know what you’re doing, and it’ll take as long as it needs to read the tag properly. Most of the time, it only takes a second to get that tag information and then you can shove it onto the conveyor for sorting. This morning I had a very full bin of exceptions and, after sending them back through the machine I wound up with half of what I had at the beginning.

And I knew for a fact that all of those items in the exception bin were either on hold, going back to their assigned branches, or transiting out to fill a hold. Everything else wound up in the proper bins for shelving.

If you need to check stuff in twice, you may as well make it as easy on yourself as you can.


Best Pepsi Display Ever

11:53 am in Syndicated by Faceless Librarian

Everyone Here Is Smarter Than You

11:53 am in Syndicated by Faceless Librarian

YOUR ARGUMENT IS INVALID

11:01 am in Syndicated by Faceless Librarian

Your argument is invalid because here is a mermaid surfing with the creature from the Black Lagoon.

Sexy

8:00 am in Syndicated by Faceless Librarian

My Heroes

7:20 pm in Syndicated by Faceless Librarian

Watch For Pedestrians

4:20 pm in Syndicated by Faceless Librarian

Split Feeds and Bacon

2:54 pm in Syndicated by Faceless Librarian

Not to be confused with split peas and bacon, which is delicious.

google-reader_logoI read a lot of feeds. I use Google Reader and I think I had somewhere around 400 subscriptions rolling around in it. These feeds covered an entire gamut of subjects, themes, and genres. There were book news feeds, tech feeds, culture feeds, erotica feeds, video game feeds, and comic feeds. There were feeds from my own sites so I could make sure that the RSS was going out properly. There were feeds from my friends sites. I had feeds from all over and I was getting more than a little bogged down in it all. Sure, they were all categorized but still, 400 categorized feeds are still 400 feeds.

You notice I’m writing all of that in the past tense?

I took a look at my feeds and there wasn’t anything I wanted to cut. I’m an info junkie, so I need my feeds. Then I took a look at how I used these feeds and they basically broke down in to two BIG categories.

1. Feeds I use to collect content for my blogs.

2. Feeds I read for information, learning, and other news type stuff.

Since my personal blog is heavy on images (I’m an image junkie too.) that means that a bunch of category one were image blogs and image feeds. Category two feeds were mostly text based stuff that required more reading.

FeedDemonSo I had an idea. I’ve got more than one Google account. (Doesn’t everyone?) Why not split that huge collection of feeds between two accounts? One could cater to my information satiation while the other delivered images and blog related stuff. And, to make things easier, I could attach one account to FeedDemon while browsing the other from Firefox. That way I could take advantages of the abilities of both programmes to utilize the incoming information.

For instance, I use a few different plug-ins on Firefox to save images into different folders for easy blogging and stuff like that. Therefore Firefox would best serve that set of feeds for me. But, when it comes to actually reading information, FeedDemon rocks and I really like how it displays the information. So the upside is that I can have Firefox logged into one account while FeedDemon pulls from the other and they can give me a constant stream of goodies throughout the day.

That’s what an info junkie like me calls a “win-win situation.�


Book Display Derp

1:52 pm in Syndicated by Faceless Librarian

Rock Band Trololo

1:41 pm in Syndicated by Faceless Librarian



Rock Band Trololo

Oh Hey! Today Is Lisa Simpson’s Wedding Day!

10:17 am in Syndicated by Faceless Librarian