One of the joys of open-source development is getting feedback and patches from users. One of such users sent me a very nice email about his having found Bookcase to be a useful app. This makes me happy. Said user is also Italian, and he sent a long an Italian translation. Now, http://i18n.kde.org has lots of information for translators, and lots of information for developers building translation files, but not much about how I integrate the po file into my app. Autoconf seems to pick it up automatically, but I’ve not figured out how to test it. I’ve tried:
% KDE_LANG=it bookcase
% LANG=it bookcase
% LC_MESSAGES=it bookcase
% LC_ALL=it bookcase
and nothing seems to work…hmmm…
Orbital dynamics are very cool. I wanted to specialize in astrodynamics in school, but with all the computational tools being developed, my advisor recommended that I stick to something more broad. But in any case, next year, Mars will be closer to the Earth than it has been in 73,000 years. Not coincidentally, we also launch our Mars Exploration Rovers next year, although we launch before periapsis.
After voting tonight, I fixed a few bugs in my templates. I had a wrong filename for my RDF file, as well as a typo for one of my Snowy River images.
Furthermore, based on an idea I got from a Spamcop mailing list, I redirect all requests for favicon.ico to a non-existant file at microsoft.com.
I worked a little on my Snowy River Pages and added some more scans of the Snowy River Arena Spectacular. I also fixed some validation issues.
Movable Type is up to 2.51 now. And I did install the quick fix to MT.pm to improve the rebuilding. Gee, this is fun…
My current area of play with Bookcase is changing the way the books are grouped. I’d like to show them grouped by author, and them change to genre, for example. I decided to cache a list of pointers to the book objects for each group. This became a bit tricky. My collection object holds a QDict, where the keys are the name of the attributes which may be used to group the books. The entry, though, is another QDict, where the keys are the values of the groups.
Now, I want to keep a list of pointers to the books which fall under this category, so I use a QPtrList of Books. So the variable becomes QDict<QDict<QPtrList<Book>>>. Typedefs made this look a bit clearer, but wow…
On top of that, since when a Book is modified or added, the QDict must be updated, I needed a way for the Book to know which lists it was in. The only implementation I could think of was the brute-force way of adding a QPtrList<QPtrList<Book>> to each Book. Then I go through and delete the Book from each QPtrList and so on…it feels monstrously inefficient, but it seems to work.
A columbian soccer player was struck by lightning and killed at practice yesterday. That’s nigh unbelievable…
Seen mentioned on Daring Fireball, Pete Green’s new switch spoof is hilarious.
Also taken from Daring Fireball, I think I fixed my RSS 0.91 feed to have a correction
An article being published by Biblical Archaeological Review provides evidence of an ossuary, dating from the 1st centuary A.D, which contains an inscription mentioning “James, the son of Joseph, brother of Jesus”. Lots of news stories are on the ‘net, including Christianity Today and one at the Washington Post
Bookcase is my little app for tracking my book collection. It’s a pretty simple program, but it keeps track of title, author, and 24 other properties for each book. I used an XML data file format, and printing uses an XSLT file for formatting, so I’m rather proud of all that. KDE makes all that pretty easy.
It has automatic ISBN validation, which I’m rather proud of as well. Multiple authors are supported, and automatic formatting of the author’s name is done.
What I still need to add is searching within the collection, and automatic lookup of book properties via the Internet though Amazon or isbn.nu.