ANNOUNCE: Rapid Prototyping with DWI/DUI

Linas Vepstas
Fri, 29 Mar 2002 23:41:34 -0600


This is to announce a new tool for rapid prototyping of data-driven
applications:  DWI/DUI (Data With Interaction / Data Under the
Interface).  One uses it to hook up a GUI created with Glade to
an SQL database.  Version 0.1: it works fine, but I don't yet know 
if one can create more than a toy application with it at this point.
But I think its interesting; after all, I wrote it :-)


                     DUI -- Data Under the Interface
                   (aka DWI -- Data With Interaction)

This is a rather basic (simplistic, even) environment for quickly creating 
data-driven applications, that is, graphical applications that manipulate
and show info from a database.  This environment differs from others in
that it is focused on native GTK/Gnome support through the Glade GUI 
designer, and thus allows you to build user interfaces as elegant as 
you can make them in Glade.

At this point, this system is not terribly feature-rich, but it should be 
adequate for creating basic form-editing and reporting applications.
Multiple SQL databases are supported through an ODBC driver.  It should 
not be hard to add a native Postgres driver, or even a non-SQL database 

The actual connection between the database fields and the glade widgets 
is described in an XML-based "DWI" file.  Currently, the only way to create
DWI files is by hand.  In the future, we hope to have an extension to Glade,
or possibly an extension to a database-browsing tool that will allow you
to graphically make such connections.

Note that the design of the XML format is sufficiently generic that it 
is not directly tied to Glade.  It is envisioned that it could be used
to create data-driven web pages.  That is, Glade is currently the only
GUI driver, but other drivers for other GUI's should be possible.

A basic example, with more-or-less complete documentation, can be found in 
the "testbasic.dui" example.  This file describes the database-to-interface 
coupling is in an XML format.   It can be run with the "dwi-run" interpreter:

$  ./dwi-run testbasic.dui

Note, however, you will need to setup the database first.  If you're using 
Postgres, then run the following Postgres commands:

createdb bogus
cat testbasic.sql |psql bogus

You will also need to setup odbc to access this database.

Linas Vepstas
March 2002

pub  1024D/01045933 2001-02-01 Linas Vepstas (Labas!) <>
PGP Key fingerprint = 8305 2521 6000 0B5E 8984  3F54 64A9 9A82 0104 5933