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 β.0.2: bug fixes and improvements

B: debts panel didn't span on all the available space B: when creating new expenses sheet, datebox not always synchronized with period checkbox B: anonymous expenses sheet sometimes issued a "conflict error" with no good reasons (this bug decreased also the performance) I: now possible to select expenses after the first page of expenses I: warning is displayable about the price per person (valid only if equal distribution)