Main Documentation Download


This project is a C/C++ library with a counterpart set of command line programs. Almost all library functions are exposed to the command prompt for the purpose of being able to embed functionality into scripts. The programs provided range in functionality from image editing and xml parsing to simple scripts. Please see the documentation page for a full list of programs and there purpose.

Why was this created?

IOE is nothing more than a collection of utilities that I created for my personal use. They were made to provide console utilities to automate tasks that I performed often.

The library was created because I noticed that many of the programs that I used had similar components to them. I originally put these functions into a tiny library. Later I moved almost all true functionality into the library and left the programs as stubs that call these functions. Since all these functions are fairly small, this seemed to be a logical choice. It would add fairly little overhead to the system and would allow for the creation of more complicated C programs to sit on top of these functions.

The Parts of IOE

    • the library

      • general usage functions

      • text parsing

      • balanced tree

      • image manipulation

      • sequence editing (video editing)

      • xml manipulation

    • the shell utilities: Shell Utility Documentation

      • video editing

      • image manipulation

      • XML file processing

    • the GUI programs

      • gtk widgets

      • xml file viewing and editing programs

      • flashcard program (educational): currently gtk-1.2 and based on an outdated file storage scheme... newer version in works that will support XML like files.

      • Professinator: a game originally based off of this code but that also exists in a stand alone platform portable version.

    • samples of things made with this package – NOT program code.

Using IOE Forms as a database:

More screen shots

The GUI XML editor in this package can be used for simple database tasks. I realize that XML is a poor choice for any database application, but its easy portability and vast availability of tools for reading files makes it an excellent choice for data storage and transmission. Especially if the data needs to be accessed by different programs and scripts. This will not set any speed records, but it will allow for fairly simple and straightforward tasks as creating an “address book” application that stores its information in a nice portable file. The forms program timestamps all entries for use with the xmlsync command line utility that can be used for merging 2 such database files.

Custom fields can be created using template XML files. Examples are included (as of 2005.01.26). Some changes may be needed for templates to load properly. As of this writing, the program must be installed to (/usr/local/ioe) and must be executed in the following form:

forms -t employee.tlt

That will bring up the employee list template.


a script that assumes you have a ${HOME}/med directory where you will store data and launches the patient tracker. Just a note, the patient tracker stores records by medical record # so you must enter one before clicking open... not sure what happens otherwise.

Windows Utilities

While these may not be part of the IOE project, they are useful utilities for windows users

Zip or Executable - Winidows Directory Synchronization: Choose two local directories and it will synchronize the content based off of modification time.

Outside Links

That's all folks!