Re: [CODE4LIB] Let's go somewhere

2010-11-01 Thread Ya'aqov Ziso
Some of us have been doing a good job introducing new concepts and processes
by writing to, or  discussing with, fellow librarians.

Many of us have been in the situation where a librarian who doesn't want a
change (i.e. add homework and work for her/his load) would hide that by
saying 'I don't understand, let's discuss it some more, reach a consensus',
etc. Alas, those who refuse a change can be re-programmed only by the
administration. Anything else is a democratic waste of our time.

Ya'aqov Ziso






On Sun, Oct 31, 2010 at 8:00 AM, Eric Lease Morgan emor...@nd.edu wrote:

 On Oct 30, 2010, at 10:50 AM, Peter Schlumpf wrote:

  And you are correct in pointing out that the natural response of
 librarians to a problem is to seek consensus in a self-absorbed way.  Form
 committees and all that nonsense which never goes anywhere.  They are happy
 enough going around in circles, like the Nowhere Man making all his nowhere
 plans for nobody.

 The above certainly does seem to jive with my experience. Going around in
 circles. Endless consensus. Librarianship could use a bit more democracy
 and/or science to their (our) method. At the same time I agree that E V E R
 Y T H I N G ! ! ! is wrong with the profession creating our own language.

 --
 EL Morgano




-- 
ya'aQov


Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]

2010-11-01 Thread Patrick Etienne
Peter -

I was bewildered at the notion of needing yet another scripting
language, let alone one as library domain-specific (that wording
alone throws up red flags everywhere), but I'm not here to bash ideas.
Instead I looked up your site and read the small blurb about Nova.
It seems that the main objective behind your pursuit is creating a
language that provides a specific data type for semantic objects (or
relationships). I have to ask, what about semantic maps makes you
believe that they require a specific data type rather than just being
an object type? Are other scripting languages too slow to suit certain
needs such that a new data type is necessitated? I really can't see
this being the case. That being said, while it can be an invaluable
experience to learn about making scripting languages, if there's to be
any community movement toward a particular language (php, ruby, java,
scheme or what have you) there has to be some very real and
significant benefit.

Or more directly, you seem to have specific ideas about a library
domain-specific language. What do today's languages not have that you
believe is so essential that you'd be willing to write a new scripting
language?

 - Patrick E.

On Sat, Oct 30, 2010 at 10:51 AM, Peter Schlumpf
pschlu...@earthlink.net wrote:
 Bill, you hit a nail pretty squarely on the head.  I believe this decades 
 long fetish with MARC has to go.  It was designed to efficiently store data 
 on magtapes and doesn't make any sense in today's world.  It's a huge 
 millstone around the neck of Libraryland and it keeps them stuck in that tiny 
 little ghetto.  Anything can be a mind-prison, even PHP, Python or Django.  
 They are all arbitrary anyway.

 And you are correct in pointing out that the natural response of librarians 
 to a problem is to seek consensus in a self-absorbed way.  Form committees 
 and all that nonsense which never goes anywhere.  They are happy enough going 
 around in circles, like the Nowhere Man making all his nowhere plans for 
 nobody.

 My hope is that some among us would just undertake these problems ourselves.  
 Outside of the realm of the libraries and the limiting mindsets many of us 
 work in.  We've all got ideas.  Fire up vi and get busy and make something 
 happen, like a library domain-specific language.  Start fresh.  There is 
 nothing wrong with that.  What's wrong is how the library community goes 
 about such things.

 Let's go somewhere.

 Peter Schlumpf
 www.avantilibrarysystems.com

-- 
Patrick K. Etienne
Systems Analyst
Georgia Institute of Technology
Library  Information Center
(404) 385-8121


Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]

2010-11-01 Thread Jonathan Rochkind
I would be very unlikely to use someone's homegrown library specific 
scripting language.


However, if you want to make a library for an existing popular scripting 
language that handles your specific domain well, I'd be quite likely to 
use that if I had a problem with your domain and I was comfortable with 
the existing popular scripting language, i'd use it for sure. Odds are 
your domain is not really libraries (that's not really a software 
problem domain), but perhaps as Patrick suggests dealing with 
relationships among semantic objects, and then odds are libraries are 
not the only people interested in this problem domain.


Some people like ruby because of it's support for creating what they 
call domain specific languages, which I think is a silly phrase, which 
really just means a libraryAPI at the right level of abstraction for 
the tasks at hand, so you can accomplish the tasks at hand concisely and 
without repeated code.  


Patrick Etienne wrote:

Peter -

I was bewildered at the notion of needing yet another scripting
language, let alone one as library domain-specific (that wording
alone throws up red flags everywhere), but I'm not here to bash ideas.
Instead I looked up your site and read the small blurb about Nova.
It seems that the main objective behind your pursuit is creating a
language that provides a specific data type for semantic objects (or
relationships). I have to ask, what about semantic maps makes you
believe that they require a specific data type rather than just being
an object type? Are other scripting languages too slow to suit certain
needs such that a new data type is necessitated? I really can't see
this being the case. That being said, while it can be an invaluable
experience to learn about making scripting languages, if there's to be
any community movement toward a particular language (php, ruby, java,
scheme or what have you) there has to be some very real and
significant benefit.

Or more directly, you seem to have specific ideas about a library
domain-specific language. What do today's languages not have that you
believe is so essential that you'd be willing to write a new scripting
language?

 - Patrick E.

On Sat, Oct 30, 2010 at 10:51 AM, Peter Schlumpf
pschlu...@earthlink.net wrote:
  

Bill, you hit a nail pretty squarely on the head.  I believe this decades long 
fetish with MARC has to go.  It was designed to efficiently store data on 
magtapes and doesn't make any sense in today's world.  It's a huge millstone 
around the neck of Libraryland and it keeps them stuck in that tiny little 
ghetto.  Anything can be a mind-prison, even PHP, Python or Django.  They are 
all arbitrary anyway.

And you are correct in pointing out that the natural response of librarians to 
a problem is to seek consensus in a self-absorbed way.  Form committees and all 
that nonsense which never goes anywhere.  They are happy enough going around in 
circles, like the Nowhere Man making all his nowhere plans for nobody.

My hope is that some among us would just undertake these problems ourselves.  
Outside of the realm of the libraries and the limiting mindsets many of us work 
in.  We've all got ideas.  Fire up vi and get busy and make something happen, 
like a library domain-specific language.  Start fresh.  There is nothing wrong 
with that.  What's wrong is how the library community goes about such things.

Let's go somewhere.

Peter Schlumpf
www.avantilibrarysystems.com



  


Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]

2010-11-01 Thread Will Kurt
This is one of my favorite passage from SICP:

It is no exaggeration to regard this as the most fundamental idea in
programming:

The evaluator, which determines the meaning of expressions in a programming
language, is just another program.

To appreciate this point is to change our images of ourselves as
programmers. We come to see ourselves as designers of languages, rather than
only users of languages designed by others.

In general I think there is too much fear of using language as just another
means of abstraction.  While I certainly agree that creating an entire
language from scratch is a bad idea, I don't think it would be insane to
create a dsl to solve a common set of problems on top of an existing
runtime. I actually think this would be particularly useful in the library
world since there is such a range of programming talent, a dsl that
simplified some common library related tasks could certainly be useful,
especially if there was full language underneath.

Of course there is the problem that even DSLs are not simple to create, the
number of library programmers with experience in parsers and language design
is probably very, very small.  But the ease of creating dsl is increasing
and I think their use will get more popular over time (hopefully).



 From: Jonathan Rochkind rochk...@jhu.edumailto:rochk...@jhu.edu
 Date: November 1, 2010 11:03:13 AM PDT
 To: CODE4LIB@LISTSERV.ND.EDUmailto:CODE4LIB@LISTSERV.ND.EDU 
 CODE4LIB@LISTSERV.ND.EDUmailto:CODE4LIB@LISTSERV.ND.EDU
 Subject: Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]
 Reply-To: Code for Libraries CODE4LIB@LISTSERV.ND.EDUmailto:
 CODE4LIB@LISTSERV.ND.EDU

 I would be very unlikely to use someone's homegrown library specific
 scripting language.

 However, if you want to make a library for an existing popular scripting
 language that handles your specific domain well, I'd be quite likely to
 use that if I had a problem with your domain and I was comfortable with
 the existing popular scripting language, i'd use it for sure. Odds are
 your domain is not really libraries (that's not really a software
 problem domain), but perhaps as Patrick suggests dealing with
 relationships among semantic objects, and then odds are libraries are
 not the only people interested in this problem domain.

 Some people like ruby because of it's support for creating what they
 call domain specific languages, which I think is a silly phrase, which
 really just means a libraryAPI at the right level of abstraction for
 the tasks at hand, so you can accomplish the tasks at hand concisely and
 without repeated code.

 Patrick Etienne wrote:
 Peter -

 I was bewildered at the notion of needing yet another scripting
 language, let alone one as library domain-specific (that wording
 alone throws up red flags everywhere), but I'm not here to bash ideas.
 Instead I looked up your site and read the small blurb about Nova.
 It seems that the main objective behind your pursuit is creating a
 language that provides a specific data type for semantic objects (or
 relationships). I have to ask, what about semantic maps makes you
 believe that they require a specific data type rather than just being
 an object type? Are other scripting languages too slow to suit certain
 needs such that a new data type is necessitated? I really can't see
 this being the case. That being said, while it can be an invaluable
 experience to learn about making scripting languages, if there's to be
 any community movement toward a particular language (php, ruby, java,
 scheme or what have you) there has to be some very real and
 significant benefit.

 Or more directly, you seem to have specific ideas about a library
 domain-specific language. What do today's languages not have that you
 believe is so essential that you'd be willing to write a new scripting
 language?

 - Patrick E.

 On Sat, Oct 30, 2010 at 10:51 AM, Peter Schlumpf
 pschlu...@earthlink.netmailto:pschlu...@earthlink.net wrote:

 Bill, you hit a nail pretty squarely on the head.  I believe this decades
 long fetish with MARC has to go.  It was designed to efficiently store data
 on magtapes and doesn't make any sense in today's world.  It's a huge
 millstone around the neck of Libraryland and it keeps them stuck in that
 tiny little ghetto.  Anything can be a mind-prison, even PHP, Python or
 Django.  They are all arbitrary anyway.

 And you are correct in pointing out that the natural response of librarians
 to a problem is to seek consensus in a self-absorbed way.  Form committees
 and all that nonsense which never goes anywhere.  They are happy enough
 going around in circles, like the Nowhere Man making all his nowhere plans
 for nobody.

 My hope is that some among us would just undertake these problems
 ourselves.  Outside of the realm of the libraries and the limiting mindsets
 many of us work in.  We've all got ideas.  Fire up vi and get busy and make
 something happen, like a library domain-specific language.  Start 

[CODE4LIB] Last call: survey on staffing for Drupal websites

2010-11-01 Thread Rust, Amanda
(Cross-posting to Web4Lib, Code4Lib, and Drupal4Lib - apologies for any 
duplication.)

Hello, all-

Last call!  Thanks so much to the people that have already responded.  I've 
received multiple requests for the results, so there's a lot of interest and I 
will definitely post to the list.

We're looking at developing a new library website in Drupal, and would like to 
create a sensible staffing model for future development and maintenance.  We 
are a large academic library looking to do moderate to heavy customization.  
What sort of staff do we need to support a large, relatively complex Drupal 
site?

Please feel free to either take our 5-10 minute online survey at 
http://goo.gl/Oqx3 or reply to me directly to respond via email.

Thanks in advance,
Amanda
_
Amanda Rust
Research  Instruction Librarian
Northeastern University, 270 Snell Library
360 Huntington Avenue   Boston, MA02115
a.r...@neu.edu / 617-373-8548
_


[CODE4LIB] JOB OPENING : Web Developer at the Stanford University Libraries

2010-11-01 Thread Stuart K. Snydman

To view the position description and apply:

1. Go to http://jobs.stanford.edu/find_a_job.html
2. Keyword search for 40447

-

Stanford University Libraries is seeking a talented web developer to 
support scholarship in the digital age by delivering on the promises of 
the digital library. This is a 21-month, grant-funded position.


The Web Developer will primarily develop digital library software to 
enable online discovery, viewing and collaborative annotation of digital 
library materials. He or she will develop and deploy web services to 
enable interoperability between digital library repositories at 
different institutions, and will integrate image annotation and 
transcription tools into digital library applications. The Web Developer 
will be a member of a core team dedicated to the successful completion 
of a grant-funded project, and will work closely with the project 
manager, the information architect, digital library infrastructure 
developers, the user experience designer and other web developers 
involved in digital humanities initiatives. This particular project is 
highly collaborative, and will involve interactions with developers, 
scholars and staff from other institutions. Developing and implementing 
open standards and open source software is an explicit objective of the 
project.


As a member of SULAIR’s web development team, the Web Developer will 
contribute to the overall development of the Stanford Library’s web and 
digital library infrastructure, and help plan, specify, and build the 
technologies needed to support the University’s goal of ubiquitous 
access to scholarly information.


Primary Responsibilities:

• Design and deploy RESTful web services for exposing and delivering 
metadata and images from digital library repositories at Stanford and 
elsewhere. Develop technical documentation describing the web services 
framework, and work with partners to deploy these web services at other 
institutions.
• Analyze, enrich, and transform digitized content and associated 
metadata into defined formats, schema and systems. This will involve 
automated manipulation of XML-based metadata as well as bulk conversion 
and ingestion of digital image files into digital library repository 
systems (such as Fedora).
• Develop and deploy an online discovery environment that allows 
visitors to search metadata and full-text indexes of digital library 
data, and provides users tools to interact with those data. These 
web-based tools will support text transcription (from scanned images), 
image annotation and online group collaboration.
• Develop and deploy technologies to deliver to the web large digitized 
images. This includes implementation of a load balanced JPEG2000 image 
server, supporting web services for streaming images over http and 
implementation of an image viewing application.
• Produce documentation and provide technical support within SULAIR and 
to partner institutions in deploying and implementing these technologies 
in different digital library environments.


Required Knowledge and Skills

• Participation in at least one web development project using Ruby on 
Rails, Java or PHP. Familiarity with a range of programming and 
scripting languages is essential; Ruby on Rails expertise is highly 
desirable.
• Demonstrated ability to write solid, simple, elegant code both 
independently and in a team-programming environment and within schedule 
limitations.
• In-depth knowledge of HTML and related website development 
technologies and software (especially Javascript, CSS and PHP).
• Demonstrated expertise with XML and related tools and technologies 
(e.g., XML schema, schema management and databases, XSLT, X-forms).
• Experience with relational database design and management. Experience 
implementing database applications for SQL Server, Oracle, or MySQL.
• Demonstrated ability to work independently on a project from 
specification to launch; communicate effectively, orally and in writing; 
and work with all levels of staff, vendors, and consultants.
• Demonstrated proficiency working on a cross-functional web development 
team, including human-computer interaction specialists, system 
administrators, database programmers, librarians and end users.
• Demonstrated proficiency applying best practices to technical 
projects, especially test-first development and automated testing. Also 
must make effective use of team collaboration tools, build management, 
and version control systems.
• Demonstrated success participating in and contributing to open source 
software development projects.
• Demonstrated experience with library applications and technology, 
including experience participating in relevant library open source efforts.
• In-depth knowledge of library policies and practice, metadata 
standards and the scholarly communication framework
• Quick and self-bootstrapping learner. Particularly adept at quickly 
learning new scripting and programming languages.
• 

Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]

2010-11-01 Thread Alexander Johannesen
On Tue, Nov 2, 2010 at 5:03 AM, Jonathan Rochkind rochk...@jhu.edu wrote:
 I would be very unlikely to use someone's homegrown library specific
 scripting language. However, if you want to make a library for an existing 
 popular scripting
 language that handles your specific domain well, I'd be quite likely to use
 that if I had a problem with your domain and I was comfortable with the
 existing popular scripting language, i'd use it for sure.

Hmm. The balance between the old and tried, and the new and
experimental will, forever, cause these kinds of discussions. Now, I
agree with the basic sentiment of what you're saying, but ...

 Odds are your
 domain is not really libraries (that's not really a software problem
 domain), but perhaps as Patrick suggests dealing with relationships among
 semantic objects, and then odds are libraries are not the only people
 interested in this problem domain.

I've worked in the three basic tiers of library development world; the
plain vanilla programming world, the semantic web world, and the dark
dungeons of the Cult of MARC. Is the domain of library IT solved by
the generic technologies used? No.

There's nothing bad about a DSL, in fact, I encourage it. If you want
to get away from MARC, say, then having a DSL that approaches meta
data on the programmatic level directly is a wonderful abstraction.
But yes, we have to separate API from language. And API is, mostly
these days, simply a function/method call on top of an abstraction,
and it processes your request with your input. A language, on the
other hand, will let you deal directly with that problem. Most DSLs
are functional abstraction pre-compiled.

The line between a library and a language perhaps these days are more
blurred than ever before, however there are certain things that I
think justifies a library DSL ;

 * focus on identity management
 * mergability on entities
 * large distributed sets
 * more defined line between data and meta data
 * controlled vocabularies and structures

There's generic tools for all of these, however no one central thing
that binds them all together in a seamless way, elegant or otherwise.
No platform binds these together in an easy nor elegant way, and
perhaps such a thing would be beneficial to the library community, to
create a language that tries to create a bridge between computer
programming and what you learn in library school.

But even if we all concede that a library DSL perhaps is not a
practical solution, I'd still like to see us work on it, for nothing
more than sussing out our actual needs and wants in the process. Don't
underestimate the process of doing something that will never
eventuate, even knowingly.

 Some people like ruby because of it's support for creating what they call
 domain specific languages, which I think is a silly phrase, which really
 just means a libraryAPI at the right level of abstraction for the tasks at
 hand, so you can accomplish the tasks at hand concisely and without repeated
 code.

Depends on the language. Perhaps this doesn't make sense in Ruby, but
it certainly does in Scala, Haskell, and perhaps more than any, Rebol.
Even Lisp and derivatives, who can create custom structures on the
fly, are well suited to create actual languages that redefine the
language's original syntax and structure. You can redefine the hell
out of C to create any language imaginable, too, even when you
shouldn't.

A well-defined API is not a bad thing, though, but an API are
basically semantic entities in a language to parse structures.
However, a language redefines the syntax used by that language. Sure
you can create a word record in an API that mimics, say, a MARC
record, but the interesting part is when you redefine the syntax to
work *with* that semantic concept, like ;

  external_repository {
 baseURI: 'http://example.com/',
 type: OAI-PHM
  }

  my_repository {
 baseURI: 'http://example.com/',
 type: RIF-CS
  }

  some_vocabulary {
 baseURI: 'http://example.com/vocab'
 type: thesauri
  }

  foreach record in external_repository [without tag 850] {
 inject into my_repository {
with: exploded words ( tag 245 )
when: match words in some_vocabulary ( NT  2 )
merge into: tag 850
 }
  }

Creating classes that deal with record merging based on identity
management and various standards would be trivial to script together
super-fast, because the underlying concepts for us is rather
well-known. Hacking this together in Java or otherwise is a test on
patience and sanity, because they are generic tools, even when known
library-type APIs are used. Of course lots of stuff is assumed in the
example, but these are well-understood assumptions (about merging
subject headings (like multiple tags handling, LCSH lookup, etc.),
about identity control, about word lookup (for example, I'm assuming
some form of stemming before matching), and on and on. A language that
half text manipulation and lookup, and