Fork Away!
January 3rd, 2011In order to make it easier for people to contribute to BillReminder, I now have a clone in Github! Please fork away!
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. git clone git://git.gnome.org/billreminderPatches, suggestions and comments are most welcome! Found a bug? Please consider filing a bug report here!
git clone git://git.gnome.org/billreminderThen look at the po directory and either start a new translation (if it doesn't exist yet) or update an existing translation. When you're done, make sure to commit your changes and then generate a patch running git format-patch HEAD^ and attach it to a bug report.
In order to make it easier for people to contribute to BillReminder, I now have a clone in Github! Please fork away!
Just in time before the new year, it is with great pleasure that I announce the release of BillReminder “Keep Their Heads Ringing“ 0.4.0 after a 27-month hiatus! During this period I tried many different approaches and techniques to both improve the user interface as well as the overall experience. Many of the “core” changes were performed only to satisfy my own curiosity and experimentation with other technologies out there, but overall you should have a good time playing with it.
A special “THANK YOU” goes out to Toms Bauģis for keeping me excited about programming by making the Hamster project an awesome tool, never shying away from lending me a hand every now and then and for letting me bounce ideas whenever I feel like trying some new approach to a problem!
Wow, what a difference a long weekend makes for a project when you happen to find someone just as excited about it as you! I’m talking about the phenomenal work that Toms has done over this Thanksgiving break!
40 files changed, 3347 insertions(+), 2599 deletions(-)
40 files changed, 3347 insertions(+), 2599 deletions(-)
Not only has he provided some great patches but he’s also taken the lead on converting the ui code to use Glade files instead of the hand-written code I’ve maintained for a while. The logic is that it will be easier for someone to contribute to the project if they can use some IDE to modify and/or add new features to the user interface, and I have to agree with him.

Along the way he’s given the main dialog some serious love, specially the chart that displays your total expenses per category during a time range. All I have to do now is make sure everything compiles, test the notification system, and get ready for a release. Also, I need to write down a roadmap with clear and specific milestones so that those of you out there salivating to contribute with the project can lend us a helping hand.

Don’t just sit right there, go on and start playing with it right now! Check out the code from the git repository today!
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!
After spending some time changing the charting module from the hamster-applet project to do what I needed, I came to learn about a pretty cool project for graphing with Cairo and Python called CairoPlot!It is with extreme pleasure that I annound the release of BillReminder “Royale with cheese” version 0.3.2! This released was concentrated on fixing bugs, adding more translations, and getting some work done for future reporting features.
Straight from the NEWS file, here’s what you’ll find in this release:
Bugs:
Backend:
Translations:
Graphical Interface:
General:
Source code downloads are currently available as well as an Ubuntu package. Please report any issues, comments or feature requests using the Bugzilla page.
So it is official: BillReminder is now hosted on GNOME! That means that the source code is now on their svn repo here and all issues can now be filed via the appropriate Bugzilla page. There’s also a new web site theme to go along with the changes, courtesy of my good friend Elyézer Mendes Rezende.
I’m hoping to make a minor release fairly soon and invite everyone to checkout the code and take it for a spin.
I spent a good chunk of my evening trying to implement the automatic registration of a gconf schema file via a setup.py and… got nowhere. Seems that most people who wanted to do the same ended up running gconftool-2 directly as such:
GCONF_CONFIG_SOURCE=`gconftool-2 –get-default-source` gconftool-2 –makefile-install-rule /etc/gconf/schemas/*.schemas
Has anyone got any advice (patches would be awesome) to go with my code?
Amazing! There’s no other better way to describe the turn around for the translation progress of BillReminder after yesterday’s post/pledge! In less than 24 hours there were 8 new translations available bringing the total of available translations now to 17! Awesome! I want to thank every single person who took the time to lend me a hand!
During the course of merging the new stuff into the repository, I was a bit confused as far as the work flow for people who have their projects hosted on Launchpad but not necessarily host the source code in their bzr servers. I immediately fired an email to the Launchpad mailing list but decided to also post it here for anyone who may be interested in the subject.
My questions were:
If you know anything about this, please feel free to reply.
I need your help to get BillReminder translated into as many different languages as possible! Up until now I have relied on a list of collaborators who know how to work with a message catalog template (i.e. pot file) and use it to generate a translated message file (i.e. po file). I’m aware that a lot of people probably don’t know what I’m talking about and/or may feel uneasy about working with text files and what not… so I decided to set BillReminder up for translation via Rosetta, which can be reached here.
Once you have registered to use Rosetta, and you are part of one of the many translation teams, it should be extremely easy for you to help out with the translation effort. I’m looking forward to seeing new languages added to the project just in time for an upcoming release.