What’s up doc?

December 1st, 2009

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(-)

.gitignore                          |   14 -
CONTRIBUTORS                        |    1 -
data/.gitignore                     |    4 -
data/Makefile.am                    |   14 +-
data/add_bill.ui                    |  344 ———–
data/main.ui                        |  439 ————–
po/.gitignore                       |    6 -
po/POTFILES.in                      |    2 -
src/db/Makefile.am                  |    7 +-
src/db/alarmstable.py               |   23 +
src/db/billstable.py                |   24 +
src/db/categoriestable.py           |   20 +
src/db/entities.py                  |    2 +-
src/db/fieldstable.py               |   18 +
src/db/generictable.py              |   51 ++
src/db/versionstable.py             |   18 +
src/gui/aboutdialog.py              |   38 +-
src/gui/adddialog.py                |  243 ++++++–
src/gui/maindialog.py               |  373 ++++++++—-
src/gui/prefdialog.py               |    1 -
src/gui/widgets/Makefile.am         |    2 -
src/gui/widgets/charting.py         | 1135 +++++++++++++++++——————
src/gui/widgets/chartwidget.py      |  145 +++–
src/gui/widgets/graphics.py         |  281 ———
src/gui/widgets/pycha/COPYING       |  165 +++++
src/gui/widgets/pycha/README.txt    |  160 +++++
src/gui/widgets/pycha/__init__.py   |   18 +
src/gui/widgets/pycha/bar.py        |  243 ++++++++
src/gui/widgets/pycha/chart.py      |  718 ++++++++++++++++++++++
src/gui/widgets/pycha/color.py      |  210 +++++++
src/gui/widgets/pycha/line.py       |  123 ++++
src/gui/widgets/pycha/pie.py        |  211 +++++++
src/gui/widgets/pycha/scatter.py    |   54 ++
src/gui/widgets/pycha/stackedbar.py |  121 ++++
src/gui/widgets/pytweener.py        |  655 ——————–
src/lib/.gitignore                  |    1 -
src/lib/actions.py                  |   10 +-
src/lib/common.py                   |    5 +-
src/lib/dal.py                      |    5 +-
src/lib/dialogs.py                  |   42 +-

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.

BillReminder's main dialog

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. :)

Horizontal bars

Don’t just sit right there, go on and start playing with it right now! Check out the code from the git repository today!

 

Still Kicking

November 27th, 2009

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 entities

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

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! :)

 

A few updates

September 23rd, 2008
  • 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. BillReminder with a smaller calendar and chart 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. :)
 

BillReminder “Royale with cheese” released

September 11th, 2008

BillReminder

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:

  • 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)

Backend:

  • Changed BillReminder to use GConf for is configuration values. Thanks Wilson Pinto Junior
  • Changed BillReminder’s command line parsing to use OptionParser. (Bug #3)

Translations:

  • 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

Graphical Interface:

  • 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.

General:

  • Renamed MANTAINERS to MAINTAINERS
  • Added uninstall method and versioning via autotools (Bug #547768)

Source code downloads are currently available as well as an Ubuntu package. Please report any issues, comments or feature requests using the Bugzilla page.

 

Another move… this time for good!

August 23rd, 2008

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. :)

 

Registering a gconf schema via setup.py?

July 13th, 2008

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?

 

Almost 200% new translations for BillReminder

June 25th, 2008

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:

  1. 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?
  2. 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.

 

Help me translate BillReminder

June 24th, 2008

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.

BillReminder can now be translated via Rosetta

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.

 

BillReminder featured on ProgBox

May 13th, 2008

My pet project BillReminder was featured in the third episode of ProgBox, kicking off the brand new section “Pimp My Project“! It was also featured as an exemple on packaging software for Arch Linux (sorry, Brazilian Portuguese only) written by Hugo Dória.

BillReminder

So, watch the show, read the guide if you can, and use BillReminder! :)

 

BillReminder available for Ubuntu Hardy

May 6th, 2008

I finally have my pet project BillReminder packaged for Ubuntu Hardy and Debian, thanks to Diogo Autílio and Gabriel Falcão! The packages (*.deb) can be downloaded from the project’s downloads page, or for the lazy:

As always, constructive feedback, patchs, and sugestions can be provided via our support system.