IronPython was one of the factors that impacted my decision to attend PyCon. Microsoft are approaching the release of version 2.0 which will have parity with CPython 2.5. The production versions already are close to full Python 2.4 support making it a viable platform for use in a lot of places where I would typically use C#.
Going into the conference I was looking forward to the Sunday session with Jim Hugunin but there turned out to be some more treats for the IronPython developer. Feihong Hsu ran a session on Python.NET and how you can bridge from CPython to the .NET platform, taking advantage of rich Windows APIs. Michael Foord spoke on Silverlight as well as his company's spreadsheet which embeds IronPython.
Feihong organised an open space session for Saturday evening after the PyWin32 gathering to talk about Python.NET and we were joined by the IronPython developers and management (Dino Viehland, Harry Pierson, Jim Hugunin and others). We discussed a number of aspects of IronPython and progress towards the 2.0 release. It looks like this may be complete in October given that they released the first beta last week. Again Michael Foord had something interesting to say on what Resolver Systems are doing.
Michael presented an open source project called IronClad. This is quite an insane assortment of code from C# to Python to assembler all in the name of accessing Python modules written in C. To date they have the bzip2 module running but are working on support for modules like NumPy which are important to their customers.
After the open space session we headed into Chicago for dinner at India House. This gave us a chance to find out some more stuff about the IronPython implementation, and other factoids. Dino hinted that he was working on getting Django up and running. Little did we know he was going to be demoing this to the crowd on Sunday.
Sunday saw Jim's big talk and I managed to get a few photos. It wasn't easy, but I think these turned out a bit better than earlier shots at the conference. Dino showed off the fairly minimal changes needed to get Django running on IronPython and Jim demoed the IronPython interpreter running under Dynamic Silverlight.
After the keynote, Dino gave a me a quick run through of the IronPython and DLR source code. This was very interesting and it gave me a real step up in understanding what goes on under the covers. Thanks Dino!
With the dollar to sterling exchange rate reaching the 2:1 point I decided it was time to take the plunge on a new laptop. My last Mac was a PowerBook G4 and it still serves Sarah and I well - but it's really awful for running Windows virtual machines. The regular MacBook is a nice machine, but I prefer a higher screen resolution and Sarah has had some bad things to say about the build quality. So the only option is the MBP. Apple were rumoured to be releasing an update based on their 45nm Penryn CPU in January, but it was pushed back to a few weeks ago. When they did update the line they also added a multi-touch trackpad like that found on the MacBook Air.
I bought the base MBP with a view to upgrading the RAM myself. I was going to go with the regular matte screen but I got the glossy one instead. In some conditions there are definitely reflections, but I was used to this on my Dell XPS M1710. Photographs and video are gorgeous. I haven't tried any games yet so I'm not sure how the 256MB graphics card will run them.
Battery life is much better than my Dell machine. This is good because unlike the Dell, I can actually use this machine on the move. Apparently the Penryn chip uses a lot less power than the one used in previous versions. The Leopard operating system has some nice additions such as Spaces and Time Machine. These definitely run better on an Intel Mac.
Perhaps the biggest test has been running Windows 2008 in a VMware Fusion virtual machine. The configuration is virtually the same as that on Windows or Linux, but they have added some 3D rendering capabilities which are not present in the workstation product. Obviously the user interface is very Mac-friendly and fits in well. Performance has been more than acceptable on the 5400 RPM internal drive. My next test will be running Visual Studio 2008 under Unity. Whilst it sounds neat to be able to use Windows applications interchangeably with Mac ones, I'm wondering if there will be major startup delays and the like.
Today was the Python tutorial day. Given that I haven't spent a lot of time reading or writing Python code I thought it would be a good idea to attend some of these tutorials. Since they kicked off at 9am it was a bit of a challenge making it on time. My Southwest flight from Philly last night arrived late, and then I had a big trip around to the other side of Chicago. If you need to attend a conference near O'Hare, try to fly into that airport. All I wanted to do was to lie in bed for a few more hours :)
When I made my tutorial selections I was hoping to attend a Python for Java Developers session. This would have been useful given my experience with C# but it seems that I was in the minority and it was cancelled. I switched to the Django session but I think I may have been better attending the session on performance optimisation.
Registration wasn't too busy today since the main conference crew won't arrive till Friday. I got a PyCon bag and some flyers but the T-Shirts weren't ready. Apparently they'll be available tomorrow, I'd hate to miss out on one!
Python 101 Tutorial (Steve Holden)
It turns out that Steve was another British ex-pat living here in the US. It gets weirder in that he lectured at Manchester University for a number of years. Given Steve's position in the community I expected a sharp introduction to Python. It didn't disappoint and I picked up a fair bit. The 'slice' mechanism looks really useful, I wonder if it can be implemented with any of the new C# features?
Getting Started with Django (Jacob Kaplan-Moss)
I was expecting this session to be a little more exciting. Jacob has some fine ideas about how Python frameworks should be built but his presentation style is not as striking as DHH. Since this was an introductory session I can't complain too much but I really want to hear some more about Django deployment and debugging over the next few days.
Internet Programming with Python (Wesley Chun)
At this point I was pretty exhausted. This tutorial seemed to be geared toward newbies to network programming, rather than a best practice session on leveraging Python for internet programming.