RedHat 9 and Tellico crashing

I’ve had a couple users email me about being unable to start Tellico on RedHat 9, which uses KDE 3.1.
Looks like it’s a problem with KAcceleratorManager, and I can’t reproduce it on my local install of KDE 3.1. The quick way to fix the issue is to remove lines 211-215 in src/entryeditdialog.cpp, which start with
#if KDE_IS_VERSION(3,2,90)
and remove the lines up to and including the next
#endif

The only loss is not having keyboard shortcuts to the different tabs in the Entry Editor.

Looking forward for Tellico

I hope to release the next version of Tellico as version 1.0. The added capabilities in the next major version will include:

Collection Reports
Collection reports are simply HTML templates, but I added a dialog for viewing them and switching between different reports. That’s working right now, and I’m just struggling a bit to implement saving, as well as printing.
Borrowing
I have a lending dialog, and support for tracking those loans. The standard KDE addressbook is used to populate the list of potential borrowers, and an option is available to add the due date to the standard calendar in KOrganizer. I have all that working, and I’m just tweaking the UI a bit.
Reading UNIMARC
Several users have asked that Tellico support reading UNIMARC records in the z39.50 importer. The USEMARCON library is the obvious choice for doing the conversion, and I’m evaluating whether to include an internal copy or add an optional dependency on its installation. Plus, I need to read the license and make sure that’s allowed. I believe it’s released under a slightly modified GPL, but that’s just a quick reading.
Saved Filters
I’ve also got saved filters working, which is essential the same as implemented in KMail, JuK, etc. The filter criteria are saved, and the group dynamically updates as entries are added or modified. The UI still needs some work though.
DCOP Interface
Another thing that gets requested often is some sort of DCOP interface for Tellico. I’ve added DCOP calls for importing all the different file formats, such as bibtex and MODS. I’ll try to get around to adding export functions, too.
Optimization and Valgrind
I’ve started profiling some of the code with valgrind. I’m still figuring out exactly how to do that, but I’ve made some optimizations in the loading process and memory management. Tellico will still be a memory hog since I made the decision when I started to load the entire collection into memory (short-sighted, yes), but maybe it won’t suck so much.
Documentation
As always, documentation comes last. I hope to finish up some more sections of the help files. I also want to write a quick example for how to add a new XSL template to the entry viewer, just to make it a bit clearer.

That will complete my desired feature set for version 1.0. oF course, I’ll have several pre-releases, I imagine. For later version, perhaps I’ll get around to learning SQL and move to SQLite or something similar and make Tellico use a real relational database. For now, it’s getting close to what I started out to create: a simple-to-use, personal library and collection manager application.

Tellico 0.13.5 Released

Tellico is reviewed in the April issue of Linux Journal. Because of that exposure, and also due to imminent releases from Mandrake, Debian (maybe?), and some other distributions, I decided to go ahead and put out Tellico 0.13.5 with the fix for the bad crashing bug when searching Amazon.com.

Additionally, a character encoding issue with Japanese searches in Amazon was fixed (I think, tough to test), and the German translation was updated, thanks to Gerrit Albrecht.

Killing me softly with character arrays

Once again, by attempting a fix, I have made things worse. In trying to get Tellico to properly read non-latin1 characters when searching Amazon.com, I introduced a likely segfault in version 0.13.4, since strlen() gets called on a non-nul-terminated character array.

--- src/fetch/amazonfetcher.cpp (revision 1125)
+++ src/fetch/amazonfetcher.cpp (working copy)
@@ -370,7 +370,7 @@
   }

   // assume amazon is always utf-8
-  QString str = s_xsltHandler->applyStylesheet(QString::fromUtf8(m_data));
+  QString str = s_xsltHandler->applyStylesheet(QString::fromUtf8(m_data, m_data.size()));
   Import::TellicoImporter imp(str);
   Data::Collection* coll = imp.collection();
   for(Data::EntryListIterator it(coll->entryList()); it.current(); ++it) {

I also have a fix for searching with Japanese characters, that I think may work, but of course, I don’t run my computer in a Japanese locale. I guess I’ll put out a version 0.13.5 sometime soon, since I hate the idea of a user trying to search Amazon and having Tellico crash. Thanks to Aglef Kaiser for the bug report and fix.

Godly State Constitutions…

WorldNetDaily has an interesting article showing how all 50 states include a reference to God in their consitutions

California 1879, Preamble. We, the People of the State of California, grateful to Almighty God for our freedom …

Tennessee 1796, Art. XI.III. That all men have a natural and indefeasible right to worship Almighty God according to the dictates of their conscience …

That does do something for the argument that the Founding Fathers had no intention of a God-less state…