God’s Word | our words
meaning, communication, & technology
following Jesus, the Word made flesh
August 16th, 2007

Reading: the Long Tail

Long Tail (cover)If you have any interest at all in business, economics, and the Internet, Chris Anderson’s Long Tail is a must-read. He explains in very understandable terms how scarce shelf space dictates a “hit”-based economy, and how the essentially unlimited inventory available through the Internet fundamentally changes the equation.

The most compelling ideas have to do with the three forces of the Long Tail (p. 54 and following):

  1. Wide availability of the tools of production means more stuff gets produced (a longer tail)
  2. Democratized distribution means more access to “niches” (a fatter tail)
  3. Connecting supply and demand (esp. through improved search, filtering and recommendation) means more business moves from the “hits” (the steep head of the tail) to the “niches”

Logos seems in many respects to be a good example of a Long Tail business: though we have initial production costs associated with producing titles in digital format, we aggregate demand across a much larger group than a typical bookstore, so we can support our “niche” (and sub-niches within it). And our community pricing model provides a very effective mechanism for determining which titles to produce when and for how much.

As some other reviewers on Amazon have noted, the book itself has a bit of a long tail: most of the interesting stuff comes early on in the book. And i could quibble that, while he’s appropriating as “his curve” something that Pareto and Zipf noted a long time ago, they don’t actually get mentioned until halfway through. That doesn’t seem quite fair to history, but he does have some interesting comparative comments about how the Pareto Principle or 80/20 changes with the Long Tail. Overall, though, i can’t be too critical since he was willing to comment on, and link to a post on our blog about the Zipfian distribution of names in the Bible (which Blogos readers saw first).

August 11th, 2007

No Income Cap on Desire

Several other notable tech bloggers (all of whom actually live among this action, unlike me) have commented on the NYTimes story, “In Silicon Valley, Millionaries Who Don’t Feel Rich“.

Some notable quotes from the story:

  • “But a few million doesn’t go as far as it used to…” – Hal Steger, with a net worth (together with his wife) of $3.5M
  • … those with a few million dollars often see their accumulated wealth as puny …
  • [Gary Kremen, founder of match.com whose estimated wealth is $10M] … logs 60- to 80-hour workweeks because, he said, he does not think he has nearly enough money to ease up. “You’re nobody here at $10 million,” Mr. Kremen said earnestly …
  • Marilyn Holland, a Menlo Park psychologist … said she regularly works with multimillionaires who wonder why they are so well compensated when others, like teachers, who contribute so much to the world, are not.
  • Mr. Hettig, the estate planning lawyer, sums it up for many: “We’re in such a rarefied environment,” he said, “people here lose perspective on what the rest of the world looks like.”

There’s always somebody above you to climb towards, or somebody below you to make you grateful for how much you have. It’s all a matter of perspective combined with values, isn’t it: what really matters?

August 9th, 2007

Context is Everything

Our friend Elesa got Donna and i to sign up for GoodReads, a social bookmarking service that lets you share with your friends what books you’re currently reading (and then aggregates the information in ways similar to LibraryThing, mentioned in yesterday’s post). Wanting to play along, i entered a couple of books i’m currently working through (some of which i’ll review here when i get time):

My brief review of the Python Cookbook read “Lots of practical recipes for using Python more effectively. ” Elesa was very puzzled until her husband, looking over her shoulder, pointed out that Python is a programming language…

August 8th, 2007

Fun With the Libronix Object Model

Most users only interact with Logos Bible Software as an ordinary desktop application. But underneath the hood is a powerful API called the Libronix Digital Library System Object Model (LDLSOM) that programmers can use to do all kinds of fancy tricks (you can download the documentation for free). Lately i’ve been working on automated processing of Bible dictionary content, and consequently i’ve been learning how to program against the LDLSOM. The climb is a little steep in the early part of the learning curve, but once you’ve ascended far enough there are some neat things you can do with it. And since everything is exposed as COM objects, any language with a COM interface (JavaScript, Perl, Python, even (gasp) Java) can be used with it.

Here’s a simple Python example, using an approach my colleague Rick Brannan developed, for extracting the ISBN numbers of resources in your Libronix library. Why? So you can upload them to LibraryThing. Here’s the deal: LibraryThing is a great social bookmarking service for bibliophiles, where you can find out who else has the same books you do and use that to discover common interests, popular titles, reviews, etc. A lifetime membership for LibraryThing is only $25, which seems like a bargain. But the other cost of admission is entering your library information. For dead tree books, you can use a CueCat scanner with the barcode to get a list of ISBN numbers (which you cue up so LibraryThing can look up and import the other metadata). But for electronic books like those in Libronix, how do you get the ISBNs? The best Libronix packages like Scholar’s Gold and Silver have thousands of resources, and looking each one up by hand is a daunting task.

LDLSOM to the rescue! The following snippet of Python code goes through each resource in your library, extracts the metadata (you can view this in the application with Help > About This Resource), and prints out the ISBN numbers for resources that have them (that’s a couple hundred for the version i have here at work). This assumes you have a standard Python installation (i use the excellent one from ActiveState) and one additional package for XML parsing: see the comments in the code. Unlike Rick’s version, there’s no user interface or other niceties: it just prints out the list. While i don’t want to provide basic Python tutorials (there are plenty of great ones out there already), if you know Python but can’t get this working, let me know (sean at logos here’s-the-dot com) and i’ll try to help. (i can’t get the indentation right, which Python cares about but WordPress loves to mangle: download the code here.)

If you use this to load your LibraryThing catalog, let me suggest you tag your books with “libronix“, which seems to be the most popular LIbraryThing tag at present for Libronix titles (though “ldls” and “Libronix ebook” are also in use).

import win32com.client
# requires 4suite.org XML processing library, available from
# http://4suite.org/?xslt=downloadproduct.xslt&show=http%3A%2F%2F4suite.org%2Fdata%2Fsoftware%2F4Suite or
# http://sourceforge.net/project/showfiles.php?group_id=39954
from Ft.Xml import Parse
def toascii(str):
"""Silly hack for producing a mostly correct ASCII version of a
Unicode string."""
return str.encode('ascii', 'xmlcharrefreplace')
def main():
# get a handle for the application, starting it if necessary
ldls = win32com.client.Dispatch('LibronixDLS.LbxApplication')
# for each resource, get the DC metadata in XML, parse it, and extract
# the ISBN number (if any)
for res in ldls.Librarian.Information.Resources:
metadata = ldls.Librarian.OpenResourceMetadata(res.ResourceID)
dcm = metadata.XML.selectSingleNode("dc-metadata").xml
# presumably any unicode characters won't be in the ISBN
dcmobj = Parse(toascii(dcm))
isbnnode = dcmobj.xpath(u"/dc-metadata/dc-element[@name='dc.identifier:isbn']/text()")
if isbnnode:
print '%st"%s"' % (isbnnode[0].nodeValue, toascii(ldls.Librarian.GetResourceTitle(res.ResourceID)))
if __name__ == "__main__":
August 4th, 2007

Does One Flesh mean One iPod?

WSJ’s Ellen Gamerman writes about how couples manage their digital lives together.

Donna and i have faced some similar challenges. Having a shared email address hasn’t really come up: we both have several each, in fact, and we rely on them so much it would drive us crazy to mix all their content together (though there’s nothing in mine i wouldn’t share with her, and i’m sure she feels the same). We just CC each other on things (like family email) that concern us both. This can be frustrating with people who just don’t get the Reply All concept (and there are lots of them), since then we have to make up them by forwarding things ourselves. Donna’s folks had a good laugh when they caught us emailing each other … in the same room.

We have separate MP3 players: since we mostly use them for audio books, it’s too frustrating to have to search for where you last left off (but we don’t have pricey iPods, so owning two isn’t a big deal). Our shared Netflix queue isn’t really a problem: i didn’t even know before reading the article you could have two. But we always watch TV together anyway (though surprisingly often we both say “i thought you put that movie on our queue: I’ve never heard of it!”). Sometimes she’s uncomfortable with things i blog about being too personal (this post might be one of them!). I’m always encouraging her to blog more, because she’s a really a good writer: back when she was regularly blogging, most of our friends read her blog instead of mine, because at least they could understand it. Though we have a shared Amazon account, i don’t much care if the recommendations get blurry, and i’ve completely monopolized the wishlist (so beware if you think you’re buying a book for Donna!).

Declining technology prices solve many of these problems. I recently bought her a hard drive for a photo scanning project, but hard drives are cheap, so it’s doesn’t feel like we’re not sharing. The most interesting question the article raises for me is how to convert the traditional solitude and individuality of on-line environments into truly shared space.

(Hat-tip to slashdot)

August 3rd, 2007

Styling Bibleref with CSS

Jim asked how he can use CSS to make his bibleref citations not show up in italics, which apparently is how WordPress and Blogger render them by default. Good question, and i’ll add this into the FAQ (it’s always nice to have questions that somebody actually asked!).

If this is your situation, the best short answer is to add

.bibleref { font-style: normal; none; }

to your CSS. That way, all bibleref-marked elements (cite and others) will lose their italics. Of course, there are lots of other ways to do this, including finding the parent styling that’s italicizing cite elements in the first place. But this approach also makes it easy if you want to style your references in some other way.

Two great CSS resources that i can recommend:

  • Get Firebug! I can’t say enough good things about this Firefox add-in that lets you inspect what CSS is being applied applies to text on a given page, and interactively edit it and see the results. How do i ever do CSS editing without this?!? (with a lot of pain, that’s how)
  • If you’re going to do serious CSS work, you’ll want a full reference book like Eric Meyer’s CSS: the Definitive Guide. But for most quick checks, i use W3Schools, a very thorough on-line reference to CSS, XSLT, HTML, etc. I didn’t happen to remember the name of the property that controls italics, but it only took a couple of clicks to find it.

(Update: Thanks to Jacob, who noticed i erroneously put in ‘none’ instead of ‘normal’ for the value of the font-style property. )