Personal finance programs have been popular in the DOS and Windows environments for years, and so it is not surprising that until about a year ago, many new Linux users wished for a good personal finance program for Linux--but there simply wasn't one available. One creative user decided to do something about it.
by Curt Olson
Have you ever wondered where all your money goes? Do you get a nice big check on payday, but when it comes time to pay the bills, your wallet is looking rather thin? It seems there is never any money left over to save for the future. There comes a time in every person's life when it becomes obvious that they need to take control of their finances.
When I began dating the woman who is now my wife, I noticed that my money began disappearing just a little bit faster than before. As our relationship grew, so did the rate my money disappeared... This trend continued until it climaxed in the two weeks surrounding our wedding, when all the bills came due. I have never seen money disappear so fast.
Little did I know that this was only the tip of the iceberg. It seems that as life goes on my money gets stretched thinner and thinner. Now I find myself in the midst of purchasing a house, making car payments, buying dog food, and wondering how I am ever going to support my computer habit.
Needless to say, my wife and I needed a way to keep track of where our money was coming from and going to--and we needed a way to plan for our future expenses.
There are many excellent personal finance programs available at little or no cost. Unfortunately, none of the ones I found could be conveniently run under Linux. So in August of 1994 I said to myself, ``How hard could it be? I will just whip up a quick little check book balancing program that runs under Unix.''
Well, as with most ``little'' projects, it turned out to be a bit more work than I expected. This little program turned into CBB. CBB is copyrighted under the GNU General Public License, so it is completely free. It is my humble contribution to the world of free software--a small payment for all the wonderful software others have so kindly made available for free.
CBB is a personal check book balancing utility for Unix and X11. It was primarily developed under Linux, but runs equally well under most flavors of Unix. CBB is written entirely in Perl and Tcl/Tk, so it is portable and extensible. It is a program for anyone who would like to track their income and expenses, balance their checkbook, and manage their money. Any other use (such as lining for a cat's litter box) is not supported or recommended.
CBB is an open, extensible program written entirely in scripts. It utilizes a simple ASCII data file format. In addition, CBB provides a simple interface for users to add their own reports and graphs without modifying any of the CBB source code. In the future, I plan to create a simple interface to other external modules so that other people may provide plug-ins to increase CBB's functionality.
CBB (if you haven't guessed already) stands for the Check Book Balancer. This name illustrates the extreme amount of creativeness that is inherent in us computer nerds. My wife, who is not a computer nerd, suggested ``In Cheque--Putting the balance in your budget.''
Before installing CBB, you should make sure you have Perl version 4.036 or later, and Tk version 4.0 or later installed on your system.
Installing CBB is very straightforward:
You will be prompted for 4 items:
CBB attempts to present you with reasonable defaults for all of these items.
When you have finished answering these four questions, CBB will be installed.
So, you want to go for a little test drive? Want to see how, or if, this thing works? Want to send me a 21 inch monitor or the DOS drivers for my ancient Sony PAS16-SCSI CD-ROM drive? Well, read on...
The following procedure will lead you through the process of creating a new account, importing some data, editing transactions, and balancing your account.
First, here is the ``one-paragraph'' version of the tutorial. To use CBB, first create the directory where you would like to keep your accounts. Then, change to this directory, run CBB, and create the accounts. You may import the default account categories at any time. Finally, load the desired account (if it is not already loaded) and create, delete, and edit transactions to your heart's content, while printing reports, viewing graphs, and so on. When your bank statement arrives in the mail, balance the account.
For a more detailed tutorial, read on...
After installing CBB, the first thing you need to do is create an account.
Figure 1. Making Account
Once you have created an account, it is time to enter a few transactions. You can import some sample data to save your fingers from the brutalities of typing. The CBB distribution comes with some sample data for this tutorial. Otherwise, feel free to skip this section and enter your own transactions.
Figure 2. Choosing the Demo Import File
Now that you have some data to play with (Figure 3), try editing a transaction. Then try creating new transactions. Try playing around with ``splits'' to specify more than one category for a transaction. Play around with CBB until you get the hang of it.
Now let's pretend you just received your bank statement in the mail and you want to reconcile your new CBB account. Let's also pretend that you didn't mess things up too badly while editing transactions...
Figure 4. Reconciled Account
When your next statement arrives and you run the balance routine again, you will only be presented with ``uncleared'' transactions to select. This is a good way to spot old checks that never were cashed, such as the mortgage payment that was ``lost in the mail''. Note: By balancing your checkbook in this manner, two good things happen. First, when your brother finally cashes that check for $100.00--many months after you wrote it--your bank balance doesn't suddenly drop $100.00 from where you think it should be. Once that transaction was entered, the amount was subtracted from your bank balance. Second, it is easy to spot these situations--you can call up your brother and pester him to cash the check.
Now that you have entered a bit of data, you may want to ``understand'' your data at a deeper level. CBB comes with several reports and graphs which can help you get a better idea of where and how your money is being spent. Feel free to generate and look at a few reports and graphs at this point.
Wow! You've been slaving away for the last 10 minutes perfecting your demo account. Great job! That is about all there is to it. CBB isn't rocket science. It just boils down to ``plus and minus''. Since this is not real data, you probably don't care to save it. However, if this had been an actual account, you most definitely would want to save your hard work.
If you want to save the changes you have made to an account, you must tell CBB to write the changes to a file. If you forget to save your work before you quit, CBB will remind you to do this. If you do something awful, like reboot your machine or log out without saving, you are not completely out of luck. CBB periodically saves a backup copy of your account with a file name such as #account.cbb#. Just rename this file to account.cbb and you will be back on track.
If you have made it this far, chances are you will be interested in some more information. I have a section devoted to CBB on my web page. Here you can find the complete CBB manual on-line, the readme file, the CBB FAQ, and several screen shots. You can even try running a live demo of CBB.
The URL for my home page is http://www.me.umn.edu/home/clolson/main.html.
It wouldn't be fair to end this article without mentioning two other free personal finance packages I am aware of. The first is Xfinans, another personal account manager. You can find out more about Xfinans at http://www.iesd.auc.dk/~lupus/xfinans.html. The second package is called Xinvest, a neat investment tracking application. Look for the source code at ftp://ftp.x.org/contrib/applications/.
Curt Olson works as a Unix systems administrator for the
University of Minnesota, Department of Mechanical Engineering.
He has been fascinated by computers from the time he first saw
one:
? Please enter your name: Curtis Olson
Hello Curtis. I am thinking of a number between 1 and 100...
``Ooohhh, I still get goose bumps thinking about how it remembered my
name. Now, if only I could remember its name...''