Quelques nouvelles de python: Django, Python 3000, Ironpython, Zope/Plone
Posted by patrick sur décembre 17, 2007
Quelques nouvelles du monde python
- python 3.0
– http://www.holovaty.com/blog/archive/2007/12/12/1311(« It’s here! At long last, the print copy of the Django Book has shipped. I received my author copies late last week and am still poking at them to make sure that, yes, a tangible book with my name on the cover has actually been printed, on real paper, by a real publisher. Now that the Django Book is finally in the can, I’m mulling the idea of writing another book — this time, a book about online journalism. In the past two years, I’ve been to (way too) many journalism-related events and conferences trying to spread the good word about « journalism via computer programming, » and I’ve detected a strong, I daresay furious, demand, from journalists at all levels in the org chart, for information about this new form of journalism. Higher-ups want to know why I want to take a shot at writing a manual, a manifesto, a practical guidebook to this emerging discipline of database-driven Web journalism. It would be a combination of high-level strategy and low-level technique, probably split cleanly into two parts (one for the suits, one for the non-suits) they should employ programmers; middle managers want to know how to find them and how to treat them; and working journalists want to learn these skills and strategies. The problem is that I can’t point them anywhere for in-depth information. This book would attempt to solve that. . »)
- http://www.artima.com/weblogs/viewpost.jsp?thread=220341 (« This is just a quick post to let everyone know that Python 3.0a2 is released as of 10:30am PST (18:30 UTC) today (Friday December 7, 2007). I’m grateful to the many people who have contributed to this release, in particular new core developers Christian Heimes and Amaury Forgeot d’Arc.GHOP contestants who contributed documentation updates, and to Georg Brandl for collecting these and submitting them to Subversion. There are still many more tasks available! However, I do want to mention that based upon the feedback for 3.0a1, we’ve decided to make the ‘bytes’ type immutable, and create a separate mutable bytes type, ‘bytearray‘. These two types are mutually compatible, but in the majority of cases you’ll be using bytes, not bytearray. I should also note that we’ve run into an issue with the Windows installers — see the release page above. If anyone can help this, please write to python-dev at python.org. (The script that creates the installer is in the distribution as Tools/msi/msi.py.) And finally, a word of thanks to all the participants « )
- http://simonwillison.net/2007/Dec/16/chapter/ (« Chapter 7: Form Processing. The chapter on newforms I contributed to “The Definitive Guide to Django” is now online, along with the rest of the published book. »)
- http://www.lethain.com/entry/2007/dec/04/two-faced-django-part-1-building-project-exists-si/ (« This series of articles aims, in the clear step-by-step style of the Django tutorial, to take you through the process of building a Django application that exists as both a simple web application, and also as a Facebook application. The web and Facebook applications will store information in the same database, using the same models, and thus users of one interface will be able to interact with the other.« )
- http://simonwillison.net/tags/python/ : un excellent recueil de nouvelles sur Django
– http://encolpe.wordpress.com/2007/12/02/archgenxml-et-le-futur-de-la-generation-de-code-sous-zopeplone/ (« ArchGenXML et le futur de la génération de code sous Zope/Plone. Cela faisait un bon moment que je n’avais pas écrit un billet ici… et pour cause: on temps libre est principalement occupé par le développement et les tests de la version 2.0 de ArchGenXML. Contrairement à la version 1.5 qui ciblait Plone 2.1avec une compatibilité Plone 2.5 cette version est construite autour du support de Plone 3.0 avec une compatibilité vers Plone 2.5…Les buts atteints de cette version sont le passage en egg de ce module, le support des profils Generic Setup , la génération des interfaces Zope3, la génération des tests unitaires et des tests fonctionnels en python et au format doctest. Des gros changement en perspective, et une incompatibilité avec la génération précédente. Nous restons bloqués en phase d’évaluation béta par manque testeurs. Nous cherchons en particulier des testeurs pour la partie génération de workflows…Du coté du futur de la génération de code, ArchGenXML génère déjà du code Zope 3 (pour son utilisaton dans Plone) et d’autres projets de CMS en python commencent à s’intéresser à cette possibilité (voir la branche Django)…L’autre nouveauté, plus contraignante celle-ci, est l’utilisation de nouveaux connecteurs dans les schémas UML pour symboliser les ‘adapter’. Les versions précédentes d’ArchGenXML se satisfaisaient d’éditeurs utilisant UML 1.4 et il faut à présent des éditeurs utilisant UML 2.0 au minimum pour cette nouvelle fonctionnalité. Exit donc les éditeurs tel que ArgoUML qui était le seul éditeur UML libre supporté…Pour l’instant nous allons continuer d’utiliser ArgoUML et Poseidon pour le développement des fonctionnalités d’ArchGenXML. En un mois j’ai testé umbrello, gaphor, Apollo pour eclipse et Papyrus. Papyrus est vraiment très intéressant et est développé au CEA. Mais cela reste une extension d’eclipse donc il faut faire du Java pour générer du Python… c’est un peu dommage.« )
– http://www.voidspace.org.uk/python/weblog/arch_d7_2007_12_08.shtml#e899 (« the last few days I’ve been off work trying to get a chapter on Windows Presentation Foundation finished. I haven’t got as much of the writing as I would have liked done, but I have finished the research and completed two of the three examples. WPF is great for creating funky user interfaces, and comes with some great controls. Despite the emphasis on XAML it is also easy to use from code…More importantly, two more chapters of IronPython in Action are available in the Manning Early Access Program. I’m pretty proud of these chapters. Chapter 7 is on testing with IronPython (including functionally testing a GUI application) and chapter 8 is about deeper aspects of Python and interacting with the .NET framework. The information in section 8.4 is vital to any non-trivial interaction with .NET so I’m glad it has gone live…WPF FlowDocuments are cool by the way, very high level document viewing controls for very little effort – but another new markup to learn (a subset of XAML) to use them« )
– http://www.voidspace.org.uk/python/weblog/arch_d7_2007_12_08.shtml#e898 (…My talk is Python in your Browser with IronPython & Silverlight, the second one on the list!
Silverlight is a new browser plugin from Microsoft. It is intended for media streaming, games and rich internet applications. It is cross-platform and cross-browser and comes with a rich programmers API.
Through the Dynamic Language Runtime, Silverlight is fully programmable with IronPython – meaning that at last client side web applications can be written fully in Python. This talk will explore some of the things that you can do with IronPython in the browser.
This includes making web apps run faster, writing ‘rich’ applications (or games), and embedding a Python interpreter into web pages for tutorials and documentation.
It is a good year for IronPython talks (and so it should be). As well as my talk there are:
- IronPython: The Road Ahead (48 – Jim Hugunin)
- End-user computing without tears using Resolver, an IronPython spreadsheet (65 – Giles Thomas – the Resolver boss!)
- Using .NET Libraries in CPython (103 – Mr. Feihong Hsu – a talk on Python.NET which definitely deserves more attention and is related to IronPython)
There is also a talk by another Resolver developer (not on IronPython though):
- Getting started with test-driven development (5 – Jonathan Hartley)
It should be a great conference. « )
– http://www.resolverhacks.net/ ( » Resolver is a powerful tool for collecting, handling and analysing ‘business data’. It inhabits the space somewhere between a traditional spreadsheet and a Rapid Application Development tool. With Resolver you can use the familiar spreadsheet interface to create applications, build powerful spreadsheets pulling in data from databases and financial data-streams, or implement business logic to be integrated into other IT systems. Its power and flexibility comes from the fact that it is fully programmable with Python code, using the .NET framework. This means that you can use just about any .NET or Python library within your spreadsheets. You can also easily develop libraries of functions and classes to be shared between your spreadsheets. Spreadsheets can be exported as code, enabling you to re-use business logic with other Python or .NET applications.…Resolver has a few other novel features, like shared worksheets which can be editted simultaneously by multiple users on different machines. We’re sure that new and innovative uses for Resolver will develop, and hopefully this website will help uncover some of them! Resolver can import and export data from Excel, and there are interesting tricks for communicating with or even driving Excel. You can also reference cells inside an Excel spreadsheet from a Resolver spreadsheet.For a longer overview of the features of Resolver, read Resolver: What and Why?. »)
– http://www.voidspace.org.uk/python/weblog/arch_d7_2007_12_08.shtml#e897 (« The version released was 1.0 beta 4. This includes quite a few major changes since I last updated you about progress with Resolver. One of the major changes was that we made the API for working with spreadsheet objects simpler from user code. This was a lot of work, but I think it was worth it. The very worst side effect was that it broke most of my examples on the Resolver Hacks website. Today I have finally got around to updating it and putting new screenshots in (Resolver got prettier):
There are around thirty pages of articles and examples to get you going with Resolver. Some of the most useful ones are:
- Cash Balance – an Example to Get You Started
- Exotic & Custom Data Types
- Fetching Data From the Web
- Charting with Zedgraph
- Bugs, Features & Futures – A Look at the Future for Resolver« )
– http://www.ironpython.info/index.php/Main_Page (« This wiki contains recipes and example code for IronPython. IronPython is a Microsoft port of the Python Programming Language to the .NET framework.
Python is a dynamic language, used for a wide variety of purposes, with an emphasis on clean and expressive code. It allows the maximum flexibility for the developer, whilst maintaining readability of code.« )
– http://www.manning.com/foord/ (« IronPython in Action offers a comprehensive, hands-on introduction to Microsoft’s exciting new approach for programming the .NET framework. It approaches IronPython as a first class .NET language, fully integrated with the .NET environment, Visual Studio, and even the open-source Mono implementation. You’ll learn how IronPython can be embedded as a ready-made scripting language into C# and VB.NET programs, used for writing full applications or for web development with ASP. Even better, you’ll see how IronPython works in Silverlight for client-side web programming. IronPython opens up exciting new possibilities. Because it’s a dynamic language, it permits programming paradigms not easily available in VB and C#. In this book, authors Michael Foord and Christian Muirhead explore the world of functional programming, live introspection, dynamic typing and ‘duck typing’, metaprogramming, and more. IronPython in Action explores these topics with examples, making use of the Python interactive console to explore the .NET framework with live objects. The expert authors provide a complete introduction for programmers to both the Python language and the power of the .NET framework. The book also shows how to extend IronPython with C#, extending C# and VB.NET applications with Python, using IronPython with .NET 3.0 and Powershell, IronPython as a Windows scripting tool, and much more.« )
– http://ironpython-urls.blogspot.com/2007/12/mono-boo-python-gnome-ironpython.html (« Mono, Boo, Python, Gnome & IronPython. Miguel de Icaza has a blog entry responding to an article on ‘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).« )
Produits, bibliothèques Python
– http://wiki.secondlife.com/wiki/Eventlet (« Eventlet is a networking library written in Python. It achieves high scalability by using non-blocking io while at the same time retaining high programmer usability by using coroutines to make the non-blocking io operations appear blocking at the source code level.
- Example code: Eventlet/Examples
- Subversion repository: http://svn.secondlife.com/svn/eventlet
- Trac page: http://svn.secondlife.com/trac/eventlet.
Eventlet runs on Python version 2.3 or greater, with the following dependenceis:
- (if running python versions < 2.4) a deque object in a
collectionsmodule. One option is to copy this deque into a file called
Eventlet began life as Donovan Preston was talking to Bob Ippolito about coroutine-based non-blocking networking frameworks in Python. Most non-blocking frameworks require you to run the « main loop » in order to perform all network operations, but Donovan wondered if a library written using a trampolining style could get away with transparently running the main loop any time i/o was required, stopping the main loop once no more i/o was scheduled. Bob spent a few days during PyCon 2005 writing a proof-of-concept. He named it eventlet, after the coroutine implementation it used, greenlet. Donovan began using eventlet as a light-weight network library for his spare-time project Pavel, and also began writing some unittests.
When Donovan started at Linden Lab in May of 2006, he added eventlet as an svn external in the indra/lib/python directory, to be a dependency of the yet-to-be-named backbone project (at the time, it was named restserv). However, including eventlet as an svn external meant that any time the externally hosted project had hosting issues, Linden developers were not able to perform svn updates. Thus, the eventlet source was imported into the linden source tree at the same location, and became a fork. Bob Ippolito has ceased working on eventlet and has stated his desire for Linden to take it’s fork forward to the open source world as « the » eventlet.« )
– http://www.artima.com/weblogs/viewpost.jsp?thread=217546 (« The Python Quick Reference has been the most excellent resource for many years, because it gives you an overview of the entire language and usually allows you to quickly find the solution you’re looking for. If it doesn’t, it has links directly into the Python documentation. Just so Richard Gruet and the others who work on the PQR know, you have lots of fans out there. Thanks for all your work…Before you fire up your comments, I continue to root for Ruby. I think it’s great that Sun is directly supporting it as the scripting language for the JVM (as far as I know none of the other languages are actually getting financial support). I am also attracted to the more dynamic features of the language like open classes and the like. As far as dynamic languages on the JVM, both Ruby and the upcoming new version of Jython seem to me to be the most attractive of the offerings.But to make Ruby easier, I suggest that Rubyists study from and plagiarize the PQR, and also learn from the « batteries included » approach in the Python standard libraries. Both of these are things that keep me going back to Python« )