Books to read

JavaScript: The Good Parts © 2008 by Douglas Crockford

The Future of Management © 2007 by Gary Hamel, Bill Breen

Pro JavaScript Design Patterns © 2007 by Ross Harmes, Dustin Diaz

The Search © 2005 by John Battelle

Joel on Software © 2004 by Joel Spolsky

Entanglement: The Greatest Mystery in Physics © 2001 by Amir D. Aczel

Minds, Machines, and the Multiverse. The Quest for the Quantum Computer © 2000 by Julian Brown

Black Holes, Wormholes & Time Machines © 1999 by Jim Al-Khalili

ConPA and the Cloud

I would like to share our Aptana Cloud experience, after two months of use (or misuse), building a financial application ConPA, an advisory application focused on the optimization of the asset allocation.

Overview
The customer builds a basket of assets, selecting the assets directly from Yahoo Finance, and gets an optimal portfolio, the optimal weights of the assets. A performance chart of the portfolio since a reference date (if it's different from today) and a pie chart are displayed. You could check if your portfolio is efficient. :)

In the custom release, the financial information (the catalog of the products, the time series of prices, etc.) will be stored in the MySQL instance of the Cloud and not retrieved from the net.

The frontend is developed using the JavaScript (what else?) Yahoo! User Interface (YUI). We will use YUI also on server side.

In the backend there is our math engine, an optimizer translated from Fortran to JavaScript, modified to resolve the problems of the portfolio asset allocation. We don't note any performance degrade compared with Fortran release run on local machine (Core 2 Duo Processor 2 GHz): of course, there is the overhead of the callbacks (retrieving the historical prices from Yahoo, for instance), but the rendering of a Flash chart is slower than the optimization phase.

Development configuration
- Eclipse 3.4
- Aptana Studio plugin 1.2.x
- Subclipse 1.4.3
- Firefox 3.0.1 + Firebug 1.2.0b12

Development notes
Fortunately we can concentrate more on the business code, the process of the asset allocation, than on system issues. The sync with the Cloud and with SVN server is painless, but a bit slow, from Italy, using often a mobile connection. We work at office and at home: the team work is a breeze and the message center helps.

We have integrated JSLint as external tool in Eclipse, using cscript, because we need the latest release and we need some control with the validation options. The outline view (Ctrl+O) is quite used to find the code we are working on. Another shourtcut we use often is Ctrl+Shift+R to open a resource.

We don't use very often the preview and we debug the client side in Firefox with Firebug. The Tail View helps, because we can check any error server side quite fastly. Sincerely we debug the server side code as client side code, commenting out the Jaxer callbacks for a while. Not so efficient, we know, but we should take confidence with the Aptana Studio debug environment.

We check the figures with R framework, a free software environment for statistical computing and graphics.

All the code, frontend and backend, is about 50Kb.

Conclusion
So we are satisfied about the integration with the development tool and the facility infrastructure. Obviously there are some glitches, due to beta level of the Cloud (and our app), but no show stoppers for us (until now). :)

The Cloud experience has been positive and we will continue to develop our business with this technology and service.

ConPA release 20080815

Fixed the performance problem when the portfolio was created in the near past and there was no performance data available. Removed the limit to create an optimal portfolio minimum 3 months ago: now you are be able to set the reference date at today. Also changing the basket, deleting or adding an asset, the reference date will be reset.
Modified performance chart tooltip displaying the date of the performance percentage.

ConPA release 20080814

Added reference date of the portfolio: default today. You could simulate an optimal portfolio, created in the past (minimum 3 months ago and maximum 2 years ago), changing the reference date of the portfolio and get again the optimal weights: a performance chart will be displayed.
Added a performance chart panel for the optimal portfolio.
Added the description of the asset as tooltip of the "symbol" cell.