Breaking the DTD for Bookcase 0.7

I’m going to change the file format and break the DTD for Bookcase 0.7. Since I’m expanding Bookcase to cover DVD or CD collections, I don’t want to write them into <book> elements in the XML data file. Rather than using a different element name for each collection type, every book, DVD, CD, or whatever will be in an <entry> element. Then, the collection type will be an attribute in the <collection> element containing all the <entry>s.

And since I’m making that tweak, I’m going to go the full hog and change <attribute> to <field>. I don’t remember why I called them attributes in the first place, and I was even confusing myself in the code, since I had <attribute> elements which had attributes themselves, in the XML sense.

Finally, based on a suggestion from Joseph Reagle, and explained in his paper Eskimo Snow and Scottish Rain*: Legal Considerations of Schema Design, I’m changing the Boolean fields so that they don’t have a default implicit semantic for an absent element. That means that rather than having <read/>, I’ll have <read>true</read>.

I also thought about using <value name="author"> rather than <author> which would allow me to write a definitive DTD, which would apply even if the user added a custom field, but I decided not to. Following the DTD is not that big of a deal, it would unneccesarily increase the file size, and just plain looks ugly to me.

These changes mean that anyone with custom XSL stylesheets or exporters, like Joseph’s jpilot converter, will break on files saved by Bookcase 0.7 and newer. I don’t think that’s a big deal – Joseph is a very clever fellow and these are relatively minor changes – and besides, It’s only version 0.7, not even 1.0 yet! Bookcase is hobby software, after all… 🙂

People from every planet on earth

Disregarding all political overtones, this quote attributed to California Governor Gray Davis is just hilarious to read:

“My vision is to make the most diverse state on earth, and we have people from every planet on the earth in this state. We have the sons and daughters of every, of people from every planet, of every country on earth,” he said.

Next thing you know, we’ll have Martians landing in Sacramento, asking for a driver’s license.

Bookcase in Mandrake contrib

Buchan Milne emailed me today, letting me know he had put Bookcase into Mandrake‘s contrib software repository. He also passed on some changes for the RPM spec, which I’ll incorporate into my own spec file.

I’m not sure if Bookcase made it before the fork for the upcoming 9.2 or not, but it sure is neat to have it there. Anyone who uses Mandrake cooker and has urpmi configured with a contrib source can just type urpmi bookcase now to install it, rather than using my self-built RPMs.

Wow, a Gentoo ebuild, Debian unstable, and Mandrake contrib, all in one week!

Default Bookcase fields for a video

I’m trying to settle on the default fields for the video collection. I figure it will be mostly used for DVDs and maybe videocassettes, but I don’t want to limit it too much. Right now, my default fields are:

  • Title
  • Medium – DVD, VHS, VCD, or DivX
  • Year – production or release year
  • Format – PAL, NTSC, or SECAM
  • Genre
  • Region – DVD Region Encoding
  • Nationality – country of release
  • Rating – G, PG, PG-13, or R
  • Cast – a 2-column table for the actors and their roles
  • Director
  • Producer
  • Writer
  • Composer
  • Studio
  • Language Tracks – audio language tracks
  • Subtitles – subtitle languages
  • Audio Tracks – I need a better title for this – it’s for DTS, Dolby, etc.
  • Runnning Time – A numerical entry, running time in minutes
  • Color – color or b&w
  • Other Features – things like music videos, deleted scenes, etc.
  • Widescreen – a checkbox
  • Director’s Cut – a checkbox
  • Plot Summary – a textbox
  • Personal Rating
  • Purchase Date
  • Purchase Price
  • Gift – a checkbox
  • Loaned – a checkbox
  • Comments

Of course, the user is free to add, modify or delete fields however they want. The default fields will be the ones that get translated, though, so I want to have a good set. I’ve looked at several other DVD Collection applications and these seem to be the common set of fields.

Heather Dale and The Trial of Lancelot

I’ve been listening to a Celtic Radio station, Highlander Radio, at work lately. Their playlist includes several songs by Heather Dale. I liked her song, The Trial of Lancelot, so much that I bought the CD of The Trial of Lancelot from Amphisbaena Music. They had prompt shipping and I received the CD yesterday. It’s been playing non-stop since! I also really like Miles To Go. I’ll probably end up buying some of her other CDs, too.

The power of Internet radio.