bstpierre.org

Projects

cbb - checkbook balancer

cbb is yet another checkbook program. I used to use (eons ago) a program called xfinans. It was (still is) a pretty nifty program, but I had some problems with it: the interface is a little clunky for modern standards, I'm not much of an X11 programmer, and (from what I can tell) several of the variable names are Danish. So I don't speak X11/athena and I don't speak Danish. Frankly, I have no intention of learning either in the near future (no offense to the Danes). This means I can't modify xfinans to do what I want to do with it, and it doesn't seem to be maintained anymore. Pity, because xfinans is about the only program I know of that you just download, untar, type 'make' and run!!

I also tried Gnucash for a couple of months (thinking "This isn't really that bad"; yeah, right). What a complex monster! Sure double-entry accounting is useful, but I don't want double entry accounting, expense accounts and all that stuff to balance my checkbook! Not to mention the fact that you can't even install the latest versions (1.6.x) because of the installation library-dependency headaches that come along with it. I'd probably still be using gnucash if I could have figured out how to get the goofy stock-tracking features to work. Who ever heard of double-entry stock tracking? Finally, I had to wonder: Is a web browser really necessary in an accounting package?

So I decided to go super-low-tech. I started keeping a simple list of my checking transactions in a flat text file. Then I wrote a quick and dirty python script to run through the list and tell me a) what my "checkbook balance" was and b) what my "cleared balance" was. This actually worked ok for the first month. It would still be working today if I didn't get that hacker itch. So I added some arguments to the script so that I could add frequent transactions to the end of my flat text file. You know those all-too-frequent trips to the ATM, right? Then I generalized those so that I could add checks, deposits, everything from the command line -- I didn't have to edit the data file any more except when I was reconciling the account and marking transactions as cleared!

And that worked ok for a couple of months. At which point I thought it might be cool to put a nicer interface on it. So now I'm at the point where I have an almost usable checkbook program. I still have to edit the text file to mark transactions as cleared, but this thing works for me and it is so easy to add stuff to that I thought I might share it with the world. So here you go.

Cbb requires python (tested with 1.5.2) and wxPython (tested with 2.3.1). I've only tested on linux, please let me know if you use it successfully on other systems. Also, please let me know if you have any useful cbb hacks to share...

Be warned if you're going to hack on cbb: make backups, and/or don't test your hacks on live data. I toasted two weeks of data. Twice. Of course, it was stupid user error. But it is easy to do. Or I'm just dumber than most.

(P.S. I promise to not embed a web browser in cbb.)