Moneyio - The best salary calculator ever!

Moneyio.co.uk Screenshot

On Monday (27 July 08) Moneyio (Money In & Out) was released. Moneyio is the latest incarnation of my previous project Salary Calculator.

Moneyio will be organically developed to include new relevant features with a strict focus on surfacing information on your money. The overall objective is to offer a best in class web based personal finance tool, suitable for everyone.

Ok so you get what it is, how it works but what value does it give to you? The intention is that it can save you money. If that is through exposing where you could tighten up your expenses or offering you unobtrusive suggestions as to how you could make savings, then you can be satisfied.

Design is (and will be) a critical factor in development of this application as there are a whole wealth of existing tools on the web to do with personal finance, however they always fail to offer any pleasing aesthetics.

Advertising

This tool has taken a long time to develop, and thus i have, for the first time, gone down the commercial route of adding advertising to try and benefit from this effort. This is a conscious decision that i feel should actually benefit users on the whole, owing to the smart, context aware, targeted adverts that appear. Should users find the adverts intrusive, i will not hesitate to remove or rethink the overall commercial strategy.

High performance

The inner workings behind the interface are pretty intricate. Take this and add that it is a completely dynamic application, it is hard to find components available to cache effectively. Inroads will be made with future development to ensure the experience of using the application is not hampered by having to wait for actions to be completed.

Elements that will be performance enhanced will be caching data calculations, but more significantly, the HTML and associated assets delivered to your browser.

Under the hood

I am proud to say Moneyio has been ported to use CodeIgniter. Originally the code-base took the form of a self rolled PHP MVC application, well organised, lean and efficient code but lacking some features and maybe not as rigid as an open source framework.

A framework was a crucial requirement in ensuring that the application development could easily continue if say another developer had to maintain/own/extend the code-base.

CodeIgniter was chosen over other popular frameworks such as the ZendFramework, CakePHP or the now prevalent Python framework Django, as it was somewhat familiar, possesses great documentation.

My experience so far has been great with working off this framework. Getting anything done becomes very trivial and a rewarding experience to boon.

Front end wise, Yahoo YUI has been used as the tool of choice for developing in JavaScript and using their fabulous CSS tools, Google Charts has been used for charting and the fantastic Fam Fam Fam silk icons have been used for UI actions.

I can only hope that you take a look at Moneyio, if you like it, bookmark it and return in a few weeks/months and see the latest changes.

Using Vim as a diff tool

Firstly I will start with why to not use diff. I am not suggesting a replacement, I have simply found that Vim offers a much better interface, that is available on most (*nix based) server environments for comparing and merging files side by side.

Getting started

vim -d file_original.txt file_new.txt

Your tool of choice here is vim -d, so if you like this as a ‘patch’ to diff, why not be naughty and alias it? I have aliased alias diff='vim -d' in my shell preferences.

Getting fancy

Wow, i can see the difference between 2 files, big deal! Try adding more files to the arguments, suddenly we have loads more power to compare multiple files, easily.

vim -d file_original.txt file_new.txt file_new_ammendments.txt

Commands

ctrl+ww - will let you navigate buffers.

When comparing just 2 files, these commands will be handy when you select the lines to merge

  • dp - diff put
  • do - diff obtain/get

If you are in multi diff mode, these may be handy as you need to write long hand commands;

  • :diffget 3 If you were in buffer 1, writing this command would obtain the difference in buffer 3
  • :diffpu 1 Again, write this in buffer 3 and it will place the change in buffer 1

Writing/saving changes
:wqall

Further Reading

Yahoo! API presentation at METU University

Yahoo! Developer NetworkRead the article about my Yahoo! APIs presentation at METU University in Ankara, Turkey on the Yahoo! Developer Network blog.

A bit about Carbon Silk

Its a design/development centric site by James Broad, a London based web developer working at Yahoo!. I create compelling sites and applications for the web.

Categories

You may also like

Social Stuff

Email:
jb@carbonsilk.com
Linked In:
http://www.linkedin.com...
Twitter:
http://twitter.com/kulor
Del.icio.us:
http://del.icio.us/kulor