07 February 2005 1 comment Zope
EconoAccount is an open source tool I wrote to keep track of my expenditures. It started as a Excel spreadsheet where I wrote down how much I spent on what and then grew into something much better.
MOBi is a mobile web service my company developed for the owners of MOBi (read more here). MOBi is to mobile phones and SMS as domain names are to www. On MOBi, I have registered the keyword
peterbe (unsurprisingly) and set up the sub-word "ea *".
Now with a bit of tweaking I can write down all my expenses with my mobile phone when I don't have a computer with Internet available. Read on to find out how.
On one of my servers I have set up an EconoAccount instance and installed this Python Script which gets notified by MOBi about the incoming message. The script makes sure the sender is recognized and that the keyword and subword is right. Then it starts to process the spendcodes together with the amounts. An SMS into 83211 might look like this:
Peterbe ea groc 9.95, snacks 2, lun 3.75, t 15
This should figure out that "groc" means "Groceries" and "lun" means "Lunch". If there are any ambiguities an email is sent reminding me to sort it out manually. For example "t 15" can mean "Transportation £15" or "Tech and hardware £15".
If I ever forget which spendcodes I have set up I send a reverse billed (25p) message like this to 83211:
Everything is case insensitive and some whitespace can be ignored to make sure that composing these texts is quick.
On MOBi, the keyword
peterbe is the more expensive "Advanced" one which enables you to use wildcards in sub-words and it can push matches to a URL which is where I enter the URL of the EconoAccount instance. I decided to not have a returning message about on this sub-word to save some money.
Discussion: I'm sure there are more professional alternatives to make the same thing happen but this was simple, cheap and fun. Sending these SMSes cost money of course since there's no reverse billed text back it only costs me 10p in total.Follow @peterbe on Twitter