Time to listen.

I tend to talk a lot. Sometimes I talk so much, and about such banal things (seitan sounds like SATAN! Bwaahahahaha) that I forget what a privilege it is to be able to talk – to be taken seriously, even when what is being said is lighthearted.

Black lives matter. Let’s get that right out of the way: it has to be said because it hasn’t been a guaranteed case in my country for…possibly ever. The murder of Philando Castile was my wakeup call – and yet, I allowed myself to get distracted. Why? Because that’s privilege. I don’t have to think about it all the time.

Except that I do. I should. I must. We must. Regardless of what crummy allies most of us, myself included, have been in the past, we need to decide what kind of a country we want to live in right now. I don’t want to live in a country engaged in a slow genocide of Black people. Because what else do you call it when liberal white ladies know they can get their way by calling the cops on a peaceful Black birdwatcher and putting him in fear of his life? What else do you call it when police whose department already had their man busts down a random Black medic’s door and shoot her straight the fuck to death? What do you call it when many police departments across this nation cannot be sued for wrongful death?

What do you call it when they know they’re being filmed and they kill anyway? Impunity? Implicit permission?

I call it blindness. Mine, particularly. I was content to believe that history was arching toward justice, slowly yet unstoppably, driven by good people and my own individual occasional participation in protests and support of racial justice library programming. I didn’t listen to the people who were saying that justice wasn’t happening. I was complacent.

So the first thing that changes is that I abandon this tacit idea, this racist idea, that I can ignore Black people when they say that there is something wrong because “something” is surely being done. Second, I stop ignoring the past. Greenwood and Fred Hampton don’t count as water under a bridge to utopia. A nation that forgets its sins recommits, and what we have forgotten is an ocean, deep and cold and justly furious. In a nation this obsessed with criminality, you’d think that fear of breaking the golden rule would keep us nicely in line. Too bad the people we primarily punish aren’t the ones whose demographics hold any power.

Finally, I listen, for once in my goddamn life. I throw a little money at bail funds and blare my horn at protests, but mostly I read and I listen and I read and I listen. And in November I will vote, but until then, I cannot be complacent anymore. There is no more time to lose.

Seitan is Back, And He Looks Like Crap

So I’ve been experimenting with making my own seitan, not from vital wheat gluten as one might purchase from Bob’s Red Mill for a goshdarn mint, but from whole wheat flour. Boy howdy has this been an adventure! This week, I soaked a bunch of flour, which went great except that I hadn’t made it into dough first.

D'oh | Simpsons Wiki | Fandom

In the hours of sieving and rinsing that followed, it became abundantly clear to me that one must first make the flour into a dough, then rinse and knead such that the carbs on the outermost layers consistently wash away, leaving you with a ball that gently shrinks into gluteny goodness instead of a whitish soup that you then have to pass through a strainer and mush with your fingers.

Anyway, I did get seitan out of this, but it was grainy (bran!) and needed to be cooked. Brilliantly, I thought I’d stir-fry it. Halfway through this process it became clear that the seitan either wasn’t rinsed as thoroughly as I’d thought or it needed to be boiled first, because it was falling the heck apart. So I decided to boil it in situ – did I mention I’d marinated it for a while before all this went down? Well I did – and dumped a bunch of water on it. Then I went back to work, because most of this was happening on my lunch break, and essentially forgot about it.

I came back and the water had all boiled away. I had on my hands a massively unappealing mound of brown goo, not quite solid and not quite sauce. It tasted like smoked steak, except to such an extent that it hurts your mouth, and looked exactly like shit.

Red Devil from Scream Queens is sad - Drawception

Luckily, I have a backup plan. You see, this, my friends, is Friday. That means that I am prepared with that most beautiful of culinary treats: a 1-lb packet of Beyond Beef. I’m also possessed of bread, which I threw together this morning on the off chance that seitan stir-fry would somehow, in a twist of fate nigh inconceivable to my mortal mind, not happen.

So I’m going to fry up a few burgers and use my overmarinated brown goo seitan squelch as a condiment. I bet it’ll be awesome. If it’s not, we’re going to eat it anyway because it’s still nutrition gosh darn it and for this seitan I spent an hour of my precious, finite life with a sieve. (I’ll mix it with rice. It’ll be fine.)

But there is time before I must hie unto my hot stove, friends. My wife works until well after 7 and I have had such a day that I have not really run through my coding exercises yet. Obviously I had to run and breathlessly report my seitan adventures because IT’S SEITAN, but now I will return to my regularly coded practice.

I’ll leave you with this: yesterday was a good day because I learned that, in Python, you don’t necessarily have to make a whole if statement if you want to return a True or False. You can just stuff your parameters into a return. Behold in awe as this clugey nonsense, which used to be my mode:


…becomes this sleek, gorgeous nonsense, which is my mode au courant!


Maybe not a killer app, but I was pleased.

Today’s thrilling Python romp: Pet Picking

So I’ve been running through the Python exercises on CodingBat for the last several days, and they’re fly as hell. This amazing site is proof that you don’t need a lot of flashy fancy gifs and pretty colors to make a sweet learning site. (Looking at you, Codecademy.)

Anyway, I started to run into warmup exercises (!!) that I couldn’t crack. Some of these were legit hard for me, but some of them were simply outside of my current range, so to speak. So I added a nice -1 to that len(experience) and looped back to my trusty NoStarch Python Crash Course to figure out what I’d missed.

The first thing I made was a nice list of animals that would make good pets, as per an exercise on page 60 in chapter 4.

|pets = [‘dog’,’cat’,’rabbit’,’snail’,’tortoise’,’mongolian death |worm’,’bigfoot’,’plesiosaur’,’mothman’,’jersey devil’]

Then I printed them all with a for loop. Still no biggie, still nothing I don’t know how to do. This was the extent of the exercise as the book outlined it.

|pets = [‘dog’, ‘cat’, ‘rabbit’, ‘snail’, ‘tortoise’, ‘mongolian death worm’, ‘bigfoot’, |’plesiosaur’, ‘mothman’, ‘jersey devil’]
|     for pet in pets:
|          print(‘A ‘+ pet + ‘ would make a great pet!’)
|     print(‘\nAll of these would make great pets!’)

The output was not unexpected.

|A dog would make a great pet!
|A cat would make a great pet!
|A rabbit would make a great pet!
|A snail would make a great pet!
|A tortoise would make a great pet!
|A mongolian death worm would make a great pet!
|A bigfoot would make a great pet!
|A plesiosaur would make a great pet!
|A mothman would make a great pet!
|A jersey devil would make a great pet!

|All of these would make great pets!

But then I thought, what if my user wanted to check and see if their preferred pet was on the list? I need them to understand that a bearded dragon does not count as a good companion animal, but that they ought to consider a plesiosaur.

My first step was to add another variable and make it an input. Here my sins began, because the book isn’t even through for loops yet and I’m not supposed to know about input. (By the way, I should have mentioned before that I’m working in Python 3.)

|want=input(‘What kind of pet would you want to get? ‘)

Yay, I have a new variable! Now I need to run through the list and check to see if the user’s pet request is an option.

Right away I ran into a problem because I can never for the life of me remember that you need two equals (==) to define a loop. After all those CodingBat exercises where I forgot this rule every single relevant time, you’d think I’d have broken this godawful habit. Someday.

So I added me an if inside my for, correct equals and all.

|pets = [‘dog’,’cat’,’rabbit’,’snail’,’tortoise’,’mongolian death |worm’,’bigfoot’,’plesiosaur’,’mothman’,’jersey devil’]
|want=input(‘What kind of pet would you want to get? ‘)
|     for pet in pets:
|          if want == pets[pet]:
|          print(‘A ‘+ pet + ‘ would make a great pet!’)
|#print(‘\nAll of these would make great pets!’)

I kept the last statement because apparently I hoard code like I hoard everything else in my life: for no reason.

Problems abounded! first of all, the search stopped at the first index. Second, Python threw a tantrum because strings aren’t integers and integers aren’t strings, and list item indices are DEFINITELY not strings. (Try counting to “banana.”) Finally, there was no way to deal with requests for pets that weren’t on the approved list. If my user can’t settle for a bigfoot, my user isn’t isn’t getting an animal, period!

Here’s what I figured out.

|pets = [‘dog’, ‘cat’, ‘rabbit’, ‘snail’, ‘tortoise’, ‘mongolian death worm’, ‘bigfoot’, |’plesiosaur’, ‘mothman’, ‘jersey devil’]
|want=input(‘What kind of pet would you want to get? ‘)
|     for pet in range(len(pets)):
|        if want == pets[x]:
|           print(‘A ‘+ want + ‘ would make a great pet!’)
|           break
|        if want != pets[x]:
|            x=x+1
|        if x == len(pets):
|            print(‘A ‘+ want + ‘ would just eat your homework.’)

I admit that I was continuing to cheat here, since I’m not supposed to know about break yet. However, I needed it and this was an urgent pressing question that had to be answered one way or the other, plus I didn’t want to sound like a manic robot screaming “A CAT WOULD MAKE A GREAT PET!” over and over again. There’s probably another, better way to do it. When I’m a more capable coder I’ll look back at this post and have a hearty laugh before deleting it in embarrassment.

For now, the first if looks to see if the input matches the index we’re on. If it doesn’t, it triggers the next if, which just pushes the index count variable to the next integer and keeps us marching onward to the end of the list. Finally, when x is as long as the length of the list, (which is to say we’re past the last actual list item because indicies are magic -1,) then Python can let the user down easy.


|What kind of pet would you want to get? a cat
|A a cat would just eat your homework.

Curses. Any deviation from “cat” or “dog” or “plesiosaur” as input resulted in pet denial and sometimes ridiculous output, even if it were a logical answer that otherwise fit the parameters of the list’s intent. This would not do!

The easiest step was to make sure that the user didn’t get denied based on capitalization. I .lowered() that boom and then applied a nice .strip(‘a ‘).

|pets = [‘dog’, ‘cat’, ‘rabbit’, ‘snail’, ‘tortoise’, ‘mongolian death worm’, ‘bigfoot’, |’plesiosaur’, ‘mothman’, ‘jersey devil’]
|want=input(‘What kind of pet would you want to get? ‘)
|if want[0:2] == ‘a ‘:
|    want=want.strip(‘a ‘)
|for pet in range(len(pets)):
|    if want == pets[x]:
|        print(‘A ‘+ want + ‘ would make a great pet!’)
|        break
|    if want != pets[x]:
|        x=x+1
|    if x == len(pets):
|        print(‘A ‘+ want + ‘ would just eat your homework.’)


|What kind of pet would you want to get? A Mothman
|A mothman would make a great pet!

This, of course, is fine. However, it would be nice to allow users to define their own lists of appropriate pets so that parents can be superusers who make sure that their kids, as regular users, are ordering proper domestic skinks and bonobos and golden hinds and whatnot. I could do this by simply asking the superuser for input and appending each input item to the pets list for the users, but I think I’d rather avoid having the user type out the various animals they want their kids to own. Instead, I want them to be able to enter an admin mode with a password and select pet options from a menu. That’s probably going to be my next modification. After that, I want to…

  • Create a returning user function for the kid
  • Allow the parent to modify a responsibility index based on how well they feel the kid has been taking care of the pet
  • Use calendar functions to determine how much keeping the pet has cost since last login
  • Use these factors to create a dashboard for the parent so that they can figure out if the kid should be allowed to get another animal.

It would be nice to make a fully fleshed-out pet keeping game out of this, but right now I have absolutely no idea how to make graphics. Maybe I could create a Rogue-style adventure. No game has really done it for me since Nethack and come to think of it, pet ownership is a significant part of that too. Maybe I’ll just code my own Nethack, but make it all about the pets.

Pokemon. I just came up with Rogue-style Pokemon. Fuck me. I’m going to go code some more.

Eventually I’ll get back to the book.

Python Python hiss hiss

One thing that I like to do when I’m feeling sick is practice Python. I’m what you might call a promising beginner coder. It’s something that I want to get good at – really good, if possible. I enjoy it almost as much as I enjoy writing. Unlike writing, coding might actually pay someday – not that writing has done me bad, but let’s face it, its not going to cover my monthly barrel of bats, nor my bespoke acne cream, nor my shipment of Pakistani mangoes.

During the Bad Year, I resolved to work until my daily financial goals were met every day. I calculated what I made at my part-time library job(s) minus gas and daily extravagances like food. Whatever else needed to be spent that day, whether that was a portion of the rent or a medical bill, was what I had to make before I collapsed from exhaustion. I had fractions upon fractions going – I needed to make approximately $50 every day just to cover rent – but no matter how I cut it, I was putting in 16-hour days, working literally from the moment I opened my eyes until I passed out. I’d go to sleep with my computer on my lap, wake up, and start typing again right away. I was a writing fiend, and as we all know, fiends live in Hell.

Previously, professional writing had been a fun jaunt on the wild side, a little wooliness for my otherwise orderly career progression. I’d gotten there slowly after writing school destroyed my initial desire to write fiction – it wasn’t until years later that I published stories again. And I’ll always have listicles to thank for getting me there! Thanks, listicles!

But once you monetize something, it becomes a millstone. It doesn’t matter how much you like it. Suddenly it’s not who you are, but what you do. Who you are is about identity, love, joy, and probably chakras or something. What you do is about money. It’s nice to think that you can mix those two brews and end up doing something you love for money and get paid for living your best life, but in my experience, the money wins just because it makes more demands.

God I hate money. I don’t hate achievement, I don’t hate fame or recognition or success or work, but I hate that money is how we measure personal value. Specifically, I hate that money is also what we need to spend to survive – the main societal measure of our individual success and self-worth going on the budget sheet to cover rice and beans for this month. Do I have an alternative? Nope! I just think that the current system is harmful.

I have digressed. Back story: I’ve been sick for like four days, maybe longer. No, it’s not Covid. Yes, I am loopy and distracted. This is why now is the perfect time to practice Python. Also to stay up late and finish a blog post.

I have a love-hate relationship with coding. I’m naturally pretty good at it, but when I take a class, I seem to draw a jerky professor who believes, at best, that a woman trying to code is just so ineffectual and pointless that it’s cute. I am not cute and despite my best efforts to be sweet and nice and gentle I am naturally very direct. It is also hard to brush me off on account of the fact that I am unfortunately me, so any given professorial-stand-in-stereotype has tended to try and break down my ego instead. This strategy is actually pretty effective, and I am now plagued by self-doubt and the thought of taking a coding boot camp or another coding class ever makes me wince. I know that not all professors or whatever. I have had some evil luck and have heard reports that much of the coding world is just like this. At my age I don’t have time for nonsense. Sue me if you don’t like it.

So because my relationship with coding is a tetch uncomfortable, coding is an ideal candidate for future money-maker. I can learn it myself (I am in fact making good progress) and scootch into the profession by demoing my skills. I can sacrifice it on the alter of the money gods without too much regret and even with some relief. At the same time, it can be done online on a freelance basis for a decent return. (Eventually. I’ll need to glom onto a bunch of freebie open source projects first to prove that I know my stuff.)

The fact is that times are strange. I want to believe that my current job, which I like, is stable, but who knows? Libraries are suffering financially along with everyone else, and if enough economic dominoes were to fall, my safety would by no means be guaranteed. In a worst-case scenario, I wouldn’t feel confident using writing as a parachute again – a year ago I still harbored fantasies of going full-time as a writer, but we have a mortgage now and everyone who can work online will – and the jobs are likely about to go poof. My resume already looks funky enough due to the Bad Year that I suspect I’ll always have some trouble job searching in libraries. I need a new backup skill, and it’s got to be solid.

So cry havoc and hunch over a keyboard! Time to set aside a little coding practice every day after work, to struggle with modules and indices, and to remember that an array cannot bite me harder than I can bite it. And if worst comes to worst, there’s still the bookstore/vegan deli concept. Perhaps grammaries and seitan will save me in the end after all.

Librarian Out Of The House

Being a librarian in a library building right now has certain challenges, viz people like to come into libraries and sit around, coughing onto the books and rubbing their mandibles all over the circulation desk. Not all of them, obviously, but the patrons who button up with a nice thick face mask aren’t the ones who remain in our minds. Those patrons leave us in every sense when they depart in an orderly fashion; the terrible ones remain with us in our awareness for lo these many long days. Unfortunately, there’s good reason for this at the best of times: a thousand wonderful patrons may arrive and depart without incident, but one terrible patron can ruin everything.

This is a problem because every public library has one to five dreadful patrons, and in our current case, they can cause an outsized amount of harm. Librarians tend to be older – I know a couple who are approaching their eighties with no intention of retiring. It’s a profession that’s easygoing and friendly to disability, too, with a culture that tends to err on the side of understanding that you’ve got a doctor’s appointment. This may be why so many of us seem to have minor chronic conditions or care for vulnerable people outside of work. One of the reasons that I myself entered and persisted in the library field was that the profession is notoriously nurturing, and I, as many already know, am a delicate and dainty blossom.

Fly Agaric, Mushroom, Poison, Toxic, Nature, Forest

Or something.

My point is that, in the context of the current unpleasantness, librarians are kind of a vulnerable group in general. I’m worried that the confluence of the occasional jerk of a patron and the relative age of the profession could cause disaster. That’s not even mentioning the danger of librarians spreading the disease – many of our patrons are older, too, or picking up books for elderly and at-risk family.

There are many ways to be a librarian aside from standing in buildings and handing out books. While the trend right now is, understandably, “get the staff back in before the town cuts our budget,” I hope that anyone who is not receiving pressure to open from their municipalities will consider the alternatives. Lots of libraries are exploring these already, but I thought it might be worthwhile to list them in case someone’s idly Googling “remote librarian” or “how to open library Covid” and needs a few ideas.

Remote reference only

Even if you’ve got to bring staff back, why open your reference floor to the public? Goodness knows you can’t clean the computers and by far most of the questions you’ll get can be answered online or with a quick reference check. Have patrons email you, Zoom you, call you, and contact you telepathically. Who to ask: university libraries

Online gaming

Set up a board game tourney or Minecraft night. Play any group-friendly, remote-friendly video game your administration will approve – just do it together with your patrons. In fact, if you stream it on Twitch, you may get a little famous. I guarantee I’ll watch a librarian play video games with their friends, patrons, families, etc. Who to ask: Cleveland Public Library

Contactless book delivery

Each patron in your town can order a limited number of books from your specific once a week – no transits, orders, ILLs, or nonsense. They can even ask the librarians to choose for them. Otherwise, this service functions just like a Grubhub. Labor-intensive, say you? Says I, if the patrons can’t come into the library, your staff will have time. Have them Insta their adventures to the local paper and nobody will question that the librarians are hard at work. Who to ask: Western Manitoba.

View this post on Instagram

Hey everyone! Some important information related to our new Contactless Delivery System (please read through before placing a request). We are thrilled by the response so far and look forward to getting library books into your hands in a safe and convenient way 🙌 #wmrl #brandonpubliclibrary #contactlessbookdeliveries

A post shared by Western MB Regional Library (@wmrlibrary) on

Stream a classic

If music be the soul of love, then people are bored and want to hear stories so make your own library Internet radio station. Stream Librivox chapters, old-time radio, reference question answers, storytimes, news, and whatever the heck else you want. (As long as it’s royalty-free.) You could also start a podcast, I guess, but everybody and their mother has a podcast these days and there’s something magical about knowing that other people are listening at the exact same time as you are. My recommendation: choose compilations of short stories so that people don’t jump into the middle of a long book. Who to ask: Memphis Public Libraries

Email outreach

If your consortium is anything like mine, then you have most of your patrons’ emails. If they haven’t explicitly opted out of getting spam from you, reach out to your heaviest users and ask if they’d like a weekly e-book recommendation. Be sure to send them titles that are available on OverDrive, Hoopla, or whatever other platform your library prefers. Bonus: offer to stock their account for them once every three weeks so that all they have to do is log in to get that good good literature. Or that rancid smut, whatever they prefer. As long as you don’t have to touch it with your bare hands, who says it has to be clean?

So what have I been up to? Covid-19 Edition

The last really serious post I made was about my sudden departure from public libraries into…drumroll please…another corner of the public library industry! For those of you wondering how this thrilling move has gone, suffice to say that I seem to have landed a job that I can do from home in the event of pandemic. I’m lucky. Very lucky. Boy howdy do I know it. To paraphrase my father, it’s better than winning the lottery.

So I sacrificed a goat to Baal in gratitude, like you do, and as I was sifting through its entrails with the ritual tuning fork I discovered a message. Unbelievably, it was for me. That’s right: I got a call on the spirit world’s red telephone! It said don’t fucking waste this.

That’s all it said.


Gotta read between the lines.

No context. No nothing. Just don’t fucking waste this written in goat blood on my basement floor. I just sort of sat there for a moment, wondering what it meant and also thinking about whether it would be appropriate to mop it up and why it was in Comic Sans.

I decided to make a list of everything that I was grateful for. I started with the job, of course, and then the fact that the basement floor is sealed and easy to hose off. Then I got going on the condo and my wife and the relative availability of goats, and pretty soon I was just bragging. There’s a fine line between gratitude and gloating. Pretty soon, I felt like I was wallowing, except instead of being depressed and mopey, I was binging on my own positivity. Like a pig in chocolate, I was getting a high but it was also kind of wrong.

So I decided to just clean up the blood before it dried any more, because as bad as it is to pressure wash away an otherworldly message, it would be worse to have to scrape it up with an old spatula. Plus, pressure washing is so brainlessly satisfying. When I’d finished with the blood, I proceeded to de-grime the entire basement floor, humming sans tune, not a thought in my head. Keep in mind that this space is about as appealing as a moldy closet and there’s no need for it to be sparkly. It was a mindless task.

Pressure Washer Service Peachtree Corners GA | Peachtree Pre… | Flickr

Like Steven Miller crawling toward an Applebee’s, it gets whiter by the inch.

I was halfway through powerwashing the Sigil of Baphomet when an unwelcome thought intruded into the formerly pleasant nothing that had been my afternoon. What was I doing? This basement was about goat entrails and the neighbor’s cable box. I wasn’t accomplishing anything. I was killing time and avoiding productivity. I was wasting it!

Right there on the spot, I dropped the pressure washer to the floor and dashed up the stairs. I was in the grip of new motivation. I’d lose that ten pounds. I’d finish my yarn projects. Hell, I’d finish the yarn, then I’d buy some angora rabbits and make more! I’d sell it on Etsy. The shop would be called The Rabbit Habit. My pencil flew. Long into the night, I generated business plans and growth projections and logo ideas. Then things got weird and I made some recordings. I’ve included one at the end of this post. It’s not bad, to be honest. Recording it is the last thing I remember doing. The rest is a jumble of baking sprees and exercise fueled by gallons of coffee.

I woke up at three in the afternoon two days later, feeling like I’d been hit by a tractor trailer. My spirit was crushed and I was in a state of abject misery. I’d done everything I could think of to not fucking waste this. The harder I tried, the worse the result.

Snail, Obstacle Overcoming, Will, Managed, Courageous


I decided it was time for another goat sacrifice. I had to get Baal back on the horn.

This time, he was a little more forthcoming. Baal isn’t much of a chatty Kathy at the best of times, but I’ve found that he’ll explain himself if I frustrate him enough. Here’s what he had to say:

This is your privilege.

You’re not sick. You’re in next to no danger of getting sick. Not because you’ve earned it, or because you keep making these disgusting sacrifices that I have told you explicitly to stop making, but because you’re privileged and lucky. You don’t even have to think about it. You just turned that one sentence into a bizarre, misguided, self-obsessed self-care regimen and meanwhile there are people risking their elderly parents’ lives to deliver fancy cheese to your doorstep at 8:30pm.

He had a point. I do like my fancy cheese and I’m not about to go get it myself. That could be dangerous!

I don’t care what you do with that privilege. Believe it or not, I have bigger things to worry about than you. But decide what you’re going to do with it and then act. Passivity is death. Just ask the French aristocracy.

At this point, the goat ran out of blood, which reminded me a lot of running out of quarters for the payphone when I was a kid. Maybe Baal would have had more to say. I’ll never know. I’m out of goats.

Sources: Taylor Swift by Hugh Behm-Steinberg and Evolution by Bensound

A Very Quiet And Organized Pandemic Response

Coming to you live from my lunch break, I am your COVID19 library correspondent. This is going to be short and quick because we are BUSY.

Public libraries want to stay available, but can’t stay open. Not only are libraries traditionally places where people gather to exchange germs, but the only reason to visit a library is to share technology and information, viz books, computers, cake pans. All of which will soon be/currently are covered in a thin, even film of germs. Think a creamy layer of delicious chocolate icing on one of those adorable library cakes.

Long story short: if your library is open right now, avoid using its physical resources please.


Libraries provide a suite of resources that can vastly improve your quarantine experience. I might try to write about this for Book Riot later, but frankly I’m still carving out time for writing these days and someone might beat me to it. So here’s what you can still get from your trusty library system:

  • E-books. Look up Libby or Hoopla on your phone’s app store. You’ll need your library card number, but if you don’t have it just call a library in your network. Most of mine are still staffing, they’re just not open. A resource like Safari (soon to be called O’Reilly for Public Libraries) is often available in-browser.
  • Movies. Consider Kanopy a good option, and Hoopla has a bunch of movies you should be able to borrow right from a smart TV.
  • Internet. Charge up your laptop or phone and just park yourself in your local library’s parking lot. I’ve heard rumors that a few turn off their wifi when they’re closed, but most of them couldn’t do that even if they wanted to for various technological reasons. If you park close to the building, you should be able to get a nice strong signal without ever leaving your car. If your library is an asshole library (they exist!) that turns off its wifi, drive to another one.
  • Language resources. Many libraries have language-learning stuff on their websites. Mango is popular.

Not enough? I get it, buddy. It’s not a lot compared to the usual suite of services. Check out your library’s website and see if they do video storytimes, YouTube videos, or other remote services.

That’s all, book buddies. I just finished The Goon: A Ragged Return To Lonely Street and it was stupid, dumb, and violent and I loved it. Also, it was fairly well drawn. Why was there just one woman who started sexy and then turned into a monster? Why did Goon reference sadomasochism when he was interacting with her? Might this say something about comics or people or monsters? I have no idea! On to the next volume.

I’m also playing Handsome Boy Modeling School (Affiliate link forthcoming, sorry, I’ve been crappy about that) and it has made my little butch face much prettier.

Lordy lordy, I’m out of public libraries

Fresh out. Clean out. Well, almost. I’m now a customer support librarian for a public library consortium, and who knows what’s next! I’ve still got that networking certificate humming along – should have that done by next year, actually. (God willing and the creek don’t rise.) After that, I’m probably going to start chipping away at a CS bachelor’s, focusing either on databases or development. What can I say? A girl can get a late start on her secret IT ambitions and still have dreams.

The past month has been something of a blur and rather than drop any balls, I set several balls carefully aside, as one might do with ornamental glass fruit or the skulls of one’s revered ancestors. The writing ball is one that I did set aside, but I’m hoping to pick it right back up. I know, for one thing, that Book Riot languishes without my scintillating listicle-writing presence. I’ve also been uncomfortably absent from the fiction-writing scene, and you know what? I think I’ll publish under my real name from now on. Look out, world!

I’ve got a few other pots on the stove, but I think I’ll let those boil over before I alert you about the terrible danger in which we will all, at that exact moment, find ourselves. This blog is going to continue to be (loosely) about librarianship, and cooking, and gardening, and sustainability, and most especially about computers.

I’ll leave you with this: it is STUPID EASY to accidentally make a new file in Powershell. Yesterday, I managed to make testfile1.txt, testfil1.txt, test1.txt, and all of the above without their file extensions. Then I tried to move a file named Massive Duck Attack.txt and discovered exactly why underscores are so blamed important. Let’s hear it for practice with the Rename-Item cmdlet! (And the humble underscore.)

Also, I’m reading Gideon the Ninth and it’s everything I’ve ever wanted. I also just finished Lives of the Monster Dogs and I think the book about stylish lesbian necromancers in space is less weird. Loved it, may buy it. Finally I’m listening to City of Brass, and so far, it’s fancy but predictable. I guess I could say the same thing about Gideon, but there’s a swordsdyke in that one so it gets extra points.

Until next time, boys and ghouls.

Diary of a Librarian: Voices Carry

I have a loud voice. Part of this is because I listened to a lot of obnoxious music in my twenties and now strain to hear a whisper or mumble when I’m standing next to a fan. Another part is that I grew up in a loud Italian family where the volume was permanently at 11, and that still seems normal to me. The final part is that I just have some lung power, man.

And I like to use it! Even when my voice gets unpleasantly dry and creaky, which happens every stupid time the temperature to moisture ratio of the room falls below sauna levels, I love to croak me out some Rage Against The Machine. If I hydrate, my range becomes fierce. I can whistle, too. All of this happens at top volume.

There are many reasons why none of it can happen in the library.

  • It’s loud. While the Nevins isn’t a silent library, patrons don’t want to hear me expound upon the lifespan of the lobster or serve some sick burns to the military-industrial complex. It’s not professional. Incidentally…
  • Even humming a recognizable, expletive-laden song in front of a patron is inappropriate. On the plus side, Hookers by Irontom has been stuck in my noggin for about a year now and resisting it has allowed me to achieve zen-like levels of self-control.
  • Misophonia. There are a lot of people with sensory issues, major and minor, who use the library. It is not fair to subject them to whistling, humming, or the scratchy crow voice I get when it’s both too cold and too dry for my diva of a larynx. In fact, generating pointless noise can make people ornery and hard to handle. Why would I want to rile a patron? (Don’t answer that.)

There’s another problem with using my voice at the desk: the patrons are right there. The patron computers are literally five feet away from my preferred computer station. That means that any conversation I have with a coworker (or another patron) is likely to be overheard, and with it, all of its sensitive personal information.

Secret, Hands Over Mouth, Covered Mouth, Mouth, Young

I’m a Gemini I made meatballs with tofu my hybrid needs new brakesmmmmmmfffffmfmmm

Because I’m a fairly self-conscious person, my initial worry goes along the lines of oh god, what if something I say offends people? This falls into the category of useful paranoias that I like to think has kept me out of a fair amount of trouble. I avoid all political and controversial subjects. When patrons want to talk, I try to steer the dialogue to library services or technology; when colleagues want to talk, we talk about pets, books, and kids. Intellectually, I know that I probably shouldn’t be saying anything to my colleagues when we’re on the desk together, but I feel the need to balance camaraderie and friendliness with circumspection. We only work well together if we’re on good terms, and that means being social, to an extent.

But privacy is still the best reason to watch your mouth in the reference room, and sometimes, the combination of the patrons themselves and the setup of a reference floor makes this difficult. Case in point: I once helped a patron who was looking for housing. They had multiple considerations and I struggled to find a solution that was right for them. We were working at a computer and there were other people around us. When the first patron became upset, another patron volunteered a personal recommendation for a housing counselor in the next town over. While this was very helpful, it also represented a potentially bad situation. Patron 1, who was in housing distress, did not want to talk to Patron 2, but not because they wanted to maintain privacy. Patron 1 had previously told me that they did not consider people of Patron 2’s ethnic group to be true Americans.

Train Wreck, Steam Locomotive, Locomotive, Railway

A bystander’s record of the subsequent conversation.

Luckily, the situation resolved without incident and everybody learned an important lesson about tolerance, prejudice, and how far off the rails things can go when patrons overhear your reference questions. I’d initially assumed that we needed to preserve Patron 1’s privacy over their housing needs, but when that privacy was breached, bigger problems became evident. I now think of privacy as a container that keeps all of a patron’s issues localized for a moment while we figure out how to handle their immediate issue. It’s wonderful that Patron 1 came away from that interaction with a broader mind, and I am still very grateful that Patron 2 was so patient and slow to take offense, but that conversation was a job for a consciousness-raising program, not a reference desk.

The real question is how we can mitigate eavesdropping in an environment where problems must usually be solved with computers and computers are necessarily clumped together. The kind of information that this puts at risk makes that anecdote above sound just delightful. People regularly describe their tax problems to me at the reference desk, and I have had patrons try to tell me their social security numbers. Many people come into the library for personal assistance with online job applications and end up discussing their home addresses, work histories, disabilities, and even conviction histories aloud. I try to seat patrons dealing with sensitive stuff away from others on the reference floor, but there’s no getting around it: when we’re full up, even a whisper is audible by whoever’s at the next computer over.

If I had my druthers, we would have a sensitive services area. It would contain two or three booths that close tight to mitigate or eliminate noise. There would be a computer in each one. You’d sign each booth out for an hour at a time, and once you were in, you could go to town. Scream at your insurance agent on your cell phone. Relay your social security number to whosoever you please. Call in a librarian and talk about researching your extremely personal illness or finding a lawyer to help you with your divorce or immigration.

“Telephone” booths are expensive nowadays, but there are DIY options for sound-dampening areas. (Personally, though, I’d spring for something with see-through windows, regardless of price. Safety first!) There could even be a specific laptop that patrons sign out when they want to use the phone booth so that regulars aren’t tempted to co-opt it for their Facebook-surfing needs.

Screenshot from 2020-01-07 12-54-47.png

Would people misuse a telephone booth? Obviously. Even if it’s in plain sight, couples will go in there, gamers will camp out to play Warcraft, and people suffering from paranoia will insist that it’s the only place they can safely check their email. But every privilege a library provides gets abused eventually. The point isn’t to keep services away from the 2% who will take advantage, but to make them available to the 98% who need them.

After all, as experience proves, I’m not the only one with a voice that carries.

Featured image from Room.com!

Diary of a Librarian: #NewYearGoals

2020! Woooo!

The concept of decades and years and minutes and hours and stuff like that are all human and based on Earth-specific metrics, like our relative gravity and the speed of our planet’s rotation. Making New Year’s resolutions is as arbitrary as marking this particular day as the first of the year. But when you get right down to it, a lot of human aspirations are arbitrary. Take money. Once you have enough of it to satisfy your personal standard of living, you’re not really going to improve your life by adding more. In fact, you’re probably going to make yourself a bit more miserable because it’s not money that you actually like, but having a challenging goal.

Nevertheless, even the zen-est librarian jumps and hollers at a job that offers a raise. I’ve done it myself! In fact, this attitude led directly to the single biggest kerplunk of my career. I believe that I was too focused on achieving a goal – making more money – and not focused enough upon getting a job where I actually enjoyed the day-to-day.

At my current position, which is not a kerplunk, I experience a rush of happiness when I complete a task, followed by a steep dip into dissatisfaction when I realize that there’s nothing left to do. This spike and dip pattern zeroes itself out. I might successfully help a patron retrieve a password, but then there are no more patrons for a long time and I risk becoming bored. (Boredom! My eternal nemesis!) However, having a steady project, like running a driver update schedule on all of our staff and public computers, keeps me busy and gives me a running sense of accomplishment. Occasional setbacks are inevitable and can be frustrating, but the process is, on the whole, more satisfying than reaching the conclusion.

Musician, Person, Guitar, Song, Rock, Jazz, Concert


I’ve noticed this before while hiking, reading, writing, whitewater kayaking, fighting, dieting, roller derby bouting, and gardening. Obviously we need goals for the purpose of motivation and actual productivity; there’s not much point in tenderly caring for a tomato crop all year if you’re not going to get some nice juicy beefsteaks out of it. But is it possible that this is one of those little evolutionary tricks that nature has played upon us humans for our own good, like our desire to consume mass amounts of sugar and sit on our asses all day? Is it possible that this is a trait that is no longer as useful as it would have been when we were, say, running down antelopes over the course of several days?

That’s why, for this fun but arbitrary annual counter, I’m going to make an arbitrary adjustment to new Year’s tradition. Instead of resolutions, I’m going to make adjustments to my life and process that I will maintain going forward. Personally, this will involve a whole lot more walking and biking and a whole lot less buying new stuff. Librarianwise, it’s all about the tech with a big dollop of self-care.

Always Be Studying

STUDY FOREVER! My role at Nevins Library has recently involved an uptick in downtime, and that’s not great for me. I like to be doing something every minute of every day. Otherwise, I get bored! (BOREDOM! My eternal nemesis!) Luckily, the library’s new computer use policy allows staff to participate in educational activities when not otherwise engaged. With the shelves still gone, we have relatively few patrons visiting us on the reference floor, and that means tons of study time.

I intend to work through the Meyers Comptia A+ Certification Study Guide until I’m ready to take the test, then clamp right down on Python and maybe Swift. If I could eventually get a custom iPhone app for library computer maintenance tracking out of this, I’ll be exceedingly happy.

Comptia A+ Certification All-In-One Exam Guide, Tenth Edition (Exams 220-1001 & 220-1002)

Truth in advertising!


I’m making some adjustments to how I handle low-grade IT problems, which are the only grade of problems I’m currently qualified to solve. I’m de facto IT at the Nevins Library, which was a major impetus of my desire to learn more about computers before I realized that I’m really quite talented at computers.

I recognize that I’m not a “real” IT person yet – the library contracts with someone who has a complete CS education and commensurate experience – but since I’m the one staff members call to unjam copiers in situ, I want to keep track like the big kids. I’ve already started a receipt and ticketing system based on our shared staff server. It’s very, very simple, because it’s literally just a Word and Excel document pair that I fill in by hand after I deal with a tech problem.

ink bottle on desk

Ticketing System v1.0

Someday I’ll learn to automate it, but for now, it seems to be working OK. My goal this year is to make writing a ticket as natural a process as responding to a tech problem in the first place.

A Little Insulation

I come down very hard on myself. This is a lifelong pattern and it disturbs the people around me. I don’t enjoy it, either. If I knew why I do it, I’d stop! It comes across as unfair and uncomfortable at best, which I know because good friends have leveled with me. I’ve also come to believe that this bad habit may strike people who don’t know me well as manipulative. This alone makes me want to modify this behavior because I am, in fact, a painfully earnest person.

I believe that I’ve improved upon the self-hatin’ since I first realized that it was such a serious issue, but I have a long way to go. (My sense of humor in particular goes a little too far past self-deprecating.) I think that the solution is to treat this tendency like an anger problem: when I have feelings, I’ll step away for a few minutes until I feel better or get distracted.

Here’s to 2020, folks. May your libraries thrive and your patrons throw away their own food.

Featured image from Pineapple Supply Co. on Unsplash!