Weblog » Porcupine v0.5 is released. More Pythonic, more productive.
This release is a major breakthrough for Porcupine. The two main new concepts introduced on the server side are the services and the web methods. Porcupine's architecture is now based on configurable services running over a common object database. Currently, the supported service types include an asynchronous network server and a scheduler used for executing Python code at predefined fixed intervals. In the upcoming releases there are plans for new service types to be added including persistent queues, loggers etc.
Web methods have replaced servlets completely and they are actually smart Python decorators which allow you to add methods to content classes dynamically (a technique also known as 'monkey-patching'). These methods become directly accessible over HTTP and they are mainly used for serving all kinds of UIs and RPC requests. Consequently, this release does dot include servlets of any type meaning that you have to migrate your applications manually.
Another major productivity enhancement is that this release no longer requires heavy XML file editing. Thanks to web methods, the "store.xml" is no longer used and the "config.xml" files for each published directory can now contain smart registrations with regular expressions matching becoming a powerful rewriting engine.
Other improvements include support for pre-processing filters, more memory efficient object sets and type safe data types.
On the browser side QuiX has become less resource intensive by using a pooled set of XMLHTTP objects and improved garbage collection. Last but not least, the scroll bars bleed through issue on MacOS Firefox browsers is now resolved.
The upgrade process is the usual and is quite straight forward. The following wiki pages contain useful information: