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.
- Switched most of the user interface code to Glade files with the hope that it will ease future contributions from ui developers.
- Support for configuring notification alarms.
- Switched database layer from custom code to SQLAlchemy.
- Changed license from BSD to GPL v3.
- A set of default categories are now created by default on new installations.
- Better overall data validation when adding or editing bills.
- Changed menu to use standard “File” entry instead of previous ”Bill” menu entry.
- Borrowed GConf handler from the Conduit project and register gconf schema by default.
- Added charting support from the Hamster project for better visualization of your expenditure.
- A new calendar widget has been added to replace the calendar from the add/edit dialog. In order to display the calendar, it is necessary to expand the widget by clicking on the displayed date.
- Recurring bills are now handled by selecting a frequency (the current allowed values are: once, weekly, and monthly) and setting the end date. Multiple records will then be added using the start and end date to figure out their correct due date.
- A new timeline widget has been added to replace the calendar from the main window. You can now use it to change the way you view your bills by selecting an specific date with a single click as well as drag the timeline to view past and/or future bills. The following keyboard shortcuts are available:
- right arrow go to next day
- left arrow go to previous day
- Ctrl + right go to same day next month
- Ctrl + left go to same day previous month
- + (plus) zoom in
- - (minus) zoom out
- HOME go to today’s date
- PAGEUP scroll to next screen*
- PAGEDOWN scroll to previous screen
- #551953: It should be possible to add bills without an amount defined.
- #553890: Different install/data paths.
- #554228: Changed Record to Bill to be consistent with nomenclature.
- #555136: Import sqlite3 if using python 2.5, or pysqlite2 if using python 2.4.
- #556748: Don’t try to cast a dbus.String into an int type, if catId is ‘None’.
- #561550: Make ‘notes’ widget scroll when number of lines go beyond the widget’s height.
- #561751: UI Doesn’t refresh when deleting a record.
- #563736: Warn users of overlapping dates for recurring bills.
- #569023: Timeline widget will not support displaying multiple bills with different states on the same day.
- ca, courtesy of Jordi Estrada
- ca@valencia, courtesy of Francesc Dorca i Badia
- cs, courtesy of Marek Černocký
- da, courtesy of Joe Hansen
- de, courtesy of Mario Blättermann
- el, courtesy of Γιάννης Κατσαμπίρης
- en_GB, courtesy of Jen Ockwell
- es, courtesy of Jorge González
- fi, courtesy of Ilkka Tuohela
- fr, courtesy of Bruno Brouard
- gl, courtesy of Fran Diéguez
- he, courtesy of Yaron Shahrabani
- hr, courtesy of Mario Đanić
- hu, courtesy of Gabor Kelemen
- it, courtesy of Sergio Zanchetta
- lv, courtesy of Toms Bauģis
- nb, courtesy of Tommy Mikkelsen
- nl, courtesy of Martijn Cielen
- pl, courtesy of Tomasz Z. Napierala
- pt_BR, courtesy of Mateus Zenaide
- pt, courtesy of Susana Pereira
- ro, courtesy of Ionuț Jula
- ru, courtesy of Ilya B
- sl, courtesy of Andrej Žnidaršič
- sv, courtesy of Daniel Nylander
- tl, courtesy of Jerome S. Gotangco
- tr, courtesy of Rail Aliev
- zh_CN, courtesy of du baodao
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(-)
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!
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!
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 has attracted a new enthusiast who has brought a lot of interesting ideas to the mailing list. The coolest part is that we both share a lot of ideas in common and I have already started to write some code to pave the way to more reporting and some true home accounting features. 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!
- Thank you to all of you guys who voted for my Ubuntu Brainstorm idea! As of right now it has received 120 total votes!
If you haven’t voted yet, there’s still time.
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:
- Paid/Not Paid entries exist in File and Edit menus; Make them toggle/untoggle appropriately (Bug #13)
- Issues with date and time locale? (Bug #12)
- Ambiguity with Alerts and Alarms in preferences dialog (Bug #11)
- Make category names a unique field. (Bug #1)
- Newly added categories should be selected automatically (Bug #2)
- Make setting an alarm really optional. (Bug #4)
- Changed BillReminder to use GConf for is configuration values. Thanks Wilson Pinto Junior
- Changed BillReminder’s command line parsing to use OptionParser. (Bug #3)
- cs.po:Â Pavel Å efrÃ¡nek
- de.po:Â Lorenz
- en_CA.po:Â Stuart Read
- en_GB.po:Â Jen Ockwell
- es.po:Â RamÃ³n CalderÃ³n
- fi.po:Â Ilkka Tuohela
- fr.po:Â Robert-AndrÃ© Mauchin
- he.po:Â Yaron
- hr.po:Â Mario ÄaniÄ‡
- hu.po:Â HORVATH, Akos
- it.po:Â Sergio Zanchetta
- nb.po: Tommy Mikkelsen
- nl.po:Â Martijn Cielen
- pl.po:Â Tomasz Z. Napierala
- pt_BR.po:Â Djavan Fagundes and Vladimir Melo
- pt.po:Â Susana Pereira
- ro.po:Â IonuÈ› Jula
- ru.po:Â Ilya B
- sl.po:Â Martin
- sv.po:Â Daniel Nylander
- tl.po:Â Jerome S. Gotangco
- tr.po:Â Rail Aliev
- Mnemonic labels/widgets and HIG work done to dialogs. Thanks Wilson Pinto Junior
- Ask user for confirmation before editing an existing category.
- Added pycairo as a dependency instead of python-Image. Color-coded categories now have a border around the colored tile.
- Renamed MANTAINERS to MAINTAINERS
- Added uninstall method and versioning via autotools (Bug #547768)
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 I make a change to the message catalog (*.pot) of my project in its own repository (i.e. not bzr), will the message catalog stored in Rosetta be automatically updated with it once the code is synced?
- If the answer for the question above is ‘True’, will then all existing translations be merged against the newer message catalog?
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.