Still Kicking
It’s been a long time since I last blogged about what’s been happening with BillReminder… all I can say is that even though I had made plans to release a newer version this year, my personal life and professional career had to be prioritized and most of my side projects had to go back to the shelf. Looking at the git repository I noticed that the last release was 17 months ago!
The project was dormant, specially due to the lack of contributors, but the urge to improve the code and bring in newer features was a constant presence. So around the end of this Summer (August in the northern hemisphere) I started poking at the code and flirting with the idea of moving away from my “made from scratch” database layer to something more robust, and better yet, maintained by someone else!
So I went with SQLAlchemy and every now and then would dedicate my lunch break to reading up on the documentation and try to “port” my code. Through trial and error I started piecing something together, initially with the intuit of mimicking the behavior of the current code for the short term, but definitely wanting to leverage the flexibility that this library affords. I have to thank nosklo for his help as I kept getting tangled up trying to “translate” sql language to the relational model approach of SQLAlchemy!

Database entitites using SQLAlchemy
As if porting the database layer wasn’t enough, I also took on improving the charting panel that displays the total of expenses per categories during a certain time frame. I had been using an older and hacked copy of the graphing library from the hamster-applet project for a while but, as someone had pointed out, there were some issues with the alignment of the y-axis and the top of the bars being generated. I looked around and found pycha which worked quite well, but it wasn’t “IT” for me, you know? I needed a different approach, specially one that wouldn’t require the creation of an image file for the chart itself… so I went back to the hamster-applet project to see if they had made any changes, and was gladly surprised to find out that they had indeed. A couple of emails later between Patryk, Toms and I, and the charting widget was reborn!

BillReminder with charting support
Toms and I have been talking a lot these last 2 days and I was glad to see that some of the things we had talked about have already come to fruition! There much more to come too, which makes me tingly for all the good reasons.
Anyhow, I now need to create a clear roadmap for the project and go back to rounding up contributors so that the project doesn’t get stagnated once again, as well as to turn some of my ideas (i.e. support for different database backends, different reporting types, a django based frontend, etc) into newer features! Please feel free to contact me directly with your suggestions or questions, and remember: patches will always be welcome!
BillReminder is the first desktop application I have written for the GNU/Linux operating system. It pretty much started as a means to keep me involved with the open source and GNU/Linux communities, as well as scratch my own itch! ;) It has also proven to be a great way to meet other developers and expose me to other ways of tackling software engineering problems.
November 27th, 2009 at 10:01 am
[...] BillReminder and want to learn what’s going on with it, go check the project’s latest post! BillReminder with charting [...]
November 29th, 2009 at 12:05 am
[...] If you still remember my pet project BillReminder and want to learn what’s going on with it, go check the project’s latest post! [...]
November 30th, 2009 at 2:21 am
I’m really glad to hear this, I will stick around and assist in any way I can.
I would like to contribute by writing code, not only by commenting; but I get stuck at the “setting up the environment” part.
Can you provide a quick overview of the tools you use, so that I can simply replicate your environment, instead of “growing” my own?
November 30th, 2009 at 7:49 am
Hey Alex, how is it going? Let me see… if you’re running a standard Linux distribution you should probably only need to add SQLAchemy 0.5.6 as everything else should already be installed… Let me know if that helps and thanks in advance!
November 30th, 2009 at 9:06 am
Yes, I’m running Linux; but my question is a broad one. I am mostly interested in which Python IDE you are using.
On Windows I use PyScripter, which is an excellent tool. I can also get my stuff done by writing it in a text editor and examining the output of the interpreter; but this goes much slower. For example, I need to add debug print statements if I want to see the state of a variable, instead of just examining it with a debugger.
November 30th, 2009 at 9:32 am
I’m afraid I can’t point out an IDE for you to use as I use vim myself.
But the UI can now be tweaked using glade, thanks to some work done over this weekend by Toms (see the *.ui files in the data directory).
For debugging I use a tool called epdb which allows me to add breakpoints and step through code from the console itself… but I’ve heard that Eclipse has some good support for both python and gdb…