What is WODA?
WODA is a powerful database engine written in PERL by Ziga Turk. WODA (or water) is simple to use, powerful, fast, open and extendable. You can use WODA to provide the entire web interface - that's what you're looking at now - or you can use it as a database backend and query it using it's own set of tools, including QRY, FLD, ROWS and more.
I love WODA, it makes the job of collecting, publishing and distributing information straightforward.
Is it simple to Use?
Some knowledge of PERL is expected. Given that, it is a very simple program to use. Most of the work is going to be done for you. This site is an example of a simple installation. It was necessary to set values for the eleven "essential" variables, which are path names and contact details for email. A simple WODA site can be built from scratch and running in about an hour. In fact, writing the text for this page took longer than the setup and configuration of the WODA database definition files. This interface is a barely modified version of the default. You can see how well it performs "out of the box." As you use the site, keep that in mind.
Is it Powerful?
To build this site I wrote the text for this page and set eleven variables *, plus a few changes to the style sheet. Everything else is default code. WODA is incredibly fluid. The interface is capable of being altered to suit your tastes while maintaining a database that is able to be searched using regular expressions or a built-in QUERY tools. In fact, layout and stylesheets, etc, are up to you. Follow the ring of web pages to see how WODA is being applied.
* At the time I set up the database that was true and the site was running satisfactorily. At this stage the number of variables around 25. Modifying a WODA database/web site is so easy that many changes can be made on a whim.
Do you need a web site that is capable of separating your data from the formatting and layout? WODA has so much scope. It provides a fantastic set of tools that require little effort on your part. If you have the skills and interest to write HTML & CSS code, WODA will work wonders for you. This layout was achieved by tweaking the default style sheet. Follow this link to see what the default style sheet looks like. However, WODA allows you to do much more than tweak the stylesheet. It is designed to allow you to control every aspect of the interface; or to supply values for page elements in a modular fashion; or a mixture of both. Change the icon set for one of your own design to achieve the most complete transformation.
Is it Fast?
How fast is WODA? Very fast. WODA is a highly optimised code module, in addition it uses data caching for searches and queries to maximise its efficiency. As an example you could load the FAQ List of Q & As and check the times at the foot of the source code. You'll see the compile time for PERL, then the incremented time for eighteen searches and the print to screen recorded there.
Is it Open Source?
This is one of WODA's most powerful features. If you have any skill in PERL you'll be able to modify WODA to your heart's content. There are dozens of built in functions, there is a PERL API, an XML API and a CGI API. The CGI API will allow you to plug in your own code. WODA is designed to give precedence to plug-in code. There are no difficult hooks. You don't have to touch any of the default modules. Simply make a copy of the "cgi*" function that you want to modify and name it "my*" function. Make all the changes you want. The plug-in code is given a higher precedence, if "my*" function exists the default "cgi*" code isn't even called into memory.
This page is an example of the open nature of WODA. The link calls a standard function, "About," however I've included a "myAbout" function in the database definition file. The "my*" function takes precedence over the default function "cgiAbout." "myAbout" allows me to control the page display, but if the "display=cgi" parameter is present the default cgi* function is used - try it - "myAbout" is eleven lines of code in all.
Is it Extendable?
You aren't limited to the feature set that is built in. If you don't see what you want you can build it. This allows you to develop highly specialised functions while taking advantage of the solid core modules. The core module will incorporate any "my*" functions that you care to develop. You can extend WODA by creating new functions, simply pop them into the code directory with a "my" prefix and call them from the browser or the command line. You don't need to touch a line of the core code, they'll be incorporated seamlessly.
Both the FAQ Index and the FAQ List of Q&As were incorporated using this feature. Neither of those CGI commands are part of the standard WODA toolbox.