Helping a customer with invoicing

I have been working on a way to do invoicing for a small business for a while and looking at XML for that purpose besides XML for scalable vector graphics (SVG). has an article on "kraft" and a link to that is here. I looked at the program and got it from the repository. It immediately ran into problems because it has been too long since I did SQL (This link from origins at Wikipedia) and this MySQL at Wikipedia. This is another one of those places where I hate to admit I am not the uberguru of all things SQL. I bought the book "MYSQL in a nutshell" A desktop quick reference by O'REILLY author: Russel J.T. Dyer for 40 clams. Like other things, I read the book and said, I will never understand all of this, but it looks good on my bookshelf, when people come over they will think I am quite smart to be reading such things. I did work with some of the first SQL a long time ago and it has changed over the years.

So the first issue is I don't know whether I installed MySQL on this machine and if I did, what was the password and how did I set it up? I know I did my own wiki with SQL and PHP on Apache a few months ago, but that was not on this machine. I managed to do that and then never maintained it when I switched versions of Linux. So the first thing this program does is ask for my password to MySQL. Oops! So I do this, Google is my friend. A link to fixing MySQL when you have lost your password. So I fixed that and sql is working.

The next issue is something that is used with "kraft" and that is ctemplate at Google Code. I have no clue what that is and will ignore for the time being what it really means. It is C++ and I understand the code, but I don't see how it integrates in the tool package.

I see "kraft" is version 0.2 which means it is not a completed thing yet, but I can deal with flux. I see it uses Qt which I just recently became competent to design with. So I started the program and it complains a lot about schema not being version 4 instead of version 1. In this context, I don't know what that means. I search and come up with this at W3C about xmlschema which I don't know if it relates.

So now I can do offers, accepts, and invoices in the program and it does link to my Thunderbird email to send the invoices and such. That is another requirement that the customer needs. Also it needs to be printed in PDF. That works. Now the only real problem is the schema, which I have no clue at the moment. I suppose I will svn the source of "kraft" just to have a looksee and browse through their program to get some useful insight into how they integrated it for .deb and how they did all the documentation. I assume I can punch a little hole in the code and print out what it really thinks is the problem and then I should be better able to use this for my customer.

So generally it works and "ctemplate" doesn't seem to be a required part (AFAIK). I think it is simple enough and intuitive enough that a small business could pick this up quickly and with the minimum of screaming and calling me to do magic, if I find out WTF schema means in this context.

I think that developers get tired of going into noob detail on everything they do and they forget what it is like when you use somebody else's stuff the first time. The context may seem familiar to them, but schema has several meanings in different contexts and so I will search some more. Generally I think this will work for my client, unless some odd SQL snag shows up, but I will mod the source if that is the case.

I suppose this is the time to setup a backup method for Mysql also as I would hate to have the customer call me in a few months and say that her machine died and where does she recover her client list? DOH!!

So now I run the program from console so I can see errors and I get some Qt fails also, but that does happen without causing any program data problems. So off to the source, reread MYSQL book, look into cronning a SQL database backup for the customer, bang head on wall, get smarter, get it right, then look for a new Linux game to play as a reward for all that headache.

Where is little Bobby DROP TABLE MyMistakes; (xkcd comic) when you need him. I will report any problems and how they get resolved. Primarily it is the issue of SQL backup and schema, which may be solved by user access to the "kraft" data base.


Paul Mohr said... is an interesting thing that is included in the help tab. In general this may be a way to easily see what source dependencies are needed.

Paul Mohr said... and this is the link for the sourceforge page.

Paul Mohr said...

The version on sourceforge is 0.30 and has many bug fixes and Ubuntu is only up to 0.20 so I will start by getting the most current version.

Automated Intelligence

Automated Intelligence
Auftrag der unendlichen LOL katzen