Monday, April 27, 2009

Resolver One, Digipede and Resolver One on Digipede

Resolver One is a programmable spreadsheet created by Resolver Systems . It is mainly written in IronPython, programmable with IronPython and is the project I've spent the last three years working on.

Digipede is a grid computing platform for Windows and .NET, allowing you to easily distribute jobs between servers, clusters and desktop computers.

This IronPython-URLs entry has news about Resolver One and Digipede separately, and some of the possibilities when you bring them together.
A new release of Resolver One. The major new features in this release are that we now only have one installer (instead of six different ones) with features activated by license. There are also 54 new financial functions, the ability to set alignment of text in cells, and you can now create new worksheets (and change the selected worksheet) inside button handlers. There are also a host of minor bugfixes as usual, including the ability to embed the Resolver One spreadsheet calculation engine in IronPython, without the need to use the workarounds that were necessary in previous versions. You can read the full changelog here.

Switching to a single installer was a lot of work for us, and although it makes things simpler for users (you hopefully!) it is hardly a major feature. We're well into the work on version 1.5, which does have some exciting new features and will hopefully surface soon...
Robert Anderson is the CTO of Digipede and he has been experimenting on distributing IronPython jobs across a Digipede network. Based on his experimentation they've built features into Digipede 2.2 to make this possible, and he's produced an IronPython Worker Sample demonstrating how the DLR integration works.
I have been playing with IronPython a little. With the release of Digipede Network 2.2, I am now able to post the sample I wrote.

By the way, one thing I like about this sample is that it shows how to keep user code completely de-coupled from the Digipede Network while still taking advantage of our deployment and payload distribution model. This has always been supported by the Digipede Network, and this makes a good example.

The primary goal of this sample is to demonstrate the standard Digipede Worker pattern using native IronPython objects. In addition, this sample provides
• an example of using a Digipede Executive to host dynamic languages supported by the Microsoft Dynamic Language Runtime (DLR);
• an example of a re-usable shim that de-couples user code (in this case, the Worker.py) from any dependency on the Digipede Network.
With the news that Digipede supported IronPython we were interested in seeing if it could be used to distribute spreadsheet calculation tasks from Resolver One across a grid. We produced a demo, which required slight modifications to Resolver One which will be included in Resolver One 1.5, and demoed it to the Digipede guys:
We had a call this morning with Giles Thomas and Glenn Jones of Resolver Systems. They demonstrated Resolver One running on the Digipede Network.

They used my IronPython Worker sample and customized the front-end Python code, leaving the C# adapter as-is. With very little coding they had an elegant grid-enabled spreadsheet. Try doing that with a spreadsheet or grid that isn’t based on .NET . . .

Giles said they will have support for this in Resolver One 1.5, coming out in the next couple of weeks.

Very cool.

I’ve just installed Resolver One to take a closer look. Already I’m impressed, but I’ll leave that for a future post.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.