Tuesday, May 19, 2009

Resolver One is the programmable .NET spreadsheet system created by Resolver Systems. It is of particular interest to this blog because it is written in IronPython and has the largest IronPython codebase in production. You may have heard me mention it here once or twice before.

One of the advantages of Resolver One is how easy it is to integrate with other systems, whether they're .NET libraries or online services. We've recently worked with two companies and produced some demos of this in action.

Digipede is a distributed network computing platform for .NET. The coming version of Resolver One has changes allowing you to distribute spreadsheet tasks across a Digipede grid. If you have version 1.5 (join the beta program here) then you can use this sample to try it out.

The Digipede Network is a brilliant way to get distributed, parallel computation on Windows. It only took a few minor changes to convert Resolver One to run on the Digipede Network and to get the IronPython sample to execute Resolver One workbooks.

Try doing that with a spreadsheet or grid that isn’t based on .NET . . .

Timetric is an exciting new website and web service for storing, searching, graphing and publishing the world’s statistical data. It stores data as time series and lets you view graphs of the data plus manipulate and combine them in lots of interesting ways. As well as making a huge amount of public data available you can also push your own data sets to Timetric and use their services to analyse them.

We’ve created an example of using Resolver One as a client program for working with Timetric data and for searching their public data. You can fetch and view a chart of individual datasets and search their large bank of statistics.

The Python console is the biggest new feature in Resolver One. It is a great tool, and in this 4minute screencast Kamil Dworakowski demonstrates its features and how to interact with the spreadsheet from the console.

Ironclad is an open source project by Resolver Systems. It is a compatibility layer for IronPython that allows you to use Python C extensions. Thousands of the Numpy and SciPy tests pass on IronPython with Ironclad and it provides the Numpy integration in Resolver One. We ran a competition to find a logo for Ironclad and the one linked to above was the winner.

Resolver One is a new program that aims to make things easier by building the spreadsheet using the IronPython 2.0 scripting language. IronPython is an implementation of the Python scripting language built on top of the Microsoft .NET CLR and DLR runtimes, which means that it is able to easily interact with code from C# and other .NET languages and can make use of any existing .NET library or assembly. It also can perform complex operations such as web service calls, interact with external files or databases, and make use of the Ironclad NumPy library for complex data manipulation. Since it is based on the .NET framework you can embed custom IronPython or .NET objects into the cells instead of just storing numbers, dates and text. This can be very helpful as it allows you to apply Object Orientated Programming techniques to create powerful and easy to maintain spreadsheet.