I'm happy to announce the brand new release of Porcupine Web Application Server, including a new whole bunch of new features and improvements, mainly aimed towards scalability.
Porcupine Web Application Server is a Python based framework that provides front-end and back-end technologies for building modern data-centric Web 2.0 applications.
The server now supports multiple processes by using the "multiprocessing" module firstly introduced in Python 2.6.
The Porcupine database now supports indexes declared at a server-wide scope inside the Porcupine configuration file (porcupine.conf). Currently, the indexes are used for common database usage patterns such as getting the children of a container, but not yet fully leveraged by OQL (the server's query language).
The Etag HTTP header is now fully supported for static files. For dynamic requests a new pre-processing filter is included that allows conditional Etags, meaning that an Etag header will be generated only if a user predefined condition is true.
The Porcupine API is partially aligned with Python's PEP 8. The majority of the API calls are no longer camelCase and such calls are considered deprecated (i.e. the Container's getChildren method is now get_children). Check the server's log thoroughly for deprecation warnings and make the appropriate changes.... read more
Porcupine Web Application Server is a Python based framework that provides front-to-back revolutionary technologies for building modern data-centric Web 2.0 applications.
This release includes the brand new version of QuiX supporting the latest releases of Firefox, Safari and Chrome browsers along with enhanced list views and a new effects module.
On the server side the db_backup.py utility is renamed to porcupineadmin.py and the database recovery is no longer attempted during the server start up process. Database recovery is now done by using the porcupineadmin.py utility with the -c switch. This allows multiple processes to access the database at the same time. Consequently, prior to installing or uninstalling an application with the "pakager.py" utility no longer requires the server to be stopped and then later re-started.... read more
Porcupine Web Application Server is a Python based framework that provides front-to-back revolutionary technologies for building modern Web2.0 applications.
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.... read more
This release is mainly a bug fix release, which improves the overall stability of Porcupine. On the server side apart from a couple of annoying bugs being fixed, there is no new feature added.
Unlike wise, QuiX includes quite a few important updates. It is now possible for the engine to render semi-transparent widgets by defining their opacity attribute. Drag and drop functionality is also supported by introducing draggables and droppables. Although this functionality is there, it is not yet utilized by the Porcupine desktop.
Another new major productivity enhancement is that you can now define the QuiX namespace as the default one; this means that there is no need for namespace declaration (those strange "a:" before each node's tag name) for each one of the nodes of a QuiX document.
There is also a new flow box widget, which automatically re-arranges its contained widgets in wrappable rows based on its size.
Additionally, have a look at the custom QuiX widgets created for the Porcupine desktop. These widgets include ready made editors for the "Relator1" and "RelatorN" data types and a custom widget for editing each object's security descriptor. They will help you understand how to create your own custom widgets.... read more
The inno:script team is pleased to announce the release of Porcupine 0.1. After twenty three months of constant development this is the first stable release candidate, with plans to go full stable in the next release. Apart from numerous bug fixes and optimizations, this release also includes a new bunch of exciting and longly awaited new features.
Porcupine now supports synchronous event handlers per object type and the native data types have been enriched by a new data type supporting links to external files, that reside on the file system. This release also introduces personal repositories used for keeping each user's personal items.
On the UI side, QuiX supports tooltips, third party custom widgets and dynamic loading of external stylesheets. Furthermore, a new slider control is added to the growing list of the controls available out of the box. It is also worth mentioning that widget redraws are optimized by using a far more efficient algorithm.... read more
The inno:script team announces the new release of Porcupine server. This release introduces remarkable new features on the server side including a configurable in-memory object cache and a new post-processing filter for easy output internationalization. Due to the method decorators used, Python 2.3 is no longer an option. We also recommend sub-classing the new type of QuiX servlet (XULSimpleTemplateServlet) instead of the XULServlet class. The new type takes advantage of the new Python "string.Template" module, resulting in simpler and more readable QuiX templates.
By default, the object cache is configured for keeping up to 500 objects. You can change this setting by editing the main Porcupine configuration file. Also keep in mind that each post processing filter is now declared as a child node of its registration. See the store registrations "store.xml" file as a usage guideline.
On the browser side, QuiX adds minor improvements to better support Internet Explorer 7 but also includes many minor bug fixes. Last but not least, the rendering performance is greatly improved by minimizing the number of redraws required when drawing new interfaces from XML. As a side effect of this optimization, you might need an extra call to the "redraw" method of some of your dynamically added widgets in order to have them displayed correctly.... read more
The brand new version of Porcupine Server introduces quite a few new cool features and many improvements, that ease and accelerate the development process. Our main goal was to remove any constaints that expect the files of a Porcupine application to reside inside more than one folder trees. As a result, it is now attainable to develop your application working inside a single folder tree only.
The application object was greatly simplified. The application's UI XML definition and its script are now external files instead of having them embedded inside the object. This way, you can edit these files using your favourite editor.
Additionally, the Porcupine desktop includes a new utility called HyperSearch. Use this utility to search the entire Porcupine database for objects that meet specific criteria such as text parts contained in their title or description and their modification date.
The QuiX engine includes a completely rewritten event subsystem, in order to achieve a unified way of attaching and detaching DOM and custom event handlers. Furthermore, QuiX is now compatible with Internet Explorer 7 and includes many perfomance enhancements. Two new widgets are also added to the list of available widgets. An IFrame widget that enables the display of external sites inside the Porcupine desktop, and a group box.
The Innoscript team is pleased to announce the release of Porcupine v0.0.7. Porcupine is an object oriented web application server that features an integrated transactional object database, the Porcupine Object Query Language and QuiX, an AJAX powered XUL motor.
This release includes support for WSGI, the Python universal interface between web servers and web applications. Another new enhancement is the support for HTTP cookies. As a result, the session ID is stored in a cookie, instead of injecting it in the URL. If the browser does not accept cookies, then the session ID is injected in the URL, the same way previous releases did.
QuiX has a new box layout widget and a unified XMLRPC module, contributed by Stanislav Ievlev. Use the box layout instead of non-interactive splitters, as it is significantly lighter. Additionally, QuiX windows support a new "onclose" event, triggered just before the window is closed.
Finally, each user can select an application to be launched automatically immediately after successful login.... read more
It took us quite longer than we expected but there it is. Quill is a visual web interface designer based on QuiX, Porcupine's integrated XML User interface Language. We believe this is a major leap for the web interface design process, as it has become almost identical to this of a common desktop application.
This is an alpha release and as such there are a lot of missing features, but generally you can get things done a lot faster and easier than before. This release supports almost every QuiX widget, giving you full control over it, excibiting all of its editable properties.... read more
This release includes numerous enhancements, but also introduces some major QuiX API changes.
The base widget class (Widget) has been refactored. Most of its attributes have been replaced with getters and setters. Thus, a single attribute change does not require a full redraw.
This release also introduces the term “off-line widget”, a major performance enhancement. It is now possible to detach a widget hierarchy by keeping it in memory, and attach it again, whenever this is needed. So far, six QuiX modules have been optimized using this technique.... read more
QuiX now supports radio buttons and timers (timeouts and intervals). This release also introduces a couple of useful desktop enhancements. The task bar context menu allows the user to minimize all windows or activate the desired window at once. Each user is also capable of choosing the task bar position (top or bottom).
The object query language (Porcupine OQL) is enriched by adding a new function named “instanceof”. This function returns true if an object is a subclass of a given type.
Finally a new dictionary data type is added to the list of the primary data types and the user content class has a new attribute used for keeping his/her preferences.... read more
The Innoscript team is pleased to announce the release of first the Porcupine tutorial.
This release includes the latest QuiX build and also contains an enhanced version of the "pakager" utility. Furthermore, a major limitation which applied to the previous releases, is now removed. In particular, the previous versions required the data type's class name and the Porcupine object's attribute name to be identical. This release also takes care of those having installed the previous release (0.0.3) and wish to upgrade in a straightforward manner.... read more
QuiX Sampler is an application that demostrates all the available widgets implemented, grouped by relevance. It is an excelent introduction to QuiX fundamentals. This release include many widget variations and a couple of simple event handlers.
For more, see http://www.innoscript.org/content/view/33/2/
At last the first beta release of FileTrack is now available for download.
FileTrack is a web enabled communication log, keeping track of all your inbound and outbound documents.
It supports multiple logs, auto-archiving of older entries and generates simple reports based on multiple criteria. One or more log entries, contacts or documents can be grouped together into an issue, for easier monitoring.... read more
This is hopefully the last release before releasing a couple of sample applications. This release includes minor bugfixes and one major enhancement.... read more
This release includes many bug fixes and a couple of cool new features. It incorporates a developer-friendly version of QuiX and an enriched version of Porcupine OQL.
Another obvious new feature of QuiX is the progress bar appearing while QuiX loads external modules, providing a better end-user experience.
Finally, OQL now supports subqueries. Subqueries provide a flexible bridge between Porcupine objects and their relations (joinning).