<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>τεχνοσοφια &#187; Libraries</title>
	<atom:link href="http://lackoftalent.org/michael/blog/category/libraries/feed/" rel="self" type="application/rss+xml" />
	<link>http://lackoftalent.org/michael/blog</link>
	<description>The occasional rambling of a digital library artisan</description>
	<pubDate>Sun, 16 Nov 2008 21:42:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Plugin updates</title>
		<link>http://lackoftalent.org/michael/blog/2008/11/16/plugin-updates/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/11/16/plugin-updates/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 21:40:09 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[OAI-ORE]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Persistent Identifiers]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[unAPI]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/?p=190</guid>
		<description><![CDATA[
I finally pushed out some embarrassingly outdated WordPress plugin updates a few moments ago.

Updated unAPI plugin with a patch contributed by Jay Luker that removes the hard-coded &#034;wp_&#034; table prefix.  The updated version of the plugin has been tagged as 1.4.1.
Updated LinkPURL plugin with a patch contributed by Mark Matienzo that enables partial redirects. [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:190"><!-- &nbsp; --></abbr>
<p>I finally pushed out some embarrassingly outdated WordPress plugin updates a few moments ago.</p>
<ul>
<li>Updated unAPI plugin with a patch contributed by <a href="http://www.linkedin.com/in/jayluker" target="_blank">Jay Luker</a> that removes the hard-coded &#034;wp_&#034; table prefix.  The updated version of the plugin has been tagged as 1.4.1.</li>
<li>Updated LinkPURL plugin with a patch contributed by <a href="http://matienzo.org/" target="_blank">Mark Matienzo</a> that enables <a href="http://purl.oclc.org/docs/inet96.html#partial" target="_blank">partial redirects</a>.  I made some additional tweaks to the plugin to make this feature configurable via the WordPress management UI.  This has been tagged as 1.1.</li>
<li>Created a new unAPI plugin branch for Mark Matienzo&#039;s <a href="http://about.scriblio.net/" target="_blank">Scriblio</a>-oriented tweaks.  The branch is called 1.4.1-anarchivist-scriblio and it contains the scriblio.diff file.  I have yet to integrate the diffs, as the file that was patched has changed since the patch was issued.  If anyone is interested in working on unAPI/Scriblio integration, please get in touch with me.</li>
</ul>
<p>And here is my to-do list which I hope will keep me honest.</p>
<ul>
<li>Update OAI-ORE plugin to support version 1.0 of the ORE specification.</li>
<li>Add per-post (and per-page?) resource maps that wrap all embedded images and links.</li>
<li>Enable &#034;cool URIs&#034; for all resource maps.</li>
</ul>
<p>It is my hope that I&#039;ll get to those sometime before the summer begins.  :)</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/11/16/plugin-updates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Call for Proposals - code4lib 2009 conference</title>
		<link>http://lackoftalent.org/michael/blog/2008/10/23/call-for-proposals-code4lib-2009-conference/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/10/23/call-for-proposals-code4lib-2009-conference/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 23:26:35 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Conferences]]></category>

		<category><![CDATA[code4lib]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/?p=164</guid>
		<description><![CDATA[
Hear ye, hear ye, techie librarians and library techies:
Birkin James Diana, representing the host, Brown University, announces a call for proposals for talks at the code4lib 2009 conference:
The code4lib conference is wonderful in large part because of what you folk share.
Head over to the Call For Proposals page and submit your idea for a prepared [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:164"><!-- &nbsp; --></abbr>
<p>Hear ye, hear ye, techie librarians and library techies:</p>
<p>Birkin James Diana, representing the host, Brown University, <a href="http://www.mail-archive.com/code4lib@listserv.nd.edu/msg04087.html" target="_blank">announces</a> a call for proposals for talks at the code4lib 2009 conference:</p>
<blockquote><p>The code4lib conference is wonderful in large part because of what you folk share.</p>
<p>Head over to the Call For Proposals page and submit your idea for a prepared talk. Information about the time-frame, scope, and evaluation process &#8212; as well as the link to the submission form &#8212; can be found at:</p>
<p>http://library.brown.edu/code4libcon09/proposals/</p>
<p>Some important notes:<br />
- Proposals can be submitted through Sunday November 23 2008.<br />
- Just like when you vote, use your code4lib username and password.<br />
- You initially won&#039;t be able to edit your proposal(s), but I&#039;ll have that implemented in the near future.
</p></blockquote>
<p>More information on prepared talks from the <a href="http://library.brown.edu/code4libcon09/proposals/info/" target="_blank">proposal page</a>:</p>
<blockquote><p>
Prepared talks are 20 minutes, and must focus on one or more of the following areas:</p>
<p>    * &#034;tools&#034; (some cool new software, software library or integration platform)<br />
    * &#034;specs&#034; (how to get the most out of some protocols, or proposals for new ones)<br />
    * &#034;challenges&#034; (one or more big problems we should collectively address)</p>
<p>The community will vote on proposals using the criteria of:</p>
<p>    * usefulness<br />
    * newness<br />
    * geekiness<br />
    * diversity of topics</p>
<p>We cannot accept every prepared talk proposal, but multiple lightning talk sessions should provide everyone who wishes to present with an opportunity to do so.</p></blockquote>
<p>Do consider submitting a talk if any of that sounds interesting to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/10/23/call-for-proposals-code4lib-2009-conference/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DRM for Librarians</title>
		<link>http://lackoftalent.org/michael/blog/2008/09/08/drm-for-librarians/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/09/08/drm-for-librarians/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 12:15:34 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Digital Libraries and Archives]]></category>

		<category><![CDATA[Digital Rights Management]]></category>

		<category><![CDATA[Libraries]]></category>

		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/?p=148</guid>
		<description><![CDATA[
I know precious little about rights management.  And what I do know I have gleaned from the occasional Slashdot post or Wired article.  Former colleague Grace Agnew, Associate University Librarian for Digital Library Systems at Rutgers University, has put the wraps on a book about digital rights management targeted at librarians, Digital Rights Management: A [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:148"><!-- &nbsp; --></abbr>
<p>I know precious little about rights management.  And what I do know I have gleaned from the occasional Slashdot post or Wired article.  Former colleague Grace Agnew, Associate University Librarian for Digital Library Systems at Rutgers University, has put the wraps on a book about digital rights management targeted at librarians, <a href="http://www.amazon.com/Digital-Management-Librarians-Technology-Practise/dp/other-editions/1843341824" target="_blank">Digital Rights Management: A Librarian&#039;s Guide to Technology and Practice</a> (also available in paperback):</p>
<blockquote><p>This book provides an overview of the current landscape in digital rights management (DRM), including: an overview of terminology and issues facing libraries, plus an overview of the technology (including standards and off-the-shelf products). It discusses the role and implications of DRM for existing library services, such as integrated library management systems, electronic reserves, commercial database licenses, digital asset management systems and digital library repositories. It also discusses the impact that DRM ‘trusted system’ technologies, already in use in complementary areas, such as course management systems and web-based digital media distribution, may have on libraries. It also discusses strategies for implementing DRM in libraries and archives for safeguarding intellectual property in the web environment.</p></blockquote>
<p>If you&#039;re a librarian or information professional looking for an introduction to DRM, an underpinning for rights management strategy, or a refresher on rights management technologies, you might consider checking it out.</p>
<p>For full disclosure, I was one of several reviewers of this book.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/09/08/drm-for-librarians/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ORE plugin updated</title>
		<link>http://lackoftalent.org/michael/blog/2008/07/25/ore-plugin-updated/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/07/25/ore-plugin-updated/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 17:19:29 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[APIs]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[OAI-ORE]]></category>

		<category><![CDATA[Repositories]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/?p=135</guid>
		<description><![CDATA[
I&#039;ve been using my time at RepoCamp today to get the OAI-ORE plugin for WordPress validating again.  I&#039;m having some trouble using the validator so I say that with some diffidence.  But the latest code which is now checked in to the WordPress plugins svn repo ought to be close, if not fully conformant, to [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:135"><!-- &nbsp; --></abbr>
<p>I&#039;ve been using my time at <a href="http://barcamp.org/RepoCamp" target="_blank">RepoCamp</a> today to get the OAI-ORE <a href="http://lackoftalent.org/michael/blog/ore-wordpress-plug-in/" target="_blank">plugin</a> for WordPress <a href="http://african.lanl.gov/ovalnet/validate.jsp" target="_blank">validating</a> again.  I&#039;m having some trouble using the validator so I say that with some diffidence.  But the latest code which is now checked in to the WordPress plugins svn repo ought to be close, if not fully conformant, to the 0.9 version of the ORE spec.</p>
<p>I&#039;m not sure the plugin is really useful; it&#039;s just an Atom feed of all posts and pages in a WP instance.  I can think of some ways to make this more useful, by allowing blog authors to create their own aggregations, pulling in content outside of the particular instance.  I am certain that others can come up with even better uses.  I&#039;m open to suggestions.</p>
<p>Thanks to Jay Datema for <a href="http://www.bookism.org/open/2008/07/17/repurposing-metadata/" target="_blank">prodding</a> me a bit, if indirectly.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/07/25/ore-plugin-updated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sustaining digital libraries</title>
		<link>http://lackoftalent.org/michael/blog/2008/07/18/sustaining-digital-libraries/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/07/18/sustaining-digital-libraries/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 12:43:37 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Digital Libraries and Archives]]></category>

		<category><![CDATA[Preservation]]></category>

		<category><![CDATA[Repositories]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/?p=132</guid>
		<description><![CDATA[
About a month ago, I read on my colleague&#039;s blog that the Emory University Digital Library published a new book on sustaining digital libraries.  I&#039;ve finally started reading it and figured I would post a note here.
The articles of this monograph provide resources for digital library stakeholders who seek to better understand how to effectively [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:132"><!-- &nbsp; --></abbr>
<p>About a month ago, I read on my <a href="http://digitaleccentric.blogspot.com/2008/06/strategies-for-sustaining-digital.html" target="_blank">colleague&#039;s blog</a> that the Emory University Digital Library published a new <a href="http://digital.library.emory.edu/SSDL" target="_blank">book on sustaining digital libraries</a>.  I&#039;ve finally started reading it and figured I would post a note here.</p>
<blockquote><p>The articles of this monograph provide resources for digital library stakeholders who seek to better understand how to effectively evolve such efforts from short-term projects to long-term sustainable programs. The monograph includes contributions from leaders in major digital libraries that have made such transitions or which are systematically considering the question of programmatic sustainability, including representatives from the National Digital Infrastructure and Information Preservation Program (NDIIPP) and the National Science Digital Library (NSDL).</p></blockquote>
<p>I might also note that the book is available for free as a <a href="http://metascholar.org/publications/StrategiesforSustainingDigitalLibraries.pdf" target="_blank">PDF</a>.</p>
<p>So far I&#039;ve read the introduction by the editors and the abstract from Leslie&#039;s paper, and the book looks like a high-quality read from cover to cover, with articles based on actual digital library experience.  It&#039;s a pragmatic approach for how to sustain digital library initiatives, looking beyond technical concerns towards the more challenging social and economic ones.  To some extent, we are getting pretty good at preserving bits and relationships between collections of bits &#8212; it is yet to be seen how good we will be at preserving the preservation systems themselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/07/18/sustaining-digital-libraries/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jythons and Javas and bears, oh my!</title>
		<link>http://lackoftalent.org/michael/blog/2008/04/11/jythons-and-javas-and-bears-oh-my/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/04/11/jythons-and-javas-and-bears-oh-my/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 01:41:52 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Digital Libraries and Archives]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Preservation]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Repositories]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/?p=122</guid>
		<description><![CDATA[
It&#039;s hard to believe but I&#039;ve been at the new job for six months already, a full half-year come the 29th.  Some days it seems like I&#039;ve been here forever; others like I&#039;m still a rank newb.   I haven&#039;t written terribly much about what I&#039;ve been up to (but I assure you [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:122"><!-- &nbsp; --></abbr>
<p>It&#039;s hard to believe but I&#039;ve been at the <a href="http://lackoftalent.org/michael/blog/2007/09/27/october/" target="_blank">new job</a> for six months already, a full half-year come the 29th.  Some days it seems like I&#039;ve been here forever; others like I&#039;m still a rank newb.   I haven&#039;t written terribly much about what I&#039;ve been up to (but I assure you I&#039;ve been busy).  Let me rectify that.</p>
<h2><strong>The Transfer Problem</strong></h2>
<p>Two of the projects I&#039;ve been working on relate to a fairly general problem that we like to call &#034;transfer,&#034; which revolves around, well, transferring files to and fro.  Sounds simple.  <em>Is</em> simple.  That is, until you start thinking about preservation and accounting for a highly heterogeneous network with idiosyncratic nodes, esoteric storage software, and differential firewall rules.  And that&#039;s where it gets interesting (and problematic). <span id="more-122"></span>The transferring itself, or copying of files from one location to another which we call &#034;transport,&#034; is the easiest part.  We like to use common tools in our environment.  It makes life easy.  And so good ol&#039; <a href="http://en.wikipedia.org/wiki/Secure_copy" target="_blank">scp</a> seems like an obvious choice to handle the job.</p>
<p>Since preservation is a core aspect of our &#034;repository,&#034; a term which I use loosely, we must build certain other functionalities into the transfer process: validation, verification, inventory, backup, ingest, and so forth.  Every time a file is copied to a non-transient location, we verify the file against a (<a href="http://www.faqs.org/rfcs/rfc3174.html" target="_blank">SHA1</a>) checksum and record an event for auditing purposes.</p>
<h2><strong>Repository Workflows</strong></h2>
<p>Some steps in the transfer process are routine and best handled by machines. Thus we automate them with scripts and code.  Others require human intervention.  This introduces another key aspect of our repository needs: workflows.  No two projects will have the same workflow and yet all will have some steps in common.  We&#039;re using JBoss&#039;s <a href="http://www.jboss.org/jbossjbpm/" target="_blank">jBPM</a> library for workflow management and it is more than capable of handling our workflow needs.  It allows us to model complex and varied flows in a robust and not <em>ad hoc</em> way; it does seem preferable to me to model our workflows via jBPM&#039;s graphical editor (serialized to <a href="http://docs.jboss.com/jbpm/v3/userguide/jpdl.html" target="_blank">JPDL</a> XML) rather than copying around blocks of code and otherwise modeling the workflow procedurally in business logic.</p>
<p>One of my coworkers (<a href="http://www.dlib.org/dlib/july07/littman/07littman.html" target="_blank">the author of this</a>) designed a complete workflow system in jBPM last summer and I&#039;ve taken on implementing, tweaking, and testing this system, which has required bootstrapping my sorry-arse Java skills and learning jBPM.  Though I find it difficult to think in Java patterns and generally find it a burdensome environment, I&#039;m quite impressed by jBPM.  I&#039;ve been working on various updates of and unit test coverage for the workflow system, which has been a crash course in a number of Java technologies and a perfect first task at LC, as it gets me into the guts of things.  The Java stack we use for our workflow is highly abstracted and componentized, which is conveniently modular&#8230; but it&#039;s also Java: fairly heavy and arguably not as agile as dynamic languages such as Python.</p>
<h2><strong>Two Great Tastes?</strong></h2>
<p>So recently we&#039;ve begun to think about implementing some transfer and workflow components in <a href="http://www.jython.org/" target="_blank">Jython</a> (Python written in Java).  Why?  The value of Jython is as follows:</p>
<ol>
<li><strong>Ease of deployment</strong> - Deploying jar files to existing JVMs in production environments (which we do not control) is a simple task, or at least simpler than some other options.</li>
<li><strong>Interoperability</strong> - Our stack is primarily Java-based and so interoperating with existing Java components means not having to rewrite functionality in other languages.  Jython allows Python to talk to Java and vice versa.</li>
<li><strong>Familiarity</strong> - It&#039;s Python, and we like Python.  It&#039;s the closest my team has to a <em>lingua franca</em> and so it increases the chances of sharing code, maintaining code, and so forth.</li>
</ol>
<p>It does not come without its drawbacks:</p>
<ol>
<li><strong>Currency</strong> - The Jython project went moribund for a few years or so and the latest stable version is now 2.2.1.  Compare that to the latest version of Python: <a href="http://www.python.org/download/releases/2.5.2/" target="_blank">2.5.2</a>.  I don&#039;t begrudge the Jython developers, though.  I&#039;m glad some folks picked the project up, dusted it off, and breathed new life into it.   I am also glad that they&#039;re skipping 2.3 and 2.4 releases and plowing right into a 2.5 release.  Because of this currency issue, some Python libraries won&#039;t work with the latest Jython and that means you&#039;re stuck looking for outdated, potentially vulnerable Python libraries, or hooking into Java libraries for the same functionality (which inevitably means more lines of code).  I&#039;m no lines of code fetishist but it does militate against the goal of agility somewhat.One does have the option of living on the edge and trying out the 2.5 branch, but that seems out of step with an infrastructure that is supposed to preserve terabytes upon terabytes of our nation&#039;s, and the world&#039;s, intellectual property.  It&#039;s a responsibility I do not take lightly, as much as I&#039;d like to be on the bleeding edge.</li>
<li><strong>Interoperability difficulties - </strong>Talking to Java from Jython is a snap: just <code>import java</code> at the top of your script, and, assuming your classpath is copacetic, <em>voila:</em> you have access to Java libraries in your Python code!  Talking to your Jython modules from Java code is, well, a little more complicated. Read on.</li>
</ol>
<p>Despite the caveats it does seem a sane, reasonable, and potentially productive path to go down. Right?  I am specifically looking to implement two workflow components in Jython: one for transport (wrapping Ant&#039;s<a href="http://www.jcraft.com/jsch/" target="_blank"> JSch</a> library, which provides a slick scp API) and the other for automation of <a href="http://www.opensolaris.org/os/community/zfs/" target="_blank">ZFS</a> filesystem/volume creation on the staging server.  Nothing arcane, nothing tricky, nothing fancy.  So it must be easy!  Right? &#8230;</p>
<h2><strong>Lessons Learned?</strong></h2>
<p>I&#039;m beginning to wonder about the feasibility of using Jython to make bits of our Java stack more agile. Specifically, there are three ways to get at Jython code from Java:</p>
<ol>
<li>Compile to bytecode/jar via the Jython compiler (jythonc) and reference your Jython objects and methods as though they were <a href="http://en.wikipedia.org/wiki/POJO" target="_blank">POJOs</a></li>
<li>Embed a Jython interpreter</li>
<li>Instantiate a (<a href="http://jcp.org/en/jsr/detail?id=223" target="_blank">JSR-223</a>) script engine</li>
</ol>
<p>Option 1 is nice because you get object- and method-level interop.  However, <a href="http://www.jython.org/Project/jythonc.html" target="_blank">jythonc</a> is unsupported and will disappear.  This does not seem sustainable though I might be able to limp along a while.  And there are <a href="http://sourceforge.net/mailarchive/message.php?msg_name=96c4692d0802280853r70e6b74fg71aed3cdd7701cbf%40mail.gmail.com" target="_blank">signs of hope</a>:</p>
<blockquote><p>Though jythonc is going away, all of the capabilities it provides will be present in 2.5 in other forms.  We&#039;re adding functionality to expose Python classes as Java classes using decorators to replace the docstring class creation that jythonc provided, and we&#039;re adding static compilation of proxy classes so regular jython can run in applets and other environments with restrictive classloaders.  We&#039;re definitely doing something about jythonc.</p></blockquote>
<p>That doesn&#039;t help much <em>now</em>, of course, but just because jythonc goes away does not mean my jars will stop working.</p>
<p>The suggested methods for option 2 [<a href="http://wiki.python.org/jython/JythonMonthly/Articles/October2006/3" target="_blank">1</a>, <a href="http://wiki.python.org/jython/JythonMonthly/Articles/September2006/1" target="_blank">2</a>] seem to be more trouble than they&#039;re worth.  If the goal is more agile development for certain components, the reliance upon multiple, separate Java classes &#8212; an interface class and an object factory, in the examples listed &#8212; to get a ten-line Jython script working, this seems suboptimal, both inefficient and not straightforwardly maintainable; it seems, to me and my Java-dumb ways, rather baroque.</p>
<p>Option 3 [<a href="http://wiki.python.org/jython/JythonMonthly/Articles/October2006/1" target="_blank">1</a>, <a href="http://www.jython.org/Project/userguide.html#using-jsr-223" target="_blank">2</a>] is more appealing than option 2 as it does not rely upon these other classes specifically for Jython code.  But the number of lines of Java code that must be wrapped around the Jython to get it working looks like overkill for the drop-dead simple scripts I&#039;m writing &#8212; it might be easier, for instance, to just write the darn things in Java and be done with it.  (Did I just say that?)</p>
<h2><strong>Conclusions</strong></h2>
<p>Options 2 and 3 are similar as both involve embedding Jython code, or referencing files with Jython code, and interpreting the code within Java.  Generally, I worry that either option would obviate the benefit of agile Jython scripting because you wind up wrapping the code in so much Java.  I offer two disclaimers to counter my objections:</p>
<ol>
<li>Cleverer Java coders than myself could, I am almost certain, find ways to build abstractions (or abstractions of abstractions) to eliminate the &#034;lines of code&#034; and &#034;many separate classes per Jython script&#034; issues</li>
<li>The value of Jython in our Java environment increases proportionately with the complexity of the component &#8212; given the overhead, a short Java class seems easier and more straightforward to implement than a short embedded Jython script.  On the other hand, there&#039;s value in embedding a Jython script that&#039;d be an order of magnitude simpler than its Java analog.</li>
</ol>
<p>At least, that&#039;s the state of my head right now re: getting Jython and Java to play nice.  If I make any breakthroughs or give up entirely, I&#039;ll post follow-ups.</p>
<p>I am but a Java philistine and a Jython neophyte, so I remain humbly open-minded.  I would greatly appreciate comments, questions, corrections, smackdowns, sagacious advice, and so on.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/04/11/jythons-and-javas-and-bears-oh-my/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Code4Lib Journal</title>
		<link>http://lackoftalent.org/michael/blog/2008/03/25/code4lib-journal/</link>
		<comments>http://lackoftalent.org/michael/blog/2008/03/25/code4lib-journal/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 14:53:15 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Libraries]]></category>

		<category><![CDATA[Scholarly Communication]]></category>

		<category><![CDATA[code4lib]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/2008/03/25/code4lib-journal/</guid>
		<description><![CDATA[
&#8230; meanwhile, the Code4Lib Journal has published its second issue and boy is it packed with articles; Eric Lease Morgan, Coordinating Editor of the issue, does a bang-up job on the introduction (though the title has effectively Bostonroll&#039;d me).
Each article in this issue has a little bit of something for all who call themselves a [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:120"><!-- &nbsp; --></abbr>
<p>&#8230; meanwhile, the <a href="http://journal.code4lib.org/" target="_blank">Code4Lib Journal</a> has published its <a href="http://journal.code4lib.org/issues/issue2" target="_blank">second issue</a> and boy is it packed with articles; <a href="http://www.library.nd.edu/daiad/morgan/" target="_blank">Eric Lease Morgan</a>, Coordinating Editor of the issue, does a bang-up job on the <a href="http://journal.code4lib.org/articles/71" target="_blank">introduction</a> (though the title has effectively <a href="http://en.wikipedia.org/wiki/More_Than_a_Feeling" target="_blank">Bostonroll</a>&#039;d me).</p>
<blockquote><p>Each article in this issue has a little bit of something for all who call themselves a librarian or work in a library. Each identifies some sort of library problem to be addressed, and offers one or more solutions. Many are complete with code snippets. After all, this is Code4Lib.</p>
<p>For example, people in public service may be interested in Edward M. Corrado and Kathryn A. Frederick’s review of database-driven <a href="http://journal.code4lib.org/articles/47">subject guide applications</a>. Kenneth Furuta and Michele Potter describe a simple <a href="http://journal.code4lib.org/articles/45">help system</a> that brings librarians running to the reference desk. Margaret Mellinger and Kim Griggs explain how library resources can be organized into <a href="http://journal.code4lib.org/articles/63">course pages</a> without the need of HTML knowledge and yet sport Web 2.0 features. Nancy Fried Foster, Nora Dimmock, and Alison Bersani shed light on <a href="http://journal.code4lib.org/articles/53">participatory design</a>.</p>
<p>For those of us who enjoy cataloging and metadata issues, Jonathan Gorman outlines how he modified VUFind to exploit Wikipedia and cataloging <a href="http://journal.code4lib.org/articles/57">authority records</a> to enhance information about authors in a library catalog. Chris Freeland, Martin Kalfatovic, Jay Paige, and Marc Crozier illustrate a different use of <a href="http://journal.code4lib.org/articles/52">Library of Congress Subject Headings</a> by integrating place names with Google Maps. Carol Jean Godby, Devon Smith and Eric Childress describe a technique for <a href="http://journal.code4lib.org/articles/54">crosswalking</a> just about any metadata format into just about any other metadata format.</p>
<p>For the systems librarian in you, Dan Scott and Kevin Beswick share how they used Linux live CDs customized as kiosk browsers to provide laptops as <a href="http://journal.code4lib.org/articles/49">‘quick lookup’ stations</a> at their library. Andrew Darby takes advantage of the <a href="http://journal.code4lib.org/articles/46">Google Calendar API</a> to easily manage the display of library hours. Jody DeRidder exploits Google <a href="http://journal.code4lib.org/articles/43">sitemap technology</a> and static HTML pages to make content in the “deep Web” more accessible. We hope you find these articles useful, stimulating, and relevant to your daily working lives.</p></blockquote>
<p>I  am ashamed to admit that I have not yet finished the <a href="http://journal.code4lib.org/issues/issue1" target="_blank">first issue</a>, so I now have pages upon pages to read.  Ordinarily when I am behind on my reading I wind up letting bits fall by the wayside but the material largely looks too good to ignore.</p>
<p>Congratulations to Editorial Committees past and present and to the <a href="http://code4lib.org/" target="_blank">community</a> on the whole!</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2008/03/25/code4lib-journal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OAI-ORE ResourceMap for WordPress</title>
		<link>http://lackoftalent.org/michael/blog/2007/12/14/oai-ore-resourcemap-for-wordpress/</link>
		<comments>http://lackoftalent.org/michael/blog/2007/12/14/oai-ore-resourcemap-for-wordpress/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 21:14:38 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[APIs]]></category>

		<category><![CDATA[Digital Libraries and Archives]]></category>

		<category><![CDATA[OAI-ORE]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/2007/12/14/oai-ore-resourcemap-for-wordpress/</guid>
		<description><![CDATA[
This is very rough, but here&#039;s a WordPress plugin that provides a resource map for the aggregation of all posts within an installation of WordPress.  I&#039;ll be working on this some more, but for now, it does appear to work and validate (as Atom).  Useful?  If so, I&#039;ll zip it up and [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:111"><!-- &nbsp; --></abbr>
<p>This is very rough, but here&#039;s a WordPress plugin that provides a <a href="http://lackoftalent.org/michael/blog/wp-content/plugins/oai-ore/rem.php" target="_blank">resource map</a> for the aggregation of all posts within an installation of WordPress.  I&#039;ll be working on this some more, but for now, it does appear to work and validate (as Atom).  Useful?  If so, I&#039;ll zip it up and commit it to the wp-plugins svn.</p>
<p>Note:<a href="http://inkdroid.org/journal/" target="_blank">Ed</a> reminds me that xsltproc can be used to transform the Atom-based resource map into RDF via GRDDL:</p>
<p><code>xsltproc http://www.openarchives.org/ore/atom-grddl.xsl http://lackoftalent.org/michael/blog/wp-content/plugins/oai-ore/rem.php</code></p>
<p><strong>Update:</strong> The plugin has its own <a href="http://lackoftalent.org/michael/blog/ore-wordpress-plug-in/" target="_blank">page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2007/12/14/oai-ore-resourcemap-for-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Self-archiving</title>
		<link>http://lackoftalent.org/michael/blog/2007/10/10/self-archiving/</link>
		<comments>http://lackoftalent.org/michael/blog/2007/10/10/self-archiving/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 18:19:46 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Open Access]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Scholarly Communication]]></category>

		<category><![CDATA[code4lib]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/2007/10/10/self-archiving/</guid>
		<description><![CDATA[
Dorothea left a comment on a post announcing the publication of a little conference review some colleagues and I splurted out.  In the announcement I lamented a bit about impact and she wisely suggested I consider depositing the review in a subject repository such as E-LIS.  
We looked into our agreement with the [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:108"><!-- &nbsp; --></abbr>
<p><a href="http://cavlec.yarinareth.net/" target="_blank">Dorothea</a> left a <a href="http://lackoftalent.org/michael/blog/2007/09/11/code4lib-2007-review/#comment-45629" target="_blank">comment</a> on a <a href="http://lackoftalent.org/michael/blog/2007/09/11/code4lib-2007-review/" target="_blank">post</a> announcing the publication of a little <a href="http://www.emeraldinsight.com/10.1108/07419050710823247" target="_blank">conference review</a> some colleagues and I splurted out.  In the announcement I lamented a bit about impact and she wisely suggested I consider depositing the review in a subject repository such as <a href="http://eprints.rclis.org/" target="_blank">E-LIS</a>.  </p>
<p>We looked into our agreement with the publisher and it was actually quite permissive.  (Way to go, Emerald.)  And here&#039;s the <a href="http://eprints.rclis.org/archive/00011670/" target="_blank">review</a> in all its open access glory.</p>
<p>Thanks, Dorothea!</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2007/10/10/self-archiving/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Use cases for Handle identifiers?</title>
		<link>http://lackoftalent.org/michael/blog/2007/10/05/use-cases-for-handle-identifiers/</link>
		<comments>http://lackoftalent.org/michael/blog/2007/10/05/use-cases-for-handle-identifiers/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 04:13:40 +0000</pubDate>
		<dc:creator>Michael Giarlo</dc:creator>
		
		<category><![CDATA[Persistent Identifiers]]></category>

		<guid isPermaLink="false">http://lackoftalent.org/michael/blog/2007/10/05/use-cases-for-handle-identifiers/</guid>
		<description><![CDATA[
Reading Adam Smith&#039;s D-Lib article has got me thinking about identifiers again.  I don&#039;t agree with some of the assertions in the section titled &#034;A Persistent Identifier Primer&#034; &#8212; URIs are in fact persistent; we just break them through poor management &#8212; and so I&#039;m led to a fundamental question: what are the good [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="oai:lackoftalent.org:technosophia:107"><!-- &nbsp; --></abbr>
<p>Reading Adam Smith&#039;s D-Lib <a href="http://dlib.org/dlib/september07/smith/09smith.html" target="_blank">article</a> has got me thinking about identifiers again.  I don&#039;t agree with some of the assertions in the section titled &#034;A Persistent Identifier Primer&#034; &#8212; URIs <em>are</em> in fact persistent; we just break them through poor management &#8212; and so I&#039;m led to a fundamental question: what are the good use cases for Handle (or ARK, or PURL) identifiers?  </p>
<p>I get the need for persistent and globally unique identifiers; I&#039;m just wondering why one needs special software with a separate URI namespace to gain persistence.</p>
<p>One potential use case might be resources that are outside of the organization&#039;s control &#8212; i.e., licensed content from vendors &#8212; but surely folks are using Handles for many resources that are created and managed <em>within the organization</em>.  And I&#039;m curious why they have decided that Handles are more durable than native URIs (the URIs to which Handles redirect), and how they deal with the problem of downstream (post-redirection) citation and bookmarking.  How useful is this sort of identifier scheme if your users never even see the supposedly more persistent URI for a resource?</p>
<p>As a former proponent of Handles and ARKs, this may seem like a hypocritical question to pose.  If I had to answer my own question, I would say that Handles seem like a good option because they save you some work and headaches in the short-term; you don&#039;t need to get together with your web team and come up with a scalable and sustainable URI policy; just assign native URIs in the usual haphazard way and generate Handles to compensate for a lack of identifier policies.</p>
<p>But if you&#039;re already making an organizational commitment to identifier persistence &#8212; and if you&#039;re rolling out Handles, I&#039;d wager that&#039;s likely &#8212; why not do so by minting carefully-considered <a target="_blank" href="http://www.w3.org/Provider/Style/URI">cool URIs</a>?  Less management and technology overhead and less confusion for your users are two good reasons to consider it.</p>
]]></content:encoded>
			<wfw:commentRss>http://lackoftalent.org/michael/blog/2007/10/05/use-cases-for-handle-identifiers/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
