Python Programming, news on the Voidspace Python Projects and all things techie.

IronPython and Silverlight: Python in Your Browser

emoticon:Lithium My proposal for a talk at PyCon UK has been accepted! The talk will be on 'Python in Your Browser: IronPython and Silverlight'.

Silverlight is the web version of WPF (Windows Presentation Foundation), the new user interface library that is part of .NET 3 [1]. Silverlight version 1.1 includes a sandboxed and cut down version of the .NET framework called the 'core-clr'. This is capable of running the DLR (Dynamic Language Runtime) that can run IronPython, IronRuby and managed JScript (an ECMA compliant version of Javascript).

The alpha version of Silverlight 1.1 doesn't yet include any user controls, so creating rich applications from scratch is hard work. (Although that hasn't stopped the Vista Smalltalk chap from creating a full Smalltalk environment that runs in the browser, by writing his own controls.)

There is an alternative approach though. Silverlight has full access to the browser DOM and you can call (in both directions) between traditional Javascript and Silverlight. This means that it is already possible to create a user interface using any of the rich set of Javascript libraries that already exist, and write the business logic of your client application with IronPython.

As well as showing off the DLR, this will be the focus of my talk. I will be giving a similar talk (to a very different audience) at Mix UK, the Microsoft developer conference the week after PyCon.

Resolver is sponsoring PyCon UK, and most of the Resolver crew will be there. There have been a couple of talks proposed by Resolver guys (on Resolver itself, perhaps focussing on Python in business, and also on Test Driven Development). There is also a possibility that we will be handing out beta copies of Resolver at the conference for you to test for us...

[1]Silverlight was first known as WPF/E - WPF Everywhere.

Like this post? Digg it or it.

Posted by Fuzzyman on 2007-07-13 11:20:41 | |

Categories: , ,

Resolver is Launched

emoticon:black_hat The website is up, the embargo is lifted, and we are go: I can finally tell you what I've been working on for the last year and a bit.

Resolver in action...

Resolver is a 'rapid application development tool', for analysing and presenting business data using a familiar 'spreadsheet interface'.

From a superficial glance it looks just like another spreadsheet program, but it is radically different from conventional spreadsheets.

It is written in IronPython and has Python integrated in a special way. Before I launch into my best attempt at an explanation, I suggest you visit my new site:

  • Resolver Hacks

    Fun, interesting and useful things to do with Resolver. (Screenshots and code included!)

Spreadsheets are actually a form of programming, in fact when programmed with formulae in cells they are actually an example of a slightly esoteric form of programming called 'functional programming'. So as spreadsheets are just interfaces to computer programming ('under the hood'), shouldn't it be easy to reorganise or extend spreadsheets with a programming language? Unfortunately, this is often a painful process - particularly as the means for doing this are usually 'bolted on' rather than being a core part of the spreadsheet.

With Resolver, data and formulae you enter into cells are actually turned into code. This code is then executed to produce the results.

The advantage of this approach is that you can add your own code at various stages of the calculation, and they have full access to the 'spreadsheet objects' that become the results.

Your spreadsheet can be extended with code in any of the follow ways:

  • Code you enter yourself directly into the code pane interface
  • Code you create in external Python 'modules' (libraries) that could be used by many spreadsheets
  • Existing .NET libraries
  • Third party Python modules, of which there are a great many to choose from

It also means that a spreadsheet can be exported as code, to be unit tested, integrated with other IT systems or turned into a standalone application.

Resolver was created because of the well known problems caused by spreadsheets. Resolver has a few more cool features as well:

  • An easy way to create worksheets from information in a databases
  • Shared Worksheets - worksheets that can be edited simultaneously by people on different computers
  • Worksheet Formulae - create worksheets from formulae that map or relate several worksheets to each other
  • An 'audit mode' to quickly view the different types of data in your spreadsheet
  • Recalculation is done in the background, so even slow to calculate spreadsheets don't interfere with the user interface
  • A powerful set of builtin functions
  • A formula language that includes powerful constructs like list expressions and generator expressions (inherited from Python and very useful)
  • An output pane where debugging print statements appear and errors are reported

For a slightly longer description see Resolver: What & Why?.

Resolver is still in beta but already a very powerful tool. As for the future, well. There are some features that still need to be added and some bugs to be fixed. More importantly there are many different alternative ways that Resolver could evolve depending on what it gets used for. For an overview of all of these things, turn to Bugs, Features and Futures.

Most importantly, when can you try it? We've just extended our private beta. Once we see how overburdened with support requests we are, we're intending to go into a public (or at least semi-public) beta test soon. Of course I'll let you know the details here... Smile

Like this post? Digg it or it.

Posted by Fuzzyman on 2007-07-13 11:11:42 | |

Categories: , , ,

Wing 3

emoticon:pencil I do most of my Python development with the Wing IDE. This is a great tool, and I use it both at work and for my personal projects.

Wing 2 doesn't have very good support for running files with non-standard executables - like our custom executable fro Resolver. Fortunately the scripting API is very easy, so we have developed a set of scripts that add this feature plus a bunch of other stuff we wanted.

It was the thought of converting all these scripts over that has kept me from trying the alpha versions of Wing 3. I shouldn't have left it so long.

Wing 3 has a new feature - 'OS Commands' that do exactly what we want in this department. It also has an integrated test running tool which looks very interesting. Over the next few weeks I'll play with it some more and convert some of our scripts over (although John at Wing promises me that the API hasn't changed much...). Smile

Like this post? Digg it or it.

Posted by Fuzzyman on 2007-07-07 01:35:12 | |

Categories: , ,

Python at the IET

emoticon:mobile_world Last night was a Python talk at the IET (the Institute of Engineering and Technology) in London.

This was an experiment and organised by Michael Grazebrook and Tim Golden. It wasn't publicised a great deal, as far as I know just emails on the Python-UK mailing list and an obscure corner of the IET website.

Instead of the expected 30-40, about 140 people turned up - around 3/4 of whom had never used Python!

This is great proof that there is interest in Python amongst the engineering community and hopefully the London Python crew will be organising more talks.

Like this post? Digg it or it.

Posted by Fuzzyman on 2007-07-07 01:26:19 | |


Hosted by Webfaction