User:ZxPezz/ZxApp IT

ZxApp IT was a hierarchical organizer/outliner that focuses on acquiring, organizing, maintaining, retrieving, and particularly on using information. Users can re-purpose information using templates, reports, and ad-hoc scripts that are written in a scripting language similar to Java. ZxApp IT also has an in-memory Relational Database, Content Management System, and Document Management System. The goal of ZxApp IT is to help end-users create their own solutions. The Personal Information Management functionality offered by this product is constructed using the end-user development functionality built into it. This flexibility means that end-users can derive personal productivity solutions entirely unrelated to Personal Information Management. Some examples of other things that can be done with ZxApp IT include: create a book, a web sites, or a custom database application. ZxApp IT is available as freeware. A professional version is also available.

Virtual File System
ZxApp IT organizers are file-based, meaning that users open an organizer file to edit the content. All of the database records and documents in the organizer hierarchy are loaded into memory when the organizer file is opened. Users can also embed external files into an organizer. Files embedded into the Document Management System are NOT loaded into memory until they are used. This means that an organizer can be used as an Archive file program similar to how one might use WinZip. ZxApp IT is capable of handling very large organizer files comprised of many gigabytes embedded into it without significant performance degradation of read or write operation. This is in contrast to the ZIP archive format, which experiences performance degradation in write operations due to the contiguous nature of the ZIP format. The underlying Virtual File System, ZX-VFS, uses a random-access approach, analogous to how most file-system works. For this reason, organizers need to be "condensed" after files are deleted from the virtual file system. ZX-VFS uses gzip to compress individual files, but the archive cannot be read by other gzip programs. ZX-VFS is free and open source. The archive format itself is also free and open.

Database
A ZxApp IT database does not use a table-based approach like most relational databases. Instead, each record is declared using a data object notation. This means that records can stand alone and they can be embedded directly into the text of an organizer node. Records can also be placed into a database node to protect their referential integrity. The ZxApp IT database supports unique, composite, and foreign keys.

End User Development
Users can create ad-hoc scripts, report scripts, export scripts, and function libraries. Ad-hoc scripts are written inside of the WYSIWYG editor. Users can evaluate expressions, assign variables, and declare functions inside of rich-text. Report scripts are used to produce single-file or single-node output. They are accessed within the organizer properties dialog. Export templates are used for producing external files, such as web sites, PDF files, or any other type of output. Export templates are "installed" and become accessible by all organizers by placing script files into the appropriate directory. A function library is a collection of properties and functions that can be used within all of the above mentioned scripting types. Function libraries are written in the Java programming language and compiled into JAR files for distribution. They become available to users of ZxApp IT by placing the JAR file in the appropriate directory. They have full access to the Java API and can be used to implement just about anything, from enterprise database integration to full GUI applications.

Developing Web Sites
ZxApp IT uses HTML as its default markup. For this reason there is very little effort to export an organizer to a web site. It offers a dramatically simplified methodology for intra-site linking that allows for seamless reorganization of content. A templating system allows organizer navigation and look and feel to be dramatically altered at the time of export. The templating system is designed to support third party development of templates, so that users may eventually be able to select from pre-existing templates, rather than develop their own.

XHTML Compliance
The WYSIWYG editor is derived from the standard JTextPane from the Java API, meaning it does not directly support XHTML. ZxApp IT compensates by converting nodes to XHTML 1 transitional as they are exported from the organizer. ZxApp IT also supports non-WYSIWYG nodes for complex web site development.

Encryption
Organizers can encrypt sensitive data using PKDS #5 v2.0 (which is MD5 Hashed Password Based Encryption with DES).

Lessons Learned
Though ZxApp IT was very flexible, it required too much programming expertise for the casual user. On the other hand, power users were more likely to choose one of the many free and standardized general purpose programming languages available today. The lesson to be learned from this is that an independently developed application must have the following to gain adoption:


 * A strong and clearly identified purpose.
 * Be immediately productive and accessible to end-users.