Posts

Showing posts from 2007

Command Line Client for Google Reader in IronPython

Dare Obasanjo has created an IronPython command line client for google reader. This is a first step in integrating RSS Bandit with google reader : Command Line Client for Google Reader in IronPython

Minor Mentions

A few recent blog entries featuring or mentioning IronPython: CALEBLOG: Garbage Collecting 2007 - a blogger includes being surprisingly interested by IronPython and the DLR in his mental garbage collecting of 2007. Python.NET - Alcides Fonseca is a fan of both .NET and Python. He likes IronPython, but prefers Python.NET. Playing with the DLR - Rainer experiments with the DLR. He shows code for executing IronPython, IronRuby and Managed JScript scripts by embedding the DLR (from IronPython 2) in C#. Mood News - Now IronPython Powered - Davy Mitchell's ' Mood News ' is now powered by IronPython Oh, and there are some more IronPython Cookbook updates: Launching the Browser - launching the system default browser with a specific url (includes cross platform notes) Access Unmanaged Code with Dynamic P/Invoke - an example of using the FePy implementation of ctypes for IronPython Parsing RSS - IronPython code for parsing RSS feeds

Using the Wiimote from IronPython

Another one in Japanese I'm afraid, but again the code is clear. This blog entry shows how to use WiimoteLib , a Managed Library for Nintendo's Wiimote, from IronPython: Using the Wiimote from IronPython

WMI with IronPython

Another example of WMI with IronPython (this one querying the BIOS): ARTYPROG: wmi - IronPython There are now four examples of WMI usage on the IronPython Cookbook WMI Pag e .

Put a Python in Your Game

A Christmas eve post on putting a Python console into XNA games: Learning XNA: Put a Python in Your Game UPDATE: link updated to new location - now with video and source code available !

IronPython Studio, Resolver, Python Papers & IronPython Talks

Recently most of my blog entries have been on IronPython or Resolver (my apologies). It has been an important few weeks for Resolver, with our beta now out and the announcement that Resolver will be free for personal/Open Source use: Resolver One Beta Now Live! - and available for free download Resolver Sponsoring PyCon - gold sponsors no less, and a good chance I will be able to attend! Resolver Hacks Update - articles and examples (IronPython code) of using Resolver PyCon 2008: IronPython and Resolver Talks! - it will be a good PyCon for IronPython IronPython in Action: New Chapters and WPF - new IronPython in Action chapters available and WPF from IronPython ACCU 2008 Conference: Dynamic Languages on .NET - I'll be doing a talk on IronPython at the UK ACCU conference in April 2008 Big Resolver News: New Beta, Release Date and Resolver Free for Personal Use Resolver, IronPython and the Python Papers and the One Minute Screencast - A new Resolver screencast and interviews w

IronPython Cookbook Updates

There have been some great new additions to the IronPython Cookbook in recent weeks: Creating XML Trees - Using XML to LINQ features, that are new to .NET 3.5, with IronPython File as TextReader - a wrapper class, so that you can use Python files where .NET expects a StreamReader object Extremely Late Binding - Late bound COM with IronPython MonthCalendar Control and datetime - Using the Windows Forms MonthCalendar control with Python datetime Listing Time Zones - Listing time zones known to the system Using Spreadsheet Functions with Excel 2007 - more COM Listing all Exceptions in the System Plus the IronPython 2.0A7 files have been added to the Downloads page.

IronPython on Mac OSX and Mono

You may struggle to read this unless you're Japanese, but the code and screenshots speak for themselves: IronPython on Mac OSX and Mono

IronScheme, Dynamic Languages and Comparisons

Three links in one post! IronLisp becomes IronScheme The announcement is on the xacc.ide blog . Comparing IronPython and CPython R Tyler Ballance runs Pybench for CPython and IronPython (on Mono). This was discussed back in April, which included a useful comparison of .NET and Mono performance . Big in 2008: Dynamic Languages Atop High Level Languages A look forward to the future of dynamic languages in 2008, including the trend of implementing dynamic languages on top of high level languages.

IronPython 2.0 Alpha 7 Released

IronPython 2.0 Alpha 7 (source and binary) is now available: IronPython Project Homepage Release Notes and Download Major points of interest with this release: IronPython 2 should now be PEP 342 compliant (yield should now be fully compatible with Python 2.5) This is the last release to be built and fully tested with Visual Studio 2005 Around twenty bugs (mainly minor) have also been closed with this release.

Return vs. Finally - C# and IronPython

Mike Stall has an interesting new blog entry on the difference between C# and Python regarding returns in finally blocks: Return vs Finally Did you know that returns in finally blocks swallow exceptions in Python? (I didn't): >>> def f(): ... try: ... raise Exception('ouch') ... finally: ... return 3 ... >>> f() 3 >>>

IronPython and Jython Hello Windows

Kam-Hung Soh, a blogger from Australia (which should please my colleague Christian), has written a blog entry showing simple 'Hello Windows' scripts in both Jython and IronPython: IronPython and Jython Hello Windows He notes " Both implementations allow setX functions in object constructor's argument list ", which is unsurprising as both implementations are the creation of Jim Hugunin.

Natural Sort in IronPython vs. C# 2.0

Continuing the 'natural sort' meme floating around the blogosphere at the moment, Dare Obasanjo compares natural sort code in IronPython and C# 2.0: Natural Sort in IronPython vs. C# 2.0 Unsurprisingly, IronPython is slightly more concise...

IronPython Studio Now Available

IronPython Studio is a free full IDE (Integrated Development Environment) for the Python programming language. It is based on the existing IronPython example that is included in the VS SDK. IronPython Studio IronPython Studio is based on the Visual Studio 2008 Shell runtime (royalty free) and can be installed without requiring any version of Visual Studio. It is hosted on codeplex. Installer, source and screencast are available from the download page . The sources require Visual Studio 2008 (Team Edition apparently) and the SDK. NOTE: Some users (myself included) had trouble getting this working. The magic steps are: Download and install the Visual Studio X redistributable from: Visual Studio Extensibility After you run the Install for the MS VS 2008 Shell Isolated Mode Redistributable, you must then go to the folder (" C:\VS 2008 Shell Redist\Isolated Mode ") and click on: " vsshellisolated_enu.exe " to actually install the redistributable runtime. Install Iron

IronPython Present & Future: PyCon 2007 Podcast

The audio recordings for PyCon 2007 are finally making their way out. Jim Hugunin's talk is now available: IronPython Present & Future PyCon 2007 Audio Recording IronPython is an implementation of the Python language targeting the Common Language Runtime. IronPython has excellent performance, seamless integration with the .NET platform and very high compatibility with the standard Python implementation. The first public talk on IronPython was at PyCon 2004, three years ago. Since then, IronPython has progressed from a rough prototype to a 1.0 release with a vibrant user community. This talk will present the current state and future directions of this Python implementation.

Resolver One Beta Released

After two years of work, Resolver One - the IronPython programmable spreadsheet, has reached public beta. You can download it now and have a play: Resolver One Public Beta Now Live Resolver is a " rapid application development tool with a familiar interface ", and should be useful to power users of spreadsheets and anyone who crunches numbers with Python. The Resolver Hacks website with articles and examples is in the process of being updated to use the new API that this beta introduces. Today three of us from Resolver were interviewed by Robert Scoble today. He is on his way to Le Web conference in Paris, so I don't know when the actual video will appear - but I'll be sure to let you know.

Microsoft Volta: IronPython to Javascript Compiler

Microsoft Live Labs have announced a new project - the Volta Recompiler: Volta on Live Labs As far as I can tell, this allows you to compile IronPython (and other .NET languages) to Javascript: Microsoft Live Labs Volta helps developers who build distributed applications on the .NET platform, using the Microsoft development stack (programming languages, libraries, and Visual Studio). This version of Volta supports applications that run on the Microsoft CLR, a JavaScript-enabled browser, or a combination of the two. ... In essence Volta is a recompiler. Volta works on MSIL rather than on a textual source language. Volta rewrites MSIL into any number of target languages, including, today JavaScript and MSIL itself. ... In summary, Volta confers flexibility in the architecture dimension through: Language-independence . Write Volta code in any language that compiles into MSIL. Fo

Mono, Boo, Python, Gnome & IronPython

Miguel de Icaza has a blog entry responding to an article on 'Mono Usage in the Enterprise': Mono Usage in the Enterprise It has some interesting comments on the role of Python in the Gnome project and IronPython and Boo on Mono: Python is indeed making great strides as a desktop development platform and am not sure that we are in the business of competing with it. If people like writing Python code, they should just keep writing python code. Myself, I like the IronPython variation of Python more. IronPython just happens to be JITed Python and in most tests it is faster than CPython. For the past year or so, we have also been in love with Boo , another .NET language. Boo has support for strong typing, so for certain scenarios you will get even better performing code (basically, when you can determine the type of a variable ahead of time, instead of having the variable be entierly late bound).

Mono and Windows Forms on OS X

Through Mono IronPython can be used to create cross platform applications, but the story for desktop applications on platforms like OS X has never been particularly compelling. Miguel de Icaza outlines the future for Mono on OS X (one of the outcomes of the Mono summit), including easy access to the MonoDevelop IDE and screenshots of a winforms application on OS X using the native drivers! Mono on OS X and Win32

IronPython Bug that Cost me a Can of Coke

Kamil Dworakowski (a Resolver developer) explains an obscure bug with comparing lists in IronPython 1, and how it cost him a can of coke: IronPython Bug that Cost me a Can of Coke The bug relates to IComparable and value types in the underlying framework and how IronPython implements equality in an attempt to remain faithful to Python.

Hosting IronPython 2.0 Alpha 6 via the DLR

A new blog entry from Ryan Dawson showing how to host IronPython 2.0 in a .NET application. It also talks about some of the changes coming in the IronPython 2 hosting API: Hosting IronPython 2.0 Alpha 6 via the DLR

DLRPad on Codelplex

The DLRPad is a Silverlight application for creating WPF (XAML) apps and scripting them with IronPython or IronRuby. This is now hosted on Codeplex: DLRPad on Codeplex Announcement

Hosting IronPython 1.1

Ryan Dawson has a great blog entry on the hosting API for IronPython 1.1. He intends to follow it up with embedding examples for the IronPython 2 alphas as well: Hosting IronPython 1.1 UPDATE: Ryan is new member of the DLR team. He has also done a Hello World Blog Post , explaining his intention to blog more about IronPython and the DLR.

A Meme Tracker in IronPython

Dare Obasanjo has been learning Python, or more specifically IronPython so that he can port Sam Ruby's ' Meme Tracker ' to run on .NET: Interested in "Python for C# Developers?" A Meme Tracker in IronPython

IronPython and Python Stack Frames

One incompatibility between IronPython and CPython that is unlikely to go away, is that IronPython does not have Python stack frames. IronPython is implemented on the CLR , which has its own stack frames that are very different to the Python ones. This means that tricks with ' sys ._ getframe () ' and friends will never work with IronPython . JRuby , for Ruby compatibility, does use frames. Charles Nutter (one of the JRuby devs ) has been experimenting with a frameless approach that yields faster execution: Experimenting with Frameless Execution (A paragraph near the bottom of that blog entry.) Python stack frames are seen as an implementation detail, and if you want your code to run across implementations then you shouldn't interact with them directly (does PyPy use Python stack frames?). Even though it is almost always a hack, we have missed them occasionally at Resolver. The notes from Charles sheds light on the IronPython design decision.

DLR Hosting Spec

The IronPython team have been firming up the hosting API for IronPython and DLR languages. They have published an early spec, available via John Lam's website: DLR Hosting Spec

SharpDevelop: IronPython AddIn Internals

The SharpDevelop team have created an IronPython language binding for the SharpDevelop IDE. This (like the Visual Studio SDK) is an example of creating new language bindings: " This is a tutorial about how to create a language binding for SharpDevelop using the IronPython addin as an example. As well as covering how to create a language binding it will also look at how the addin used IronPython. The source code for the IronPython addin is available at the end of this tutorial. " IronPython AddIn Internals

DLR Pad - interactive programming with XAML and DLR

Stefan Dobrez writes: " This post is about a tool that I have build. It is called DLR Pad. In one sentence it allows you to rapidly create simple XAML based applications and script against them with dynamic language of your choice. " The blog entry shows (another) Silverlight IDE like tool that can be used for experimenting with IronPython and XAML in Silverlight. You can also download the DLR Pad: DLR Pad - interactive programming with XAML and DLR

Mike Stall Learns Python

Mike Stall has just joined the IronPython / DLR team at Microsoft. Before this he was working on the CLR debugging team (and is an expert on the subject). As he is now working on IronPython, Mike thinks it might be a good idea to learn Python. He is finding 'Learning Python, by Mark Lutz, a useful resource: Learning Python

First IronPython Book

As you may know, I' writing a book on IronPython for Manning: " IronPython in Action ". The next third of the book is about to go for a review and will then be available in the early access program. It won't make it as the first IronPython book though, there is already a Japanese one. English Translation of "IronPython" Page Original Page

Boo, Java, .NET and IronPython

A blogger called Tomo wondered about which .NET language to choose Boo (a mighty fine language) or IronPython. He came down in favour of Boo, and an interesting discussion ensued in the comments: Boo at Koans of Code The very next thing he tried was taking the Java class library for SWT (the user interface library) and compiled them into a .NET dll with IKVM . He then used them from Boo and IronPython, which worked! Language Frenzy This is an interesting coincidence, as a few days ago Rodrigo announced on the Boo blog about boojay - a compiler that emits Java bytecode from Boo: Introducing Boojay

NWSGI - WSGI ASP.NET HttpHandler

Today Jeff Hardy announced on the IronPython list, the first release of NWSGI , an implementation of WSGI compliant server for IronPython 2.0. written in C# as a ASP.NET HttpHandler. Currently it runs simple WSGI applications but has problems with the larger Python web frameworks due to bugs in IronPython 2.0 and NWSGI. Hopefully as IronPython 2.0 matures and Jeff continues to work on NWSGI, the will become less of an issue. An implementation of a WSGI server for IronPython 1.0 is available with FePy

Multiple Python Engines in IronPython

One of the features of IronPython 1 that Resolver uses, which isn't currently available in IronPython 2, is the ability to create multiple isolated Python engines. The IronPython team have just announced that this feature will make it into IronPython 2: Multiple Python Engines in IronPython 2

LOLCode on the DLR

Martin Maly, as part of his TechEd talk on the Dynamic Language Runtime, showed an implementation of an exciting new language ( LOLCode ) that he hacked together whilst travelling. John Lam has made the source code to this available on his blog and Martin has contributed a write-up on the LOLCode site: LOLCode on the DLR (with download) My Commentary (with some build instructions) Intro to LOLCode on the DLR

Hosting IronRuby with the DLR

The DLR (Dynamic Language Runtime) hosting API is still changing, in fact (according to Dino Viehland) it is now hosting API feature week . Despite this, Tomas has written a great article on the DLR hosting API and IronRuby. Much of it is applicable to IronPython of course: Hosting IronRuby with the DLR

Unicode Strings & Localization plus IronPython and the Standard Library

We recently had a strange bug from a Turkish user, that uncovered an issue with Unicode strings and the Python decimal module (when used from IronPython). The easiest fix is a simple modification to 'decimal.py', and Dino (an IP developer) says that Microsoft are looking at shipping the Python standard library with IronPython to make this kind of modification easier (a big step for Microsoft): Resolver Goes Multinational, Real World Problems with Resolver, IronPython Localization Issues and an Important Announcement

More IronPython News from TechEd

This week I've been at TechEd Barcelona, and as well as demoing Resolver, I've done some interviews and been to some IronPython talks: TechEd Podcasts and Interviews IronPython Demos: Sho & Silverlight

IronPython 2.0a6

There is a new version of IronPython 2 out, 2.0a6: Release notes of IP2a6 This version fixes several bugs and is the first under the new public license. See the release notes for full details. The release also includes a toy language implementation, ToyScript, that is an example dynamic language targetting the Dynamic Language Runtime. Martin Maly (one of the IP & DLR developers) has done a talk, at TechEd Barcelona, on the DLR that walked through part of toyscript and introduced a new DLR language - lolcode: The Dynamic Language Runtime

Calling IronPython from C# with Delegates

A blog entry by 'Coding the Markets' on wrapping a "C# WinForms object in a Python dictionary". Calling IronPython from C# Using Delegates

Embedding IronPython in WPF C#

A Code Project article on embedding IronPython (1.1 from the looks of it) in a C# WPF application: Embedding IronPython in WPF C#

Accessing the .NET Field

Haibo Luo continues his series of posts on IronPython with information on accessing .NET class and instance fields with IronPython. IronPython: Accessing the .NET Field

IronPython 2, 'with' and COM

IronPython 2 targets Python 2.5, which means that the with statement is available. This is convenient because the currently released version of IronPython 2 there is a memory leak that keeps COM objects alive after they are used. This bug is fixed in the IronPython source code control, but in the meantime a Japanese blogger has a workaround that uses 'with' and calls Marshal.ReleaseComObject - his fantastically nested example is for Excel Interop. with statement and COM His blog has some other interesting IronPython stuff, including this example of Excel 2007 interop that creates a spreadsheet from a bitmap! Excel 2007 Interop

CPython Extensions for IronPython

Based on Python.NET I've got a proof of concept implementation for using CPython extensions from IronPython: CPython Extensions from IronPython It has limitations, but the example code shows using matplotlib (with numpy and Tkinter) from IronPython 2.

EWeek Article: Microsoft's Growing Support for Dynamic Languages

An EWeek article on dynamic languages. The article is based on the presentation by Jim Hugunin at OOPSLA (Object-Oriented Programming, Systems, Languages and Applications). Microsoft's Growing Support for Dynamic Languages

Dynamic Languages on .NET Video from Mix UK

The video of my talk from Mix UK is now available. See my blog entry for the link and talk description: IronPython et al: Using Dynamic Languages in .NET and Silverlight

IronPython Support in SharpDevelop

The SharpDevelop community (specifically Matt Ward) has just announced IronPython support in SharpDevelop 2.2 : I ronPython 1.1 Integration in SharpDevelop 2.2 It looks pretty nifty, including intellisense and a Windows Forms designer. This is still in alpha and so is not included with SharpDevelop, but is a separate download from the blog entry.

Visual Studio as my IronPython Editor

Haibo Luo continues his series of posts on IronPython with instructions on how to setup Visual Studio 2005 & 2008 (currently in free beta) for use with IronPython, including intellisense, or even CPython!: Visual Studio as my IronPython Editor

C Extensions for IronPython Mailing List

The new Resolver Systems project to allow IronPython to use CPython extensions now has a mailing list: C Extensions for IronPython Mailing List

IronPython is now Open Source

The Microsoft license used for IronPython is now Open Source - or at least approved by the OSI. It is now called the Microsoft Public License: Microsoft Public License OSI Approval Announcement

Memory Savings with Magic Trampolines in Mono

Paolo describes the latest optimisations he has made in the Mono JIT compiler - and how this leads to memory savings for IronPython: Memory Savings with Magic Trampolines in Mono

FePy 7 (IronPython Community Edition) Released

Seo Sanghyeon has just announced the release of FePy 7 . This is the first release of the IronPython Community Edition that includes IronPython 2 (specifically the recently released IronPython 2.0a5). Seo is now working for Mozilla on the IronMonkey project , and this release was in part sponsored by Mozilla. There are two projects that are part of FePy that are not included in this release. Files under trunk/pyprof/, which tries to implement sys.setprofile with Mono profiler API. (Thanks to Miguel de Icaza and Paolo Molaro for help.) Files under bench/, which benchmarks simple IronPython programs to measure progress of Mono runtime. This release is built with Mono 1.2.5.1. The minimum Mono version needed to compile and run for IronPython 1.x is 1.2.3. For IronPython 2.x it's 1.2.5. Mono 1.2.5 and 1.2.5.1 are same except for ASP.NET bugfixes. DLR-based languages won't work with Mono versions before 1.2.5. Changes in this release: IronPython IronPython 2.0 Alpha 5. Lib

IronPython Cookbook Updates

There have been several new entries in the IronPython Cookbook since I last mentioned it. New material includes: A new Silverlight Section Uploading a File by FTP - using the edFTPnet library. Entry by Davy Mitchell . Creating a Pie Chart with Zedgraph - also by Davy Mitchell. Plus various other new entries of course. If you haven't seen the cookbook before, it contains many examples of using .NET libraries from IronPython and also embedding IronPython into .NET applications.

Dynamic Languages Support in Silverlight

An article on Ariel Nelson's blog, about dynamic languages in Silverlight, gives an introduction to using IronPython with Silverlight 1.1: Dynamic Languages Support in Silverlight

IronPython 2.0 Alpha 5

There has been a new release of IronPython: IronPython 2.0 Alpha 5 The main reason that IronPython 2 is still in alpha is that the Dynamic Language Runtime APIs change as it is extended / improved to better support the fledgeling IronRuby. It will need to be out of alpha by the time that Silverlight 1.1 final is released though! This new version of IronPython fixes around 40 bugs / issues reported on Codeplex, plus 20 internally reported bugs. No major new features were added, but the 'array' module was ported from IronPython 1.1 to 2.0 in this release. (The bugs blocking my 'Python interactive interpreter in the browser' were fixed - so this should work with the next release of Silverlight.) The source distribution should work with Visual Studio 2005 and 2008 (currently in free beta). Python 2.5.2 is due for release soon as well... Giles Thomas has also made an announcement on the Resolver blog: Open Source Project to get Some CPython Extensions Working with IronP

IronPython: Overloaded Methods

Haibo Luo's latest blog entry is about using .NET's overloaded methods from IronPython: IronPython: Explicitly Choose One Method

Using C Extensions with IronPython: Resolver Announces Open Source Project

Resolver Systems has announced a new Open Source project, to get some essential CPython extensions working seamlessly with IronPython: Resolver Open Source Project: CPython Extensions from IronPython

IronPython & Resolver at TechEd Barcelona

I'll be demonstrating Resolver at TechEd Barcelona, in a talk with Mahesh Prakriya and Martin Maly. IronPython will feature in several talks there: IronPython and Resolver at TechEd Barcelona

VSX: Iron Cool Stuff

Alan Stevens looks at Visual Studio extensibility and is impressed with the IronPython examples: VSX: Iron Cool Stuff

More IronPython at Microsoft

Visual Basic 10 Ideology Emerging Details of Visual Basic 10 are starting to emerge. This is a new version of Visual Basic that is slated to (at least optionally) replace VBA. Developers having been asking for more dynamic language features, so VB 10 will be built on the DLR. ALT.NET Impressions Scott Guthrie & Scott Hanselman at ALT.NET Scott Guthrie and Scott Hanselman presented at the recent ALT.NET conference. They showed the new MVC version os ASP.NET - including the ability to create Controllers in IronPython and an IronPython view using a WebFormViewEngine. Demos of new technology from Microsoft always seem to involve illustrating the IronPython integration! Want a job working on IronPython? Software Development Test Engineer The Dynamic Language Runtime (DLR) team is expanding and is looking for a highly motivated and passionate engineer to join its test team. The DLR team is focused on delivering the most complete solutions around dynamic languages on .NET with respect

IronPython 2 on Mono

Seo Sanghyeon has updated FePy to include a set of patches so that IronPython 2.0a4 will compile for Mono 1.2.5. IronPython 2.x Patches IronPython 2 is now an official part of the IronPython Community Edition.

Provide (or Not) Argument for By-ref Parameter

Haibo Luo continues delving into IronPython from a .NET point of view by looking at tuple unpacking, function return values and how to work with .NET 'by-reference' parameters from IronPython: Provide (or Not) Argument for By-ref Parameter

Max Recursion Limit in CPython and IronPython

Unlike CPython, a maximum recursion limit isn't set by default in IronPython. An exploration (and explanation): Max Recursion Limit in CPython and IronPython

Microsoft Opens up the .NET Class Libraries Source Code

Microsoft has just announced that it will be making the source code to a lot of the major .NET class libraries available. They will not be under an open source library, but it is still a big step. Scott Guthrie on Releasing the Source Code for the .NET Framework Libraries Miguel de Icaza comments on what this does (and doesn't) mean for Mono. Mono is already distributing some Microsoft code (including IronPython...) that is available under their permissive license (which will soon be renamed the 'open' license - presumably in response to the OSIs request): Microsoft Opens up the .NET Class Libraries Source Code

Python Keyword Arguments & .NET Arguments / Properties

Haibo Luo has done two more blog entries on IronPython, both about arguments and keyword arguments: Keyword Arguments to Set .NET Properties Using keyword arguments in .NET constructors to set properties (a nice feature of IronPython). Passing Arguments for a Call How different Python parameter passing styles map to .NET concepts.

Python Implementations Matrix

'Someone' (moreati?) over on the 'Misspelled nemesis club' blog has started a Python implementations matrix (spreadsheet). This tracks the different versions and implementations of Python (CPython, Jython, IronPython and PyPy) and what features and libraries they support: The Python Implementations Matrix This is a great idea, but is far from being complete.

IronPython on Microsoft.com

IronPython features in several places on Microsoft's websites. We covered the Knowledge Tools page, here are a few more: IronPython Samples - Examples of how to integrate a new language with various aspects of Visual Stdio (from compiler tasks to syntax highlighting to deployment) Microsoft Robotics Centre - Three tutorials on using Microsoft Robotics with IronPython Sho : I've found various references to Sho as a "an interactive language for scientific computing based on IronPython". I can't find a website for it, but one of the pages it is mentioned on is the page of Sumit Basu Comparing & Managing Multiple Versions of Slide Presentations (pdf) - Research project on managing slide presentations, that used IronPython Common Language Runtime: IronPython and .NET Scripting Languages - A video presentation by Mahesh Prakriya (lead manager of the CLR team) 2006 Lang.NET Symposium: IronPython and Beyond - A presentation by Jim Hugunin Developing Agile bu

IronPython in Action: Chapter 5 & 6 Available

Chapters 5 & 6 of " IronPython in Action " join the first four chapters in the Manning Early Access program: IronPython in Action: Early Access

Men of Iron Podcast

Craig Murphy has posted an interview with Michael Foord (uhm... me) on IronPython and the Dynamic Language Runtime and with Dave Verwer on Ruby and IronRuby: Men of Iron Podcast The interviews were both done at Mix UK.

The IronPython 2 Hosting API

Shri Borde has just posted to the IronPython mailing list a link to a document on the IronPython 2 hosting APIs. It is from May, so things have changed a bit since then, but it will still be very useful for anyone embedding IronPython 2 (or any DLR based language) in an application: hosting-tour.doc

Inside IronRuby

Cory Foy has posted a blog entry examining a bit of how IronRuby weaves its magic. All of the entry is interesting, and a lot of it is relevant to IronPython as they share code through the DLR: Inside IronRuby

Resolver: The IronPython Spreadsheet

Image
Jon Udell has posted a blog entry and screen cast on a new spreadsheet application written in IronPython: First Look at Resolver, an IronPython Spreadsheet Entering formulae into a spreadsheetis a form of functional programming, and is overwhelmingly the most common form of 'end user programming' there is. Jon feels that Resolver has something new to offer in this area.

The clr Module

Two more blog entries from Haibo Luo, exploring the IronPython 'clr' module (which is the key to interacting with the .NET framework). Whilst aimed at .NET programmers exploring IronPython for the first time, the entry on 'AddReference' is particularly useful for understanding .NET assemblies and how IronPython works with them: import clr clr.AddReference

IronPython: Grab the .NET Type

A blog entry by Haibo Luo, on using IronPython to play with .NET types including nested classes, generics and what not: IronPython: Grab the .NET Type

IronPython/Mono Benchmarks

Seo has done some benchmarks of IronPython 1.1 on Mono, showing how performance has improved from 1.2.3 (February this year), through 1.2.5 (August) to current SVN head: IronPython/Mono Benchmarks

IronPython: My .NET Exploration Tool

IronPython is a great way to explore .NET assemblies; you can create and experiment with live objects using the interactive interpreter - as *CODER discovered. His blog entry shows using the 'System.Security.Cryptography' assembly: IronPython: My .NET Exploration Tool

A Collection of Links

A collection of links to people discovering IronPython: Working the Snake Finding the 'greatest common divisor' and fibonaci using IronPython. Make Your Application Scriptable with IronPython Making .NET applications scriptable with IronPython. Tfs via IronPython Working with the 'Team Foundation Server' through the IronPython interactive interpreter. A minimal sqlplus clone in IronPython A script for interactively working with Oracle. The text is in German, but the code looks straightforward. And some news that is related to IronPython: IronPython Team has a New Boss OSI Calls for Revisions to Microsoft Permissive License Oh, and I don't think I posted a link here to my set of articles / downloads / online examples for IronPython and Silverlight: Voidspace IronPython & Silverlight Pages

CLR Inside & Out: Article on the DLR

The latest issue of 'CLR Inside and Out' has an article on IronPython and the Dynamic Language Runtime: IronPython and the Dynamic Language Runtime

Microsoft Knowledge Tools

An interesting quote on the Microsoft Knowledge Tools page: To make research progress, we build prototype tools and get them into the hands of these types of users. We build many of our prototype tools on top of IronPython, a version of Python for .NET. Python is like a virus, once it infects one part of a company it spreads everywhere...

Managed DirectX via IronPython

Andy Sy has put up a three part tutorial on using managed DirectX with IronPython: Referencing the MDX 1.1 Assemblies Interactive Control of a Managed Direct3D Device Rendering Alpha Blended 2D Sprites

Introduction to IronPython and Silverlight

My PyCon UK talk, introducing IronPython on Silverlight, is now online. This goes through creating a minimal IronPython application for Silverlight and explores the Silverlight APIs. The Web IDE has also been updated and now has several examples built-in. More details to follow, but for the moment: Silverlight Talk: Quick Links

IronPython in Action

The first four chapters of IronPython in Action , the 'forthcoming' book, are now available via the Manning Early Access Program. The first chapter is free to download. IronPython in Action This means that you get access to the book as it is being written (and get the chance to point out our mistakes!). The first five chapters (the fifth should be added in the next few days) are an introduction to .NET, a Python tutorial, and then a walk through an example structured Python application illustrating both the Python language and aspects of the .NET framework. The rest of the book is going to be much more 'recipe style' and cover a wide range of aspects of .NET (ASP, databases, web services, working with Windows and so on), deeper into Python (testing, protocols, metaclasses and so on) and also embedding and extending IronPython.

Make Twitter Talk with IronPython

More code from Davy Mitchell. This time showing how to use the Twitter XML API from IronPython: Make Twitter Talk with IronPython

IronPython 2.0 Alpha 4 Released

IronPython 2.0 Alpha 4 has just been released: Release Notes The most significant changes in this release include: • Completion of the –X:Interpret mode and its incorporation into the eval and exec functions • The addition of the -X:PreferComDispatch mode • Improved performance for the itertools module and the importing of CLR-based modules • A number of bug fixes Like previous Alpha releases, quite a bit of refactoring work has been completed and this process is still ongoing. In particular, effort has been put into making .NET interoperability easier for language implementers on the DLR. -X:PreferComDispatch enables direct support for IDispatch COM objects, and includes support for indexers and output parameters in IDispatch-based calls. This will improve IronPython’s integration with IDispatch-based COM APIs such as in Microsoft Office. Some of the notable bug fixes included in this release are: • _iter_ is now available for all iterable .NET objects with the exception of System.

Semantic Password Generator

JoeSox has written a 'Semantic Password Generator' in IronPython, that uses Wordnet. Semantic Password Generator on CodeProject Semantic Password Generator Homepage Sources and documentation are available.

SharePoint, IronPython, and another lesson in the virtue of laziness

A blog entry from Jon Udell on using IronPython to work with documents accessed via a Sharepoint server: SharePoint, IronPython, and another lesson in the virtue of laziness I’m doing an internal project that involves reading several different data sources from a SharePoint 2007 server, merging them, and posting the merged data back to the server. Being lazy, I wanted to use IronPython, write as little code as possible, and do everything dynamically .

Embedding IronPython in a Silverlight (C#) Application

I previously blogged about how to use the IronPython engine from inside a compiled C# Silverlight assembly. This worked fine when you used the resulting assembly from IronPython , but not when used standalone! This was due to a bug in the platform assumptions that the DLR makes, but with help from the IronPython mailing list a workaround has been found: Embedding IronPython in a Silverlight (C#) Application It means a bit of extra boilerplate code, but hopefully before Silverlight 1.1 final this code will have moved into the DLR and all will be rosy again... Oh, and by the way... IronRuby is now Live on RubyForge . John Lam has build instructions and news on the latest updates on his blog .

Minimise a Winforms Application to the System Tray

Davy Mitchell has posted an example of how to minimise a Windows Forms application to the system tray: Minimise a Winforms Application to the System Tray

Silverlight 1.0 Released, Plans for 1.1, and Microsoft / Novell Officially Collaborate on Silverlight for Linux

A flurry of 'official' news on Silverlight. Silverlight 1.0 has just been released and Scott Guthrie has outlined the plans for Silverlight 1.1: Now that Silverlight 1.0 is out the door, my team is cranking hard on our Silverlight 1.1 release. Silverlight 1.1 will include a cross-platform version of the .NET Framework, and will enable a rich .NET development experience in the browser. It will support a WPF programming model for UI - including support for an extensible control model, layout management, data-binding, control skinning, and a rich set of built-in controls. It will also include a subset of the full .NET Framework base class library you use today, including support for collections, generics, IO, threading, globalization, networking (including sockets, web-services and REST support), HTML DOM, XML, local storage, and LINQ. You'll be able to use any .NET language to develop a Silverlight application (VB, C#, JavaScript, Python, Ruby, Pas

Bug in IronPython Visual Studio Integration

Aaron Marten manfully owns up to a bug in the IronPython Visual Studio integration, and explains the issues: Why can't I show the "Add New Items" dialog in a WPF flavored project?

IronPython and Silverlight Resources

Chris Bowen has compiled a list of resources for using IronPython with Silverlight: IronPython and Silverlight Resources

Mono 1.2.5 Released

Mono 1.2.5 has just been released. You can read the changelog here. " Th is release fixes various issues that were exposed by IronPython 2.0 preview release and the Dynamic Language Runtime from Microsoft. They are both functional on this release." Presumably this means that IronPython 2 (which is still in alpha) will now run on an unpactched Mono! I also assume that the included version of IronPython is now 1.1 final rather than 1.1 alpha. Other relevant changes: Devirtualization optimization for sealed classes and methods, improving IronPython 2.0 pystone performance by 4%. Other programs can expect similar improvement [Rodrigo]. Invocation speed of non-multicast delegate methods has been increased by calling directly into the delegate, this improves IronPython 2.0 (pystone) performance by 25% [Zoltan Varga]. Math.Min and Math.Max are now inlined for signed integers and String.OrdinalCompare has been tuned to use these, which results in a 2-3%

More Silverlight

A few more entries exploring Silverlight and IronPython: Embedding IronPython in Silverlight Assembly - IronPython can just as easily be embedded in a C# Silverlight application as a traditional .NET application. Accessing Embedded Resources from IronPython Playing Video with Silverlight - Using the MediaElement Video Player from IronPython If you serve Silverlight applications with IIS then this configuration guide may be helpful.

Manifold 8 - with IronPython Scripting

Manifold 8.00 has just been released. Included in the release highlights are 'IronPython Scripting'! Manifold is a Geographic Information System package. Python has steadily been gaining ground as the standard scripting language for GIS applications. Via Spatially Adjusted .

My First Look at DLR

Risman Adnan Mattotorang posts his exploration of the Dynamic Language Runtime: My First Look at the DLR In his previous entry he links to Nua , a fledgling project to implement Lua for .NET using the DLR.

Silverlight and IronPython

I've been doing some experimenting with Silverlight and IronPython. You will need Silverlight 1.1 Alpha Refresh to use these: WebIDE 0.2.0 - This is the addition of a 'load' and 'save' (from the local filesystem) to my IronPython Web IDE. This allows you to edit and execute blocks of IronPython code in the browser. It is a great way to explore the Silverlight CoreCLR API. You can also download the source code , which makes a useful example of a minimal IronPython / Silverlight project. System.Windows.Downloader - accessing server resources from Silverlight using System.Windows.Downloader . System.Windows.Browser.Net.BrowserHttpWebRequest - But this is better. IsolatedStorageFile - 1MB of 'in the browser' storage per application... OpenFileDialog - How to present an open file dialog to the user, and load the file they select (or not). Saving Files from the Browser - A hack (using Javascript and a Python CGI) to present a save file dialog to the user. I

IronLisp Benchmark Updated

The author of IronLisp has rerun his benchmark, running them as a program with IronPython rather than in the interactive interpreter. This means that the code is compiled by the DLR first. This time IronLisp comes out twice as fast as IronPython, but IronPython is twice as fast as CPython: Benchmarks Updated

Handling POST with HttpListener and ProgressBar

There are two new recipes on the IronPython cookbook: How to Handle POST with HttpListener - this comes from Konrad and is how to handle POST requests when writing servers that use HttpListener. Windows Forms Progress Bar - A simple example of a progress bar using Windows Forms. The progress bar is updated from a calculation performed on a separate thread.

A New DLR Based .NET Language: IronLisp

There is a new member of the 'dynamic languages on .NET' family: IronLisp The announcment is here: IronLisp Goes Live It is built on top the Dynamic Language Runtime, which is at the heart of IronPython. You can see a syntax example, including some benchmarks comparing against Python / IronPython / C# at: Benchmarks . If you're interested in .NET languages, you may be interested in the Duck Typing Project . This is a library that implements duck typing for .NET, and is written in C#. The interesting thing is that it implements compile time duck typing rather than runtime. From the website: Duck typing is a principle of dynamic typing in which an object's current set of methods and properties determines the valid semantics, rather than its inheritance from a particular class. The library handles a lot of casting between types that you would other wise have to do yourself, for example: Casting a given object to a given interface that it does not implement by

Python.NET is Alive & Well

Python.NET is a project that hasn't had much publicity since IronPython became popular. Python.NET is a build of CPython with support for .NET, meaning that you can use .NET assemblies with ordinary Python (overcoming some of the limitations of IronPython - like the non-availability of C extensions). There was recently an announcement (dated July 29th) about progress: Good evening Python for .NET users! I've a list of great news for you. In the past weeks I've spent some time in fixing and enhancing PythonNet. Summary: PythonNet now works with Python 2.4 and 2.5. Python 2.6 compatibility is already prepared. A bunch of small bugs were fixed and some new features implemented. Generics, overloading and variable parameter function should work better. PythonNet also works under Un*x and Mono with UCS 2 and UCS 4 builds of Python. Two unit tests are currently failing. The source repository contains project files for MS Visual Studio and MonoDevelop. The clr module provides

JVM Language Runtime (inspired by the DLR)

The DLR is at the heart of IronPython 2, and is a dynamic type system and language hosting system for .NET - abstracted out of IronPython 1. It makes creating dynamic languages for the CLR (the .NET VM) much easier and makes it possible for those languages to interact with each other (sharing a common type system). Inspired by this, Charles Nutter (core developer of JRuby - Ruby for the Java VM) has started a similar project for the JVM: JVM Language Runtime Project This includes code and cooperation from the teams behind JRuby, Jython and Groovy - all prominent dynamic languages for 'Java-as-platform'. Both JRuby and Jython are working heavily on their current implementations, but in the future both languages intend to use the 'JLR' to simplify and share their work.

Visio and IronPython

Two blog entries from Saveen Reddy, illustrating using IronPython with Microsoft Visio : A preview of embedding IronPython into Visio 2007 Automating Visio with IronPython for creating Continuous Gradients

C# 3.0 as Python with Braces

A blog entry, by Saveen Reddy, comparing IronPython and C# 3.0 code side by side, using Notify Icon from the IronPython Cookbook as the example: C# 3.0 as Python with Braces Of course Python with braces isn't Python, but it could be worse...

New and Updated Recipes in the Cookbook

There have been several new entries in the IronPython cookbook recently: The IronPython 2 Parser - An example of using the IronPython 2 Parser API to extract the variable names used in a Python expression. Screen Capture - Taking a screenshot from IronPython with Windows Forms. Using Python Functions from C# - An example of embedding IronPython 2 in C# that creates IronPython functions and calls them from C#. A while ago Andrzej Krzywda posted an example of downloading web pages with IronPython. It turns out that the examples can be made even shorter. See Accessing the Web with IronPython for details. The IronPython Cookbook Downloading a Web Page recipe has been appropriately updated.

Silverlight Experimental 'Mini-Web-IDE'

I've posted an example IronPython Silverlight project - a mini web IDE that lets you enter and execute blocks of Python code in the browser. Read the description (or download the project) here: About the Silverlight IronPython Web IDE You can actually try it out here: Silverlight IronPython Web IDE This is useful as an example of an IronPython Silverlight project, but is also a useful tool for exploring the Silverlight assemblies.

How Badly will IronMonkey Hurt Performance?

'Someone' (couldn't find a name - sorry) posts a blog entry arguing that the implementation strategy for IronPython on Tamarin (IronMonkey) must be slow: How Badly Will IronMonkey Hurt Performance? Unsurprisingly, I'm not convinced: My Response In a further non-surprise, the original poster is not convinced by my response: Perspective on Python Performance

Windows Forms Transparent Label

Davy Mitchell posts an improved version of his transparent label for Windows Forms: IronPython - Transparent Label 2

Walkthrough of ASP.NET DataBinding with IronPython

A walkthrough of data binding in ASP.NET with IronPython: DataBinding in ASP.NET with IronPython

ASP.NET with IronPython, Silverlight DLR Console Prototype

Ronan Geraghty has posted an example of using IronPython with Silverlight to create an ASP.NET site: ASP.NET with IronPython, Silverlight DLR Console Prototype

IronPython in Visual Studio 2008 SDK

From the blog of Eric Lam, comes a post on the Visual Studio 2008 (what was codename Orcas), including these snippets: 2.1. Windows Presentation Framework (WPF) Designer Extensibility The IronPython sample is enriched with Windows Presentation Framework (WPF) designer extensibility. This sample provides guidance for customers who want to extend Visual Studio to integrate their .NET based languages with XAML and WPF Designer, which are introduced in Visual Studio 2008. This sample is intended to showcase these extensibility points. The sample shows how to write a basic WPF application for a managed proprietary language by using IronPython as an example. The sample also illustrates how to handle events by using EventBindingProvider. 2.3. Expression Evaluator Language integrators require an expression evaluator (EE) to work in the context of their programming language. We have created a new sample that shows how to write a basic EE for a managed proprietary languag

FbConsole 0.7.2 Release

There has been a fresh release of FbConsole, the "Firebird RDBMS Tool Powered by IronPython" (including a funky screenshot). FbConsole 0.7.2

IronPython and CPython Sets

Flávio Codeço Coelho posts a performance comparison of IronPython and CPython sets. CPython comes out a long way ahead, so more tuning needed for the IronPython set implementation: Set Implementation Performance

Using Python Classes from .NET

IronPython classes aren't true .NET classes, not least because you can swap out their base classes dynamically, add methods and have all sorts of dynamic fun with them if you really want to. There are ways to use IronPython classes from C# (and other .NET languages) though. This cookbook recipe shows one approach, which involves inheriting from a C# class: Using Python Classes from .NET

Havana CMS

Lazy Coder reports his impressions working on Havana CMS in the past 2 months. Havana CMS is developed in C# 3.0 and IronPython. Havana: Hybrid Programming

A Web Based IDE for Distributed Programming (Part 2)

Mitch Barnett shows how far he has got with his web based distributed IDE for IronPython, and explains his plans for the future (including a release schedule as Open Source): A Web Based IDE for Distributed Programming (Part 2)

DebuggerTypeProxy for IronPython Old Style Classes

Haibo Luo shows how to use the DebuggerTypeProxyAttribute to make debugging IronPython easier in Visual Studio: DebuggerTypeProxy for IronPython Old Style Class and Instance

IronPython, Visual Studio & WPF Designer

Aaron Marten explains how to get the IronPython integration sample working with Visual Studio with WPF Designer: IronPython Integration Sample and the WPF Designer

Simpler Method to Get Logical Drives

Steve Gilham finds an easier way of listing the logical drives with IronPython (one that also works on Mono): Simpler method to get logical drives

IronPython Telnet Controller for LiquidSoap

R Tyler Ballance shares a Telnet client written in IronPython (using Windows Forms and targetting Mono) for controlling an icecast2 music streaming server via LiquidSoap . Hacking with IronPython

Logical Drive Enumeration in IronPython

Steve Gilham reveals some of the magic of the System.Management assembly. http://stevegilham.blogspot.com/2007/07/logical-drive-enumeration-in-ironpython.html

Building FePy on Mac OS X

My description of the steps I went through to compile FePy from source on Mac OS X: Building FePy on Mac OS X

WPF Examples

Steve Gilham has posted some IronPython examples of using WPF, translated from some IronRuby examples: Hello WPF in IronPython Steve also has another blog: Tinesware . This has example code for a program that calculates hashes of files by dragging and dropping onto a window (code for Python, Jython and IronPython) and also a screenshot of an FTP program he is writing with IronPython.

Silverlight 1.1 Refresh

There is a new release of Silverlight 1.0 out, version RC1. Silverlight 1.1, which has the DLR / IronPython integration has also had a 'Refresh' released (which apparently is different from a new version somehow). This upgrades Silverlight 1.1 to use the new Silverlight 1.0 RC1 core. This does change the Sivlerlight activation model, so may break some code. Microsoft Visual Studio Orcas has also had a new release - beta 2. This is the version of Visual Studio that can compile assemblies and build projects for Silverlight. The beta versions are free, but of course are windows only. Tim Sneath has details and download links for all of this: Silverlight 1.0RC1 is Here

IronPython License Submitted to the OSI

Microsoft have submitted their Shared Source Licenses to the OSI for approval as a recognised 'Open Source' licenses: Intelligent Design, the OSI and Microsoft There is now part of the Microsoft website devoted to open source , plus a blog from thier open source labs called Port 25 .