Author Archives: Galen Charlton

IMLS support for free and open source software

The Institute of Museum and Library Services is the U.S. government’s primary vehicle for direct federal support of libraries, museums, and archives across the entire country. It should come as no surprise that the Trump administration’s “budget blueprint” proposes to wipe it out, along with the NEA, NEH, Meals on Wheels, and dozens of other programs.

While there is reason for hope that Congress will ignore at least some of the cuts that Trump proposes, the IMLS in particular has been in the sights of House Speaker Paul Ryan before. We cannot afford to be complacent.

Loss of the IMLS and the funding it delivers would be a disaster for many reasons, but I’ll focus on just one: the IMLS has paid a significant role in funding in the creation and use of free and open source software for libraries, museums, and archives. Besides the direct benefit to the institutions who were awarded grants to build or use F/LOSS, such grants are a smart investment on the part of an IMLS: a dollar spent on producing software that anybody can freely use can rebound to the benefit of many more libraries.

For example, here is a list of some of the software projects whose creation or enhancement was funded by an IMLS grant:

This is only a partial list; it does not include LSTA funding that libraries may have used to either implement or enhance F/LOSS systems or money that libraries contributed to F/LOSS development as part of a broader grant project.

IMLS has also funded some open source projects that ultimately… went nowhere. But that’s OK; IMLS funding is one way that libraries can afford to experiment.

Do you or your institution use any of this software? Would you miss it if it were gone — or never existed — or was only available in some proprietary form? If so… write your congressional legislators today.

On triviality

Just now I read a blog post by a programmer whose premise was that it would be “almost trivial” to do something — and proceeded to roll my eyes.

However, it then occurred to me to interrogate my reaction a little. Why u so cranky, Galen?

On the one hand, the technical task in question, while certainly not trivial in the sense that it would take an inexperienced programmer just a couple minutes to come up with a solution, is in fact straightforward enough. Writing new software to do the task would require no complex math — or even any math beyond arithmetic. It could reasonably be done in a variety of commonly known languages, and there are several open source projects in the problem space that could be used to either build on or crib from. There are quite a few potential users of the new software, many of who could contribute code and testing, and the use cases are generally well understood.

On the other hand (and one of the reasons why I rolled my eyes), the relative ease of writing the software masks, if not the complexity of implementing it, the effort that would be required to do so. The problem domain would not be well served by a thrown-over-the-wall solution; it would take continual work to ensure that configurations would continue to work and that (more importantly) the software would be as invisible as possible to end users. Sure, the problem domain is in crying need of a competitor to the current bad-but-good-enough tool, but new software is only the beginning.

Why? Some things that are not trivial, even if the coding is:

  • Documentation, particularly on how to switch from BadButGoodEnough.
  • Community-building, with all the emotional labor entailed therein.

On the gripping hand: I nonetheless can’t completely dismiss appeals to triviality. Yes, calling something trivial can overlook the non-coding working required to make good software actually succeed. It can sometimes hide a lack of understanding of the problem domain; it can also set the coder against the user when the user points out complications that would interfere with ease of coding. The phrase “trivial problem” can also be a great way to ratchet up folks’ imposter syndrome.

But, perhaps, it can also encourage somebody to take up the work: if a problem is trivial, maybe I can tackle it. Maybe you can too. Maybe coming up with an alternative to BadButGoodEnoughProgram is within reach.

How can we better talk about such problems — to encourage folks to both acknowledge that often the code is only the beginning, while not loading folks down with so many caveats and considerations that only the more privileged among us feel empowered to make the attempt to tackle the problem?

TIMTOWTDI

The Internet Archive had this to say earlier today:

This was in response to the MacArthur Foundation announcing that the IA is a semifinalist for a USD $100 million grant; they propose to digitize 4 million books and make them freely available.

Well and good, if they can pull it off — though I would love to see the detailed proposal — and the assurance that this whole endeavor is not tied to the fortunes of a single entity, no matter how large.

But for now, I want to focus on the rather big bus that the IA is throwing “physical libraries” under. On the one hand, their statement is true: access to libraries is neither completely universal nor completely equitable. Academic libraries are, for obvious reasons, focused on the needs of their host schools; the independent researcher or simply the citizen who wishes to be better informed will always be a second-class user. Public libraries are not evenly distributed nor evenly funded. Both public and academic libraries struggle with increasing demands on their budgets, particularly with respect to digital collections. Despite the best efforts of librarians, underserved populations abound.

Increasing access to digital books will help — no question about it.

But it won’t fundamentally solve the problem of universal and equitable service. What use is the Open Library to somebody who has no computer — or no decent smart phone – or an inadequate data plan—or uncertain knowledge of how to use the technology? (Of course, a lot of physical libraries offer technology training.)

I will answer the IA’s overreach into technical messianism with another bit of technical lore: TIMTOWTDI.

There Is More Than One Way To Do It.

I program in Perl, and I happen to like TIMTOWTDI—but as a principle guiding the design of programming languages, it’s a matter of taste and debate: sometimes there can be too many options.

However, I think TIMTOWTDI can be applied as a rule of thumb in increasing social justice:

There Is More Than One Way To Do It… and we need to try all of them.

Local communities have local needs. Place matters. Physical libraries matter—both in themselves and as a way of reinforcing technological efforts.

Technology is not universally available. It is not available equitably. The Internet can route around certain kinds of damage… but big, centralized projects are still vulnerable. Libraries can help mitigate some of those risks.

I hope the Internet Archive realizes that they are better off working with libraries — and not just acting as a bestower of technological solutions that may help, but will not by themselves solve the problem of universal, equitable access to information and entertainment.

Continuing the lesson

The other day, school librarian and author Jennifer Iacopelli tweeted about her experience helping a student whose English paper had been vandalized by some boys. After she had left the Google Doc open in the library computer lab when she went home, they had inserted some “inappropriate” stuff. When she and her mom went to work on it later that evening, mom saw the insertions, was appalled, and grounded the student. Iacopelli, using security camera footage from the library’s computer lab, was able to demonstrate that the boys were responsible, with the result that the grounding was lifted and the boys suspended.

This story has gotten retweeted 1,300 times as of this writing and earned Iacopelli a mention as a “badass librarian” in HuffPo.

Before I continue, I want to acknowledge that there isn’t much to complain about regarding the outcome: justice was served, and mayhap the boys in question will think thrice before attacking the reputation of another or vandalizing their work.

Nonetheless, I do not count this as an unqualified feel-good story.

I have questions.

Was there no session management software running on the lab computers that would have closed off access to the document when she left at the end of the class period? If not, the school should consider installing some. On the other hand, I don’t want to hang too much on this pin; it’s possible that some was running but that a timeout hadn’t been reached before the boys got to the computer.

How long is security camera footage from the library computer lab retained? Based on the story, it sounds like it is kept at least 24 hours. Who, besides Iacopelli, can access it? Are there procedures in place to control access to it?

More fundamentally: is there a limit to how far student use of computers in that lab is monitored? Again, I do not fault the outcome in this case—but neither am I comfortable with Iacopelli’s embrace of surveillance.

Let’s consider some of the lessons learned. The victim learned that adults in a position of authority can go to bat for her and seek and acquire justice; maybe she will be inspired to help others in a similar position in the future. She may have learned a bit about version control.

She also learned that surveillance can protect her.

And well, yes. It can.

But I hope that the teaching continues—and not the hard way. Because there are other lessons to learn.

Surveillance can harm her. It can cause injustice, against her and others. Security camera footage sometimes doesn’t catch the truth. Logs can be falsified. Innocent actions can be misconstrued.

Her thoughts are her own.

And truly badass librarians will protect that.

Truth-seeking institutions and strange bedfellows

I was struck just now by the confluence of two pieces that are going around this morning. One is Barbara Fister’s Institutional Values and the Value of Truth-Seeking Institutions:

Even if the press fails often, massively, disastrously, we need it. We need people employed full-time to seek the truth and report it on behalf of the public. We need to defend the press while also demanding that they do their best to live up to these ethical standards. We need to call out mistakes, but still stand up for the value of independent public-interest reporting.

Librarians . . . well, we’re not generally seen as powerful enough to be a threat. Maybe that’s our ace in the hole. It’s time for us to think deeply about our ethical commitments and act on them with integrity, courage, and solidarity. We need to stand up for institutions that, like ours, support seeking the truth for the public good, setting aside how often they have botched it in the past. We need to apply our values to a world where traditions developed over years for seeking truth – the means by which we arrive at scientific consensus, for example – are cast aside in favor of nitpicking, rumor-mongering, and self-segregation.

The other is Eric Garland’s Twitter thread on how the U.S. intelligence community gathers and analyzes information:

In particular,

Of course, if it is easy nowadays to be cynical about the commitment of the U.S. press to truth-seeking, such cynicism is an even easier pose to adopt towards the intelligence community. At the very least, spreading lies and misinformation is also in the spy’s job description.

But for the purpose of this post, let’s take the latter tweet at face value, as an expression of an institutional value held by the intelligence community (or at least by its analysts).

I’m left with a couple inchoate observations. First, a hallmark of social justice discourse at its best is a radical commitment to centering the voices of those who hitherto have been ignored. Human nature being what it is, at least a few folks who understood this during during their college days will end up working for the likes of the CIA. On the one hand, that sort of transition feels like a betrayal. On the other hand, I’m not Henry L. Stimson: not only is it inevitable that governments will read each other’s mail, my imagination is not strong enough to imagine a world where they should not. More “Social Justice Intelligence Analysts” might be a good thing to have — as a way of mitigating certain kind of intellectual weakness.

However, one of the predicaments we’re in is that the truth alone will not save us; it certainly won’t do so quickly, not for libraries, and not for the people we serve. I wonder if the analyst side of the intelligence community, for all their access to ways of influencing events that are not available to librarians, is nonetheless in the same boat.

ALA and recognizing situations for what they are

As I suspect is the case with many members, my relationship with the American Library Association runs hot and cold. On the one hand, like Soylent Green, ALA is people: I have been privileged to meet and work with many excellent folk through ALA, LITA, and ALCTS (though to complete the metaphor, sometimes I’ve seen ALA chew on people until they felt they had nothing left to give). There are folks among ALA members and staff whose example I hope to better emulate, including Andromeda Yelton, Deborah Caldwell-Stone, Keri Cascio, and Jenny Levine. I also wish that Courtney Young were ALA president now.

And yet.

For what follows, unfortunately I feel compelled to state my bona fides: yes, I have been and am active in ALA. I sign petitions; I grit my teeth each year and make my way through ballots that are ridiculously long; I have chaired interest groups — and started one; I’ve served on an ALA-level subcommittee; I helped organize a revenue-producing pre-conference. Of course, many people have rather more substantial records of service with ALA than I do, but I’ve paid my dues with more than just my annual membership check.

To put it another way, the spitballs I’m about to throw are coming from a decent seat in orchestra left, not the peanut gallery.

So, let’s consider the press releases.

This one from 15 November, ALA offers expertise, resources to incoming administration and Congress:

“The American Library Association is dedicated to helping all our nation’s elected leaders identify solutions to the challenges our country faces,” ALA President Julie Todaro said. “We are ready to work with President-elect Trump, his transition team, incoming administration and members of Congress to bring more economic opportunity to all Americans and advance other goals we have in common.”

Or this one from 17 November, Libraries bolster opportunity — new briefs show how libraries support policy priorities of new administration:

The American Library Association (ALA) released three briefs highlighting how libraries can advance specific policy priorities of the incoming Trump Administration in the areas of entrepreneurship, services to veterans and broadband adoption and use.

In other words, the premier professional organization for U.S. librarians is suggesting that not only must we work with an incoming administration that is blatantly racist, fascist, and no friend of knowledge, we support his priorities?

Hell no.

Let’s pause to imagine the sounds of a record scratch followed by quick backpedaling.

Although it appears that a website redesign has muddied the online archives, I note that ALA does not appear to have issued a press release expressing its willingness to work with Obama’s administration back in 2008. In fact, an opinion piece around that time (appropriately) expressed ALA’s expectations of the incoming Obama administration:

During this time of transition in our nation’s leadership, the greatest challenge we face is getting our economy back on its feet. As our country faces the challenges and uncertainty of this time, the public library is one constant that all Americans, regardless of age or economic status, can count on, and it is incumbent on our leaders make it a priority to ensure America’s libraries remain open and ready to serve the needs of students, job seekers, investors, business people and others in the community who want information and need a place to get it.

Note the politely-phrased implicit demand here: “Mr. President-Elect: we have shown our value; you must now work to bolster us.”

This is how we should act with our political leaders: with the courage of our convictions.

Of course, it was easy to do that with a president who was obviously not about to start tearing down public libraries.

Consider this from Julie Todaro’s Q&A about the whole mess (emphasis mine):

Why did we write the press releases in the first place?

ALA often reaches out to constituents, advocates, and decision-makers – both proactively and reactively – to request actions, express our support for actions taken, request a decision-maker consider libraries in general, and request that libraries be considered for specific activities or purposes. My presidential initiative focuses on library professionals and library supporters as experts and on their expertise, and on the importance of various library initiatives in communities and institutions of all types and sizes – and on the importance of communicating this value to decision-makers. In making a strong case for the value of libraries – in any political environment – it is important to state that case from the perspective of the decision-maker. So, if a legislator or administrator is focused on the importance of small businesses and their effect on the community, for example, the strategy is to prepare a statement illustrating how libraries support small businesses within their community – and how they could be even more effective with supportive legislation, funding or other appropriate action. Our stories – combined with data –can be framed to align our vision with other visions – always within the framework of our values.

Really? What on earth was that decision-maker’s perspective imagined to be?

That of a normal business man, fond of his tax cuts but not wholly bereft of a sense that some leavings from his financial empire ought to be sprinkled around for the public good, or at least the assuagement of a guilty conscience?

That of a conservative, Republican, library board member, who might never vote to eliminate overdue fines but at least recognizes that a town is not complete without its library?

That of a entrepreneur overfond of his technological toys, who at least might be shown that there are some things Google neither finds nor indexes?

Such people might be reachable.

A conman is not.

A conman who explicitly denies the value of acquiring information. A conman who unapologetically names a white nationalist as his chief counselor. A conman whose Cabinet picks are nearly uniformly those who would pillage the departments they would lead. A conman who, unlike George W. Bush, has no known personal connection to libraries.

A conman who cannot be bought off, even if ALA were to liquidate itself.

Cowering before Trump will not save us; will not save libraries. I do not suggest that ALA should have pulled the tiger’s tail; in the face of fascism, such moral authority as we possess only works quietly. We are in for the long haul; consequently, it would have been appropriate, if not necessarily courageous, for ALA to have said nothing to the incoming administration.

One of the things that appalls me about the press releases is the lack of foresight. There was no reason to expect that Trump would respect craven offerings, and it was entirely predictable that a significant portion of the membership would object to the attempt.

Contrary to Naomi Schaefer Riley’s piece in the New York Post, libraries are not suddenly political. However, in its recent actions, ALA deserves the contempt she expresses: an organization that yanks two press releases is, at least, inept — inept beyond the normal slow pace of library decision-making.

ALA desperately need to do better. The political climate is unfriendly enough even before we consider creeping fascism: we should not plan on the survival of IMLS and LSTA nor on the Copyright Office remaining under the oversight of the Librarian of Congress. An administration that is hinting at a purge of EPA scientists who investigate climate change will not hesitate to suppress their writings. An administration that seeks to expand a registry of Muslims may not stoop at demanding lists of library patrons who have checked out books in Dewey 297.

And frankly, I expect libraries to lose a lot of battles on Capitol Hill, although I do think there is at least some hope that smart action in Washington, but particularly at the state level, might ameliorate some of the losses.

But only if we recognize the situation for what it is. We face both the apotheosis of GOP efforts to diminish, dismantle, and privatize government services and a resurgence of unrestrained racism and white nationalism.

I just hope that ALA will remain with me in resisting.

Coding in an age of impunity

Do you prefer that your coding not be mixed with politics? That your libraries stand alone in pristine neutrality? You are already doomed to disappointment, whether you know it or not; but especially on this blog from this day forward.

Consider this: when all the laws are smashed flat, what chance do codes of conduct and codes of ethics stand?

I hope we do not all find out; I fear we might.

To say that the election of Trump marks the beginning of an age of impunity is of course a lie: the unanswered trampling of the oppressed that has been going on for years, for decades, for millennia did not start last Tuesday.

And yet, things can get worse; have gotten worse. I can link to this without betraying confidences; I can point out this for an example near my home; I can listen to my friends who walk a much more dangerous path than mine.

Suffice it to say that Trump need not sign a single law, appoint a single judge, to cause ill during his tenure — those emboldened by his ascension can act on their hate and have done so. And who is going to advise Trump to repudiate them… Stephen Bannon?

Thought not.

What follows seems almost laughable in its insufficiency, particularly if the Trump administration goes full fascist, but defense in depth, perhaps?

We need to look to our codes, and buttress what we can.

Codes of conduct for professional conferences? I’m under no illusion that the Code4Lib Code of Conduct or the ALA Statement of Appropriate Conduct guarantee safety for anyone… but implemented correctly, and with teeth, they might at least maintain spaces where hate cannot operate with complete impunity.

The ACM Code of Ethics? Principles 1.2 (avoid harm to others), 1.4 (be fair and take action not to discriminate), 1.7 (respect the privacy of others), and 1.8 (honor confidentiality) are more important than ever: nuclear weapons may kill us quick, but software is all too easily turned into an instrument of oppression.

The ALA Code of Ethics? Privacy has always been a matter of life and death for especially vulnerable library patrons. Now, we live in a time when Newt Gingrich is, unironically, suggesting that that the thing to do is to revive the House Un-American Activities Committee and Trump threatens to silence those who mock him.

What can we expect in an age of impunity? For some, the disaster is now. Trump may well lead us into a quick general disaster: nuclear war, global depression, genocide. Against that, computers and libraries may not amount to much — but we can but use whatever tools we can seize to survive and to perpetuate our stories.

A longer, slower disaster is possible — and here, we must watch for more subtle traps: compromises that may or may not mitigate immediate pain, that may or may not pave the way for worse and worse. Or perhaps, we may yet see change for the better (though climate change looms over all).

Either way, we must look to our codes, strengthen what we can, protect life where we can.

And yes, the preceding feels utterly laughable. In fact, I would relish being taken for a fool, a chicken little whose reputation for prognostication is so bad that my assertion that the sun will rise tomorrow is met with cries of “pull the other one!”

I don’t expect that hope will come so easily.

An easy vote

A political post for today.

Two and a half weeks ago I stood in line for a hour in Lawrenceville, Gwinnett County, Georgia and participated in early voting.

Some of the decisions I had to make were a little difficult. Consider the statewide ballot initiatives. Two of them were about allocating money for specific purposes — and I felt torn about both, on procedural grounds: it within the power of an elected, representative state legislature to levy taxes and spend the receipts as they see fit. Sending to the voters the question of where to direct tax proceeds from the sale of fireworks is an abdication of responsibility on the part of the legislators, who could just as well deal with it in the general budget. Similarly, the legislature could directly fund anti-human-trafficking programs. I voted for amendments 2 and 4, but reluctantly.

Another difficult decision: voting for supervisors for the Gwinnett County Soil and Water Conservation District. That’s pretty important: Gwinnett County is growing, and we’re in a drought. And yet, I couldn’t find much information about the candidates positions or professional affiliations.

Other decisions were easy: yes, Jim Shealey, I hope you make it in as chair of the county commission: it would be nice to see steps towards getting light rail in Gwinnett County.

No, Mr. Privatize Nuclear Waste Management, privatization pixie dust, no matter how much is sprinkled, neither makes the half-life any shorter nor relieves government of the ultimate expense of dealing with the stuff.

No, Butch Conway, I am not in favor of Gwinnett County’s participation in the 287(g) program: immigration enforcement is a federal responsibility, and Gwinnett County does not need its sheriff’s deputies playing immigration cop. I’m just sorry nobody is running against you.

No, incumbents of the County Commission and Board of Education, I don’t particularly care for your gerrymandering ways. I do not actually need the people who represent me to all look like me. Gwinnett County is a majority-minority county now. Live with it.

Yes, Pedro Marin, you stay put in the statehouse, opposing things like RFRA.

 

One decision was really easy.

I am with her.

I voted for Hillary Clinton with alacrity and pleasure.

I am certainly not for Trump. He is a joke of candidate; he is racist; he is misogynist; he has no self-control; he has no policies that would survive a momentary breeze, save perhaps the enrichment of his own ego.

A Trump administration would cause incalculable harm; his merely running has already done so. And this is personal: I have friends who have watched the climate of transphobia grow this year — friends who are afraid that their marriages may be taken away from them — friends under crushing student debt who do not need a feckless man blowing up the economy — friends who see increasing anti-Semitism and hate against Muslims and hate against black people and hate against all difference — who know exactly where this can lead to.

Oh, by the way: a Trump administration would harm people who look like me, a white man. Over the long run — whither our souls if we do not give up hegemony? — but possibly in the short term. White male privilege is an amazingly ineffective shield against nuclear blast.

But more importantly, I am for Clinton. She’s not merely (and by far) the lesser of two evils; I believe that a Clinton administration will result in more justice and equity at home and will allow us to play our part on the global stage with dignity. I believe that she will do better against climate change; I believe that she will appoint prudent people to run the government.

Of course, her ability to do that depends on a lot whether she gets a Senate that will work with her, rather than obstruct everything she does.

If you haven’t voted already, please do so today.

And stay safe out there.

Visualizing the global distribution of Evergreen installations from tarballs

In August I made a map of Koha installations based on geolocation of the IP addresses that retrieved the Koha Debian package. Here’s an equivalent map for Evergreen:

Downloads of Evergreen tarballs in past 52 weeks

Click to get larger image

As with the Koha map, this is based on the last 52 weeks of Apache logs as of the date of this post. I included only complete downloads of Evergreen ILS tarballs and excluded downloads done by web crawlers.  A total of 1,317 downloads from 838 distinct IP addresses met these criteria.

The interactive version can be found on Plotly.

How to build an evil library catalog

Consider a catalog for a small public library that features a way to sort search results by popularity. There are several ways to measure “popularity” of a book: circulations, hold requests, click-throughs in the catalog, downloads, patron-supplied ratings, place on bestseller lists, and so forth.

But let’s do a little thought experiment: let’s use a random number generator to calculate popularity.

However, the results will need to be plausible. It won’t do to have the catalog assert that the latest J.D. Robb book is gathering dust in the stacks. Conversely, the copy of 1959 edition of The geology and paleontology of the Elk Mountain and Tabernacle Butte area, Wyoming that was given to the library right after the last weeding is never going to be a doorbuster.

So let’s be clever and ensure that the 500 most circulated titles in the collection retain their expected popularity rating. Let’s also leave books that have never circulated alone in their dark corners, as well as those that have no cover images available. The rest, we leave to the tender mercies of the RNG.

What will happen? If patrons use the catalog’s popularity rankings, if they trust them — or at least are more likely to look at whatever shows up near the top of search results — we might expect that the titles with an artificial bump from the random number generator will circulate just a bit more often.

Of course, testing that hypothesis by letting a RNG skew search results in a real library catalog would be unethical.

But if one were clever enough to be subtle in one’s use of the RNG, the patrons would have a hard time figuring out that something was amiss.  From the user’s point of view, a sufficiently advanced search engine is indistinguishable from a black box.

This suggests some interesting possibilities for the Evil Librarian of Evil:

  • Some manual tweaks: after all, everybody really ought to read $BESTBOOK. (We won’t mention that it was written by the ELE’s nephew.)
  • Automatic personalization of search results. Does geolocation show that the patron’s IP address is on the wrong side of the tracks? Titles with a lower reading level just got more popular!
  • Has the patron logged in to the catalog? Personalization just got better! Let’s check the patron’s gender and tune accordingly!

Don’t be the ELE.

But as you work to improve library catalogs… take care not to become the ELE by accident.