elliot's blog

FRBR explained pretty well

I've been struggling for a while to understand FRBR. It's basically (I quote) a conceptual model for the bibliographic universe. At its core are concepts describing bibliographic "things": books, works, scores, audio books, novels, all that litter. But there are two odd vague things sitting in between Items (physical things you can hold) and Works (the broad idea of "a work of art", separate from how it occurs in the world): Manifestations and Expressions. I kind of understood the difference, but they seem to have smudged boundaries.

This comment on the futurelib wiki by jrochkind cleared up some of the confusion for me:

An item, is an actual individual concrete book in your hand.

A manifestation is the set of all items that are identical (or close enough) in physical form as well as content.

An expression is the set of all manifestations that are identical in textual or information content. (or close enough for our purpopes; an archeologist would consider the coffee stain on the back to be distinguishing information content; we do not).

And a work is the set of all expressions that well, consist of the same intellectual work. This is definitely a cultural concept, but it's one we have and find useful. We consider the audio book version of a book to be the same book, just a different version. That's work.

Thanks Jonathan.

Also ran across Ian Davis' translation of FRBR concepts to RDF. He's my boss.

And the Resource Description and Access cataloguing standard, which I hadn't encountered before. And by coincidence, a recent UKOLN guest lecture on RDA just appeared in one of my RSS feeds.

Most of this was triggered by a colleague tipping me off to eXtensibleCatalog, a new open source discovery layer for bibliographic data, built on Drupal (amongst other things). It has its own metadata format, plus tools for translating out of common library metadata formats (like MARC) into their own format.

It's quite fascinating, this whole library metadata lark, once you get your teeth into it.

Valuing your website

A bit of fun.

Check yours?

Seems roughly right. I haven't made that much out of it yet, though.

One of my favourite things about Wednesdays

On Wednesdays, my employer lets me work from home. I actually find this one of my most productive and enjoyable days of the week: without the distraction of the office, I find it easier to focus; plus I get to take my daughter to school and fetch her, which gives my wife the chance to do student visits, and gives me a chance to spend some time with my daughter.

On top of those great things, Wednesday is also the day when I receive a rather excellent email from 14tracks. This is a fine idea put together by the equally marvellous Boomkat music store: each week they send you a list of 14 tracks exemplifying a particular musical style, label, producer, artist etc., with short reviews, plus links to play previews and buy on Boomkat.

This week's selection is 14 tracks relating to Surgeon, the techno/dubstep producer. It's a great way to find out about new music, particularly if you're into electronica of any stripe.

West Midlands SME completes its migration to open source

Mercian Labels is a 40-year pedigree West Midlands SME, specialising in label printing. In early 2007 (when I was still working at OpenAdvantage), some Mercian Labels staff attended our courses on PHP and Asterisk held at OpenAdvantage (I may well have taught on the PHP one). Afterwards, assisted by Paul and Jono, my old colleagues, they began migrating as much of the business to open source as possible. They did this with considerable consultancy help from Senokian, a company I got to know well while at OpenAdvantage.

I've been following the Mercian Labels blog with great interest since the start of the process. Adrian Steele, the Managing Director, has painstakingly, honestly and openly described the whole transition, explaining the business costs and benefits, snags, setbacks, victories etc.: an invaluable resource for any other business doing a similar migration.

So I was pleased to read today that the migration is finally complete. Impressively, they've replaced Windows throughout their organisation, except for a few machines to run legacy software.

Excellent news. Well done to Adrian, Mercian Labels, and Senokian. I feel proud to have been a tiny part of it.

Dealing with self-signed SSL certificates when running Selenium server with Firefox

Selenium is a decent tool for testing web UIs, with good integration with a variety of languages. We use it on Talis Prism for testing the UI, running a Selenium server instance then firing Ruby rspec tests and an older HTML suite at it. Here's the part of the Ant build script which runs the HTML suite using Selenium :

<target name="prism-selenium-tests" description="Run the old Prism Selenium tests">
  <echo message="Running old Selenium tests against Prism" />
  <java jar="test/dependencies/Selenium/selenium-server.jar" fork="true" maxmemory="1024m">
    <arg line="-debug -timeout 500 -htmlSuite '*chrome ${firefox.bin}' http://${prism.host} \
       test/selenium/testSuite.html doc/seleniumResults.html" />

where the variables we interpose are:

${firefox.bin} = path to the Firefox binary to use
${prism.host} = HTTP host to run the tests against

This works without a hitch if you're not using HTTPS; but as soon as your tests redirect to an HTTPS URL on the same host (we serve parts of Prism over SSL), where your SSL certificate is self-signed, things go wrong. As Selenium effectively runs Firefox with a new profile every time, you potentially lose any certificate exceptions you might accept.

One technique we were using was to create a custom profile; run Firefox using that profile; browse to the HTTPS URL and accept the exception into that profile; then close the profile.

This kind of worked, but we still got odd popups from Firefox about new extensions being installed. Just annoying.

I think I've now worked out the solution, which was largely based on http://kapanka.com/2008/12/selenium-rc-firefox-and-the-self-signed-ssl-c.... It's a bit of a pain in the arse, but it does seem to work. Here goes.

  1. Close down any running Firefox instances.
  2. Start Firefox (the one you're going to run your tests with) with the profile manager: firefox -ProfileManager
  3. Create a new profile. You'll be prompted to choose a directory for the profile. Put it somewhere inside the project where you're writing the tests.
  4. Select the profile and run Firefox using it.
  5. Browse to the HTTPS URL (with self-signed certificate) you're going to be testing against.
  6. Accept the self-signed certificate when prompted. This creates an exception for it in the profile.
  7. Close the browser.
  8. Go to the Firefox profile directory.
  9. Delete everything in the directory except for the cert_override.txt and cert8.db files.
  10. When you run your Selenium server (like in my Ant example above), pass a -firefoxProfileTemplate /path/to/profile/dir argument to it. This tells Selenium to use your partial profile (with certificate exceptions) as a basis for minting its new profile. So you get the certificate exceptions, but without any of the other clutter you would get if you used a whole profile.

The Ant task above, with this option, looks like this:

<target name="prism-selenium-tests" description="Run the old Prism Selenium tests">
  <echo message="Running old Selenium tests against Prism" />
  <java jar="test/dependencies/Selenium/selenium-server.jar" fork="true" maxmemory="1024m">
    <arg line="-debug -timeout 500 -firefoxProfileTemplate test/firefoxProfile \
       -htmlSuite '*chrome ${firefox.bin}' http://${prism.host} test/selenium/testSuite.html doc/seleniumResults.html" />

Outside of Ant, the command might look something like:

java -jar test/dependencies/Selenium/selenium-server.jar -firefoxProfileTemplate /path/to/profile \
-htmlSuite '*chrome firefox-bin' http://host.com testSuite.html seleniumResults.html

Works for me.


Skype on Ubuntu Intrepid Ibex 8.10

I upgraded my laptop just before Christmas, but unfortunately couldn't get Skype working easily.

First off, I tried the packages for Ubuntu provided by Skype, but I couldn't get them to work. Instead, I used the Medibuntu Skype package. To use these, you just add a couple of repositories to your apt sources: see this page for details.

These worked, kind of: Skype started, but the audio capture didn't work. I found this article, which suggests a fix, by turning off pulseaudio (the default, poorly-configured sound server for Intrepid).

But this didn't seem to completely solve my issues, as Skype kept hanging when you tried to close it down.

So, instead, I followed these longer but more comprehensive instructions, which leave pulseaudio turned on, but fix its configuration. They seem to have done the trick.

Christmas 2008

Great Christmas holiday. Shame it's over.

Enjoyed watching lots of films through Sky+. Jonathon Creek, Gavin and Stacey, and Wallace and Gromit were good. Got the broadband working (though Sky's DNS servers are knackered at the moment).

Joel started eating solid food: he's starting to get the hang of it. Chloe and Ian came for Christmas day and we spent most of the time playing on the Wii and eating.

Presents I got:

  1. Mario Karts Wii plus extra steering wheel
  2. Made to Stick book
  3. Everything is Miscellaneous book
  4. Hello Young Lovers by Sparks
  5. Missiles by The Dears
  6. The Thirteenth Floor DVD
  7. Hot Shots (I and II) DVD
  8. The Apple Source Book
  9. A garden fork
  10. A bag for holding string
  11. A puzzle book (I realised I love puzzles while on holiday)
  12. A planetarium
  13. Spy pens
  14. Shut the Box game

Back to work Monday. Also need to stop eating so much crap, as I think I've put a few pounds on over Christmas.

And yes, Happy New Year and all that.

Tesco and Amazon mp3 download services

Not sure how long these have been around, but Tesco and Amazon now both have mp3 download services.

Tesco's site is abysmal. So slow as to be unusable, particularly when you're doing a search; has a weird tilting album cover browser; and an over-reliance on Javascript for what should be simple links (note to web developers: if you're fetching a new page of results, use a frigging link, not Javascript). 77p per track is too much (compare with eMusic's 16p per track, albeit for stuff most people don't want to buy). All in all, a disaster.

Amazon's is far, far better. But the issue here is the price: it's still TOO EXPENSIVE (unless you're buying really common chart stuff, when it might be cheaper). For most things, it's 79p per track. It doesn't take a genius to work out that if I can buy The Early Years by Roxy Music for £6.98 on CD, or download it as mp3s FOR THE SAME PRICE, I'm going to buy the CD and wait two days for it to arrive. I'd rather have the physical object, thanks very much. How complicated is it to work this out? If the mp3s were around £3, I'd have bought them: immediacy + lower price - transience of medium > possession of the physical object - higher price - 2 days waiting.

Of course, the temptation is always there to skulk around bittorrent sites looking for it. Bear in mind I already own all the tracks on that CD, across all the early Roxy Music albums. I resent having to pay at all: I've already paid once. Don't get me started.

Time, like an ever flowing stream

Seems to be passing more and more quickly.

We got Sky+ last weekend. The best thing about it for me, at the moment, is that it's great being able to watch a different comedy film every night. I am still in the "bewildered by choice" phase of engagement, but gradually working out where stuff is.

I feel quite unprepared for Christmas. I've done most (all?) of my shopping, but I need an audit to decide whether I need to get more stuff.

Joel is getting to the point where he recognises me when I come home, and he's all smiles. Lovely. Makes up for him waking up at 5.30 some mornings: after which he ends up on the lying on bathroom floor while I'm having a shower, so Nicola can get some rest. He goes onto solid food next week, having breakfast with me and Madeleine.

Madeleine is getting on well with her reading (can read most short words), likes doing number squares and crosswords, still does drawing every morning when she gets up. She's growing up fast. For her birthday she got several games, so we've been playing Junior Monopoly a few times.

I haven't been doing much. I've played with Google App Engine a couple of evenings, but apart from that, haven't been coding outside work. Too tired. Went to see John Shuttleworth live at the weekend: well worth seeing.

Another year nearly over. Personal achievements have been thin on the ground (far fewer extra-curricular activities). I've read about the same number of books I do every year; still not managed my goal of one per week. 35 to be precise. Here's the list:

Syndicate content