Skip to main content


One saturday, my 6 roommates and I decided to settle accounts. It took more than 2 hours to enter all the expenses in a spreadsheet and do the maths to know "who owes whom". During these 2 hours, we argued once again about the way we should settle accounts : a spreadsheet shared on our local network versus a simple sheet of paper with a calculator. I was for the spreadsheet : no calculations mistakes and you can add a forgotten expense without doing all the maths again. Those in favor of the paper thought the spreadsheet was too complicated.

This afternoon decided me to create a small project that would just answer the question "who owes whom" without installing any software, nor managing a shared spreadsheet, nor having to figure out the best debts repartition. At that time, there were not so many web services for that purpose, few in french and none satisfying our needs.

I used my recent skills with GWT, learnt Python and developped that :

Welcome screen

The simple spreadsheet where I enter my expenses

Finally the results

It took time : almost one month for that simple application, working evenings and week-ends. I learnt a new programming language and solved the mathematical problem of debts repartition, but what took most of my time was the user interface. It looks very simple but it's all "ajax" and the spreadsheet is real! (I mean you can use it with your keyboard almost like a desktop-app spreadsheet.)

Maybe by the time you're reading this post, this litte app is still running here.

Geek section

  • Client: GWT 1.5, 2400 lines of Java
  • Server: Apache + modpython on Ubuntu 8.04, 275 lines of Python
  • Database: sqlite

Popular posts from this blog

Release α.3.1: new look (again)

The first feedback I got about the α.3.0 new look was that it was not easy to find the lists of expenses and not very readable because of the font. So I reverted the UI's skin and put all the lists of expenses, spreadsheets and debts together! I'm not sure if it's judicious. The interface seems too loaded. However everything is at one click, and it'd be easy to move expenses from one list to another, simply by drag-n-drop.