Up: Linux Software Encyclopedia
Last checked or modified: Aug. 2, 1998
- An open source content management and
object-oriented web application platform written in
The content management part includes the ability to create, edit and
maintain web site content in a collaborative environment.
The contnet is managed via a web interface that includes user
authentication and access control.
The object-oriented capabilities allow the development of flexible,
powerful and reusable components.
The goals and eventual features of Iaijutsu include:
- complete web-based administration of content and application objects;
- object classes for handling the unique features of a wide variety
of web content types via a common authoring and management environment;
- generalized management features such as a common authoring
environment, revision control, approval process, searching, remote and
periodic static publishing, and indexing capabilities;
- built-in facilities for data/object storage, retrieval and
- separation of logic and presentation to allow the delegation of
work to different skill sets;
- exploitation of technologies such as XML for
- building on currently available CPAN resources.
Projects implemented as Iaijutsu packages include:
Full use of Iaijutsu requires a MySQL server
and well as a handful or two of Perl modules.
This is currently (1/00) in the alpha development stage.
- authen-ldap, LDAP support for authentication;
- dentatsu, a news site management system with
XML content syndication;
- hivemind, a project management and
- mail-imap, classes mapping IMAP email
folders and messages into Iaijutsu object space;
- scheduler, a cron-like daemon and task classes for
scheduling repeated tasks; and
- publisher, for scheduling dynamic content snapshots and
publishing to build static sites.
- A memory allocation library written in C developed
to ease the process of data layout optimization for dynamically
allocated data structures.
In many situations this consumes less memory space and is faster
that the standard malloc libraries, especially with programs
that manipulate large linked lists or trees.
Other situations in which ialloc offers significant improvement include:
Both ialloc and malloc can be simultaneously used in the same program,
although care must be taken to keep the data structures separate.
- programs performing a lot of allocation/reallocation of memory;
- programs that frequently reference a large number of instances
of structures in memory; and
- programs wherein data structures in some fields are much more
frequently used than others, wherein field reorganization and instance
interleaving can provide noticable speedups.
The alloc library consists of five procedures to:
It also contains several predefined macros used to parameterize
the library which can be redefined to fine tune it to different
A source code distribution is available. It is written in C
and will compile on most UNIX platforms.
This is documented in a user's manual available in the usual formats.
- allocate memory (2);
- free memory;
- initialize the library; and
- obtain allocation statistics and debug information.
- This allows you to run SCO, Wyse, and SVr4 binaries under
Linux. I believe it's still in beta test stage.
- A set of Matlab programs for performing
independent component analysis (ICA), i.e. a signal processing
process in which the problem is to separate statistically independent
inputs which have been linearly mixed into a number of output channels
without further knowledge about their distributions or dynamics.
This set of programs was designed for EEG analysis but has much
- The Idealized Coupleable Atmospheric Model
is an idealized mechanistic atmospheric circulation model
which uses triangular spectral truncation in the horizontal and
pressure levels in the vertical.
A coupled ocean-atmosphere (COAM) of the model can also
be compiled with the distribution.
The source code is written in Fortran 77 and a manual
is included in TeX format.
See Saravanan and McWilliams (1995).
- Icarus Verilog
- A Verilog simulation and synthesis tool that compiles source code
written in Verilog into a target format.
For batch simulation, it generates C++ code
that is compiled and linked with a runtime library to create an executable.
For synthesis, it generates netlists in several formats.
The compiler is intended to parse and elaborate design descriptions
written to the IEEE standard 1364-1995 and to also eventually
recognize the 1364-2000 revisions.
Snapshots of the source code are made available on a regular basis.
- ICE (configuration)
- The Incremental Configuration Environment is an
experimental software configuration management (SCM) system
that integrates several concepts like workspaces, revision
management, variant management and deductive program construction
into a single, easy-to-use model called the version set model.
While other systems require you to adapt your software to their
SCM model, ICE is sufficiently flexible to adapt to your software process.
It integrates smoothly into existing UNIX environments
via a virtual file system mapping version sets onto files and project
contexts into directories. All SCM tasks are realized through the
virtual file system.
Users can manipulate several versions at once while storing only
the version differences, and special techniques like n-version
merging allow for the efficient coordination of parallel work.
A source code distribution is available that can be compiled
and used on most UNIX flavors.
- ICE (protocol)
- The Information and Content Exchange
protocol is for
use by content syndicators and their subscribers.
It defines the roles and responsibilities of syndicators and subscribers,
defines the format and method of content exchange, and provides support
for the management and control of syndication relationships.
It is useful for automating content exchange and reuse in both traditional
publishing contexts and business relationships.
This is an application of XML.
- An Internet broadcasting system based on
MPEG Layer 3 streaming technology.
This allows transmission of such streams which can be listened to
with an MP3 player on most platforms.
The major components of the package are:
A source code distribution of Icecast is available.
- icecast, the broadcasting program, i.e. the server;
- shout. the program that provides streaming MP3 files to
- liveice, a live streaming program that allows input from
either a soundcard's line or MP3 files to be mixed and re-encoded
and then streamed to the server; and
- icedir, a directory service that provides a listing of
icecast servers and that can also maintain a list of current
- A suite of scripts for running an Icecast radio
station with tight integration of an accompanying Web site.
The features include:
This requires Perl 5 and
- continuous random song playback;
- shuffling of songs without replacement;
- generation of custom Web pages using simple tags including
current/recent songs, playlist and top requests pages;
- simultaneous streaming to multiple servers at different bitrates;
- automatic updating of any Web page with server statistics;
- automatic scheduling of a Top 10 request show and other fixed
content shows; and
- updating of mp3spy.com with currently playing information.
- A small and fast window manager
for X11 which is mostly compatible
with the Motif window manager mwm.
IceWM is designed to emulate the look
of Motif, OS/2 Warp 4, OS/2 Warp 3 and Windows 95, and
tries to combine the feel of all of them whenever possible.
This is not designed to be as configurable as some other
window managers like fvwm.
- A GUI designed to simplify the configuration of
IceWM. This was written using
- A general purpose interpretive programming language with dynamic
typing and flexible data types. ICI has the flow control constructs
and operators of C and is designed for use in many environments,
including embedded systems, as an adjunct to other programs and as
a text-based interface to compiled libraries.
ICI looks and feels like C with the data model
resembling that of Lisp
All data are objects of specific types, with variables being
dynamically typed references to objects.
Available object types include the usual integers, floats, and strings
as well as dynamic collection types such as array, set, and
struct (i.e. dictionaries).
It is also fully garbage collected and supports error handling.
A source code distribution of ICI is available. It is written
in C and can be compiled and used on several platforms including
It's use is documented in a user's manual available in
See also a modified version of ICI called
- The Interactive Command Language is a
Starlink Project language
designed to provide a programmable user interface to an
astronomical data reduction or acquisition system. It is
the primary user interface for the ADAM software environment.
ICL is similar to high level programming languages like
Pascal although it has a few salient
it is a command language whose main use is to enable the typing
of commands with few restrictions on the possible command format;
it is an interactive language which provides a complete environment
for entering, editing, and debugging programs rather than relying
on external editors, linkers, and the like; and
it can be used as a programming language but is mostly intended
for writing relatively simple and straightforward programs.
Distributions of ICL are available in both source and
binary format, with the latter available for DEC OSF/1,
Linux Intel, and Sun Solaris platforms.
The system is documented in a 90 page user's manual
available in PostScript format.
- The InterAgent Communications Model is a communication
model and API oriented towards the needs of inter-agent communication, i.e. it
can be used for asynchronously sending messages between agents.
It is intended for use as a transportation mechanism for agent
communication languages (ACLs) and is part of the larger
Network Agents project.
The features and functionality of ICM include:
- a store and forward architecture allowing truly asychronous
communication, e.g. the receiver agents doesn't have to be online
when a message is sent to it;
- an efficient and structured method for encoding messages;
- self-parsing encoding that permits open and extensible communication
forms without requiring predefined message formats to be compiled
- the use of communication servers to permit individual agent
platforms to communicate with large numbers of different host computers
while minimizing system resource use;
- globally unique agent handles permitting messages to be routed
without requiring all platforms to route all messages;
- agent handle aliasing to permit agent migrations in a well-controlled
- virtual hosts that allow the use of intermittently connected
devices such as PDAs and dial-up computers in a manner mostly
transparent to individual agent platforms and applications;
- multilingual access to the agent platform via message communication; and
- sitting logically below an agent communication language, allowing
messages to be built in a higher language from the simpler ICM
- The Intelligent C-like MAKEr is a hybrid
between a make utility and a shell script language originally
created to provide a useful tool for automatic program
maintenance and system administration tasks.
A source code distribution is available which includes
a manual in PostScript format.
- The Internet Control Message Protocol is an
integral part of IP used by gateway or destination
hosts to communicate with a source host for reporting such things as
when datagrams can't reach their destination, when the gateway doesn't
have the buffering capacity to forward a datagram, and when the gateway
can direct the host to send traffic via a shorter route.
ICMP is basically used to provide feedback about problems in the
network communications environment, but not to ensure absolute
reliability since that is a role for higher level protocols to fulfill.
The ICMP is described in RFC 792.
- A tool for looking at the ICMP messages
received on a host. It can be used to detect and record
``bombs'' as well as various network problems.
A source code distribution is available which is documented
in a man page.
- A C++ library for creating client/server
applications on hosts connected via the Internet.
The source distribution contains a manual in
- A high level general-purpose programming language with
extensive facilities for processing strings (text) and data
Icon has an expression-based syntax with reserved
words, and the programs most resemble those
of Pascal and C.
It has several novel features including
expressions that may produce sequences of results, goal-directed
evaluation that automatically searches for a successful result,
and string scanning that allows operations on strings to be
formulated at a high conceptual level.
Icon emphasizes high-level string processing and a design philosphy
which allows ease of programming and short, concise programs.
Storage allocation and garbage collection are automatic and there
are few restrictions on the sizes of objects.
Values are converted to expected types automatically.
Icon has a full range of computational facilities other than
those for processing strings and structures.
There is an object oriented extension to Icon which provides
classes and multiple inheritance. It is distributed as poart of
the Icon program library.
Icon has conditional expressions which may succeed and produce a
result or fail and not produce any result. The success or failure
of conditional operations is used instead of Boolean values to drive
control structures, e.g. the command read() produces the next line
from an input file but fails when the end of the file is reached.
If a function argument fails the function is not called and fails
as well. This failure inheritance capability allows many programming
tasks to be concisely formulated.
An expression may also be capable of producing more than one result
with the results depending on the context, in which case the
expression acts as a generator.
Goal-directed evaluation is inherent in its expression evaluation
mechanism and can be used in arbitarily complex situations.
Generation is inherited like failure and can also be used to write
more concise expressions.
Several kinds of structures with different organizations and
access methods are supported in Icon.
Lists are sequences of values or arbitrary types (as opposed to
strings being sequences of characters) and can be manipulated
like stacks and queues.
A set is a collection of values upon which operations like
union, intersection, and difference can be performed.
Tables are sets of pairs, each of which consists of a key and
a corresponding value, both of which may be of any type.
Tables thus provide a form of associative access.
Icon supports high-level graphics facilities in which:
windows can be opened and closed as desired;
text can be written to windows in a variety of typefaces and
sizes, including proportional-width fonts;
characters from the keyboard can be processed as they are typed;
points, lines, polygons, circles, arcs, and smooth curves can
be freely mixed with text;
colors can be used for both text and graphics; and
image files and be read or written.
Icon is packaged into Unix Starter Kits which contain
executables of a translator and interpreter, the interace builder,
documentation (in PostScript format),
and the library procedures reference in the documentation.
The kits are available (for version 9.3) for IBM AIX, Digital UNIX,
HP-UX, Linux Intel, SGI IRIX, and Sun SunOS and Solaris platforms.
There is a plethora of documentation available for Icon, e.g.
a FAQ, a newsletter, technical reports, a periodical, and
a book, i.e.
Griswold and Griswold (1996).
- A Java-based implementation of the
Icon programming language.
This consists of a translator (written in Icon) that generates
Java class files that execute in conjunction with a run-time
system written in Java.
A source code distribution is available which requires
Icon 9.3 and Java 1.1.
- The Institute for New Generation COmputer Technology
is a follow-up to the Fifth Generation Computer Systems (FGCS) project
of the Ministry of International Trade and Industry of Japan (MITI).
The goal of ICOT was to create basic technology for novel computers
that uses parallel inference processing as a core mechanism.
A large amount of software was created under the auspices of ICOT,
all of which is freely available for research purposes and just
about all of which can be compiled and used on generic UNIX
platforms. Many of the programs below require others to work, e.g.
quite a few require KLIC.
The ICOT programs which require the PIMOS environment may not
execute in the KLIC environment without some modification. PIMOS
is the operating system for a special type of parallel computer;
KLIC provides a similar but not identical environment for KL1
programs for the UNIX environment. Some of the application
programs available from ICOT will operate under either PIMOS or
KLIC and some will operate only under PIMOS. There are plans to
create KLIC versions for a wider range of the available programs,
although no specifics are yet available.
The ICOT software packages that can be used in the KLIC environment
on UNIX platforms include:
- KLIC, an implementation of the KL1 programming
- CLP, an implementation of cu-Prolog;
- Quixote, a deductive object-oriented
- Kappa, a parallel database management system;
- MGTP/G, a theorem prover for non-Horn
clauses that deal with ground atoms;
- Quant2, a program for DNA sequence analysis
based on discriminant analysis;
- PIA, a program for performing multiple sequence
alignment by parallel iterative improvement;
- RNASA, a program for multiple RNA sequence
alignment using simulated annealing;
- SSSHMM, a program for successive state
splitting of protein using hidden Markov networks;
- A'UM, an implementation of a concurrent
object-oriented programming language (descended from KL1);
- DP, a logic programming system which controls
symbolic inferences by general heuristics based on dynamics; and
- GDCC, a parallel constraint logic programming
- The Internet Cache Protocol is used for exchanging
information among caches and for application programs that need
guaranteed reliable transmission of binary objects.
The architecture supports tree-structured hierarchies as well as
any non-cyclical graph, and as such one major use involves enabling
caches at lower levels to retrieve objects from those at higher levels.
A mechanism is also provided to allow a client to query several caches
and base the decision on where an object should be retrieved on the
results of the queries.
Software implementing ICP includes:
- ICQ (a cutesy pseudo-acronym for ``I Seek You'') is a protocol and
programs that let you find friends and associates online in real time.
You can create what is called a Contact List containing those you
want to contact and send them messages, chat with them, send them
files, configure ICQ to work with external messages, and various
A commercial version for Linux is not yet (8/98) available, but
several clones have been developed and can be found at the first
- The Interprocedural Data Aanalyzer is an interactive
tool that provides interprocedural information about
Fortran 90 and
HPF programs including:
This uses the same front-end as SHPF and can
parse the same Fortran variants as that.
- graphs showing the calling relationships between program units;
- traces of where and how variables are used;
- information about common block partitioning and usage; and
- procedure references and argument associations.
- Integrated Development Environments are listed
under programming environments.
- A package consisting of a front-end that parses commented
source code and a back-end that creates HTML documentation from this.
- The Internet Document and Report Server
is a full web development platform designed to be an:
The features of IDRS include:
- embeddable HTML report generator for Java
- web-based enterprise report server; and
- web site generation tool.
On Linux systems IDRS requires
the Apache server,
the servlet runner
Tomcat 3.1, the
the PostgreSQL database system, and
the JDBC driver for the latter.
- an XML dialect called Reporting Markup
Language (RML) for creating report templates;
- multiple data sets per report;
- database connection pooling for connections to the IDRS report
database and for use by IDRS reports;
- secure or non-secure reports;
- including JSP in report templates to be processed
after the report has been fully created;
- data-result paging;
- calling Java classes from within reports to retrieve data and do
whatever RML cannot do natively;
- embedding JPython and
RML documents; and
- pooling and recycling of IDRS Report objects.
- A program for tagging MP3s with their title, artist, album and
track number information.
- A set of GNU utilities
which implement an ID database, i.e. a binary
file containing a list of file names, tokens, and a sparse matrix
indicating which tokens appear in which files.
The tools that create and query this database allow the quick
and easy text searching of, e.g. all files which reference a particular
#include file in a large source hierarchy.
This is useful for those maintaining large software projects or
large sets of text files.
The programs included in the id-utils distribution are:
There are also some query programs which are specializations of
- mkid, which scans files for tokens and builds the ID database;
- lid, which queries the ID database for tokens and then reports
matching file names or lines;
- fid, which lists all tokens recorded in the database for given
files or tokens common to two files;
- fnid, which matches the file names in the database rather than
the tokens; and
- xtokid, which extracts raw tokens and helps with the testing of
new mkid scanners.
- gid, which lists all lines containing requested patterns;
- eid, which invokes an editor on all files containing a requested
pattern and then initiates a text search for that pattern; and
- aid, which treats a requested pattern as a case-insensitive
A source code distribution of id-utils is available.
All programs are written in C and can be compiled and installed
via the included autoconf scripts.
The programs are documented in a user's manual included
in Texinfo format.
- A set of C programs for supporting the IEEE standard
for binary floating-point arithmetic.
The programs are for the support functions
copysign, logb, scalb, nextafter,
finite and isnan.
This is TOMS algorithm 722 and is documented
in Cody and Coonen (1993).
- See NetTools.
- A general mail filtering system that uses a modern text learning algorithm
to intelligently filter mail according to the way the user tends to
Ifile differs from other filtering programs in that is doesn't
require a set of rules to filter mail, it uses the entire content
of messages for filtering, and it learns as you move incorrectly
filtered messages to new mailboxes.
It isn't dependent on any mail system and should work with any
that allows outside programs to perform filtering.
A source code distribution of ifile is available. It
has been successfully installed on several platforms including
Linux Intel. It is documented in a FAQ and a README file.
- A package which allows a UNIX machine to integrate an
FTN (FidoNet-like) network and act as a
gateway between in and Usenet or email, i.e. a set of FidoNet
compatible transport and gateway programs.
The ifmail package consists of two main parts-a transport agent
program called ifcico and gateway programs called ifmail
and iftoss-along with some supplementary and front-end
The ifcico program is capable of making outgoing calls over
dial-up serial lines as well as over TCP/IP
connections. It can also accept incoming FidoNet calls, acting as
an alternative to the login program and as an Internet daemon started
The ifmail (or ifnews) program converts
mail messages and RFC-1036
compatible news articles into FTS-0001 compatible
FidoNet packets that may later be compressed and sent by ifcico or
any other BinkleyTerm compatible transport agent.
Ifmail can feature an echo and netmail distributing FidoNet hub.
The iftoss program converts received FTS-0001 compatible packets
into RFC-0822 compatible mail
messages and RFC-1036 compatible news
batches and passes them to appropriate mail and news agent programs,
e.g. sendmail and rnews.
A source code distribution of ifmail is available.
It is written in C and is known to compile on Linux, FreeBSD,
SCO, SVR4, SunOS, and various other UNIX flavors.
- A modified version of the ifmail
FidoNet software package.
Ifmail-tx adds character set support, management, support for
different Area files for different feeds, additional address
type support, support for a packet password different than a
session password, PGP-signed messages
support, better MSGID/Message-ID management, Gatebau-style
MSGID, and more.
- A security program that checks all network
interfaces on a system and reports any that are in either debug or
promiscuous mode, i.e. signs of possible unauthorized access to the
- A graphical FTP client whose features include:
A source code distribution is available under
- an intuitive and easy to use GUI;
- full session database management;
- user profile management;
- advanced FTP operations;
- drag and drop;
- batch file transfer;
- site mirroring; and
- HTTP support.
- A configuration file preprocessor
that allows C
preprocessor-like directives to be placed in configuration file templates
and allows values to be defined based on the local host name and other
The template files are processed and the output passed to an installation
command that installs the customized configuration file and performs
any other duties such as restarting the daemon
that uses the file.
This was developed to allow a single template of each configuration file
to be maintained on all machines with preprocessor directives used to
control the differences between hosts.
The template files can be distributed to remote systems and Igore
can be used to customize and install them.
A source code distribution is available which is documented in a
- The International Geomagnetic Reference Field
model is the empirical representation of the Earth's magnetic
field recommended for scientific use by the International
Association of Geomagnetism and Aeronomy (IAGA). It represents
the main (or core) field without external sources and employs
the usual spherical harmonic expansion of the scalar potential
in geocentric coordinates. The coefficients are based on all
available data sources.
IGRF-95 consists of coefficient sets for the epochs 1945 to
1995 in steps of 5 years and the first time derivatives of
the coefficients for the time period 1995 to 2000.
The Fortran 77 subroutines in this
FELDG, for computing the magnetic field vector;
SHELLG, for computing the L shell; and
BILCAL, for producing tables of the geomagnetic field
strength, vector components, equatorial/minimum field strength,
dipole moment, and L-value in latitude, longitude, altitude,
A source code distribution of IGRF-95 distribution is available.
It is documented in some ASCII files as well as in
- The Interior Gateway Routing Protocol was
developed by Cisco to provide a robust protocol for routing within
an autonomous system (AS) having arbitrarily complex topology and
consisting of media with diverse bandwidth and delay characteristics.
An AS is a collection of networks with common administration and
a common routing strategy.
The IGRP is mostly replacing RIP in
large internetworks as the limits of the latter are being reached, and
it will work in both IP and
It is a distance vector interior-gateway
protocol (IGP) wherein each router sends all or a portion of its routing
table in a routing update message at regular intervals to each of
its neighboring routers.
A combination of metrics including internetwork delay, bandwidth, reliability
and load are all factored in the IGRP routing decisions.
It also has features designed to increase stability including hold-downs,
split horizons and poison reverse updates.
A version called Enhanced IGRP adds link state protocols to the distance
vector protocols already in IGRP to significantly improve performance.
- The Infospheres Infrastructure is a distributed framework
implemented in Java. It provides a generic
object model and a variety of messaging models, e.g. asynchronous,
synchronous, and remote method calls. It is being used to
develop lightweight distributed systems that can leverage open
standards and the Web.
The beta release of this package is currently (3/97) available.
A Java Developer's Kit (JDK) of some
sort is needed to use the II software. It has been tested
on the Linux JDK port and several others. A 100+ page user's
manual in PostScript format is available.
- A standardized part of the CORBA 2.0 specification
that, among other things, dictates the wire protocol used in distributed
- The Internet Key Exchange protocol is for negotiating
and providing authenticated keying material for security associations
in a protected manner.
This is part of the IPsec project.
- An interactive and batch image processing kit which includes
Tcl extensions for performing detailed
image processing as well as IKIT, a Tk program which uses the
Tcl extensions to implement an interactive image manipulation tool.
The extensions have a C interfaces which allows further extensions
to be written that take advantage of existing capabilities.
The source code for IKIT is available. It is written in
C and Tcl/Tk and can be compiled on many UNIX platforms
using the supplied autoconfig script.
It is known to compile on Linux Sparc/Intel/Alpha and
Sun SunOS platforms.
- A C library for reading, creating, manipulating
and saving images and text.
It can use any of the 208 available X11 BDF
fonts to draw text.
It can also read and write images in PPM, PNG
and GIF format.
This is a good choice for generating graphs and creating GIF output
from CGI programs.
The library routines in the package include:
A source code distribution of this C code
is available. It is sufficiently portable such that it can be
compiled with both K&R and ANSI C compliant compilers.
- IAllocColor, allocates a color for drawing;
- ICreateGC, creates a graphic context for drawing on an image;
- IDrawLine, draws a line using hte current line style;
- IDrawRectangle, draw a rectangle of specified width and height;
- IDuplicateImage, creates a duplicate of an image;
- IFileType, determines the type of image;
- IFontSize, gets the pixel height of a font;
- IFreeFont, frees a font no longer in use;
- ILoadFontFromFile, loads a font from a BDF font file;
- ISetFont, sets the drawing font for a graphics context;
- ISetForeground, sets the foreground color;
- ISetLineStyle, sets the line drawing style;
- ISetTransparent, sets the transparent color of an image; and
- IWriteImageFile, writes an image to a file in a chosen format.
- See FireWire.
- A small, multiplatform Lisp library implementation.
It is a core library for working with lists, atoms and symbol
tables that can be used to implement any Lisp dialect.
A source code distirbution is available.
- A toolset for developing optical character recognition (OCR)
and image understanding applications.
It consists of two major parts:
a library for representing, storing, and retrieving OCR information
and a Distributed Attribute File Specification (DAFS) viewer
The dafslib library is the C language API that allows
developers to read, write, construct, and manipulate DAFS files.
The key features of DAFS include storage of text and image in
a single file, hierarchical structure, provision for ambiguity
or uncertainty, and extensibility.
It provides fundamental structures called entities for representing
images and associated text and provides means for other developers
to store their own proprietary data.
An entity is a specific region of an image along with any
associated textual content.
The Illuminator is a GUI for viewing and altering data in
DAFS files, with the capability of reading and writing Unicode
and ASCII/UTF text files and reading TIFF and PDA images.
It was created for building document
understanding test and training sets, for the easy correction
of OCR errors, and for reverse-encoding the essential information
and attributes of a document.
It edits documents which contain both images and text, displaying
either or both, and is configured to handle text in many major
European languages as well as Japanese.
It's modes of operation are:
- an Image Mode for viewing and working with the actual image of
document and its entities;
- a Text Mode which is a simple text editor which will eventually
support most major scripts and languages;
- an Out-of-Context Mode which collects entities of the same type
into a single file where errors can be easily corrected;
- a Flagged Mode which provides easy means for correcting entities
flagged as questionable by OCR;
- and a Hierarchy Mode which allows you to see the hierarchical
A binary distribution of the Illuminator package is available
for Sun Solaris and Linux Intel platforms.
User's manuals for both Illuminator and DAFSlib
are available in PostScript format.
- ILOG TALK
- A programming language and development environment dedicated
to rapidly producing high-level object-oriented applications
which are easily integrated into a standard computing
environment. The TALK language is an extension of the
proposed ISO Lisp standard, and the
ILOG TALK development environment an easily learned system.
The system compiles modules to C source code and
provides a fine-grained connection to C++ libraries,
thus allowing the user to take advantage of the features
of both languages.
The operating system interface is based on the
Other features include a garbage collector, an interpreter,
a debugger, dynamically typed objects, a standard
class library, a macro system that lets new syntactic
structures be developed,
a high degree of static verification,
compilation modes which feature either safety or efficiency,
interoperability with Emacs, and more.
TALK programs are divided into three types of units
which correspond to standard binary file types in modern
operating systems for easy interoperability and
Modules correspond to small individual services which can
be grouped into a single source file which is compiled into
a standard object file which can be linked to other units.
Libraries consist of a set of modules which together provide
a set of related services. Object files are linked together
to form libraries implemented by dynamically loadable shared
Executables are composed of sets of modules and libraries
and from independent, runnable applications.
A binary version of ILOG TALK is freely available for
Linux Intel platforms. It is somewhat limited in functionality
but nonetheless useful.
Extensive documentation is included in the distribution
in several formats.
- The Inter-Language Unification
system is a multi-language
object interface system which hides implementation
distinctions between different languages, address spaces, and
operating systems. It can be used to build multi-lingual
object-oriented libraries and well specified language-independent
interfaces, and also to implement distributed systems.
It can be used to define and document interfaces between the
modules of non-distributed programs, and the interfaces can be
specified in either the OMG
CORBA Interface Definition Language (IDL)
or the ILU Interface Specification Language (ISL).
The latest ILU
release (2.0) contains support for Common Lisp,
Python (with version 1.8 also supporting
It supports both threaded (POSIX, Solaris, NT,
Franz ACL, PPCR, Modula-3) and
event-loop (Xt, Tk,
Since one goal of ILU is to maximize compatibility with existing
open standards, it provides support for the use of the OMG CORBA
IDL and can be thought of as a CORBA ORB system (although with
omissions from and extensions to the CORBA specs).
ILU also includes self-contained implementations of ONC RPC and
HTTP and can thus be used to implement
object-oriented web browsers and servers.
ILU is available in source code form for UNIX platforms. It
has been installed on Sun SunOS and Solaris, HP-UX, IBM AIX,
DEC OSF, SGI IRIX, FreeBSD, Linux Intel, LynxOS, SCO UNIX, etc.
It is documented in a user's manual available in
both PostScript and
HTML formats. Some technical reports
are also available.
- A C++ class library to perform various
tasks associated with grayscale images.
The features of image include:
- various elementary pixel operations including assigning/subtracting/etc.
a value to all pixels, comparing every pixel with a value, comparing
two images, etc.;
- operations on square or rectangular parts of an image;
- reading and writing PGM,
XWD, and Group G (grayscale) TIFF file formats with automatic
recognition of input format;
- squeezing, stretching, and coercing images (with the latter meaning
the aspect ratio is changed if needed);
- iterators to perform sweeping image processing which is more
efficient than for() loops;
- lazy images wherein a recipe is returned rather than an object with
the full image created on when needed;
- image filtration including convolution, median, and morphological methods;
- powerful and fast lookup table substitutions; and
- a fractal cloud generator.
A source code distribution of the code is available.
It is written in C++ and has been compiled using
Documentation includes a README file as well as comments
within the code.
This requires the c++advio package.
- A C++ class library for image processing
that provides a variety of image and vector types as well as
modules supporting scalar and vector quantization, wavelet
transforms, DCT transfroms, and simple histogram operations.
- image processing
- Available packages include:
- AIPS, for processing astronomical images;
- AIPS++, a large, multi--featured system for
processing astronomical images (the next generation of AIPS);
- CppIma, a C++ library
for image processing tasks;
- CVAP, a collection of packages for various
computer vision tasks;
- CVIPtools, a collection of tools for the
exploration of computer vision and image processing;
- EFLIB, a large library of Pascal software
with image processing capabilities;
- EMTOOL, for the interactive processing of
images obtained from transmission electron microscopy;
- ESO-MIDAS, a package of tools for
the reduction and analysis of astronomical images;
- GIMP, an image manipulation program;
- GRASS, a GIS system with image processing
- IKIT, an interactive and batch image
- image, a C++ library
for manipulating grayscale images;
- Image/J, a Java package for image processing;
- IPW, a system for algorithm and application
development as well as for application to remote sensing;
- IRAF, a general purpose system for the
reduction and analysis of astronomical images;
- KAPPA, a toolkit with over 180 commands
for image processing and data visualization;
- libtiff, a C library
for working with TIFF format image files;
- LUG, a utility library for viewing and
manipulating various image formats;
- MAD, a system for recovering images from
blurred and noisy representations;
- Netpbm, a large image conversion and
- Pbmplus, a large image conversion and
- PyrTools, a Matlab package for multi-scale
- SPM, a Matlab toolkit for statistical
- SUSAN, a package containing programs for
image noise filtering and other tasks;
- TINA, libraries for vision algorithm
development and evaluation;
- Viewit, multidimensional image processing
software originally developed for processing MRI data;
- WAILI, a wavelet transform library with
image processing capabilities;
- XANADU, image processing software for
data from X-ray astronomy;
- XFITSview, a viewer for data in
the FITS format;
- XImage, a color imaging and analysis tool;
- XITE, an image processing system;
- xli, an image viewer;
- xloadimage, an image viewer;
- Xmap8, a GIS for geology and geophysics;
- XMW, a GUI image processing environment;
- xv, an image viewer.
- image viewers
- Programs for viewing images include:
- A Java package for image processing and analysis.
This was designed with an open architecture that provides extensibility
via Java plugins.
The features and functionality include:
A source code distribution is available which requires
JDK 1.1.6 on Linux boxes.
- displaying, editing, analyzing, processing, saving and printing
8-, 16-, and 32-bit images;
- reading several common file formats including TIFF, GIF, JPEG,
DICOM, FITS and raw images;
- support for stacks, i.e. a series of iamges that share a single window;
- multithreading for performing time consuming operations in parallel;
- calculation of area and pixel value statistics of user-defined selections;
- density histograms and line profile plots;
- standard image processing functions such as contrast manipulation,
sharpening, smoothing, edge detection and median filtering;
- geometric transformations such as scaling, rotating and flipping; and
- A package for the display and interactive manipulation of
images for the X Window
system. It is written in C and interfaces
with Xlib so it doesn't require any
The package contains an image display program
display which can display
an image on any workstation running an X server.
It can read and write many image formats as well as allow the
interactive resizing, rotation, sharpening, color reduction,
or addition of special effects to an image via a program
ImageMagick also has command line programs that will:
The image formats supported by ImageMagick include:
CMYK, DCX, DIB, EPS, EPS2, EPSF, EPSI, FAX,
PCD, PCL, PCX,
PS2, RGB, RGBA, RLA, RLE, SHTML, TGA, TIFF, VID, VIFF, X, XBM,
XPM, XWD, and YUV. See the site for details.
Some formats require the installation of additional software,
e.g. HDF, JPEG,
JBIG-KIT, parts of
the PNG library, TIFF, and
- convert an image from one format to another (convert);
- read an image from any visible window on an X server and
output it as an image file (import);
- combine images to create new ones (combine);
- create framed thumbnail versions of images;
- create transparent images for use on the Web;
- turn a group of images into a GIF animation sequence (animate);
- create a composite image from several images (montage);
- segment an image based on the color histogram;
- describe the format and characteristics of an image (identify); and
- retrieve, list, or print files from a remote network site.
The ImageMagick source code can be compiled on almost any
UNIX platform and also runs under Windows NT, Mac, and VMS.
Binaries are available for Linux Intel (ELF), Sun Solaris and SunOS, and
SGI IRIX platforms.
The programs which comprise ImageMagic are documented in man pages.
There is a Magick Application Programming Interface (API) which allows
the various functions of ImageMagick to be access directly
from several languages.
See also PerlMagick, an object oriented
interface to ImageMagick.
- An object-orineted C++ API to the
The features include:
- an object model inspired by PerlMagick
- integrated support for STL; and
- reference-counted memory management.
- An objected-oriented
Perl interface to
ImageMagick. This is
a Perl module that can be used to
read, manipulate, or write an image or image sequence from
within a Perl script, which
makes it very suitable for Web CGI scripts.
There are routines for setting image attributes, manipulating
images, getting image attributes, creating an image montage,
and performing miscellaneous other tasks.
The source code for PerlMagic is available and
requires ImageMagick 3.8.2 or greater and
Perl version 5.002 or greater.
The code and its documentation are currently (3/97) is
the alpha stage.
- An object-oriented Python
interface to ImageMagick.
- A UNIX tool which facilitates the writing of portable programs.
With imake the dependences for various systems are described
in a set of configuration files and then a Makefile is generated
from the set of dependencies appropriate for a given machine.
The most well-known use of imake is to configure the
X Window System distribution.
See DuBois (1996).
- A platform-independent make processor
written in Java.
- An image management program whose features include:
This is available under the GPL.
- easy browsing of large image collections;
- opening any picture in GIMP with one click;
- setting any picture as wallpaper;
- quick elimination of duplicate pictures;
- fast searching for images; and
- storage of title and author information for images.
- The Internet Message Access Protocol
is a method of accessing electronic mail or bulletin board
messages that are kept on a mail server, i.e. it is a mechanism
for mail clients to interact with mail servers.
It permits a client e-mail program to access remote message
stores as if they were local.
The capability of IMAP to access messages from more than one
computer gives it an advantage over the
POP (Post Office Protocol) which is not really compatible with
access from multiple computers unless all of those machines
share a common file system.
IMAP includes operations for:
It also provides support for online, offline, and disconnected
access modes as well as for concurrent access to shared mailboxes.
The client software needs no knowledge about the server's file
- creating, deleting, and renaming mailboxes;
- checking for new messages;
- permanently removing messages;
- setting and clearing flags;
- server-based RFC-822
and MIME parsing (so clients don't need to) and searching; and
- selective fetching of message attributes, texts, and portions
thereof for efficiency.
Packages which support IMAP include
A companion protocol called Application Configuration Access
(ACAP) is being developed
which provides the same location independent type of access to
config files, address books, bookmark lists, etc.
- An IMAP server generally intended to be
run on sealed servers where normal users are not permitted to
log in. The mailbox database is stored in parts of the
filesystem which are private to the Cyrus IMAP system, and all
user access is through the IMAP, POP3, or KPOP protocols.
Cyrus allows a seamless mail and bulletin board environment to
be set up across multiple servers, and it is a scalable system
designed for use from small to large environments.
The private mailbox database design gives the server large
advantages in efficiency, scalability, and administratability.
Multiple concurrent read/write connections to the same mailbox
are permitted, and the server supports access control lists on
mailboxes and storage quotas on mailbox hierarchies.
A source code distribution of IMAPd is available. It is
written in C and can be compiled and installed on many
UNIX flavors via the configure script included in the
It's use is documented in a series of man pages.
- A distributed, wide area network (WAN) based approach to cataloguing,
searching, storing and providing Web access for high-resolution images.
The LBNL Image Library provides a Web-based image
management service whose capabilities include:
ImgLib was designed for three types of users: people who search and
browse the collections, authors who incorporate images and text from
it into their own documents, and curators who create and maintain
collections of images and text.
- rapid browsing of thumbnail sized images;
- indexed searching over associated textual information
for each image;
- collection curation performed using Web tools; and
- text and image format and access control customizable by collection.
ImgLib is implemented by two standard HTTP servers
and a set of HTML documents and scripts.
The MSS Server runs on a mass storage systems where it stages one or more
files, returns one file at a time, or lists the files in a directory.
It is also responsible for authenticating that a user requesting a file
is authorized to do so.
The Image Library Server is responsible for defining an image
collection, creating thumbnail images, keeping the descriptive text files
indexed, and providing search and browse functions.
It controls access to all of the derived images and text and its functionality
is provided by a set of HTML documents, scripts and standard HTTP access
A source code distribution of ImgLib is available. It consists of
a number of scripts written mostly in Perl 5
(with some written in C) which are called by a standard HTTP daemon.
These can be used with standard HTTP servers such as
Full use of the package also requires the installation of
cjpeg or an equivalent JPEG to PBM converter.
Documentation includes a user's guide and several technical reports,
all available in popular formats.
- A set of tools for image processing intended to be complementary to
the Pbmplus tools for format conversion.
Over 70 command-line tools are available which can be combined
via UNIX pipes to perform complex operations.
An intermediate floating point image format is used to allow
operations to be cascaded, with conversion tools included for
converting between this and PBM-type formats.
The tools are divided into several categories including those that:
A source code distribution is available.
It includes an 80 page manual in PostScript format.
- implement arithmetic and logical operations;
- magnify, crop and subsample;
- implement Canny edge detection;
- implement custom space- or frequency-domain convolution;
- implement several filters including high-, low-, and band-pass,
rank-value, difference of Gaussians, and Gabor;
- generate test images and implement differential or vector
operations, e.g. gradient, derivatives and Laplacian;
- implement thresholding, zero-crossing detection and calculate
- The Instrument Markup Language is an instance
of XML creating a general and extensible
framework applicable to any kind of computer-controlled instrument.
The scope of IML includes:
An example of a particular instance of IML is
- graphical user interfaces for controlling and monitoring instruments;
- command set and command formats;
- data streams, i.e. responses to commands and other telemetry from
- visualization of instrument telemetry;
- support for different communication mechanisms; and
- online help and documentation.
- A general image loading and rendering library designed to make the
task of loading images and obtaining X11 drawables simple and quick.
Imlib is display depth independent, loading images and working in
24-bit internal format while dithering and remapping or whatever
else is needed to generate images read for display by programs.
It can also rescale images, be used on 8-bit displays, generate
transparencies, load more than one format, and perform intelligent
The features of Imlib include:
- loading images in PPM, PGM, TIFF, PNG, XPM, JPEG and EIM formats as
well as converting most other formats to one of these for loading;
- image caches that can allow naive programs to run much faster;
- rescaling an image to any size;
- the capability of performing gamma, brightness, contrast, or arbitrary
curve mapping to improve the visibility of images or modify their
- basic image modifications such as flipping and rotating;
- optimization to give best results whenever possible at high speeds;
- handling monochrome, 2 to 8 bit pseudocolor and static color, and
15, 16, and 24 bit color displays;
- an advanced pixmap cache that can reuse cached pixmaps if already
rendered at that size to speed up rendering; and
- both Xlib and GDK
versions that can be simultaneously installed and used.
Imlib distributions are available in source code and
RPM formats. Documentation is included in
the distribution and is also available in the form of an
- A C++ template library of modern iterative methods for
solving both symmetric and nonsymmetric linear systems of equations.
The algorithms are fully templated in that the same source code
works for dense, sparse, and distributed matrices. Solution
methods include Richardson iteration, conjugate gradient (CG),
Chebyshev iteration, CG squared, BiCG, BiCG stabilized,
generalized minimum residual (GMRES), and quasi-minmal residual
without lookahead (QMR).
A user's manual is available in PostScript format.
IML++ contains an optional test suite for sparse matrix
- A set of PHP scripts implementing an
IMAP-based email system.
- imperative languages
- Interesting and or relevant sites include:
Imperative languages include:
- A set of PostScript utilities including:
- impose, a program for two-up printing of DSC-compliant PostScript
files that attempts to remove excess white space;
- bboxx, extracts the bounding box of a PostScript file;
- fixtd, sets the tumble and duplex options for the printout; and
- psbl, a preprocessor for creating booklets.
- A WYSIWYG layout program designed and built for Linux platforms using
Tcl/Tk. It can be used to create presentations
and PostScript documents using fully scalable graphics similar to
Corel Draw and Adobe Illustrator, and differs from other Linux-available
tools like GIMP in that graphical objects can
be manipulated on the canvas rather than just layers of paint.
The features of ImPress include:
A source code distribution is available.
- shapes including ovals, rectangles, polygons and rounded rectangles;
- line choices including multi-segmented, freehand and arrows;
- a configurable color palette with separate fill and outline colors;
- separate movable horizontal and vertical rulers and positioning
- transformations including duplication, flipping about axes, scaling
- grouping with hierarchy support;
- printing PostScript to files or devices;
- presentations including autoscaling, actions and wipes;
- embeddable in a web browser via Tcl Plugin; and
- importation of PostScript documents via conversion with a modified
version of pstoedit.
- A set of C++ classes for writing classes enabling
musician/computer interaction using
MIDI. The available classes are divided into
The supporting classes are:
- CircularBuffer, for storing incoming MIDI input into a buffer;
- FileIO, for endian control when reading or writing files;
- MidiMessage, a data structure that stores a MIDI message and
- SigTimer, a timing class.
The MIDI communication classes are:
- EventBuffer, high-level access to MIDI output connection;
- MidiInPort, low-level access to MIDI hardware connection;
- MidiInput, mid-level acess to MIDI hardware connection;
- MidiOutPort, low-level access to MIDI hardware connection;
- MidiOutput, mid-level access to MIDI hardware connection;
- MidiPort, combination of MidiInPort and MidiOutPort;
- RadioBaton, high-level in/out class for communicating
with the Radio Baton MIDI controller;
- Synthesizer, high-level in/out class for communicating with
a generic MIDI synthesizer; and
- Voice, high-level MIDI output class for monophonic lines of
The event control classes in Improv include:
- Event, base class for all events used by EventBuffer;
- FunctionEvent, for note generation algorithms that output notes
in time-sorted order;
- MidiEvent, instantiation of OneStageEvent for transmitting
a single MIDI message to MIDI output;
- MidiFileEvent, for playing a MIDI file;
- MultiStageEvent, virtual class for inheritance by classes
consisting of multiple events;
- NoteEvent, instantiation of TwoStageEvent for playing
notes containing the MIDI messages for note-on and note-off;
- OneStageEvent, virtual class for inheritance by classes
consisting of single events;
- SortedEvent, for time-sorted single-stage type events; and
- TwoStageEvent, virtual class for inheritance by classes
consisting of dual events.
- The Interactive Mathematical Proof System is
intended to provide organizational and computational support for
the traditional techniques of mathematial reasoning.
IMPS consists of a mathematics database and a collection of tools
for exploring, applying, extending, and communicating the material
in the database.
IMPS proofs are a blend of computation and high-level inference,
and as such they resemble intelligible informal proofs, although unlike
the latter the details of IMPS proofs are machine checked.
The IMPS system consists of four components: a core, supporting
machinery, a user interface, and a theory library.
- The core is a specification and inference engine in
which the organizing
unit is a theory implemented as a data structure to which a variety
of information is associated. Proofs in a theory are interactively
constructed using a natural style of inferences based on sequent
- The support machinery consists of core extensions to facilitate
building and printing expressions via various parsing and printing
procedures, to make the inference mechanism more flexible and
autonomous (e.g. an extensible set of inference procedures called
strategies), and to facilitate the construction of theories and
interpretations between them.
- The user interface controls the three critical elements of an
interactive system by displaying: the state of the proof (e.g.
graphical displays of the deduction graph as a tree and TeX
typesetting of the proof history); the presentation of options
for new proof steps (e.g. a well-pruned list of commands and
macetes to apply); and the processing of user commands.
- The theory library contains a number of basic theories which
can be augmented as desired by the user.
A source code distribution of IMPS is available. It is written in
Common Lisp which will work with most
freely available versions of that language, although the authors
indicate a preference for CLISP.
It has been successfully installed on Sun SunOS/Solaris and
Linux Intel platforms.
It is documented in a large user's manual available in
- The Internet Message Support Protocol was developed
by Project Cyrus at Carnegie Mellon University to become a component
of a scalable enterprise messaging system.
The key functionality of the IMSP is the ability to scale an Internet
messaging environment to tens of thousands of users or more, and
it does this by acting as a location broker and modification registry
for message folder objects which can be user mailboxes, group mailboxes,
and other groups of message folders such as netnews.
A folder or set of folders can be distributed and moved among many
message store servers to balance for space, load, and the number
of users per server. Services can be located on multiple servers with
the IMSP providing clients with a list of servers from which to choose,
which allows for load sharing and redundancy.
The IMSP also features a modification registry which provides information
on which message stores have changes or are interesting since the last
access. This lookup service is available across the entire set of
The IMSPD server implements the IMSP.
- A server daemon that implements the IMSP
Internet messaging protocol suite.
A source code distribution is available.
- The Integrating Modelling Toolkit is a generic,
comprehensive, and extensible set of abstractions allowing the definition
and use of interoperable model components.
IMT worlds are created with IMT agents that each perform a particular
phase of a modeling task.
The core set of IMT agents can describe generic, modular, distributed
model components specialized for tasks ranging from simple function calculation
in an interpreted language to spatially explicit simulation, model
optimization, GIS analysis, visualization and advanced statistical
The agents provided in the base module include:
- datasets and data containers with arbitrary types, compound types,
arbitrary dimensions, and interfaces to ASCII, HDF5,
and common image formats as well as the common
- a generic module that passes schedules and events to submodules,
coordinating interaction with a shared dataspace;
- programmable modules executing interpreted
Scheme code that are extensible to support
other interpreted languages and integrated with the IMT environment
via a macro language;
- a basic module for user access, visualization and data export
in the shared dataspace;
- a generic proxy object used by modules to drive remote simulations
implemented as external executables or network services; and
- schedules and events.
Additional IMT modules include:
- an optimizer module that optimizes submodules by looking for
optimal parameter combinations in a user-specified search space;
- a module for driving local external applications through their
command line interface using Expect;
- an SNI proxy module to drive remote
external applications through
their command line interface;
- a module providing proxy-based integration of an external
spatial simulation based on SME;
- a proxy-based integration of GRASS; and
- a proxy-based integration of the statistical analysis
- A program that reads in image, creates a quad mesh geomery, colors
the verices by sampling the input image, and saves the resulting
geomery in a new VRML file. This allows he simulation of texture
maps without special hardware and allows the production of standalone
VRML files that don't need to inline external image files.
Over 30 input image formats are supported.
- A program for using the Microsoft Intellimouse under
XFree86 on machines that run it.
It also supports stick-type mice with all directions of motion.
This is meant as a replacement for gpm but it can also
coexist with it.
For the forgivably ignorant, the Intellimouse has a wheel that can
be used to scroll windows up and down, a labor saving device that
could just save western civilization.
Up: Linux Software Encyclopedia