Re: [CODE4LIB] SomCom Technology DRM

2016-04-05 Thread Will Martin

I eventually got it working (sort of).

Windows 7 was simply a no-go.  I tried everything, and it just died no 
matter what.  Emulating XP didn't help, making sure everything was 
running as admin didn't help, there were no logs or feedback anywhere.  
It just died.


However, I gave it a go under Windows 10, and got it to go.  The 
procedure I had to do was:


1) Unblock Port 103 in Firefox by adding the following line to user.js 
in the default profile:


user_pref("network.security.ports.banned.override", "103");

Attempts to jigger the system associations to open the URL with IE, 
Chrome, or some other web browser failed.  No idea what I was doing 
wrong, but even after I changed all the protocol associations for HTTP 
and HTTPS, it still came up in Firefox.


2) Under Windows 10, I did not need to manually specify a compatibilty 
mode for any of the five executables involved.  It worked that out okay 
on its own, apparently.


3) Upon launching the SomVer.exe (the file specified in autorun.inf), it 
successfully ran, and pulled up an index.  BUT ... clicking through to 
any other page yielded a screen full of uninterpreted HTML code instead 
of an actual web page.  So on to Step 4:


4) Read the code and manually copy-and-paste URLs into the location bar 
to slowly work your way to the actual file you want.


Once you get that far, the decrypted PDF can be saved to the hard drive 
like any other.  It's just a supreme pain to get there.


I view this experience as a tidy demonstration of the abject stupidity 
of DRM.  The chances that this software ever prevented anyone from 
illegally copying a bunch of chemical engineering papers is pretty close 
to nil.  But it has absolutely gotten in the way of legitimate use by 
licensed users, namely the patron who wanted to read this paper.


Furthermore, the use of DRM virtually guarantees that the data will be 
permanently lost sooner or later.  Until I tried it out on Windows 10, 
it was looking very much like it would be unrecoverable a mere 11 years 
after the disc was produced.  I pity anyone who is called on to retrieve 
one of these articles forty years down the road when we're on Windows 28 
and nobody has seen an optical disc drive in several decades.


I'm tempted to take the time to extract all the PDFs now, while we have 
a functioning (if awkward) way to do that, and burn our own damn CD to 
stick in the little sleeve in the book.  But last time I checked, 
bypassing DRM in that manner was illegal under the Digital Millennium 
Copyright Act, even if you otherwise have a legitimate license to use 
the protected content.  Plus it would be a ton of work in the thin, 
faint hope that someday somebody will want one of these articles again.


Will Martin

Web Services Librarian
Chester Fritz Library
University of North Dakota

On 2016-04-04 16:03, Lolis, John wrote:
I don't know what version of Windows you're running, but make sure you 
try

to launch the executable
​or the command prompt window ​
as an administrator
​ (even if you're logged in as an admin).​
​ I imagine that anything that tries to have the system listen on port 
103

would require elevated privileges with Windows 7 and up.​


I'd also check the event log to see if any clues can be gleaned from it 
(my

apologies if this was obvious to you).

If you have a system running an older version of Windows (as far back 
as

Windows 98 from what I saw in the system requirements), try that.

Good luck.  I'd be curious how you make out with it.



John Lolis
Coordinator of Computer Systems
White Plains Public Library
100 Martine Avenue
White Plains, NY  10601

tel: 1.914.422.1497
fax: 1.914.422.1452

http://whiteplainslibrary.org/


On Mon, Apr 4, 2016 at 1:33 PM, Will Martin <w...@will-martin.net> 
wrote:



All,

We've got a copy of this book of abstracts for presentations at a 
chemical

engineering conference in 2005:

http://odin-primo.hosted.exlibrisgroup.com/und:und_all:ODIN_ALEPH006134188

It's got a CD-ROM included with the full papers for hundreds of them, 
and

now we have a patron who wants to consult one of them.

Unfortunately, we can't get the dang thing to work.  The files on the 
disc
are encrypted.  There's a utility which is supposed to decrypt them, 
but it
doesn't work.  When you run the program, it starts a web browser and 
takes
to localhost:103.[1]  After that, it times out and reports that it's 
unable
to connect.  Yes, I disabled the Windows firewall completely and tried 
it

in multiple browsers.

There are several little executable files on the CD, all of which 
appear
to do the exact same thing -- open a failed connection to 
localhost:103.


Executing them from the command line yielded no useful information, 
even
using command-line switches like -h, --help, /?, and /h.  None of them 
had
any help text, though a few produced badly written HTML output 
claiming
they couldn't access things, or that they were corrupted.  I take that 
as
an i

[CODE4LIB] SomCom Technology DRM

2016-04-04 Thread Will Martin

All,

We've got a copy of this book of abstracts for presentations at a 
chemical engineering conference in 2005:


http://odin-primo.hosted.exlibrisgroup.com/und:und_all:ODIN_ALEPH006134188

It's got a CD-ROM included with the full papers for hundreds of them, 
and now we have a patron who wants to consult one of them.


Unfortunately, we can't get the dang thing to work.  The files on the 
disc are encrypted.  There's a utility which is supposed to decrypt 
them, but it doesn't work.  When you run the program, it starts a web 
browser and takes to localhost:103.[1]  After that, it times out and 
reports that it's unable to connect.  Yes, I disabled the Windows 
firewall completely and tried it in multiple browsers.


There are several little executable files on the CD, all of which appear 
to do the exact same thing -- open a failed connection to localhost:103.


Executing them from the command line yielded no useful information, even 
using command-line switches like -h, --help, /?, and /h.  None of them 
had any help text, though a few produced badly written HTML output 
claiming they couldn't access things, or that they were corrupted.  I 
take that as an indication that my wild-ass guessing at their purposes 
and usage were wrong, rather than actual file corruption.


I've sent an email to the company that made it (they're still around!) 
but thought I'd ask here also.  Any insights?


Will Martin

Web Services Librarian
University of North Dakota

[1] Firefox blocks port 103 by default.  To get by that you have to 
manually enable port 103 by putting 
user_pref("network.security.ports.banned.override", "103"); in your 
profile's user.js.


[CODE4LIB] LibGuides mobile tips?

2016-01-20 Thread Will Martin

All,

The librarians at our medical school are interested in improving the 
performance of libguides on mobile devices.  A lot of their patrons -- 
clinical staff, nursing and doctoral students -- are heavy users of 
mobile devices.


I'm aware of the recent Springshare newsletter on this topic,[1] and 
have passed it on to my librarians.  It's got good tips, but I was 
wondering if anyone else had other best practices or tips on the topic.  
How are you making your LibGuides mobile-friendly?


Thanks.

Will Martin


[1] Maximize LibGuides for Mobile: 
http://buzz.springshare.com/springynews/news-29/tips


[CODE4LIB] Aleph bills to PeopleSoft

2015-11-02 Thread Will Martin

All,

I'm interested to hear from anyone who's taking billing data for 
overdues/replacement fees from Aleph and getting it into PeopleSoft.  
What software and/or procedures are you using to do that?


At our library, it works like this:

1) We generate a couple of XML reports in Aleph listing new bills and 
cash transactions.


2) Access Services imports those into an ancient, poorly written 
homebrew application written in the days of PHP 3, affectionately 
nicknamed "Satan."


3) Access Services uses Satan to do mysterious things like charge 
reversals to the bills.


4) Our accountant in Admin accesses Satan to get a list of bills and 
credits that she can copy-paste into an Excel spreadsheet.


5) She double checks that the numbers add up, and then emails it to 
Student Account Services.


6) Student Account Services sprinkles it with holy water and then 
uploads it into PeopleSoft via rituals I am not worthy to know.


And lastly, the student who forgot to return the book gets billed.

The problem is that Satan has become increasingly erratic over time.  
Sometimes it fails to import bills correctly.  Sometimes it changes the 
amounts, apparently without rhyme or reason.  Sometimes it breaks in 
other, more interesting ways.  Half the time, Access Services and Admin 
wind up doing the bills manually.


We desperately need something better, but writing something to replace 
Satan from scratch is going to be a major undertaking.  If any of you 
have a better procedure, existing (sane!) code we could steal, or 
suggestions for commercial products to look at, please -- sing out!


Will Martin

Web Services Librarian
Chester Fritz Library
University of North Dakota


[CODE4LIB] Library Juice - thoughts?

2015-10-26 Thread Will Martin

All,

I'm thinking of signing up for this class on Library Juice:

http://libraryjuiceacademy.com/082-data-management.php

I've never used them before.  Anybody have experiences to share?  Are 
they any good?  Also, what kind of time commitment does one of their 
classes take?


Will Martin

Web Services Librarian
University of North Dakota


Re: [CODE4LIB] Website KPIs

2015-09-21 Thread Will Martin
I'm only in the early stages of doing this myself -- still going through 
the IRB process, so I haven't formally started collecting data yet.


It looks like what we'll be doing is logging things into a MySQL 
database.  Some of that can happen automatically.  For example, I've 
worked out how to make our EZ Proxy log user names and time whenever 
somebody logs in, and that can be sent into the database automatically 
by running a script via cron job.


Other things will have to be done manually, or partially manually.  Our 
ILS can generate check-out reports in an annoyingly clunky XML format, 
and I can write a script to process that, but somebody will have to 
download the XML file from the ILS and upload it on a regular basis.  
And our lab management program, LabStats, doesn't offer any facility for 
grabbing usage data other than copy-and-pasting from their web 
interface.  Thank goodness for student workers.


After that, the data analyst at the Office of Institutional Research 
will grab the data and analyze it in a stats program.  I can't remember 
which one they use, I'm afraid, but I could check on that if it's 
relevant.


Will

On 2015-09-18 08:43, Larisa Smyk wrote:

Hi Will,

What kind of software your Library use to do so? Or it  is embedded in
your main data management system?

Thanks,

Larisa Smyk

Library associate
University of Waterloo, ON Canada


Re: [CODE4LIB] Website KPIs

2015-09-16 Thread Will Martin
The University of Minnesota has a fairly intricate process for recording 
patron interactions with their library that yields very detailed 
information of the sort you're looking for.  For example, they can tell 
you -- based on statistically significant data -- the exact amount by 
which a student's GPA rises on average for each point of contact with 
the library.  I've been working (slowly) towards doing the same kind of 
thing at my institution.


In brief, they log personally identifiable information about patron 
interactions.  Say Sally Student checks out Moby Dick.  They would log 
her name, student number, and the type of activity -- "checked out a 
book", or "accessed a database" or "logged into a lab computer" and so 
on.  Then, each year, they package up that data and send it to the 
Office of Institutional Research.   The OIR connects all of the student 
library data with their student records, and conducts statistical 
analysis on it, focusing on measures of student success.


They've published some aggregate results.  The person to talk to at UMN 
about this is Shane Nackerud.


This may be larger than you're looking for, because it touches on 
overall library performance rather than just the website.  But you did 
ask for big picture stuff.


Hope this helps.

Will Martin

Chester Fritz Library
University of North Dakota

On 2015-09-16 10:50, Joshua Welker wrote:

We are in the middle of a large strategic alignment effort at our
university. A big part of that is developing KPIs (key performance
indicators) to use as a benchmark for self-assessment and budget
allocation. The goal is to develop "scorecards" of sorts to help us 
track

our success.

Our website and other web platforms are of vital importance to us, but 
I
really don't know what would make good KPIs to help us evaluate them. 
We
collect loads of website usage data, but I don't know what kind of 
metrics
could serve as a scorecard. Looking at raw sessions and pageviews is 
simple

but not particularly meaningful.

There are two ways to approach KPIs. There is a data-based approach 
that

correlates performance with data and then just tracks the data, like
pageviews. Then there is an outcomes-based approach that is more
qualitative in nature and simply states the outcome we want to achieve, 
and
then a variety of types of data are examined to determine whether we 
are

achieving the outcome.

Long story short, I am curious about how other libraries assess the 
success

or failure of their websites. I am not looking for usability testing
strategies. I am thinking more big picture. Any help is appreciated.

Josh Welker
Information Technology Librarian
James C. Kirkpatrick Library
University of Central Missouri
Warrensburg, MO 64093
JCKL 2260
660.543.8022


Re: [CODE4LIB] replacing deprecated PHP code throughout website

2015-04-29 Thread Will Martin

1.   Is there a general consensus on what the best long-term
alternative to the mysql_* functions is?


It's my impression that PDO is basically the way to go.


2.   Does anyone have advice about how to proceed with an enormous
overhaul like this?


Define the scope of your project clearly at the beginning.  If all you 
want to do is replace mysql_* with PDO functions, then do that and don't 
let yourself get sidetracked with other bits of refactoring.  Make a 
note of other things that need revisiting, and visit them AFTER you've 
finished with your database functions.


On the other hand, you might decide that you want to do more than just a 
1:1 function replacement.  For example, you might want to write a small 
library of database functions that wrap around PDO (or whatever), and 
then refactor the rest of your code to use THOSE, so that the next time 
this happens you can just rewrite your library of database functions and 
everything else should keep working untouched.  This is getting into the 
territory of writing your own database abstraction layer, though, which 
can be involved.


Regardless, sit down and plan out what you're going to do in detail.  
The more time spent on planning, the less likely it is that you'll 
overlook something and wind up having to backtrack and redo stuff you 
just did.


Besides that, may I suggest using something like grep to generate a list 
of places you need to visit?  Something like issuing the following 
command at the top of your working directory:


grep -r mysql_ *.php  ~/msqyl-functions

... will walk through the entire directory tree, examine the contents of 
every file, and identify every line containing mysql_, which is very 
helpful for not missing things.



3.   I wonder what other broad-sweeping old-fashionednesses may
also be about to rear up and bite me. If you imagine that I learned
procedural (almost never object-oriented) PHP 4 in about 2000 and am
slow to change my ways, can you predict what sort of deprecated
foolishness I might still be perpetrating?


I learned about the same time, but I switched to PDO some time ago.  Are 
you familiar with using bound parameters?  If not, you should get 
familiar.  They make it a lot harder for potential attackers to inject 
hostile SQL into your code.


On the other hand, they also make it somewhat more difficult to debug 
your SQL.  When you're not using bound parameters, you might have some 
code like this:


$last_name = mysql_real_escape_string($last_name);

$SQL = SELECT * FROM students WHERE lname = '.$last_name.';

$result = mysql_query($SQL, $DB);

This is fairly straightforward.  You build the SQL query, and you send 
it to the database, then read back the result.  If something goes wrong, 
you have the exact SQL as it was executed against the database.  In the 
event that you're not getting sufficient information about what's going 
wrong from mysql_error(), you can always assemble the SQL manually and 
execute it yourself, without involving PHP at all.


That's more difficult with bound parameters.  Those might look something 
like:


$SQL = SELECT * FROM students WHERE lname = :name;

$query = $DB-prepare($SQL);

$query-execute(array(
:name = $last_name,
));

$result = $query-fetchAll();

In this code, which is not much longer than the original, PHP is 
actually building and executing three separate SQL commands:


PREPARE studentSQL FROM 'SELECT * FROM users WHERE lname = ?';
SET @a = O\'Grady;
EXECUTE studentSQL USING @a;

First it prepares the SQL, without any of the actual data that you feed 
in as a limiter.  Then, the data is bound to a variable name within 
MySQL.  Finally, the prepared statement is executed, with the variables 
plugged in.  Oh, and there's a cleanup phase afterwards which unsets the 
statement and the variables, I believe.


Because the data is bound to a variable name separate from the SQL 
statement, it is effectively impossible to mix hostile content into the 
query.  MySQL knows that everything in that variable is data, not SQL, 
and should be treated as data pure and simple.  So it's great for 
eliminating SQL injections.


But it does make it a little harder to debug, because it's a bit harder 
to see exactly what is getting sent to MySQL.  I've sometimes set up 
query logging on my dev box just to track down EXACTLY what is getting 
sent to the server, or else gone to the trouble of manually setting up 
and executing prepared statements to test them.


Hope this is helpful.


Will Martin

Web Services Librarian
Chester Fritz Library
University of North Dakota


Re: [CODE4LIB] CMS selection

2015-04-03 Thread Will Martin
My current institution, the University of North Dakota, adopted 
OmniUpdate as a campus-wide CMS four years ago.  On balance, I have not 
been happy with it.  It has not been something to work with, but 
something to work around.


In particular, it has made it impossible for me to have a proper 
testing/development set up.  Although OmniUpdate does have a built-in 
split between a staging and a production server, it suffers from a 
crucial flaw in that PHP is not executed on the staging server.  If you 
are working with PHP, as I primarily do, then the only way to find out 
whether your PHP is functioning correctly is to publish it to the 
production server.  This is bad practice.  Testing things without 
potentially breaking the live site requires making duplicate copies of 
the files to be edited, and yields a workflow like this:


1) Make the change to the testing file on the staging server.
2) Publish the testing file to the production server.
3) Refresh the page to find out if it worked as expected.
4) Correct any errors and repeat steps 1-3 until satisfied.
5) Copy the code from the testing file on the staging server to the real 
file on the staging server.

6) Publish the real file from staging to production.
7) Go double check to make sure it's working.

As workflows go, I find it annoyingly cumbersome.  At one point it was 
taking me something like 9 clicks to publish a file, every time I wanted 
to test something.  That has improved with the most recent version, but 
the fundamental problem of PHP not executing on the staging server is 
still there.


OmniUpdate's assumption that content = files also annoys me.  In most 
CMSs, if you are a content producer, you go to the page you're working 
on, edit it, save it, and publish it when done.  You never have to think 
about how the information is stored, because all of that is handled by 
the CMS, which tucks it away in a database.  In OmniUpdate, a large 
portion of the interface is devoted to creating, editing, and managing 
files and folders.  You can't avoid dealing with them.  Compared to the 
editing experience in most other CMSs, it seems a strained and pointless 
attempt to extend the conventions of desktop word processors onto the 
web.


I do not have top level access to OmniUpdate, and I can't tell you much 
about how it works from a system management perspective.  For example, 
I've never had to edit the XSL transforms that are used to combine the 
content (stored in XML files) with templates to produce a finished page. 
 If you would like, I can refer you to colleagues from the university 
web team who work more closely with OmniUpdate at those levels.  If you 
would like to do so, please email me off-list.


Will Martin


Colleagues,
I am on a campus-wide team charged with evaluating and selecting a new
CMS system to replace our centralized Apache/PHP/Includes-based web
server infrastructure.

Our Libraries and University Archives have relied on the existing
centralized system and would like to contribute to the selection of a
new CMS-based platform that will position our library well into the

future.


Currently the list is down to four vendors:

Hippo
OmniUpdate
Terminal 4
Jahia

If any of you have experience with any of these systems you wouldn't
mind sharing please contact me off list.

Your feedback would be appreciated.

Best regards,

Ed

Edward Sanchez
Head, Library Information Technology
Marquette University
1355 West Wisconsin Avenue
Milwaukee, WI 53201
edward.sanc...@mu.edu
W: 414-288-6043
M: 414-839-9569


Re: [CODE4LIB] Deep Freeze + PaperCut + Windows profiles

2015-03-20 Thread Will Martin

We had a similar issue on our lab machines, there was a GPO that we
created to fix the issue, I need to look in Group Policy though.


I'd be interested to see that if you can take a moment to dig it up.


And what is so wrong with Windows 8.1? Part of our speed issues were
resolved by reimaging onto 8.1 Enterprise.


From a lab management perspective?  It's fine.  I'm just not a fan of 
the UI changes.  Your mileage may vary.


Will


[CODE4LIB] Deep Freeze + PaperCut + Windows profiles

2015-03-19 Thread Will Martin
In our computer labs, we currently use Deep Freeze.[1] It lets us grant 
our users full administrative rights, without worrying about malware, 
viruses, and such, because any changes the user makes are wiped out when 
they log off.


A couple of years ago, the campus as a whole switched to PaperCut for 
managing print jobs.[2] This maintains separate print queues for each 
student, so that when they swipe their student card at the print release 
station, they see only their own print jobs.  Convenient!  At least 
compared to Pharos, the old system.


Unfortunately, there's a nasty side-effect, which is that it takes a 
loong time to log into the lab computers.  Generally 5-6 minutes, 
sometimes as much as 10.  What's happening is:


1) A student logs in with their Active Directory credentials
2) The computer checks for a user profile and doesn't find one
3) The computer creates a new windows profile for the student (slooow!)
4) When they log off, Deep Freeze wipes out the profile.

The fact that the computer has to download, install, and configure the 
PaperCut print drivers makes Step 3 even slower.  They're per-user.  
They're baked into the user profile, so they get created fresh every 
time and wiped out again afterwards.


As a recent comment on Yik-Yak put it: Patience is waiting for the 
library computers to log you on.


We're currently on Windows 8 (yuck), but the problem occurred with 7 as 
well.


We've talked about removing Deep Freeze and simply placing the computers 
on restricted accounts with no permissions to install software, etc.  
That would *partially* address it, because profiles would no longer be 
wiped out.  As long as students went to the same computer over and over, 
they'd only be faced with a long logon the first time.  But, of course, 
it's a lab and there's no guarantee you can get the same computer all 
the time, so that's a poor solution at best.




[1] http://www.faronics.com/products/deep-freeze/enterprise/
[2] http://www.papercut.com/


Re: [CODE4LIB] Deep Freeze + PaperCut + Windows profiles

2015-03-19 Thread Will Martin

Crud, I sent that last without finishing it.

We've been chasing our tails in a circle over the issue for the last 
year and a half.  Any suggestions?


Will Martin


Re: [CODE4LIB] Deep Freeze + PaperCut + Windows profiles

2015-03-19 Thread Will Martin
Building profiles in a thawspace would be a partial solution; it'd allow 
for shorter login times if people go back to the same computer.


It'd be nice if we could pre-generate profiles for everybody, but the 
numbers don't work.


Each profile runs to to about 100 MB each;
We have 208 GB free on each lab machine;
and about 15,000 potential users.

So generating profiles for all of them -- assuming five minutes per 
profile -- would take 52 days of computing time at the beginning of each 
term, and require about 1.5 TB of space on each computer.


I'm hoping somebody will know a nifty trick for slimming down what needs 
to be created, or making PaperCut load faster, or something.


Will


Re: [CODE4LIB] MARC reporting engine

2014-11-04 Thread Martin Czygan
Hi Stuart,

Author of marctools[1] here – if you have any feature request that
would help you with your processing, please don't hesitate to open an
issue on github.

Originally, we wrote marctools to convert MARC to JSON and then
index[2] the output into elasticsearch[3] for random access, query and analysis.

Best,
Martin




[1] https://github.com/ubleipzig/marctools
[2] https://github.com/miku/esbulk
[3] http://www.elasticsearch.org/

On Tue, Nov 4, 2014 at 12:43 AM, Jonathan Rochkind rochk...@jhu.edu wrote:
 Hm. You don't need to keep all 800k records in memory, you just need to keep
 the data you need in memory, right? I'd keep a hash keyed by authorized
 heading, with the values I need there.

 I don't think you'll have trouble keeping such a hash in memory, for a batch
 process run manually once in a while -- modern OS's do a great job with
 virtual memory making it invisible (but slower) when you use more memory
 than you have physically, if it comes to that, which it may not.

 If you do, you could keep the data you need in the data store of your
 choice, such as a local DBM database, which ruby/python/perl will all let
 you do pretty painlessly, accessing a hash-like data structure which is
 actually stored on disk not in memory but which you access more or less the
 same as an in-memory hash.

 But, yes, it will require some programming, for sure.

 A MARC Indexer can mean many things, and I'm not sure you need one here,
 but as it happens I have built something you could describe as a MARC
 Indexer, and I guess it wasn't exactly straightforward, it's true. I'm not
 sure it's of any use to you here for your use case, but you can check it out
 at https://github.com/traject-project/traject


 On 11/2/14 9:29 PM, Stuart Yeates wrote:

 Do any of these have built-in indexing? 800k records isn't going to
 fit in memory and if building my own MARC indexer is 'relatively
 straightforward' then you're a better coder than I am.

 cheers stuart

 -- I have a new phone number: 04 463 5692

  From: Code for Libraries
 CODE4LIB@LISTSERV.ND.EDU on behalf of Jonathan Rochkind
 rochk...@jhu.edu Sent: Monday, 3 November 2014 1:24 p.m. To:
 CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] MARC reporting
 engine

 If you are, can become, or know, a programmer, that would be
 relatively straightforward in any programming language using the open
 source MARC processing library for that language. (ruby marc, pymarc,
 perl marc, whatever).

 Although you might find more trouble than you expect around
 authorities, with them being less standardized in your corpus than
 you might like.  From: Code
 for Libraries [CODE4LIB@LISTSERV.ND.EDU] on behalf of Stuart Yeates
 [stuart.yea...@vuw.ac.nz] Sent: Sunday, November 02, 2014 5:48 PM To:
 CODE4LIB@LISTSERV.ND.EDU Subject: [CODE4LIB] MARC reporting engine

 I have ~800,000 MARC records from an indexing service
 (http://natlib.govt.nz/about-us/open-data/innz-metadata CC-BY). I am
 trying to generate:

 (a) a list of person authorities (and sundry metadata), sorted by how
 many times they're referenced, in wikimedia syntax

 (b) a view of a person authority, with all the records by which
 they're referenced, processed into a wikipedia stub biography

 I have established that this is too much data to process in XSLT or
 multi-line regexps in vi. What other MARC engines are there out
 there?

 The two options I'm aware of are learning multi-line processing in
 sed or learning enough koha to write reports in whatever their
 reporting engine is.

 Any advice?

 cheers stuart -- I have a new phone number: 04 463 5692





[CODE4LIB] Library app basics

2014-10-07 Thread Will Martin
My boss has directed me to start looking into producing a phone app for 
the library, or better yet finding a way to integrate with the existing 
campus-wide app.  Could I pick the list's brains?


1) Is there some tolerably decent cross-platform app language, or am I 
going to be learning 3 different languages for iOS, Android, and Windows 
phone?  I've dabbled in all kinds of things, but my bread-and-butter 
work has been PHP on a LAMP stack.  Apps aren't written in that, so new 
language time.


2) The library's selection of mobile devices consists of 2 iPads and a 
Galaxy tablet.  We don't have phones for testing.  My personal phone is 
a 12-year-old flip phone which doesn't run apps.  Can I get by with 
emulators?  What are some good ones?  The budget for the project is 
zero, so I don't think dedicated testing devices are in the cards unless 
I upgrade my own phone, which I probably ought to anyway.


3) What are some best practices for library app design?  We were 
thinking the key functionality would be personal account management 
(what have I got checked out, renew my stuff, etc), hours, lab 
availability, search the catalog, and ask a librarian.  Anything 
missing?  Too much stuff?


Will Martin

Web Services Librarian
Chester Fritz Library

P.S.  I sent this a couple days ago and wondered why it hadn't shown up 
-- only to realize I accidently sent it to j...@code4lib.org rather than 
the actual list serv address.  Whoops, embarrassing!


Re: [CODE4LIB] Library app basics

2014-10-07 Thread Will Martin

Lots of good info here, thanks.


You don't say what this app is supposed to do, and that might
influence your decision.  [...] If you are going to provide
services that are on your website, it likely makes little sense
to build apps.


That's the idea: make our stuff available through phones. And I agree, 
an app makes little sense.  Sadly, it's not my choice to make -- that 
decision was made further up the chain of command, without consulting 
me.


Your website looks homegrown [...] you might consider Drupal or 
WordPress ...


Ye gods, I wish it were homegrown.  I'd have done a better job of it.  
Or rather, I'd have done it in Drupal, which I worked with for years at 
a different institution, including developing custom themes and modules. 
 Drupal's a solid system.  I miss it.


But no, we're stuck in a poor excuse for a CMS called OmniUpdate, 
which is written in an unholy mixture of XSLT and Cold Fusion.  It was 
selected by the marketing department, is mandated across the campus, and 
makes my job way harder than it has to be.  OmniUpdate is damage to work 
around, not a system to work with.


I've done the best I can with it, but there are limits.  In theory, an 
OmniUpdate site can be made responsive -- but in this case, that means 
making the entire campus web infrastructure responsive, because we share 
a common template with the entire university.  That's a good idea which 
probably needs to happen, but also a MASSIVE undertaking -- largely 
because it rapidly gets into some fairly heated campus politics.


So in the meantime, I'm going to do research on this and put together a 
project prospectus laying out the possible approaches and challenges, to 
see if my bosses really want me to do this.  If the really do, it'll 
probably eat all of my time and then some for the foreseeable future.


Will Martin


Re: [CODE4LIB] LibGuides v2 - Templates and Nav

2014-09-24 Thread Will Martin

4. Admin controls are not very granular. With most aspects of editing a
guide, you either have the option of locking down styles and templates
completely (and oh your colleagues will howl) or allowing everything 
(and oh
your eyeballs will scream). Some of these things could very well be 
improved

in the future, and some probably will not.


This!  My librarians have successfully resisted every attempt to impose 
any kind of standardization.  Visual guidelines?  Nope.  Content 
guidelines?  Nope.  Standard system settings?  Nope.  Anything less than 
100% free reign appears to be anathema to them.


The result, predictably, is chaos.  Our guides run the gamut.  We have 
everything:


- Giant walls of text that no one ever reads.

- Lovingly crafted lists of obscure library sources that rarely (if 
ever) bear any relation to what the patron is actually trying to do.


- A thriving ecosystem of competing labels.  Is it Article Indexes, 
Article Databases, just plain Databases, or something more exotic?  
Depends which apex predator rules this particular neck of the jungle.


- Green text on pink backgrounds with maroon borders.  Other pages in 
the same guide might go with different, equally eye-twisting color 
schemes. I'm not even sure how he's doing that without access to the 
style sheet, but he's probably taught himself just enough HTML to mangle 
things in an effort to use friendly colors.


- Some guides have three or even FOUR rows of tabs.  With drop-down 
submenus on most of them, naturally.


- A few are nicely curated and easy to use, but they're in a distinct 
minority.


I've tried.  I've pushed peer-reviewed usability studies at them.  I've 
reported on conference sessions explaining exactly why all these things 
are bad.  I've brought them studies of our own analytics.  I've had 
students sit down and get confused in front of them.  Nothing has gotten 
through, and being the only web type at the library, I'm outnumbered.  
Just the thought of it makes me supremely tired.


I'm sorry if this has digressed.  LibGuides is not at fault, really.  
It's an organizational problem.  LibGuides just seems to be the flash 
point for it.


Will


Re: [CODE4LIB] LibGuides v2 - Templates and Nav

2014-09-17 Thread Will Martin
Have you tried assigning the Health Sciences guides to their own groups 
and

adding custom header HTML at the group-level (Admin  Groups 
Header/Footer/Tabs/Boxes)? You can't use the new mustache-based 
templating

inside the headers, but you can use plain-jane HTML.


An excellent suggestion!  But, alas, groups are only available in 
LibGuides CMS.  Due to budgetary constraints, we're stuck with the 
regular version.


Templates are customizable, and those customizations apply to the 
entire
page, not just to the content area, although Will's right that with 
regular
LibGuides the entire system and all the guides have a single look  
feel.


Yes, that's a good clarification -- the template can adjust the whole 
page, not just the content area as I mistakenly wrote.  But there's no 
mechanism for applying a template to a specific page or group of pages 
unless you have LibGuides CMS, so that doesn't help in my case.


I thought about writing some JS to surgically alter the page header 
after load time, determining who was in which library based on guide 
tags.  That would have been like pulling your wallet from your left 
pocket with your right hand -- it'd work, it's just horribly awkward.  
Also I'm pretty certain given my set of librarians that the tags would 
be forgotten or mistyped fairly often, followed by complaints that it's 
broken.  But ultimately, the main reason I shelved the idea was that I'm 
the only web developer the library has -- I have to be chary of my time, 
and other projects took priority.


Will


Re: [CODE4LIB] LibGuides v2 - Templates and Nav

2014-09-17 Thread Will Martin

To digress a bit from LibGuides ...

The biggest problem with accessibility is not technical: it's cultural.  
Producing HTML that meets basic accessibility tests is not all THAT 
difficult.  The harder part is setting up a culture where everyone -- 
everyone! -- who writes content for the web is trained on how to do it 
accessibly.  A content editor who is clueless about accessibility can 
very easily screw up their pages without even knowing they're doing so.


The same applies to developers.  Once while reviewing a library site's 
code, I came across a chunk of HTML that looked like this (roughly):


!--
I don't know why this was here?  It's invisible!  Disabling.

a href=#top class=hiddenReturn to top/a
--

An earlier developer had put that in to assist screen reader users in 
getting back to the top of the page if they wanted.  The hidden class 
was a correctly written class for hiding content while leaving it 
available for screen reader users.  But the next person to fill that job 
wasn't trained on WHY and took it out again.


If you really want to commit to accessibility, it needs to be a 
criterion in the job description for your developers, and there needs to 
be a training process in place for anyone who produces content for your 
site.  Probably with refreshers at intervals.


Will


Re: [CODE4LIB] LibGuides v2 - Templates and Nav

2014-09-16 Thread Will Martin
My impression of the LibGuides v2 template system is that it's decent 
within strict boundaries.  We just launched LibGuides v2 about 6 weeks 
ago.  We took a look at the templates, and opted not to do anything with 
them, because they didn't do what we needed them to.


Our instance of LibGuides is shared between the main campus library and 
the health sciences library.  Students navigating the system are often 
confused if they accidentally wind up looking at a guide produced for 
the other set of patrons.  So the one thing we really wanted to do was 
customize the header of a guide based on whether it was produced at the 
health sciences library or at the main campus library, to hopefully help 
students keep track of where they are.


Unfortunately, LibGuides' template system can't do that.  It only 
applies to the content areas of the guide.  Within that area, it affords 
a great degree of flexibility as regards the HTML markup of the guides.  
Outside of that area, it's useless.


So we're running with the defaults.  I may revisit those at some point, 
but for now we're reasonably happy with them.


Oh, and here's a link to the documentation for the template system:

http://support.springshare.com/libguides/guidetemplates/intro

It does require you to be logged into your LibApps account, because 
apparently the details of their templating system is a deep, dark 
secret.


Will



On 2014-09-16 10:48, Graham, Jeannie wrote:

Our library is also just getting ready to delve into LibGuides v2 so
I'm also interested in hearing what others are doing!



Thank you,

-- Jeannie Graham





Jeannie Graham

California State University, Chico

Meriam Library - Library Technology Specialist

Chico, CA 95929-0295

jgra...@csuchico.edu

530-898-4311



-Original Message-
From: Code for Libraries [mailto:CODE4LIB@LISTSERV.ND.EDU] On Behalf
Of Brad Coffield
Sent: Monday, September 15, 2014 12:19 PM
To: CODE4LIB@LISTSERV.ND.EDU
Subject: [CODE4LIB] LibGuides v2 - Templates and Nav



Hi all,



I'm finally diving into our Libguides v2 migration and I'm wondering
if anyone would be willing to share their experience/choices regarding
templating. (Or even some code!)



I'm thinking left-nav is the way to go. Has anyone split the main
content column into two smaller columns? Done that with a
column-width-spanning box atop the main content area? Any other neato
templates ideas?



We are in the process of building a style guide for all libguides
authors to use. And also some sort of peer-review process to help
enforce the style guide. I'm thinking we are going to want to restrict
all authors to left-nav templates but perhaps the ideal solution would
be to require left-nav of all but to have a variety of custom left-nav
templates to choose from.



Any thoughts are much appreciated!



Warm regards,



Brad



--

Brad Coffield, MLIS

Assistant Information and Web Services Librarian Saint Francis 
University


814-472-3315

bcoffi...@francis.edumailto:bcoffi...@francis.edu


Re: [CODE4LIB] Open source alternative to LibAnswers as the library IT KB for library staff?

2014-09-12 Thread Will Martin

Well, there's LibStats:

https://code.google.com/p/libstats/

It's open source and functional, but showing its age and feature poor 
compared to commercial projects.  For example, it's primarily designed 
for tracking questions for statistics and reporting purposes, rather 
than building a knowledge base.  It does have the ability to search past 
answers, but that's not quite the same.


It also seems to be unmaintained. So your mileage may vary.

Will Martin

Web Services Librarian
Chester Fritz Library
University of North Dakota

On 2014-09-12 09:41, Kim, Bohyun wrote:

Hi all

Does anyone have a suggestion for the free open-source Q/A board +
easily searchable KB comparable to LibAnswers? We already have
LibAnswers for patrons. This is more for the library staff who submits
a lot of similar or same questions to the Library IT help desk.

It is an option to use the SharePoint Discussion Board but I am
looking for an alternative since SP tends to get lukewarm responses
from users in my experience.

Any suggestions or feedback would be appreciated.

Thanks,
Bohyun


Re: [CODE4LIB] Open-source batch authority control?

2014-09-05 Thread Will Martin
I'm not super-familiar with cataloging software, but would MarcEdit do 
the trick?


http://marcedit.reeset.net/

I know it's designed explicitly for batch editing of MARC records, I 
just don't know whether that extends to authority control stuff.


Will Martin

Web Services Librarian
Chester Fritz Library
University of North Dakota

On 2014-09-05 16:00, Harper, Cynthia wrote:

Do any of you have processes for batch authority control - getting
MARC authority records into an ILS - that are less-costly (in terms of
cash) than commercial services like MARCIVE or LTI?   I'm working for
a cash-strapped organization, have computing skills, and think it a
shame that our staff spends so much time on piece-by-piece repetitive
work.

Any suggestions?

Cindy Harper
Electronic Services and Serials Librarian
Virginia Theological Seminary
3737 Seminary Road
Alexandria VA 22304
703-461-1794
char...@vts.edu


Re: [CODE4LIB] Archival File Storage

2014-08-14 Thread Will Martin
All those links look very helpful and interesting -- I'll be sure to 
study all of them in detail.  Thanks!


Will Martin


[CODE4LIB] Archival File Storage

2014-08-13 Thread Will Martin
As with most libraries, we're accumulating an increasing number of 
digital holdings.  So far, our approach to storing these files consists 
of a haphazard cocktail of:


- A ContentDM site whose contents haven't been updated in three years
- live network storage in the form of shared drives
- a Drobo
- CDs and DVDs
- hard drives stored in static-proof bags, and
- ancient floppy disks whose contents remain a mystery that would surely 
scour the last vestiges of sanity from our minds if we had a 5 1/4 
drive to read them with.


In short it's a mess that has evolved organically over a long period of 
time.  I'm not entirely sure what to do about it, especially considering 
our budget for improving the situation is ... uh, zero.


At the very least, I'd like a better sense for what is considered a good 
approach to storing archival files.  Can anyone recommend any relevant 
best practices or standards documents?  Or just share what you use.


I'm familiar with the OAIS model for digital archiving, and it seems 
well thought-out, but highly abstract.  A more practical nuts-and-bolts 
guide would be helpful.


Thanks.

Will Martin

Web Services Librarian
University of North Dakota


[CODE4LIB] Internal search expert needed

2014-08-12 Thread Martin Svensson
Save the Children host a website (http://resourcecentre.savethechildren.se) on 
Druplal 7 with Apache Solr as search. The website hosts around 4.000 PDF in the 
narrow area of child rights. We are getting strange search results with the 
standard configuration and would need help to build adapted search algorithms 
for the site. All tips or ideas on experts/consultants are very welcome. Please 
send martin.svens...@rb.se

Kind Regards

Martin Svensson
Save the Children


[CODE4LIB] Test message, please disregard

2014-05-15 Thread Will Martin
I am debugging my listserv subscription.  This is a test message.  
Please disregard.


Will Martin


Re: [CODE4LIB] best practices for video accessibility?

2011-11-27 Thread Martin Kalfatovic
Martin Kalfatovic
udc793.blogspot.com

mobileSent from handheld/mobile
On Nov 26, 2011 4:06 PM, Hogue Melanie hogu...@lib.chattanooga.gov
wrote:

 I'm not one who is highly knowlegable about video; but didn't I hear that
 Adobe is not going to move forward with Flash anymore (because of HTML5)?

 Melanie Amy Hogue
 Manager of Online Resources  Reports
 Chattanooga-Hamilton County Bicentennial Library
 423-757-5114

 

 From: Code for Libraries on behalf of Ken Irwin
 Sent: Sat 11/26/2011 3:07 PM
 To: CODE4LIB@LISTSERV.ND.EDU
 Subject: [CODE4LIB] best practices for video accessibility?



 Hi all,

 I'm working with someone who's working to make their videos available
 online and is particularly looking for mobile accessibility. That seems to
 be a moving target these days, and I'm wondering if anyone with more
 experience in this area might have some best-practices up their sleeve.

 We're trying to figure out:
 1) What size  format to render the original vids in so they will be most
 accessible, and
 2) Which sizes and formats to make the lower-res videos available too.

 Flash, OGG, and MP4(H.264) are all on our radar.

 I think that Adobe Premier or something similar is probably the tool
 they'll be using. They're looking at about 800 videos, so getting it right
 the first time is highly desirable!

 Any thoughts?

 Thanks
 Ken



Re: [CODE4LIB] Code4Lib 2011 Proposals

2010-03-05 Thread Mehrling, Martin
I can't see why III would want to have anything to do with this conference.  I 
think most of us who attend the conference are open-source types, and are 
trying to do things beyond what we could do with the vendors (who are 
risk-averse and profit-oriented.)  If III wants to be truly innovative, they 
should send a technical person (not a sales person) to this conference.


Martin 


-Original Message-
From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Cary 
Gordon
Sent: Friday, March 05, 2010 9:37 AM
To: CODE4LIB@LISTSERV.ND.EDU
Subject: Re: [CODE4LIB] Code4Lib 2011 Proposals

I could say you're a dreamer, but you're not the only one.

The reality is that III sees their APIs as gold mines that they can
market to a captive audience. For example, their patron API -- a
simple web interface to patron records -- probably cost them much less
to develop than they get for a single license. Don't look for them to
actually get off of that anytime soon.

Koha might motivate them to bump there FUD generating budget, but
that's about it.

Cary

On Thu, Mar 4, 2010 at 2:41 PM, Esme Cowles escow...@ucsd.edu wrote:
 After seeing some of the cool things people can do with other ILS's and how 
 negative developers are about III, there's always the chance they might 
 decide to open up a bit more and engage with code4lib types (we can always 
 dream).

 And if that doesn't work, maybe the Ian Walls' talk (Becoming Truly 
 Innovative: Migrating from Millennium to Koha) will motivate them...

 -Esme
 --
 Esme Cowles escow...@ucsd.edu

 They extend copyrights perpetually. They don't get how that in itself is a
  form of theft. -- Lawrence Lessig, Free Culture

 On Mar 4, 2010, at 5:08 PM, Jill Ellern wrote:

 We tried to get some of the ILS's interested...with little success.  But how 
 knows...I did some heavy promotion to III this year...(despite the many 
 --s, she promised to talk to headquarters) so perhaps they might help some 
 next year...

 Jill

 -Original Message-
 From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Paul 
 Joseph
 Sent: Wednesday, March 03, 2010 9:56 AM
 To: CODE4LIB@LISTSERV.ND.EDU
 Subject: Re: [CODE4LIB] Code4Lib 2011 Proposals

 No need to be concerned about the vendors: they're the same suspects who
 sponsored C4L10.
 Paul


 On Wed, Mar 3, 2010 at 2:37 PM, Ya'aqov Ziso z...@rowan.edu wrote:

  also, I can assure you that to help keep registration fees low we'll
 be
 leaning on our vendors ...
 =
 Who would be these vendors? Seems CODE4LIB (bringing in creative, leading
 edge, OpenSource ideas where ILS have monolithically reigned) are the bad
 dream of ILS vendors. WorldCat DeveNet/Research may make an exception, but
 will it be $ufficient?
 Ya¹aqov





-- 
Cary Gordon
The Cherry Hill Company
http://chillco.com


[CODE4LIB] Position Announcement: Digital Library Architect, Penn State University

2009-01-15 Thread Mairead Martin
. Collections exceed 5 million volumes,  
including more than 68,000 current serial subscriptions. The  
University Libraries are located at University Park and 23 other  
campuses throughout Pennsylvania, with approximately 6,000 faculty and  
42,000 students at University Park, and more than 82,000 students  
system wide.  For more information, please visit http://www.libraries.psu.edu/ 
 .


To submit an application for this position, please go to http://www.psu.jobs 
 (job number 29484).


===
Mairéad Martin  

Senior Director, Digital Library Technologies   
Information Technology Services 

The Pennsylvania State University