Site Index:

Journal
Wedding
Old Stuff
Pictures
Programming
Ramblings
Links

Brinance version 4

Yup, another major version of brinance! I want to add the feature of recurring events without putting in individual future transactions. To test some thinking I've been having on the subject, I wrote minder, a reminder program with the ability to do recurring reminders. That program was mostly exploring what might be a good recurring event file format, and I've settled on something that's like cron, but still a bit different and more expressive. I haven't even begun to implement this for brinance, but I'm mostly going to cannibalize code from minder, so it should work well.

While I was messing with the file format, I figured I could also appease one of my most vocal user's (my brother) requests: to have one transaction per line. The original format was easy to sum up because you just throw away all lines that start with a hash, so it'd be easy to write quickie scripts to calculate your brinance balance. I've figured that's not actually that valuable. Perhaps it's more valuable to make sure that the format is understandable at a glance. It's supposed to be easily hand-editable, right? So it's settled.

Now that we've got a little hindsight on the issue, we can correct for short-comings of the old file format. With versions 2.x and 3.x, we have two files for each account, one for past transactions, and one for future. With the new format, we can indicate the account on each transaction line, so there's no need to have separate files anymore. Also, future transactions are put in with the rest. To calculate a current balance, we just do a datedbalance() with $now as the requested date.

A line of the new format reads like this:

<12 digit date> <account number> <transaction amount> <transaction comment>

More good news? The API is not changing. Programs that work with the 3.x series module (module version 1.x) will work just fine with the 4.x series module. Also, the module version number is being bumped up to 4.x along with the CLI program, to avoid confusion (hopefully!). The datedbalance() and datedtrans() methods are being deprecated, but still work just fine for now. The balance() and trans() methods can now take a date argument. If there's no date argument, it assumes you mean now, which matches the behavior of module version 1.x.

A script is included to convert your account and future files from the old file format to the new one, so you don't need to lose all of your older transactions. If you're new to brinance, though, the necessary files will be created for you.

Downloads

brinance-4.03.tar.gz - Added transfers as one action on the command line. It still produces two transactions (to and from), but it only takes one set of arguments on the command line. I think it's handy!

brinance-4.02.tar.gz - ..and we skip 4.01 and move directly on to 4.02. There was a problem with recurring transactions that I had a lot of trouble with. For alternating recurring transactions (e.g., every other Friday), it would apply on the day, and at the same time the next day. I applied a quick fix that works reliably, but I'm still working on a long-term fix. This is the good-enough-for-now-just-release-it-already release. Cheers!

brinance-4.00.tar.gz - First full release of 4.x. Let's hope for few big bugs.. I've been using it for a while at home, and all is well. I finally got recurring transactions working, which was the last feature I wanted for 4.00. Enjoy!

There's no automated install, but there is an INSTALL file that explains what needs to be done.


Prerelease Downloads

brinance-3.97.tar.gz - Second test release. Docs need some updating.. Drastically restructured internal data storage and file access. Much better than before. It works for me. :)

brinance-3.95.tar.gz - First pre-release. Same functionality as 3.13, but with the new file format and a converter


« Back to main Brinance page