TM Your flash drive is now a web 2.0 server.

Why airWRX?
How it WRX
Prototype Guide
SVG Terminal
Network Improv
Email Us

Prototype Guide

This prototype is intended to solicit feedback on the airWRX user environment and software architecture. We invite developers who find airWRX relevant to their applications and markets to send us input and let us know how airWRX can meet their needs. airWRX should be ready for trial development projects in mid 2006.

Getting Started

After downloading, plug your flash drive into your PC. Usually the drive appears as Removable Disk E: Open the zip and drag airWRX.exe and airwrxdata (a folder) to the top level of the flash drive. Open the flash drive folder. Launch the airWRX client by double-clicking airWRX.exe on the flash drive.

The client displays three lines of text when launched:
  Listening for airWRX Server
Right-Click to Change Local airWRX Server Path
Click to Start Local airWRX Server from E:\
Launch the airWRX server by clicking the mouse anywhere in the client window. If your flash drive is not E: the last line begins with "Watching for" and you must right-click and use the file dialog to select airWRX.exe on your flash drive, then click to launch it.

After a brief pause your should see a browser-like display with the airWRX logo in the upper-left corner. We suggest that you maximize the client window to get the full airWRX experience. The prototype dataset provides a guide to airWRX environment that you can walk through in airWRX. To stop the airWRX server, simply pull out your flash drive. You should see the client revert to the listening state.

To experience the multi-client environment, copy airWRX.exe from the zip to another PC on the local network. (You can also start the client on other PCs from the flash drive before starting the server anywhere.) Launch airWRX.exe on that PC. It should display the airWRX logo page within a couple seconds.

Note: The prototype has not been extensively tested, so you are somewhat likely to encounter a crash and other glitches. Crashes are pretty unlikely to corrupt or lose data, so you can restart and pick up where you left off.

A flash drive is not absolutely required to run airWRX. You can place airWRX.exe and airwrxdata in a Local Disk folder and start airWRX as above. To stop the server in this configuration, drag the file flag.txt out of the airwrxdata folder, e.g. onto the desktop. Within a couple seconds the server will quit and the client will return to the listening state. You must then drag the flag.txt file back into the airwrxdata folder!

The Code

If you haven't read How It WRX already, we recommend that before reading further...

Full source code to the prototype is included in the download package, in the airWRX-source folder. The project files are for Visual C++ 7.0. To build it, open the file airwrx.sln, and set the configuration to Release and the active project to airwrx. At present, the project builds a single executable which includes server, Layout Manager, four content editors, and SVGTerm.

The executable can be started as a client or server; as a server it starts a thread for the Layout Manager and each content editor. In our next release content editors will be shared libraries, and the server will start a separate process for each content editor. New content editor libraries will be installable while the server is running.

The SVGTerm implementation is very spare. Supported SVG elements include rect, flowtext, clip, group, image, cursor, and some new elements required for multi-client operation. Flowtext is limited to plain text without hyperlinks in a rect with a single horizontal flow gap. We are considering revising an open source SVG engine to support the SVGTerm protocol. We plan to submit SVGTerm for consideration by the SVG group of the W3C. We hope that SVGTerm will ultimately be supported in common implementations of SVG, allowing the airWRX client to simply invoke a shared library.

The XML data management engine is not implemented yet. Its purpose is to let developers focus on content and user interface issues, not storage and memory management. It will be our next major development effort, and we are considering revising a popular open source XML parser/DOM to include persistence, auto-save, undo/redo, and version control.

The UI widget set is also very spare at this point. In addition to other widgets it needs a mechanism to automatically handle input events stemming from widgets. The airWRX Scene and Widget APIs will ultimately provide rich hypertext editing built on SVGTerm's rich text rendering, so content editors will get full-fledged text features for free.

For a long list of features in design/development, see In the WRX.