The forthcoming Porcupine release includes a whole new bunch of exciting features and improvements. This is a list of the most significant:
Before releasing Porcupine v0.6 I have conducted a series of stress tests using Pylot. The aim of one of these stress tests was to benchmark Porcupine under extreme race conditions.
The latest release of FileTrack, a Web enabled communication log that helps you to monitor all of your inbound and outbound documents, is now available for download. This is mainly a compatibility release being fully compliant with the API changes introduced in the latest Porcupine release (v0.6).
At last the new version of Porcupine is released. During the past months, I have put a lot of effort for making this release finally available. It includes a new whole bunch of new features and improvements, mainly aimed towards scalability.
Extensive stress tests of the new Porcupine version using different configurations for Berkeley DB have shown some interesting results. Here are some tips for configuring Berkeley DB in order to get the most out of it when used for web applications.
The Porcupine Subversion repository will no longer be maintained. I have recently moved the repository to github. There you can find all the new exciting features for the upcoming release (hopefully to be released this month) including:
- Multiprocessing support for Python 2.6
- Database indexes
- QuiX namespaces with backwards compatibility i.e. "Label" is now "QuiX.ui.Label"
- Support for QuiX themes
- A lightweight rich text editor
- Support for Opera 9, Safari 4 and IE 8
- Conditional Etag support
- Persistent data sets on the client side using PersistJS combined with the 304 (Not Modified) response code for POST requests (remote method calls).
- Redesigned transactions
- Database and cookie based session managers
- New optimized web connectors (including out of the box support for mod_wsgi)
- and many more...
The new repositories can be found at http://www.github.com/tkouts.
Recently, RWW posted a very interesting article about the new breed of emerging databases for massively scalable internet applications (http://www.readwriteweb.com/archives/is_the_relational_database_doomed.php). Examples of these kind of databases include Amazon's Dynamo and their newest release called SimpleDB, CouchDB, HyperTable, and of course Google's AppEngine Datastore which is based on Big Table.
In one of the previous Porcupine releases I decided to add the Python's __slots__ class attribute to every class which is schema related. This was done in favor of smaller memory consumption since these classes don't have a dictionary (the __dict__ attribute) for keeping instance variables.