There were a few minor bugs in Bookcase 0.7.1 that kind folks have pointed out to me. I think I got them all fixed for now, so I pushed out 0.7.2. The fixes include ISBN formatting for non-english publishers, auto-capitalization, remembering visible columns, and updated status lines. The German translation was updated, and a Swedish translation was added.
I’d seen some rumors on other space news website, but it was just confirmed that the Nozomi spacecraft may come uncomfortable close to Mars, close enough to have a non-trivial statistical chance of crashing. Here’s hoping the Japanese engineers can pull something out of this to get some science – Nozomi has had a long trip.
There were two reasons I initially starting playing with my book collection manager: having a usable piece of software, and teaching myself C++. On that second front, I’ve started playing more with namespaces, moving some classes to a Bookcase namespace. I’m a little worried about earlier versions of gcc, like 2.95 and 2.96, but if they can compile KDE, I guess they can handle namespaces ok. One side effect is that the class view in KDevelop becomes a lot less useful. I guess I’ll end up moving to KDevelop3 before I thought I would.
Right now, I have a usable pilot-db exporter, though if I export too many books, jpilot-db won’t recognize the pdb file. Since I don’t have a PDA myself, this will just be experimental functionality when I end up releasing Bookcase 0.8.
I’ve also written a few emails to the developer’s email list forOpenOffice.org’s bibliographic tool. Using Bookcase to interoperate with OpenOffice is an intriguing idea, and one I’ll certainly keep rattling around in the back of my head.
With my fingers crossed, I’m putting out Bookcase 0.7.1. The encoding issue was that opened files were being read as being in the user’s locale, rather than UTF-8. Note to self: QDomDocument::setContent(QString, ...) is not the ticket, QDomDocument::setContents(QIODevice*, ...) works much better. And if you overwrote a document file with the double encoding, you can fix it by using the iconv command:
iconv -f utf-8 oldfile > newfile
for each time the document was saved.
Along with the encoding fix, there were a couple other bugs to fix. Bookcase now compiles with GCC 2.96. The fields editor now truly sets the field title, and bibtex and CSV export will always be in the user’s locale, rather than UTF-8.
As always, who knows what stupid error snuck in. Backing up your data before using a new version is probably a good idea. And remember, no guarantees! 🙂
Yep, Bookcase 0.7 has a big problem with translations for some reasons, again. It’s rather frustrating, I thought I had the encoding problems straightened out. So anyways, if you have collections or translations in codings other than latin1, you probably want to stay away from version 0.7 until I figure out what’s going on. I think I’m going to just take it down until I do.
OK, Bookcase 0.7 is ready. I think everything is mostly polished, but inevitably I find something dumb in the packaging 10 seconds after I put up the tarball.
First, the XML format changed significantly so any XSL stylesheets or XML importers will have to be changed. And that means that versions of Bookcase earlier than 0.7 won’t be able to open 0.7 data files.
Bookcase 0.7 adds default collections for bibliographies, video collections, and music collections. It’s not meant to be a music manager, more of an inventory program for your discs or videos. The bibliography is closely coupled with the bibtex format right now. It’s the only collection that can be exported to bibtex, so existing book collections will have to be convert to a bibliography via the menu item if you want to export to bibtex or bibtexml.
Two new field types were added: single and double-column tables. They’re good for music tracks or video cast lists.
The printing was significantly reworked. There are no longer separate config options for the printed fields. Only the fields in the list view are printed, and all entries are sorted as they are in the view. Furthermore, if there’s currently a filter showing a subset of the collection, only those entries will be printed. So if you modified the default bookcase-printing.xsl stylesheet, you’ll have to move it.
The import and export routines were reworked. Export formats now include CSV and HTML, along with any generic XSL transform. Bookcase can now import both bibtex and CSV now. The bibtex import is via an internal copy of the btparse library from Greg Ward.
Minor improvements include numerical sorting, a Tip of the Day dialog, and config dialogs for the toolbars and shortcut keys. Fields can also be re-ordered so their layout in the editor may be modified. Finally, if more than one field is formatted as a name, a pseudo-group is created for all those fields together, meaning fields such as Author and Editor can be grouped together.
Do let me know of any problems or bugs that you find.
I was bored tonight so I went to see Runaway Jury, an adaptation of the book by John Grisham. Since I’ve read the book, I was surprised to see that Grisham allowed the writer and the studio to completely change the primary focus of the trial from the ‘tobacco’ industry to the ‘gun’ industry. In the book, as I recall, the lawsuit was over tobacco addiction and resulting liability.
It would be easy to assume that Hollywood would rather start pointing fingers at those evil firearms manufactorers, rather than tobacoo companies, particular as severel characters in the movie are taking plenty of drags on their Marlboros. Heck, maybe the tobacoo giants even paid off the studio to change the script! Well, that’s just a conspiracy theory.
Still, dang it, I spent most of the movie, fuming slightly inside that the change was made. The movie couldn’t help but emphasize the unfairness and unAmerican attitude of Gene Hackman’s character, who is sleazy enough to profile jurors and then actually try to buy a verdict, all for the defendants, the ‘gun’ industry…
I got the translation mistake fixed. Now the tarball is up to 1.2+ MB, wow! Adding the btparse library to the source tree is a big part of the increase over the 0.6.x releases, but I’ve refactored a bunch of stuff. There’s still a bunch of weird spaghetti code, but it does seem to work the right way at the moment.
I’ll probably wait a couple days for any translators to get a whack at the thing, and for me to polish a bit more, then put out the real release 0.7.
Update: I should have checked more closely. The tarball included a stale libbtparse.a file of about 200k. I fixed and reuploaded the package. My apologies to anyone who happened to be downloading it at the time.
I broke translations in the pre-release version of Bookcase when I tried to get the tips file translated. I’ll get that fixed stat! Something wrong in the top-level Makefile.am file. It overwrote the pot file instead of appending to it.